1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-21 11:09:02 +01:00

Add app icons to search typeahead

Summary: Seems likely reasonable.

Test Plan:
Search for apps and other stuff, seems good.

{F166279}

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9524
This commit is contained in:
Chad Little 2014-06-14 11:03:31 -07:00
parent 0c33bc1268
commit 4d30841100
5 changed files with 41 additions and 20 deletions

View file

@ -7,8 +7,8 @@
return array( return array(
'names' => 'names' =>
array( array(
'core.pkg.css' => '6cdd937e', 'core.pkg.css' => 'a8d8a51c',
'core.pkg.js' => '8335fe3f', 'core.pkg.js' => '07b01d4f',
'darkconsole.pkg.js' => 'ca8671ce', 'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '4a93db37', 'differential.pkg.css' => '4a93db37',
'differential.pkg.js' => 'eca39a2c', 'differential.pkg.js' => 'eca39a2c',
@ -36,7 +36,7 @@ return array(
'rsrc/css/aphront/two-column.css' => '16ab3ad2', 'rsrc/css/aphront/two-column.css' => '16ab3ad2',
'rsrc/css/aphront/typeahead.css' => 'a989b5b3', 'rsrc/css/aphront/typeahead.css' => 'a989b5b3',
'rsrc/css/application/auth/auth.css' => '1e655982', 'rsrc/css/application/auth/auth.css' => '1e655982',
'rsrc/css/application/base/main-menu-view.css' => '72d1d2ef', 'rsrc/css/application/base/main-menu-view.css' => 'b597e539',
'rsrc/css/application/base/notification-menu.css' => 'cbff1b94', 'rsrc/css/application/base/notification-menu.css' => 'cbff1b94',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '8b7e271d', 'rsrc/css/application/base/phabricator-application-launch-view.css' => '8b7e271d',
'rsrc/css/application/base/standard-page-view.css' => '517cdfb1', 'rsrc/css/application/base/standard-page-view.css' => '517cdfb1',
@ -464,7 +464,7 @@ return array(
'rsrc/js/core/behavior-remarkup-preview.js' => 'f7379f45', 'rsrc/js/core/behavior-remarkup-preview.js' => 'f7379f45',
'rsrc/js/core/behavior-reorder-applications.js' => 'a8e3795d', 'rsrc/js/core/behavior-reorder-applications.js' => 'a8e3795d',
'rsrc/js/core/behavior-reveal-content.js' => '8f24abfc', 'rsrc/js/core/behavior-reveal-content.js' => '8f24abfc',
'rsrc/js/core/behavior-search-typeahead.js' => '86549ee3', 'rsrc/js/core/behavior-search-typeahead.js' => 'fbeabd1e',
'rsrc/js/core/behavior-select-on-click.js' => '0e34ca02', 'rsrc/js/core/behavior-select-on-click.js' => '0e34ca02',
'rsrc/js/core/behavior-toggle-class.js' => 'a82a7769', 'rsrc/js/core/behavior-toggle-class.js' => 'a82a7769',
'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884', 'rsrc/js/core/behavior-tokenizer.js' => 'b3a4b884',
@ -605,7 +605,7 @@ return array(
'javelin-behavior-phabricator-oncopy' => 'c3e218fe', 'javelin-behavior-phabricator-oncopy' => 'c3e218fe',
'javelin-behavior-phabricator-remarkup-assist' => 'ba22863c', 'javelin-behavior-phabricator-remarkup-assist' => 'ba22863c',
'javelin-behavior-phabricator-reveal-content' => '8f24abfc', 'javelin-behavior-phabricator-reveal-content' => '8f24abfc',
'javelin-behavior-phabricator-search-typeahead' => '86549ee3', 'javelin-behavior-phabricator-search-typeahead' => 'fbeabd1e',
'javelin-behavior-phabricator-show-all-transactions' => '7c273581', 'javelin-behavior-phabricator-show-all-transactions' => '7c273581',
'javelin-behavior-phabricator-tooltips' => '48db4145', 'javelin-behavior-phabricator-tooltips' => '48db4145',
'javelin-behavior-phabricator-transaction-comment-form' => '9084a36f', 'javelin-behavior-phabricator-transaction-comment-form' => '9084a36f',
@ -706,7 +706,7 @@ return array(
'phabricator-hovercard-view-css' => 'cae6e28f', 'phabricator-hovercard-view-css' => 'cae6e28f',
'phabricator-keyboard-shortcut' => '1ae869f2', 'phabricator-keyboard-shortcut' => '1ae869f2',
'phabricator-keyboard-shortcut-manager' => 'ad7a69ca', 'phabricator-keyboard-shortcut-manager' => 'ad7a69ca',
'phabricator-main-menu-view' => '72d1d2ef', 'phabricator-main-menu-view' => 'b597e539',
'phabricator-nav-view-css' => '9283c2df', 'phabricator-nav-view-css' => '9283c2df',
'phabricator-notification' => '0c6946e7', 'phabricator-notification' => '0c6946e7',
'phabricator-notification-css' => 'ef2c9b34', 'phabricator-notification-css' => 'ef2c9b34',
@ -1442,16 +1442,6 @@ return array(
1 => 'javelin-dom', 1 => 'javelin-dom',
2 => 'javelin-reactor-dom', 2 => 'javelin-reactor-dom',
), ),
'86549ee3' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-typeahead-ondemand-source',
2 => 'javelin-typeahead',
3 => 'javelin-dom',
4 => 'javelin-uri',
5 => 'javelin-util',
6 => 'javelin-stratcom',
),
'8a3ed18b' => '8a3ed18b' =>
array( array(
0 => 'javelin-magical-init', 0 => 'javelin-magical-init',
@ -2058,6 +2048,16 @@ return array(
0 => 'phabricator-busy', 0 => 'phabricator-busy',
1 => 'javelin-behavior', 1 => 'javelin-behavior',
), ),
'fbeabd1e' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-typeahead-ondemand-source',
2 => 'javelin-typeahead',
3 => 'javelin-dom',
4 => 'javelin-uri',
5 => 'javelin-util',
6 => 'javelin-stratcom',
),
'fe2e0ba4' => 'fe2e0ba4' =>
array( array(
0 => 'javelin-behavior', 0 => 'javelin-behavior',

View file

@ -315,7 +315,7 @@ final class PhabricatorTypeaheadCommonDatasourceController
$packages = id(new PhabricatorOwnersPackage())->loadAll(); $packages = id(new PhabricatorOwnersPackage())->loadAll();
foreach ($packages as $package) { foreach ($packages as $package) {
$results[] = id(new PhabricatorTypeaheadResult()) $results[] = id(new PhabricatorTypeaheadResult())
->setIcon('pl-testplan') ->setIcon('fa-list-alt bluegrey')
->setName($package->getName()) ->setName($package->getName())
->setURI('/owners/package/'.$package->getID().'/') ->setURI('/owners/package/'.$package->getID().'/')
->setPHID($package->getPHID()); ->setPHID($package->getPHID());
@ -339,7 +339,7 @@ final class PhabricatorTypeaheadCommonDatasourceController
continue; continue;
} }
$name = $application->getName().' '.$application->getShortDescription(); $name = $application->getName().' '.$application->getShortDescription();
$img = 'apps-'.$application->getIconName().'-dark-large';
$results[] = id(new PhabricatorTypeaheadResult()) $results[] = id(new PhabricatorTypeaheadResult())
->setName($name) ->setName($name)
->setURI($uri) ->setURI($uri)
@ -348,7 +348,8 @@ final class PhabricatorTypeaheadCommonDatasourceController
->setDisplayName($application->getName()) ->setDisplayName($application->getName())
->setDisplayType($application->getShortDescription()) ->setDisplayType($application->getShortDescription())
->setImageuRI($application->getIconURI()) ->setImageuRI($application->getIconURI())
->setPriorityType('apps'); ->setPriorityType('apps')
->setImageSprite('phabricator-search-icon sprite-apps-large '.$img);
} }
} }
@ -424,6 +425,7 @@ final class PhabricatorTypeaheadCommonDatasourceController
'Display Type', 'Display Type',
'Image URI', 'Image URI',
'Priority Type', 'Priority Type',
'Sprite Class',
)); ));
$panel = new AphrontPanelView(); $panel = new AphrontPanelView();
@ -433,7 +435,8 @@ final class PhabricatorTypeaheadCommonDatasourceController
return $this->buildStandardPageResponse( return $this->buildStandardPageResponse(
$panel, $panel,
array( array(
'title' => 'Typeahead Results', 'title' => pht('Typeahead Results'),
'device' => true
)); ));
} }

View file

@ -10,6 +10,7 @@ final class PhabricatorTypeaheadResult {
private $displayType; private $displayType;
private $imageURI; private $imageURI;
private $priorityType; private $priorityType;
private $imageSprite;
private $icon; private $icon;
private $closed; private $closed;
@ -58,6 +59,11 @@ final class PhabricatorTypeaheadResult {
return $this; return $this;
} }
public function setImageSprite($image_sprite) {
$this->imageSprite = $image_sprite;
return $this;
}
public function setClosed($closed) { public function setClosed($closed) {
$this->closed = $closed; $this->closed = $closed;
return $this; return $this;
@ -75,6 +81,7 @@ final class PhabricatorTypeaheadResult {
$this->priorityType, $this->priorityType,
$this->icon, $this->icon,
$this->closed, $this->closed,
$this->imageSprite ? (string)$this->imageSprite : null,
); );
while (end($data) === null) { while (end($data) === null) {
array_pop($data); array_pop($data);

View file

@ -201,12 +201,22 @@
margin-left: 40px; margin-left: 40px;
} }
.phabricator-main-search-typeahead-result .phabricator-search-icon {
display: inline-block;
width: 28px;
height: 28px;
position: absolute;
top: 9px;
left: 9px;
}
.phabricator-main-search-typeahead-result { .phabricator-main-search-typeahead-result {
display: block; display: block;
padding: 6px 8px 8px 44px; padding: 6px 8px 8px 44px;
background-position: 8px; background-position: 8px;
background-size: 30px 30px; background-size: 30px 30px;
background-repeat: no-repeat; background-repeat: no-repeat;
position: relative;
} }
.phabricator-main-search-typeahead-result .result-name { .phabricator-main-search-typeahead-result .result-name {

View file

@ -26,6 +26,7 @@ JX.behavior('phabricator-search-typeahead', function(config) {
'span', 'span',
attr, attr,
[ [
JX.$N('span', {className: object[10]}),
JX.$N('span', {className: 'result-name'}, object[4] || object[0]), JX.$N('span', {className: 'result-name'}, object[4] || object[0]),
JX.$N('span', {className: 'result-type'}, object[5]) JX.$N('span', {className: 'result-type'}, object[5])
]); ]);