1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-10 00:42:41 +01:00

Icons for TagView

Summary: Adds the ability to set icons into Tags.

Test Plan: tested on UIExamples page.

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: Korvin, epriestley, aran

Differential Revision: https://secure.phabricator.com/D7961
This commit is contained in:
Chad Little 2014-01-14 11:14:19 -08:00
parent 3d9e328fb3
commit c8d1d06344
4 changed files with 92 additions and 19 deletions

View file

@ -7,7 +7,7 @@
return array(
'names' =>
array(
'core.pkg.css' => '5c4061d8',
'core.pkg.css' => 'a35f9047',
'core.pkg.js' => 'c907bd96',
'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '827749c1',
@ -124,7 +124,7 @@ return array(
'rsrc/css/layout/phabricator-hovercard-view.css' => '67c12b16',
'rsrc/css/layout/phabricator-side-menu-view.css' => '503699d0',
'rsrc/css/layout/phabricator-source-code-view.css' => '62a99814',
'rsrc/css/layout/phabricator-tag-view.css' => 'c0363c26',
'rsrc/css/layout/phabricator-tag-view.css' => '4c983c74',
'rsrc/css/layout/phabricator-timeline-view.css' => 'f4f846c4',
'rsrc/css/phui/phui-box.css' => '21da4d8c',
'rsrc/css/phui/phui-button.css' => '8106a67a',
@ -707,7 +707,7 @@ return array(
'phabricator-slowvote-css' => '266df6a1',
'phabricator-source-code-view-css' => '62a99814',
'phabricator-standard-page-view' => '517cdfb1',
'phabricator-tag-view-css' => 'c0363c26',
'phabricator-tag-view-css' => '4c983c74',
'phabricator-textareautils' => 'b3ec3cfc',
'phabricator-timeline-view-css' => 'f4f846c4',
'phabricator-tooltip' => '0a81ea29',

View file

@ -80,9 +80,7 @@ final class PhabricatorTagExample extends PhabricatorUIExample {
$intro = id(new PHUIBoxView())
->appendChild($intro)
->setShadow(true)
->addPadding(PHUI::PADDING_LARGE)
->addMargin(PHUI::MARGIN_LARGE);
->addPadding(PHUI::PADDING_LARGE);
$header1 = id(new PHUIHeaderView())
->setHeader('Colors');
@ -99,13 +97,7 @@ final class PhabricatorTagExample extends PhabricatorUIExample {
$content1 = id(new PHUIBoxView())
->appendChild($tags)
->setShadow(true)
->addPadding(PHUI::PADDING_LARGE)
->addMargin(PHUI::MARGIN_LARGE);
$header2 = id(new PHUIHeaderView())
->setHeader('Holidays?');
->addPadding(PHUI::PADDING_LARGE);
$tags = array();
$tags[] = id(new PhabricatorTagView())
@ -131,10 +123,59 @@ final class PhabricatorTagExample extends PhabricatorUIExample {
$content2 = id(new PHUIBoxView())
->appendChild($tags)
->setShadow(true)
->addPadding(PHUI::PADDING_LARGE)
->addMargin(PHUI::MARGIN_LARGE);
->addPadding(PHUI::PADDING_LARGE);
return array($intro, $header1, $content1, $header2, $content2);
$icons = array();
$icons[] = id(new PhabricatorTagView())
->setType(PhabricatorTagView::TYPE_STATE)
->setBackgroundColor(PhabricatorTagView::COLOR_GREEN)
->setIcon('check-white')
->setName('Passed');
$icons[] = hsprintf('<br /><br />');
$icons[] = id(new PhabricatorTagView())
->setType(PhabricatorTagView::TYPE_STATE)
->setBackgroundColor(PhabricatorTagView::COLOR_RED)
->setIcon('delete-white')
->setName('Failed');
$icons[] = hsprintf('<br /><br />');
$icons[] = id(new PhabricatorTagView())
->setType(PhabricatorTagView::TYPE_STATE)
->setBackgroundColor(PhabricatorTagView::COLOR_BLUE)
->setIcon('refresh-white')
->setName('Running');
$icons[] = hsprintf('<br /><br />');
$icons[] = id(new PhabricatorTagView())
->setType(PhabricatorTagView::TYPE_STATE)
->setBackgroundColor(PhabricatorTagView::COLOR_GREY)
->setIcon('pause-white')
->setName('Paused');
$icons[] = hsprintf('<br /><br />');
$icons[] = id(new PhabricatorTagView())
->setType(PhabricatorTagView::TYPE_STATE)
->setBackgroundColor(PhabricatorTagView::COLOR_BLACK)
->setIcon('stop-white')
->setName('Stopped');
$content3 = id(new PHUIBoxView())
->appendChild($icons)
->addPadding(PHUI::PADDING_LARGE);
$box = id(new PHUIObjectBoxView())
->setHeaderText('Inline')
->appendChild($intro);
$box1 = id(new PHUIObjectBoxView())
->setHeaderText('Colors')
->appendChild($content1);
$box2 = id(new PHUIObjectBoxView())
->setHeaderText('Holidays')
->appendChild($content2);
$box3 = id(new PHUIObjectBoxView())
->setHeaderText('Icons')
->appendChild($content3);
return array($box, $box1, $box2, $box3);
}
}

View file

@ -30,6 +30,7 @@ final class PhabricatorTagView extends AphrontView {
private $closed;
private $external;
private $id;
private $icon;
public function setID($id) {
$this->id = $id;
@ -88,6 +89,14 @@ final class PhabricatorTagView extends AphrontView {
return $this;
}
public function setIcon($icon) {
$icon_view = id(new PHUIIconView())
->setSpriteSheet(PHUIIconView::SPRITE_ICONS)
->setSpriteIcon($icon);
$this->icon = $icon_view;
return $this;
}
public function render() {
if (!$this->type) {
throw new Exception(pht("You must call setType() before render()!"));
@ -120,6 +129,13 @@ final class PhabricatorTagView extends AphrontView {
$dot = null;
}
if ($this->icon) {
$icon = $this->icon;
$classes[] = 'phabricator-tag-icon-view';
} else {
$icon = null;
}
$content = phutil_tag(
'span',
array(
@ -155,7 +171,7 @@ final class PhabricatorTagView extends AphrontView {
),
'target' => $this->external ? '_blank' : null,
),
array($bar, $content));
array($bar, $icon, $content));
} else {
return phutil_tag(
$this->href ? 'a' : 'span',
@ -165,7 +181,7 @@ final class PhabricatorTagView extends AphrontView {
'class' => implode(' ', $classes),
'target' => $this->external ? '_blank' : null,
),
array($bar, $content));
array($bar, $icon, $content));
}
}

View file

@ -6,6 +6,7 @@
font-weight: bold;
text-decoration: none;
display: inline-block;
position: relative;
}
a.phabricator-tag-view:hover {
@ -23,6 +24,21 @@ a.phabricator-tag-view:hover {
padding: 0 4px;
}
.phabricator-tag-type-state .phabricator-tag-core {
padding: 0 6px;
}
.phabricator-tag-view .phui-icon-view {
position: absolute;
display: inline-block;
top: 1px;
left: 5px;
}
.phabricator-tag-icon-view .phabricator-tag-core {
padding-left: 22px;
}
.phabricator-tag-view-has-bar .phabricator-tag-core {
border-radius: 0 3px 3px 0;
border-width: 1px 1px 1px 0;