Page MenuHomePhabricator

D12499.id30012.diff
No OneTemporary

D12499.id30012.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => 'a2a90172',
- 'core.pkg.js' => 'd57952b0',
+ 'core.pkg.js' => '8e62b4aa',
'darkconsole.pkg.js' => '8ab24e01',
'differential.pkg.css' => '3500921f',
'differential.pkg.js' => 'c0506961',
@@ -350,7 +350,7 @@
'rsrc/image/texture/table_header_hover.png' => '038ec3b9',
'rsrc/image/texture/table_header_tall.png' => 'd56b434f',
'rsrc/js/application/aphlict/Aphlict.js' => '30a6303c',
- 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '572566ae',
+ 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => 'ee37f73a',
'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'b1a59974',
'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
@@ -550,7 +550,7 @@
'inline-comment-summary-css' => 'eb5f8e8c',
'javelin-aphlict' => '30a6303c',
'javelin-behavior' => '61cbc29a',
- 'javelin-behavior-aphlict-dropdown' => '572566ae',
+ 'javelin-behavior-aphlict-dropdown' => 'ee37f73a',
'javelin-behavior-aphlict-listen' => 'b1a59974',
'javelin-behavior-aphlict-status' => 'ea681761',
'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884',
@@ -1198,16 +1198,6 @@
'javelin-vector',
'javelin-dom',
),
- '572566ae' => array(
- 'javelin-behavior',
- 'javelin-request',
- 'javelin-stratcom',
- 'javelin-vector',
- 'javelin-dom',
- 'javelin-uri',
- 'javelin-behavior-device',
- 'phabricator-title',
- ),
58562350 => array(
'javelin-dom',
'javelin-util',
@@ -1950,6 +1940,16 @@
'javelin-stratcom',
'javelin-vector',
),
+ 'ee37f73a' => array(
+ 'javelin-behavior',
+ 'javelin-request',
+ 'javelin-stratcom',
+ 'javelin-vector',
+ 'javelin-dom',
+ 'javelin-uri',
+ 'javelin-behavior-device',
+ 'phabricator-title',
+ ),
'efe49472' => array(
'javelin-install',
'javelin-util',
diff --git a/src/applications/help/application/PhabricatorHelpApplication.php b/src/applications/help/application/PhabricatorHelpApplication.php
--- a/src/applications/help/application/PhabricatorHelpApplication.php
+++ b/src/applications/help/application/PhabricatorHelpApplication.php
@@ -35,34 +35,42 @@
}
$items = array();
- if ($application) {
- $help_items = $application->getHelpMenuItems($user);
- if ($help_items) {
- $help_id = celerity_generate_unique_node_id();
-
- Javelin::initBehavior(
- 'aphlict-dropdown',
- array(
- 'bubbleID' => $help_id,
- 'dropdownID' => 'phabricator-help-menu',
- 'local' => true,
- 'desktop' => true,
- 'right' => true,
- ));
- $help_name = pht('%s Help', $application->getName());
+ $help_id = celerity_generate_unique_node_id();
- $item = id(new PHUIListItemView())
+ Javelin::initBehavior(
+ 'aphlict-dropdown',
+ array(
+ 'bubbleID' => $help_id,
+ 'dropdownID' => 'phabricator-help-menu',
+ 'applicationClass' => 'PhabricatorHelpApplication',
+ 'local' => true,
+ 'desktop' => true,
+ 'right' => true,
+ ));
+
+ $item = id(new PHUIListItemView())
+ ->setIcon('fa-life-ring')
+ ->addClass('core-menu-item')
+ ->setID($help_id)
+ ->setOrder(200);
+
+ $hide = true;
+ if ($application) {
+ $help_name = pht('%s Help', $application->getName());
+ $item
->setName($help_name)
- ->setIcon('fa-life-ring')
->setHref('/help/documentation/'.get_class($application).'/')
- ->addClass('core-menu-item')
- ->setID($help_id)
- ->setAural($help_name)
- ->setOrder(200);
- $items[] = $item;
+ ->setAural($help_name);
+ $help_items = $application->getHelpMenuItems($user);
+ if ($help_items) {
+ $hide = false;
}
}
+ if ($hide) {
+ $item->setStyle('display: none');
+ }
+ $items[] = $item;
return $items;
}
@@ -80,14 +88,13 @@
return null;
}
+ $view = null;
$help_items = $application->getHelpMenuItems($viewer);
- if (!$help_items) {
- return null;
- }
-
- $view = new PHUIListView();
- foreach ($help_items as $item) {
- $view->addMenuItem($item);
+ if ($help_items) {
+ $view = new PHUIListView();
+ foreach ($help_items as $item) {
+ $view->addMenuItem($item);
+ }
}
return phutil_tag(
diff --git a/src/view/page/PhabricatorStandardPageView.php b/src/view/page/PhabricatorStandardPageView.php
--- a/src/view/page/PhabricatorStandardPageView.php
+++ b/src/view/page/PhabricatorStandardPageView.php
@@ -583,18 +583,35 @@
}
private function buildQuicksandConfig() {
- $user = $this->getRequest()->getUser();
+ $viewer = $this->getRequest()->getUser();
$dropdown_query = id(new AphlictDropdownDataQuery())
- ->setViewer($user);
+ ->setViewer($viewer);
$dropdown_query->execute();
+ $rendered_dropdowns = array();
+ $applications = array(
+ 'PhabricatorHelpApplication',
+ );
+ foreach ($applications as $application_class) {
+ if (!PhabricatorApplication::isClassInstalledForViewer(
+ $application_class,
+ $viewer)) {
+ continue;
+ }
+ $application = PhabricatorApplication::getByClass($application_class);
+ $rendered_dropdowns[$application_class] =
+ $application->buildMainMenuExtraNodes(
+ $viewer,
+ $this->getController());
+ }
return array(
'title' => $this->getTitle(),
'aphlictDropdownData' => array(
$dropdown_query->getNotificationData(),
$dropdown_query->getConpherenceData(),
),
+ 'aphlictDropdowns' => $rendered_dropdowns,
) + $this->buildAphlictListenConfigData();
}
diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
@@ -71,11 +71,25 @@
'quicksand-redraw',
null,
function (e) {
- if (config.local) {
+ var data = e.getData();
+ if (config.local && config.applicationClass) {
+ var local_dropdowns = data.newResponse.aphlictDropdowns;
+ if (local_dropdowns[config.applicationClass]) {
+ JX.DOM.replace(
+ dropdown,
+ JX.$H(local_dropdowns[config.applicationClass]));
+ dropdown = JX.$(config.dropdownID);
+ if (dropdown.childNodes.length === 0) {
+ JX.DOM.hide(bubble);
+ } else {
+ JX.DOM.show(bubble);
+ }
+ } else {
+ JX.DOM.hide(bubble);
+ }
return;
}
- var data = e.getData();
if (!data.fromServer) {
return;
}

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 16, 6:15 AM (1 w, 1 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7394862
Default Alt Text
D12499.id30012.diff (7 KB)

Event Timeline