diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,8 +7,8 @@ */ return array( 'names' => array( - 'core.pkg.css' => 'c424594f', - 'core.pkg.js' => 'd3f3a35c', + 'core.pkg.css' => '9a9b59ca', + 'core.pkg.js' => '80671b76', 'darkconsole.pkg.js' => '8ab24e01', 'differential.pkg.css' => '3500921f', 'differential.pkg.js' => 'c0506961', @@ -124,7 +124,7 @@ 'rsrc/css/phui/calendar/phui-calendar-month.css' => 'a92e47d2', 'rsrc/css/phui/calendar/phui-calendar.css' => '8675968e', 'rsrc/css/phui/phui-action-header-view.css' => '89c497e7', - 'rsrc/css/phui/phui-action-list.css' => '7d727ba0', + 'rsrc/css/phui/phui-action-list.css' => '4f4d09f2', 'rsrc/css/phui/phui-action-panel.css' => '3ee9afd5', 'rsrc/css/phui/phui-box.css' => '7b3a2eed', 'rsrc/css/phui/phui-button.css' => 'f780e520', @@ -486,7 +486,7 @@ 'rsrc/js/core/behavior-reorder-applications.js' => '76b9fc3e', 'rsrc/js/core/behavior-reveal-content.js' => '60821bc7', 'rsrc/js/core/behavior-scrollbar.js' => '834a1173', - 'rsrc/js/core/behavior-search-typeahead.js' => 'bc965352', + 'rsrc/js/core/behavior-search-typeahead.js' => 'c5172d25', 'rsrc/js/core/behavior-select-on-click.js' => '4e3e79a6', 'rsrc/js/core/behavior-toggle-class.js' => 'e566f52c', 'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884', @@ -497,7 +497,7 @@ 'rsrc/js/phui/behavior-phui-object-box-tabs.js' => '2bfa2836', 'rsrc/js/phui/behavior-phui-timeline-dropdown-menu.js' => '4d94d9c3', 'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8', - 'rsrc/js/phuix/PHUIXActionView.js' => '6e8cefa4', + 'rsrc/js/phuix/PHUIXActionView.js' => '8cf6d262', 'rsrc/js/phuix/PHUIXDropdownMenu.js' => 'bd4c8dca', ), 'symbols' => array( @@ -628,7 +628,7 @@ 'javelin-behavior-phabricator-oncopy' => '2926fff2', 'javelin-behavior-phabricator-remarkup-assist' => 'e32d14ab', 'javelin-behavior-phabricator-reveal-content' => '60821bc7', - 'javelin-behavior-phabricator-search-typeahead' => 'bc965352', + 'javelin-behavior-phabricator-search-typeahead' => 'c5172d25', 'javelin-behavior-phabricator-show-older-transactions' => 'dbbf48b6', 'javelin-behavior-phabricator-tooltips' => '3ee3408b', 'javelin-behavior-phabricator-transaction-comment-form' => '9f7309fb', @@ -718,7 +718,7 @@ 'paste-css' => 'eb997ddd', 'path-typeahead' => 'f7fc67ec', 'people-profile-css' => '25970776', - 'phabricator-action-list-view-css' => '7d727ba0', + 'phabricator-action-list-view-css' => '4f4d09f2', 'phabricator-application-launch-view-css' => '16ca323f', 'phabricator-busy' => '59a7976a', 'phabricator-chatlog-css' => '852140ff', @@ -812,7 +812,7 @@ 'phui-workboard-view-css' => '3279cbbf', 'phui-workpanel-view-css' => 'e495a5cc', 'phuix-action-list-view' => 'b5c256b8', - 'phuix-action-view' => '6e8cefa4', + 'phuix-action-view' => '8cf6d262', 'phuix-dropdown-menu' => 'bd4c8dca', 'policy-css' => '957ea14c', 'policy-edit-css' => '815c66f7', @@ -1334,11 +1334,6 @@ 'phabricator-drag-and-drop-file-upload', 'phabricator-textareautils', ), - '6e8cefa4' => array( - 'javelin-install', - 'javelin-dom', - 'javelin-util', - ), '6eff08aa' => array( 'javelin-install', 'javelin-util', @@ -1512,6 +1507,11 @@ 'javelin-stratcom', 'javelin-behavior', ), + '8cf6d262' => array( + 'javelin-install', + 'javelin-dom', + 'javelin-util', + ), '8e1389b5' => array( 'javelin-behavior', 'javelin-stratcom', @@ -1729,16 +1729,6 @@ 'javelin-mask', 'phabricator-drag-and-drop-file-upload', ), - 'bc965352' => array( - 'javelin-behavior', - 'javelin-typeahead-ondemand-source', - 'javelin-typeahead', - 'javelin-dom', - 'javelin-uri', - 'javelin-util', - 'javelin-stratcom', - 'phabricator-prefab', - ), 'bd4c8dca' => array( 'javelin-install', 'javelin-util', @@ -1765,6 +1755,16 @@ 'javelin-dom', 'javelin-vector', ), + 'c5172d25' => array( + 'javelin-behavior', + 'javelin-typeahead-ondemand-source', + 'javelin-typeahead', + 'javelin-dom', + 'javelin-uri', + 'javelin-util', + 'javelin-stratcom', + 'phabricator-prefab', + ), 'c51ae228' => array( 'javelin-behavior', 'javelin-util', diff --git a/src/view/layout/PhabricatorActionView.php b/src/view/layout/PhabricatorActionView.php --- a/src/view/layout/PhabricatorActionView.php +++ b/src/view/layout/PhabricatorActionView.php @@ -6,6 +6,7 @@ private $icon; private $href; private $disabled; + private $label; private $workflow; private $renderAsForm; private $download; @@ -36,6 +37,7 @@ $this->objectURI = $object_uri; return $this; } + public function getObjectURI() { return $this->objectURI; } @@ -85,6 +87,11 @@ return $this; } + public function setLabel($label) { + $this->label = $label; + return $this; + } + public function setDisabled($disabled) { $this->disabled = $disabled; return $this; @@ -173,10 +180,15 @@ $classes = array(); $classes[] = 'phabricator-action-view'; + if ($this->disabled) { $classes[] = 'phabricator-action-view-disabled'; } + if ($this->label) { + $classes[] = 'phabricator-action-view-label'; + } + if ($this->selected) { $classes[] = 'phabricator-action-view-selected'; } diff --git a/webroot/rsrc/css/phui/phui-action-list.css b/webroot/rsrc/css/phui/phui-action-list.css --- a/webroot/rsrc/css/phui/phui-action-list.css +++ b/webroot/rsrc/css/phui/phui-action-list.css @@ -73,6 +73,25 @@ color: {$darkgreytext}; } +.phabricator-action-view-label .phabricator-action-view-item { + font-size: 13px; + font-weight: bold; + color: {$bluetext}; + padding: 4px 8px 6px 8px; + display: block; + -webkit-font-smoothing: antialiased; +} + +.device-desktop li.phabricator-action-view-label:hover + .phabricator-action-view-item { + background-color: #fff; + color: {$bluetext}; +} + +.phabricator-action-view + .phabricator-action-view-label { + padding-top: 8px; +} + .phabricator-action-view-icon { width: 14px; height: 14px; diff --git a/webroot/rsrc/js/core/behavior-search-typeahead.js b/webroot/rsrc/js/core/behavior-search-typeahead.js --- a/webroot/rsrc/js/core/behavior-search-typeahead.js +++ b/webroot/rsrc/js/core/behavior-search-typeahead.js @@ -212,7 +212,7 @@ item.setHref(spec.href); item.setHandler(function() { menu.close(); }); } else { - item.setDisabled(true); + item.setLabel(true); } list.addItem(item); diff --git a/webroot/rsrc/js/phuix/PHUIXActionView.js b/webroot/rsrc/js/phuix/PHUIXActionView.js --- a/webroot/rsrc/js/phuix/PHUIXActionView.js +++ b/webroot/rsrc/js/phuix/PHUIXActionView.js @@ -13,6 +13,7 @@ _name: null, _icon: 'none', _disabled: false, + _label: false, _handler: null, _selected: false, @@ -31,6 +32,15 @@ return this; }, + setLabel: function(label) { + this._label = label; + JX.DOM.alterClass( + this.getNode(), + 'phabricator-action-view-label', + label); + return this; + }, + setSelected: function(selected) { this._selected = selected; JX.DOM.alterClass(