diff --git a/src/applications/project/application/PhabricatorProjectApplication.php b/src/applications/project/application/PhabricatorProjectApplication.php index 4d84b2af4e..568d25d944 100644 --- a/src/applications/project/application/PhabricatorProjectApplication.php +++ b/src/applications/project/application/PhabricatorProjectApplication.php @@ -1,116 +1,134 @@ array( '(?:query/(?P[^/]+)/)?' => 'PhabricatorProjectListController', 'filter/(?P[^/]+)/' => 'PhabricatorProjectListController', 'edit/(?P[1-9]\d*)/' => 'PhabricatorProjectEditMainController', 'details/(?P[1-9]\d*)/' => 'PhabricatorProjectEditDetailsController', 'archive/(?P[1-9]\d*)/' => 'PhabricatorProjectArchiveController', 'members/(?P[1-9]\d*)/' => 'PhabricatorProjectMembersEditController', 'members/(?P[1-9]\d*)/remove/' => 'PhabricatorProjectMembersRemoveController', 'view/(?P[1-9]\d*)/' => 'PhabricatorProjectProfileController', 'picture/(?P[1-9]\d*)/' => 'PhabricatorProjectEditPictureController', 'icon/(?P[1-9]\d*)/' => 'PhabricatorProjectEditIconController', 'icon/' => 'PhabricatorProjectEditIconController', 'create/' => 'PhabricatorProjectEditDetailsController', 'board/(?P[1-9]\d*)/'. '(?Pfilter/)?'. '(?:query/(?P[^/]+)/)?' => 'PhabricatorProjectBoardViewController', 'move/(?P[1-9]\d*)/' => 'PhabricatorProjectMoveController', 'board/(?P[1-9]\d*)/' => array( 'edit/(?:(?P\d+)/)?' => 'PhabricatorProjectColumnEditController', 'hide/(?:(?P\d+)/)?' => 'PhabricatorProjectColumnHideController', 'column/(?:(?P\d+)/)?' => 'PhabricatorProjectColumnDetailController', 'import/' => 'PhabricatorProjectBoardImportController', 'reorder/' => 'PhabricatorProjectBoardReorderController', ), 'update/(?P[1-9]\d*)/(?P[^/]+)/' => 'PhabricatorProjectUpdateController', 'history/(?P[1-9]\d*)/' => 'PhabricatorProjectHistoryController', '(?Pwatch|unwatch)/(?P[1-9]\d*)/' => 'PhabricatorProjectWatchController', 'wiki/' => 'PhabricatorProjectWikiExplainController', ), '/tag/' => array( '(?P[^/]+)/' => 'PhabricatorProjectProfileController', '(?P[^/]+)/board/' => 'PhabricatorProjectBoardViewController', ), ); } + public function getQuickCreateItems(PhabricatorUser $viewer) { + $can_create = PhabricatorPolicyFilter::hasCapability( + $viewer, + $this, + ProjectCreateProjectsCapability::CAPABILITY); + + $items = array(); + if ($can_create) { + $item = id(new PHUIListItemView()) + ->setName(pht('Project')) + ->setIcon('fa-briefcase') + ->setHref($this->getBaseURI().'create/'); + $items[] = $item; + } + + return $items; + } + protected function getCustomCapabilities() { return array( ProjectCreateProjectsCapability::CAPABILITY => array(), ProjectCanLockProjectsCapability::CAPABILITY => array( 'default' => PhabricatorPolicies::POLICY_ADMIN, ), ProjectDefaultViewCapability::CAPABILITY => array( 'caption' => pht( 'Default view policy for newly created projects.'), ), ProjectDefaultEditCapability::CAPABILITY => array( 'caption' => pht( 'Default edit policy for newly created projects.'), ), ProjectDefaultJoinCapability::CAPABILITY => array( 'caption' => pht( 'Default join policy for newly created projects.'), ), ); } }