Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15482235
D8088.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
11 KB
Referenced Files
None
Subscribers
None
D8088.diff
View Options
Index: src/__phutil_library_map__.php
===================================================================
--- src/__phutil_library_map__.php
+++ src/__phutil_library_map__.php
@@ -1530,6 +1530,7 @@
'PhabricatorHelpKeyboardShortcutController' => 'applications/help/controller/PhabricatorHelpKeyboardShortcutController.php',
'PhabricatorHomeController' => 'applications/home/controller/PhabricatorHomeController.php',
'PhabricatorHomeMainController' => 'applications/home/controller/PhabricatorHomeMainController.php',
+ 'PhabricatorHomeQuickCreateController' => 'applications/home/controller/PhabricatorHomeQuickCreateController.php',
'PhabricatorHovercardExample' => 'applications/uiexample/examples/PhabricatorHovercardExample.php',
'PhabricatorHovercardView' => 'view/widget/hovercard/PhabricatorHovercardView.php',
'PhabricatorIRCBot' => 'infrastructure/daemon/bot/PhabricatorIRCBot.php',
@@ -4177,6 +4178,7 @@
'PhabricatorHelpKeyboardShortcutController' => 'PhabricatorHelpController',
'PhabricatorHomeController' => 'PhabricatorController',
'PhabricatorHomeMainController' => 'PhabricatorHomeController',
+ 'PhabricatorHomeQuickCreateController' => 'PhabricatorHomeController',
'PhabricatorHovercardExample' => 'PhabricatorUIExample',
'PhabricatorHovercardView' => 'AphrontView',
'PhabricatorIRCBot' => 'PhabricatorDaemon',
Index: src/applications/auth/application/PhabricatorApplicationAuth.php
===================================================================
--- src/applications/auth/application/PhabricatorApplicationAuth.php
+++ src/applications/auth/application/PhabricatorApplicationAuth.php
@@ -39,7 +39,8 @@
->setIcon('power')
->setWorkflow(true)
->setHref('/logout/')
- ->setSelected(($controller instanceof PhabricatorLogoutController));
+ ->setSelected(($controller instanceof PhabricatorLogoutController))
+ ->setOrder(900);
$items[] = $item;
} else {
if ($controller instanceof PhabricatorAuthController) {
@@ -51,7 +52,8 @@
->setName(pht('Log In'))
// TODO: Login icon?
->setIcon('power')
- ->setHref('/auth/start/');
+ ->setHref('/auth/start/')
+ ->setOrder(900);
$items[] = $item;
}
}
Index: src/applications/base/PhabricatorApplication.php
===================================================================
--- src/applications/base/PhabricatorApplication.php
+++ src/applications/base/PhabricatorApplication.php
@@ -248,7 +248,7 @@
* @param PhabricatorUser The viewing user.
* @param AphrontController The current controller. May be null for special
* pages like 404, exception handlers, etc.
- * @return list<PhabricatorMainMenuIconView> List of menu items.
+ * @return list<PHUIListItemView> List of menu items.
* @task ui
*/
public function buildMainMenuItems(
@@ -270,6 +270,17 @@
}
+ /**
+ * Build items for the "quick create" menu.
+ *
+ * @param PhabricatorUser The viewing user.
+ * @return list<PHUIListItemView> List of menu items.
+ */
+ public function getQuickCreateItems(PhabricatorUser $viewer) {
+ return array();
+ }
+
+
/* -( Application Management )--------------------------------------------- */
public static function getByClass($class_name) {
Index: src/applications/conpherence/application/PhabricatorApplicationConpherence.php
===================================================================
--- src/applications/conpherence/application/PhabricatorApplicationConpherence.php
+++ src/applications/conpherence/application/PhabricatorApplicationConpherence.php
@@ -50,4 +50,18 @@
);
}
+ public function getQuickCreateItems(PhabricatorUser $viewer) {
+ $items = array();
+
+ $item = id(new PHUIListItemView())
+ ->setName(pht('New Conpherence Thread'))
+ ->setIcon('new')
+ ->setWorkflow(true)
+ ->setHref($this->getBaseURI().'new/');
+ $items[] = $item;
+
+ return $items;
+ }
+
+
}
Index: src/applications/diviner/application/PhabricatorApplicationDiviner.php
===================================================================
--- src/applications/diviner/application/PhabricatorApplicationDiviner.php
+++ src/applications/diviner/application/PhabricatorApplicationDiviner.php
@@ -58,11 +58,12 @@
}
if ($application && $application->getHelpURI()) {
- $item = new PHUIListItemView();
- $item->setName(pht('%s Help', $application->getName()));
- $item->addClass('core-menu-item');
- $item->setIcon('help');
- $item->setHref($application->getHelpURI());
+ $item = id(new PHUIListItemView())
+ ->setName(pht('%s Help', $application->getName()))
+ ->addClass('core-menu-item')
+ ->setIcon('help')
+ ->setOrder(100)
+ ->setHref($application->getHelpURI());
$items[] = $item;
}
Index: src/applications/home/application/PhabricatorApplicationHome.php
===================================================================
--- src/applications/home/application/PhabricatorApplicationHome.php
+++ src/applications/home/application/PhabricatorApplicationHome.php
@@ -17,6 +17,9 @@
public function getRoutes() {
return array(
'/(?:(?P<filter>(?:jump))/)?' => 'PhabricatorHomeMainController',
+ '/home/' => array(
+ 'create/' => 'PhabricatorHomeQuickCreateController',
+ ),
);
}
@@ -28,4 +31,27 @@
return false;
}
+ public function getApplicationOrder() {
+ return 9;
+ }
+
+ public function buildMainMenuItems(
+ PhabricatorUser $user,
+ PhabricatorController $controller = null) {
+
+ $items = array();
+
+ if ($user->isLoggedIn() && $user->isUserActivated()) {
+ $item = id(new PHUIListItemView())
+ ->setName(pht('Create New...'))
+ ->setIcon('new')
+ ->addClass('core-menu-item')
+ ->setHref('/home/create/')
+ ->setOrder(300);
+ $items[] = $item;
+ }
+
+ return $items;
+ }
+
}
Index: src/applications/home/controller/PhabricatorHomeQuickCreateController.php
===================================================================
--- /dev/null
+++ src/applications/home/controller/PhabricatorHomeQuickCreateController.php
@@ -0,0 +1,47 @@
+<?php
+
+final class PhabricatorHomeQuickCreateController
+ extends PhabricatorHomeController {
+
+ public function processRequest() {
+ $viewer = $this->getRequest()->getUser();
+
+ $applications = id(new PhabricatorApplicationQuery())
+ ->setViewer($viewer)
+ ->withInstalled(true)
+ ->execute();
+
+ $items = array();
+ foreach ($applications as $application) {
+ $app_items = $application->getQuickCreateItems($viewer);
+ foreach ($app_items as $app_item) {
+ $items[] = $app_item;
+ }
+ }
+
+ $list = id(new PHUIObjectItemListView())
+ ->setUser($viewer);
+
+ foreach ($items as $item) {
+ $list->addItem(
+ id(new PHUIObjectItemView())
+ ->setHeader($item->getName())
+ ->setWorkflow($item->getWorkflow())
+ ->setHref($item->getHref()));
+ }
+
+ $crumbs = $this->buildApplicationCrumbs();
+ $crumbs->addTextCrumb(pht('Quick Create'));
+
+ return $this->buildApplicationPage(
+ array(
+ $crumbs,
+ $list,
+ ),
+ array(
+ 'title' => pht('Quick Create'),
+ ));
+ }
+
+
+}
Index: src/applications/maniphest/application/PhabricatorApplicationManiphest.php
===================================================================
--- src/applications/maniphest/application/PhabricatorApplicationManiphest.php
+++ src/applications/maniphest/application/PhabricatorApplicationManiphest.php
@@ -90,6 +90,18 @@
return $status;
}
+ public function getQuickCreateItems(PhabricatorUser $viewer) {
+ $items = array();
+
+ $item = id(new PHUIListItemView())
+ ->setName(pht('New Maniphest Task'))
+ ->setIcon('new')
+ ->setHref($this->getBaseURI().'task/create/');
+ $items[] = $item;
+
+ return $items;
+ }
+
protected function getCustomCapabilities() {
return array(
ManiphestCapabilityDefaultView::CAPABILITY => array(
Index: src/applications/paste/application/PhabricatorApplicationPaste.php
===================================================================
--- src/applications/paste/application/PhabricatorApplicationPaste.php
+++ src/applications/paste/application/PhabricatorApplicationPaste.php
@@ -50,4 +50,16 @@
);
}
+ public function getQuickCreateItems(PhabricatorUser $viewer) {
+ $items = array();
+
+ $item = id(new PHUIListItemView())
+ ->setName(pht('New Paste'))
+ ->setIcon('new')
+ ->setHref($this->getBaseURI().'create/');
+ $items[] = $item;
+
+ return $items;
+ }
+
}
Index: src/applications/people/application/PhabricatorApplicationPeople.php
===================================================================
--- src/applications/people/application/PhabricatorApplicationPeople.php
+++ src/applications/people/application/PhabricatorApplicationPeople.php
@@ -97,10 +97,11 @@
if ($user->isLoggedIn() && $user->isUserActivated()) {
$image = $user->loadProfileImageURI();
- $item = new PHUIListItemView();
- $item->setName($user->getUsername());
- $item->setHref('/p/'.$user->getUsername().'/');
- $item->addClass('core-menu-item');
+ $item = id(new PHUIListItemView())
+ ->setName($user->getUsername())
+ ->setHref('/p/'.$user->getUsername().'/')
+ ->addClass('core-menu-item')
+ ->setOrder(200);
$classes = array(
'phabricator-core-menu-icon',
Index: src/applications/settings/application/PhabricatorApplicationSettings.php
===================================================================
--- src/applications/settings/application/PhabricatorApplicationSettings.php
+++ src/applications/settings/application/PhabricatorApplicationSettings.php
@@ -39,12 +39,13 @@
if ($user->isLoggedIn() && $user->isUserActivated()) {
$selected = ($controller instanceof PhabricatorSettingsMainController);
- $item = new PHUIListItemView();
- $item->setName(pht('Settings'));
- $item->setIcon('settings');
- $item->addClass('core-menu-item');
- $item->setSelected($selected);
- $item->setHref('/settings/');
+ $item = id(new PHUIListItemView())
+ ->setName(pht('Settings'))
+ ->setIcon('settings')
+ ->addClass('core-menu-item')
+ ->setSelected($selected)
+ ->setHref('/settings/')
+ ->setOrder(400);
$items[] = $item;
}
Index: src/view/page/menu/PhabricatorMainMenuView.php
===================================================================
--- src/view/page/menu/PhabricatorMainMenuView.php
+++ src/view/page/menu/PhabricatorMainMenuView.php
@@ -163,6 +163,8 @@
}
}
+ $actions = msort($actions, 'getOrder');
+
$view = $this->getApplicationMenu();
if (!$view) {
Index: src/view/phui/PHUIListItemView.php
===================================================================
--- src/view/phui/PHUIListItemView.php
+++ src/view/phui/PHUIListItemView.php
@@ -23,6 +23,16 @@
private $disabled;
private $renderNameAsTooltip;
private $statusColor;
+ private $order;
+
+ public function setOrder($order) {
+ $this->order = $order;
+ return $this;
+ }
+
+ public function getOrder() {
+ return $this->order;
+ }
public function setRenderNameAsTooltip($render_name_as_tooltip) {
$this->renderNameAsTooltip = $render_name_as_tooltip;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Apr 10, 3:46 AM (6 d, 11 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7738626
Default Alt Text
D8088.diff (11 KB)
Attached To
Mode
D8088: Add very basic "quick create" menu
Attached
Detach File
Event Timeline
Log In to Comment