1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 09:18:48 +02:00

Make some defaults for Quick Create / Favorites

Summary: Add in some basic defaults, Tasks, Projects, Repositories... anything else? Also switches "manage" context if you are an admin or user. Hides link if you are not logged in.

Test Plan: Review Global/Personal in Favorites app, click on each link.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D17174
This commit is contained in:
Chad Little 2017-01-11 08:36:30 -08:00
parent 1e1a0182ca
commit 452f5bce18
4 changed files with 60 additions and 12 deletions

View file

@ -3,6 +3,9 @@
final class PhabricatorFavoritesConstants
extends PhabricatorFavoritesController {
const ITEM_TASK = 'favorites.task';
const ITEM_PROJECT = 'favorites.project';
const ITEM_REPOSITORY = 'favorites.repository';
const ITEM_MANAGE = 'favorites.manage';
}

View file

@ -20,15 +20,49 @@ final class PhabricatorFavoritesProfileMenuEngine
protected function getBuiltinProfileItems($object) {
$items = array();
$custom_phid = $this->getCustomPHID();
$custom = $this->getCustomPHID();
// Built-in Global Defaults
if (!$custom_phid) {
$create_task = array(
'name' => null,
'formKey' =>
id(new ManiphestEditEngine())->getProfileMenuItemDefault(),
);
if ($custom) {
$create_project = array(
'name' => null,
'formKey' =>
id(new PhabricatorProjectEditEngine())->getProfileMenuItemDefault(),
);
$create_repository = array(
'name' => null,
'formKey' =>
id(new DiffusionRepositoryEditEngine())->getProfileMenuItemDefault(),
);
$items[] = $this->newItem()
->setBuiltinKey(PhabricatorFavoritesConstants::ITEM_TASK)
->setMenuItemKey(PhabricatorEditEngineProfileMenuItem::MENUITEMKEY)
->setMenuItemProperties($create_task);
$items[] = $this->newItem()
->setBuiltinKey(PhabricatorFavoritesConstants::ITEM_PROJECT)
->setMenuItemKey(PhabricatorEditEngineProfileMenuItem::MENUITEMKEY)
->setMenuItemProperties($create_project);
$items[] = $this->newItem()
->setBuiltinKey(PhabricatorFavoritesConstants::ITEM_REPOSITORY)
->setMenuItemKey(PhabricatorEditEngineProfileMenuItem::MENUITEMKEY)
->setMenuItemProperties($create_repository);
}
// Single Manage Item, switches URI based on admin/user
$items[] = $this->newItem()
->setBuiltinKey(PhabricatorFavoritesConstants::ITEM_MANAGE)
->setMenuItemKey(
PhabricatorFavoritesManageProfileMenuItem::MENUITEMKEY);
}
return $items;
}

View file

@ -47,15 +47,22 @@ final class PhabricatorFavoritesManageProfileMenuItem
protected function newNavigationMenuItems(
PhabricatorProfileMenuItemConfiguration $config) {
$viewer = $this->getViewer();
if ($viewer->isLoggedIn()) {
$admin = $viewer->getIsAdmin();
$name = $this->getDisplayName($config);
$icon = 'fa-pencil';
$href = '/favorites/personal/item/configure/';
if ($admin) {
$href = '/favorites/';
}
$item = $this->newItem()
->setHref($href)
->setName($name)
->setIcon($icon);
}
return array(
$item,

View file

@ -107,6 +107,10 @@ abstract class PhabricatorEditEngine
return $this->hideHeader;
}
public function getProfileMenuItemDefault() {
return $this->getEngineKey().'/'.self::EDITENGINECONFIG_DEFAULT;
}
/* -( Managing Fields )---------------------------------------------------- */