Page MenuHomePhabricator

D8231.diff
No OneTemporary

D8231.diff

Index: resources/celerity/map.php
===================================================================
--- resources/celerity/map.php
+++ resources/celerity/map.php
@@ -7,8 +7,8 @@
return array(
'names' =>
array(
- 'core.pkg.css' => 'd0936e05',
- 'core.pkg.js' => '51eb4e66',
+ 'core.pkg.css' => '044c2f0c',
+ 'core.pkg.js' => 'ba6e232d',
'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '6aef439e',
'differential.pkg.js' => '322ea941',
@@ -33,13 +33,13 @@
'rsrc/css/aphront/phabricator-nav-view.css' => 'd0d4a509',
'rsrc/css/aphront/request-failure-view.css' => 'da14df31',
'rsrc/css/aphront/table-view.css' => '92a719ca',
- 'rsrc/css/aphront/tokenizer.css' => '8e7ae263',
+ 'rsrc/css/aphront/tokenizer.css' => '08ea6326',
'rsrc/css/aphront/tooltip.css' => '9c90229d',
'rsrc/css/aphront/transaction.css' => 'ce491938',
'rsrc/css/aphront/two-column.css' => '16ab3ad2',
- 'rsrc/css/aphront/typeahead.css' => '00c9a200',
+ 'rsrc/css/aphront/typeahead.css' => '104a6525',
'rsrc/css/application/auth/auth.css' => '1e655982',
- 'rsrc/css/application/base/main-menu-view.css' => '1de0ef6f',
+ 'rsrc/css/application/base/main-menu-view.css' => 'd36e0c11',
'rsrc/css/application/base/notification-menu.css' => 'fc9a363c',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '55ba7571',
'rsrc/css/application/base/standard-page-view.css' => '517cdfb1',
@@ -431,7 +431,7 @@
'rsrc/js/core/KeyboardShortcutManager.js' => 'ad7a69ca',
'rsrc/js/core/MultirowRowManager.js' => 'e7076916',
'rsrc/js/core/Notification.js' => '95944043',
- 'rsrc/js/core/Prefab.js' => '6c78666a',
+ 'rsrc/js/core/Prefab.js' => '1e644329',
'rsrc/js/core/ShapedRequest.js' => 'dfa181a4',
'rsrc/js/core/TextAreaUtils.js' => 'b3ec3cfc',
'rsrc/js/core/ToolTip.js' => '0a81ea29',
@@ -489,10 +489,10 @@
'aphront-panel-view-css' => '5846dfa2',
'aphront-request-failure-view-css' => 'da14df31',
'aphront-table-view-css' => '92a719ca',
- 'aphront-tokenizer-control-css' => '8e7ae263',
+ 'aphront-tokenizer-control-css' => '08ea6326',
'aphront-tooltip-css' => '9c90229d',
'aphront-two-column-view-css' => '16ab3ad2',
- 'aphront-typeahead-control-css' => '00c9a200',
+ 'aphront-typeahead-control-css' => '104a6525',
'auth-css' => '1e655982',
'config-options-css' => '7fedf08b',
'conpherence-menu-css' => '561348ac',
@@ -692,7 +692,7 @@
'phabricator-jump-nav' => 'f0c5e726',
'phabricator-keyboard-shortcut' => '1ae869f2',
'phabricator-keyboard-shortcut-manager' => 'ad7a69ca',
- 'phabricator-main-menu-view' => '1de0ef6f',
+ 'phabricator-main-menu-view' => 'd36e0c11',
'phabricator-menu-item' => '0f386ef4',
'phabricator-nav-view-css' => 'd0d4a509',
'phabricator-notification' => '95944043',
@@ -701,7 +701,7 @@
'phabricator-object-list-view-css' => '1a1ea560',
'phabricator-object-selector-css' => '029a133d',
'phabricator-phtize' => 'd254d646',
- 'phabricator-prefab' => '6c78666a',
+ 'phabricator-prefab' => '1e644329',
'phabricator-profile-css' => '3a7e04ca',
'phabricator-project-tag-css' => '095c9404',
'phabricator-remarkup-css' => 'ca7f2265',
@@ -836,6 +836,10 @@
array(
0 => 'javelin-install',
),
+ '08ea6326' =>
+ array(
+ 0 => 'aphront-typeahead-control-css',
+ ),
'0a81ea29' =>
array(
0 => 'javelin-install',
@@ -924,6 +928,19 @@
5 => 'phabricator-drag-and-drop-file-upload',
6 => 'phabricator-draggable-list',
),
+ '1e644329' =>
+ array(
+ 0 => 'javelin-install',
+ 1 => 'javelin-util',
+ 2 => 'javelin-dom',
+ 3 => 'javelin-typeahead',
+ 4 => 'javelin-tokenizer',
+ 5 => 'javelin-typeahead-preloaded-source',
+ 6 => 'javelin-typeahead-ondemand-source',
+ 7 => 'javelin-dom',
+ 8 => 'javelin-stratcom',
+ 9 => 'javelin-util',
+ ),
'1f595fb0' =>
array(
0 => 'javelin-install',
@@ -1205,19 +1222,6 @@
0 => 'javelin-install',
1 => 'javelin-util',
),
- '6c78666a' =>
- array(
- 0 => 'javelin-install',
- 1 => 'javelin-util',
- 2 => 'javelin-dom',
- 3 => 'javelin-typeahead',
- 4 => 'javelin-tokenizer',
- 5 => 'javelin-typeahead-preloaded-source',
- 6 => 'javelin-typeahead-ondemand-source',
- 7 => 'javelin-dom',
- 8 => 'javelin-stratcom',
- 9 => 'javelin-util',
- ),
'6ec125a0' =>
array(
0 => 'javelin-behavior',
@@ -1361,10 +1365,6 @@
2 => 'javelin-stratcom',
3 => 'javelin-uri',
),
- '8e7ae263' =>
- array(
- 0 => 'aphront-typeahead-control-css',
- ),
'8f24abfc' =>
array(
0 => 'javelin-behavior',
Index: src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
===================================================================
--- src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
+++ src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
@@ -24,7 +24,6 @@
$need_users = false;
$need_agents = false;
$need_applications = false;
- $need_all_users = false;
$need_lists = false;
$need_projs = false;
$need_repos = false;
@@ -56,25 +55,20 @@
$need_noproject = true;
break;
case 'users':
- $need_users = true;
- break;
+ case 'accounts':
case 'authors':
$need_users = true;
- $need_agents = true;
break;
case 'mailable':
- $need_users = true;
- $need_lists = true;
- break;
case 'allmailable':
$need_users = true;
- $need_all_users = true;
$need_lists = true;
break;
case 'projects':
$need_projs = true;
break;
case 'usersorprojects':
+ case 'accountsorprojects':
$need_users = true;
$need_projs = true;
break;
@@ -84,15 +78,6 @@
case 'packages':
$need_packages = true;
break;
- case 'accounts':
- $need_users = true;
- $need_all_users = true;
- break;
- case 'accountsorprojects':
- $need_users = true;
- $need_all_users = true;
- $need_projs = true;
- break;
case 'arcanistprojects':
$need_arcanist_projects = true;
break;
@@ -195,13 +180,11 @@
}
foreach ($users as $user) {
- if (!$need_all_users) {
- if (!$need_agents && $user->getIsSystemAgent()) {
- continue;
- }
- if ($user->getIsDisabled()) {
- continue;
- }
+ $closed = null;
+ if ($user->getIsDisabled()) {
+ $closed = pht('Disabled');
+ } else if ($user->getIsSystemAgent()) {
+ $closed = pht('System Agent');
}
$result = id(new PhabricatorTypeaheadResult())
@@ -210,7 +193,8 @@
->setPHID($user->getPHID())
->setPriorityString($user->getUsername())
->setIcon('policy-all')
- ->setPriorityType('user');
+ ->setPriorityType('user')
+ ->setClosed($closed);
if ($need_rich_data) {
$display_type = 'User';
@@ -285,16 +269,21 @@
if ($need_projs) {
$projs = id(new PhabricatorProjectQuery())
->setViewer($viewer)
- ->withStatus(PhabricatorProjectQuery::STATUS_OPEN)
->needImages(true)
->execute();
foreach ($projs as $proj) {
+ $closed = null;
+ if ($proj->isArchived()) {
+ $closed = pht('Archived');
+ }
+
$proj_result = id(new PhabricatorTypeaheadResult())
->setName($proj->getName())
->setDisplayType("Project")
->setURI('/project/view/'.$proj->getID().'/')
->setPHID($proj->getPHID())
- ->setIcon('policy-project');
+ ->setIcon('policy-project')
+ ->setClosed($closed);
$proj_result->setImageURI($proj->getProfileImageURI());
Index: src/applications/typeahead/storage/PhabricatorTypeaheadResult.php
===================================================================
--- src/applications/typeahead/storage/PhabricatorTypeaheadResult.php
+++ src/applications/typeahead/storage/PhabricatorTypeaheadResult.php
@@ -11,6 +11,7 @@
private $imageURI;
private $priorityType;
private $icon;
+ private $closed;
public function setIcon($icon) {
$this->icon = $icon;
@@ -57,6 +58,11 @@
return $this;
}
+ public function setClosed($closed) {
+ $this->closed = $closed;
+ return $this;
+ }
+
public function getWireFormat() {
$data = array(
$this->name,
@@ -68,6 +74,7 @@
$this->imageURI ? (string)$this->imageURI : null,
$this->priorityType,
$this->icon,
+ $this->closed,
);
while (end($data) === null) {
array_pop($data);
Index: webroot/rsrc/css/aphront/tokenizer.css
===================================================================
--- webroot/rsrc/css/aphront/tokenizer.css
+++ webroot/rsrc/css/aphront/tokenizer.css
@@ -80,7 +80,24 @@
margin: 2px 4px -2px 0;
}
-.tokenizer-result-type {
- margin-left: 4px;
- color: {$lightgreytext};
+.tokenizer-result {
+ position: relative;
+ padding: 5px 8px 5px 28px;
+}
+
+.tokenizer-result .phui-icon-view {
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ position: absolute;
+ top: 5px;
+ left: 8px;
+}
+
+.tokenizer-result-closed {
+ color: {$greytext};
+}
+
+.tokenizer-closed {
+ margin-top: 2px;
}
Index: webroot/rsrc/css/aphront/typeahead.css
===================================================================
--- webroot/rsrc/css/aphront/typeahead.css
+++ webroot/rsrc/css/aphront/typeahead.css
@@ -21,7 +21,6 @@
div.jx-typeahead-results a.jx-result {
color: #333;
display: block;
- padding: 5px 8px;
font-size: 13px;
border-bottom: 1px solid #e7e7e7;
border-top: 1px solid #fff;
Index: webroot/rsrc/css/application/base/main-menu-view.css
===================================================================
--- webroot/rsrc/css/application/base/main-menu-view.css
+++ webroot/rsrc/css/application/base/main-menu-view.css
@@ -206,8 +206,8 @@
.phabricator-main-search-typeahead-result {
display: block;
- padding: 1px 4px 1px 38px;
- background-position: 4px 4px;
+ padding: 6px 12px 6px 46px;
+ background-position: 12px 9px;
background-size: 25px 25px;
background-repeat: no-repeat;
}
Index: webroot/rsrc/js/core/Prefab.js
===================================================================
--- webroot/rsrc/js/core/Prefab.js
+++ webroot/rsrc/js/core/Prefab.js
@@ -95,6 +95,24 @@
return self_hits[v.id] ? 1 : -1;
}
+ // If one result is open and one is closed, show the open result
+ // first. The "!" tricks here are becaused closed values are display
+ // strings, so the value is either `null` or some truthy string. If
+ // we compare the values directly, we'll apply this rule to two
+ // objects which are both closed but for different reasons, like
+ // "Archived" and "Disabled".
+
+ var u_open = !u.closed;
+ var v_open = !v.closed;
+
+ if (u_open != v_open) {
+ if (u_open) {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+
if (priority_hits[u.id] != priority_hits[v.id]) {
return priority_hits[v.id] ? 1 : -1;
}
@@ -113,17 +131,47 @@
});
};
+ var render_icon = function(icon) {
+ return JX.$N(
+ 'span',
+ {className: 'phui-icon-view sprite-status status-' + icon});
+ };
+
datasource.setSortHandler(JX.bind(datasource, sort_handler));
datasource.setTransformer(
function(object) {
+ var closed = object[9];
+ var closed_ui;
+ if (closed) {
+ closed_ui = JX.$N(
+ 'div',
+ {className: 'tokenizer-closed'},
+ closed);
+ }
+
+ var icon = object[8];
+ var icon_ui;
+ if (icon) {
+ icon_ui = render_icon(icon);
+ }
+
+ var display = JX.$N(
+ 'div',
+ {className: 'tokenizer-result'},
+ [icon_ui, object[0], closed_ui]);
+ if (closed) {
+ JX.DOM.alterClass(display, 'tokenizer-result-closed', true);
+ }
+
return {
name: object[0],
- display: object[0],
+ display: display,
uri: object[1],
id: object[2],
priority: object[3],
priorityType: object[7],
- icon: object[8]
+ icon: icon,
+ closed: closed
};
});
@@ -146,9 +194,10 @@
return value;
}
- icon = JX.$N(
- 'span',
- {className: 'phui-icon-view sprite-status status-' + icon});
+ icon = render_icon(icon);
+
+ // TODO: Maybe we should render these closed tags in grey? Figure out
+ // how we're going to use color.
return [icon, value];
});

File Metadata

Mime Type
text/plain
Expires
May 15 2024, 10:19 PM (4 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6296842
Default Alt Text
D8231.diff (13 KB)

Event Timeline