1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-15 03:12:41 +01:00
phorge-phorge/src/view/phui/PHUIActionPanelView.php
Chad Little 2e0cbaa366 Usability updates to ActionPanel
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
2015-09-17 08:22:23 -07:00

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));
}
}