@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at upstream/main 177 lines 6.4 kB view raw
1<?php 2 3final class PhabricatorProjectApplication extends PhabricatorApplication { 4 5 public function getName() { 6 return pht('Projects'); 7 } 8 9 public function getShortDescription() { 10 return pht('Projects, Tags, and Teams'); 11 } 12 13 public function isPinnedByDefault(PhabricatorUser $viewer) { 14 return true; 15 } 16 17 public function getBaseURI() { 18 return '/project/'; 19 } 20 21 public function getIcon() { 22 return 'fa-briefcase'; 23 } 24 25 public function getFlavorText() { 26 return pht('Group stuff into big piles.'); 27 } 28 29 public function getRemarkupRules() { 30 return array( 31 new ProjectRemarkupRule(), 32 ); 33 } 34 35 public function getEventListeners() { 36 return array( 37 new PhabricatorProjectUIEventListener(), 38 ); 39 } 40 41 public function getRoutes() { 42 return array( 43 '/project/' => array( 44 '(?:query/(?P<queryKey>[^/]+)/)?' => 'PhabricatorProjectListController', 45 'filter/(?P<filter>[^/]+)/' => 'PhabricatorProjectListController', 46 'archive/(?P<id>[1-9]\d*)/' 47 => 'PhabricatorProjectArchiveController', 48 'lock/(?P<id>[1-9]\d*)/' 49 => 'PhabricatorProjectLockController', 50 'members/(?P<id>[1-9]\d*)/' 51 => 'PhabricatorProjectMembersViewController', 52 'members/(?P<id>[1-9]\d*)/add/' 53 => 'PhabricatorProjectMembersAddController', 54 '(?P<type>members|watchers)/(?P<id>[1-9]\d*)/remove/' 55 => 'PhabricatorProjectMembersRemoveController', 56 'profile/(?P<id>[1-9]\d*)/' 57 => 'PhabricatorProjectProfileController', 58 'view/(?P<id>[1-9]\d*)/' 59 => 'PhabricatorProjectViewController', 60 'picture/(?P<id>[1-9]\d*)/' 61 => 'PhabricatorProjectEditPictureController', 62 $this->getEditRoutePattern('edit/') 63 => 'PhabricatorProjectEditController', 64 '(?P<projectID>[1-9]\d*)/item/' => $this->getProfileMenuRouting( 65 'PhabricatorProjectMenuItemController'), 66 'subprojects/(?P<id>[1-9]\d*)/' 67 => 'PhabricatorProjectSubprojectsController', 68 'board/(?P<id>[1-9]\d*)/'. 69 '(?:query/(?P<queryKey>[^/]+)/)?' 70 => 'PhabricatorProjectBoardViewController', 71 'move/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectMoveController', 72 'cover/' => 'PhabricatorProjectCoverController', 73 'reports/(?P<projectID>[1-9]\d*)/' => 74 'PhabricatorProjectReportsController', 75 'board/(?P<projectID>[1-9]\d*)/' => array( 76 'edit/(?:(?P<id>\d+)/)?' 77 => 'PhabricatorProjectColumnEditController', 78 'hide/(?:(?P<id>\d+)/)?' 79 => 'PhabricatorProjectColumnHideController', 80 'column/(?:(?P<id>\d+)/)?' 81 => 'PhabricatorProjectColumnDetailController', 82 'viewquery/(?P<columnID>\d+)/' 83 => 'PhabricatorProjectColumnViewQueryController', 84 'bulk/(?P<columnID>\d+)/' 85 => 'PhabricatorProjectColumnBulkEditController', 86 'bulkmove/(?P<columnID>\d+)/(?P<mode>project|column)/' 87 => 'PhabricatorProjectColumnBulkMoveController', 88 'import/' 89 => 'PhabricatorProjectBoardImportController', 90 'reorder/' 91 => 'PhabricatorProjectBoardReorderController', 92 'disable/' 93 => 'PhabricatorProjectBoardDisableController', 94 'manage/' 95 => 'PhabricatorProjectBoardManageController', 96 'background/' 97 => 'PhabricatorProjectBoardBackgroundController', 98 'default/(?P<target>[^/]+)/' 99 => 'PhabricatorProjectBoardDefaultController', 100 'filter/(?:query/(?P<queryKey>[^/]+)/)?' 101 => 'PhabricatorProjectBoardFilterController', 102 'reload/' 103 => 'PhabricatorProjectBoardReloadController', 104 ), 105 'column/' => array( 106 'remove/(?P<id>\d+)/' => 107 'PhabricatorProjectColumnRemoveTriggerController', 108 ), 109 'trigger/' => array( 110 $this->getQueryRoutePattern() => 111 'PhabricatorProjectTriggerListController', 112 '(?P<id>[1-9]\d*)/' => 113 'PhabricatorProjectTriggerViewController', 114 $this->getEditRoutePattern('edit/') => 115 'PhabricatorProjectTriggerEditController', 116 ), 117 'update/(?P<id>[1-9]\d*)/(?P<action>[^/]+)/' 118 => 'PhabricatorProjectUpdateController', 119 'manage/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectManageController', 120 '(?P<action>watch|unwatch)/(?P<id>[1-9]\d*)/' 121 => 'PhabricatorProjectWatchController', 122 'silence/(?P<id>[1-9]\d*)/' 123 => 'PhabricatorProjectSilenceController', 124 'warning/(?P<id>[1-9]\d*)/' 125 => 'PhabricatorProjectSubprojectWarningController', 126 ), 127 '/tag/' => array( 128 '(?P<slug>[^/]+)/' => 'PhabricatorProjectViewController', 129 '(?P<slug>[^/]+)/board/' => 'PhabricatorProjectBoardViewController', 130 ), 131 ); 132 } 133 134 protected function getCustomCapabilities() { 135 return array( 136 ProjectCreateProjectsCapability::CAPABILITY => array(), 137 ProjectCanLockProjectsCapability::CAPABILITY => array( 138 'default' => PhabricatorPolicies::POLICY_ADMIN, 139 ), 140 ProjectDefaultViewCapability::CAPABILITY => array( 141 'caption' => pht('Default view policy for newly created projects.'), 142 'template' => PhabricatorProjectProjectPHIDType::TYPECONST, 143 'capability' => PhabricatorPolicyCapability::CAN_VIEW, 144 ), 145 ProjectDefaultEditCapability::CAPABILITY => array( 146 'caption' => pht('Default edit policy for newly created projects.'), 147 'template' => PhabricatorProjectProjectPHIDType::TYPECONST, 148 'capability' => PhabricatorPolicyCapability::CAN_EDIT, 149 ), 150 ProjectDefaultJoinCapability::CAPABILITY => array( 151 'caption' => pht('Default join policy for newly created projects.'), 152 'template' => PhabricatorProjectProjectPHIDType::TYPECONST, 153 'capability' => PhabricatorPolicyCapability::CAN_JOIN, 154 ), 155 ); 156 } 157 158 public function getApplicationSearchDocumentTypes() { 159 return array( 160 PhabricatorProjectProjectPHIDType::TYPECONST, 161 ); 162 } 163 164 public function getApplicationOrder() { 165 return 0.150; 166 } 167 168 public function getHelpDocumentationArticles(PhabricatorUser $viewer) { 169 return array( 170 array( 171 'name' => pht('Projects User Guide'), 172 'href' => PhabricatorEnv::getDoclink('Projects User Guide'), 173 ), 174 ); 175 } 176 177}