mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-15 03:12:41 +01:00
2e0cbaa366
Summary: Wraps entire element in the anchor tag, gives a hover state, makes icons bounce. Test Plan: Hover and click. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D14124
139 lines
2.8 KiB
PHP
139 lines
2.8 KiB
PHP
<?php
|
|
|
|
final class PHUIActionPanelView extends AphrontTagView {
|
|
|
|
private $href;
|
|
private $fontIcon;
|
|
private $header;
|
|
private $subHeader;
|
|
private $bigText;
|
|
private $state;
|
|
private $status;
|
|
|
|
const COLOR_RED = 'phui-action-panel-red';
|
|
const COLOR_ORANGE = 'phui-action-panel-orange';
|
|
const COLOR_YELLOW = 'phui-action-panel-yellow';
|
|
const COLOR_GREEN = 'phui-action-panel-green';
|
|
const COLOR_BLUE = 'phui-action-panel-blue';
|
|
const COLOR_INDIGO = 'phui-action-panel-indigo';
|
|
const COLOR_VIOLET = 'phui-action-panel-violet';
|
|
const COLOR_PINK = 'phui-action-panel-pink';
|
|
|
|
public function setHref($href) {
|
|
$this->href = $href;
|
|
return $this;
|
|
}
|
|
|
|
public function setFontIcon($image) {
|
|
$this->fontIcon = $image;
|
|
return $this;
|
|
}
|
|
|
|
public function setBigText($text) {
|
|
$this->bigText = $text;
|
|
return $this;
|
|
}
|
|
|
|
public function setHeader($header) {
|
|
$this->header = $header;
|
|
return $this;
|
|
}
|
|
|
|
public function setSubHeader($sub) {
|
|
$this->subHeader = $sub;
|
|
return $this;
|
|
}
|
|
|
|
public function setState($state) {
|
|
$this->state = $state;
|
|
return $this;
|
|
}
|
|
|
|
public function setStatus($text) {
|
|
$this->status = $text;
|
|
return $this;
|
|
}
|
|
|
|
protected function getTagName() {
|
|
return 'div';
|
|
}
|
|
|
|
protected function getTagAttributes() {
|
|
require_celerity_resource('phui-action-panel-css');
|
|
|
|
$classes = array();
|
|
$classes[] = 'phui-action-panel';
|
|
if ($this->state) {
|
|
$classes[] = $this->state;
|
|
}
|
|
if ($this->bigText) {
|
|
$classes[] = 'phui-action-panel-bigtext';
|
|
}
|
|
|
|
return array(
|
|
'class' => implode(' ', $classes),
|
|
);
|
|
}
|
|
|
|
protected function getTagContent() {
|
|
|
|
$icon = null;
|
|
if ($this->fontIcon) {
|
|
$fonticon = id(new PHUIIconView())
|
|
->setIconFont($this->fontIcon);
|
|
$icon = phutil_tag(
|
|
'span',
|
|
array(
|
|
'class' => 'phui-action-panel-icon',
|
|
),
|
|
$fonticon);
|
|
}
|
|
|
|
$header = null;
|
|
if ($this->header) {
|
|
$header = phutil_tag(
|
|
'span',
|
|
array(
|
|
'class' => 'phui-action-panel-header',
|
|
),
|
|
$this->header);
|
|
}
|
|
|
|
$subheader = null;
|
|
if ($this->subHeader) {
|
|
$subheader = phutil_tag(
|
|
'span',
|
|
array(
|
|
'class' => 'phui-action-panel-subheader',
|
|
),
|
|
$this->subHeader);
|
|
}
|
|
|
|
$row = phutil_tag(
|
|
'span',
|
|
array(
|
|
'class' => 'phui-action-panel-row',
|
|
),
|
|
array(
|
|
$icon,
|
|
$subheader,
|
|
));
|
|
|
|
$table = phutil_tag(
|
|
'span',
|
|
array(
|
|
'class' => 'phui-action-panel-table',
|
|
),
|
|
$row);
|
|
|
|
return phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => $this->href,
|
|
'class' => 'phui-action-panel-hitarea',
|
|
),
|
|
array($header, $table));
|
|
|
|
}
|
|
|
|
}
|