diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -9,7 +9,7 @@ 'names' => array( 'conpherence.pkg.css' => 'e68cf1fa', 'conpherence.pkg.js' => 'b5b51108', - 'core.pkg.css' => '2bee293d', + 'core.pkg.css' => '0437a674', 'core.pkg.js' => '6c085267', 'darkconsole.pkg.js' => '1f9a31bc', 'differential.pkg.css' => '45951e9e', @@ -127,7 +127,7 @@ 'rsrc/css/layout/phabricator-source-code-view.css' => 'aea41829', 'rsrc/css/phui/button/phui-button-bar.css' => 'f1ff5494', 'rsrc/css/phui/button/phui-button-simple.css' => '8e1baf68', - 'rsrc/css/phui/button/phui-button.css' => 'a37aa3a8', + 'rsrc/css/phui/button/phui-button.css' => '1863cc6e', 'rsrc/css/phui/calendar/phui-calendar-day.css' => '572b1893', 'rsrc/css/phui/calendar/phui-calendar-list.css' => '576be600', 'rsrc/css/phui/calendar/phui-calendar-month.css' => '21154caf', @@ -529,7 +529,7 @@ 'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8', 'rsrc/js/phuix/PHUIXActionView.js' => '442efd08', 'rsrc/js/phuix/PHUIXAutocomplete.js' => '4b7430ab', - 'rsrc/js/phuix/PHUIXButtonView.js' => 'a37126bd', + 'rsrc/js/phuix/PHUIXButtonView.js' => '8a91e1ac', 'rsrc/js/phuix/PHUIXDropdownMenu.js' => '8018ee50', 'rsrc/js/phuix/PHUIXExample.js' => '68af71ca', 'rsrc/js/phuix/PHUIXFormControl.js' => '83e03671', @@ -824,7 +824,7 @@ 'phui-big-info-view-css' => 'acc3492c', 'phui-box-css' => '745e881d', 'phui-button-bar-css' => 'f1ff5494', - 'phui-button-css' => 'a37aa3a8', + 'phui-button-css' => '1863cc6e', 'phui-button-simple-css' => '8e1baf68', 'phui-calendar-css' => 'f1ddf11c', 'phui-calendar-day-css' => '572b1893', @@ -882,7 +882,7 @@ 'phuix-action-list-view' => 'b5c256b8', 'phuix-action-view' => '442efd08', 'phuix-autocomplete' => '4b7430ab', - 'phuix-button-view' => 'a37126bd', + 'phuix-button-view' => '8a91e1ac', 'phuix-dropdown-menu' => '8018ee50', 'phuix-form-control-view' => '83e03671', 'phuix-icon-view' => 'bff6884b', @@ -1557,6 +1557,10 @@ 'javelin-install', 'javelin-dom', ), + '8a91e1ac' => array( + 'javelin-install', + 'javelin-dom', + ), '8ce821c5' => array( 'phabricator-notification', 'javelin-stratcom', @@ -1696,10 +1700,6 @@ 'javelin-sound', 'phabricator-notification', ), - 'a37126bd' => array( - 'javelin-install', - 'javelin-dom', - ), 'a3a63478' => array( 'phui-workcard-view-css', ), diff --git a/src/applications/uiexample/examples/PHUIButtonExample.php b/src/applications/uiexample/examples/PHUIButtonExample.php --- a/src/applications/uiexample/examples/PHUIButtonExample.php +++ b/src/applications/uiexample/examples/PHUIButtonExample.php @@ -83,9 +83,11 @@ ), array( 'icon' => 'fa-upload', + 'disabled' => true, ), array( 'icon' => 'fa-street-view', + 'selected' => true, ), array( 'text' => pht('Copy "Quack" to Clipboard'), @@ -99,6 +101,8 @@ ->setColor(PHUIButtonView::GREY) ->setIcon(idx($spec, 'icon')) ->setText(idx($spec, 'text')) + ->setSelected(idx($spec, 'selected')) + ->setDisabled(idx($spec, 'disabled')) ->addClass(PHUI::MARGIN_SMALL_RIGHT) ->setDropdown(idx($spec, 'dropdown')); diff --git a/src/view/phui/PHUIButtonView.php b/src/view/phui/PHUIButtonView.php --- a/src/view/phui/PHUIButtonView.php +++ b/src/view/phui/PHUIButtonView.php @@ -25,6 +25,7 @@ private $href = null; private $title = null; private $disabled; + private $selected; private $name; private $tooltip; private $noCSS; @@ -74,6 +75,11 @@ return $this; } + public function setSelected($selected) { + $this->selected = $selected; + return $this; + } + public function setTag($tag) { $this->tag = $tag; return $this; @@ -189,6 +195,10 @@ $classes[] = 'disabled'; } + if ($this->selected) { + $classes[] = 'selected'; + } + switch ($this->getButtonType()) { case self::BUTTONTYPE_DEFAULT: $classes[] = 'phui-button-default'; diff --git a/webroot/rsrc/css/phui/button/phui-button.css b/webroot/rsrc/css/phui/button/phui-button.css --- a/webroot/rsrc/css/phui/button/phui-button.css +++ b/webroot/rsrc/css/phui/button/phui-button.css @@ -105,6 +105,19 @@ opacity: 0.5; } +button.button-grey.selected, +a.button.button-grey.selected, +button.button-grey.selected:hover, +a.button.button-grey.selected:hover { + border-color: {$sh-orangetext}; + color: {$sh-orangetext}; +} + +button.button-grey.selected .phui-icon-view, +a.button-grey.selected .phui-icon-view { + color: {$sh-orangetext}; +} + a.phuix-dropdown-open { color: {$greytext}; } diff --git a/webroot/rsrc/js/phuix/PHUIXButtonView.js b/webroot/rsrc/js/phuix/PHUIXButtonView.js --- a/webroot/rsrc/js/phuix/PHUIXButtonView.js +++ b/webroot/rsrc/js/phuix/PHUIXButtonView.js @@ -16,6 +16,7 @@ _iconView: null, _color: null, + _selected: null, _buttonType: null, setIcon: function(icon) { @@ -43,6 +44,13 @@ return this; }, + setSelected: function(selected) { + var node = this.getNode(); + this._selected = selected; + JX.DOM.alterClass(node, 'selected', this._selected); + return this; + }, + setButtonType: function(button_type) { var self = JX.PHUIXButtonView;