Summary: Ref T5655. Some discussion in D9839. Generally speaking, `Phabricator{$name}Application` is clearer than `PhabricatorApplication{$name}`.
Test Plan:
# Pinned and uninstalled some applications.
# Applied patch and performed migrations.
# Verified that the pinned applications were still pinned and that the uninstalled applications were still uninstalled.
# Performed a sanity check on the database contents.
Reviewers: btrahan, epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: hach-que, epriestley, Korvin
Maniphest Tasks: T5655
Differential Revision: https://secure.phabricator.com/D9982
98 lines
3.0 KiB
PHP
98 lines
3.0 KiB
PHP
<?php
|
|
|
|
final class PhabricatorProjectApplication extends PhabricatorApplication {
|
|
|
|
public function getName() {
|
|
return pht('Projects');
|
|
}
|
|
|
|
public function getShortDescription() {
|
|
return pht('Get Organized');
|
|
}
|
|
|
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
|
return true;
|
|
}
|
|
|
|
public function getBaseURI() {
|
|
return '/project/';
|
|
}
|
|
|
|
public function getIconName() {
|
|
return 'projects';
|
|
}
|
|
|
|
public function getFlavorText() {
|
|
return pht('Group stuff into big piles.');
|
|
}
|
|
|
|
public function getRemarkupRules() {
|
|
return array(
|
|
new ProjectRemarkupRule(),
|
|
);
|
|
}
|
|
|
|
public function getEventListeners() {
|
|
return array(
|
|
new PhabricatorProjectUIEventListener(),
|
|
);
|
|
}
|
|
|
|
public function getRoutes() {
|
|
return array(
|
|
'/project/' => array(
|
|
'(?:query/(?P<queryKey>[^/]+)/)?' => 'PhabricatorProjectListController',
|
|
'filter/(?P<filter>[^/]+)/' => 'PhabricatorProjectListController',
|
|
'edit/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectEditMainController',
|
|
'details/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectEditDetailsController',
|
|
'archive/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectArchiveController',
|
|
'members/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectMembersEditController',
|
|
'members/(?P<id>[1-9]\d*)/remove/'
|
|
=> 'PhabricatorProjectMembersRemoveController',
|
|
'view/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectProfileController',
|
|
'picture/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectEditPictureController',
|
|
'icon/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectEditIconController',
|
|
'create/' => 'PhabricatorProjectCreateController',
|
|
'board/(?P<id>[1-9]\d*)/'.
|
|
'(?P<filter>filter/)?'.
|
|
'(?:query/(?P<queryKey>[^/]+)/)?'
|
|
=> 'PhabricatorProjectBoardViewController',
|
|
'move/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectMoveController',
|
|
'board/(?P<projectID>[1-9]\d*)/' => array(
|
|
'edit/(?:(?P<id>\d+)/)?'
|
|
=> 'PhabricatorProjectBoardEditController',
|
|
'delete/(?:(?P<id>\d+)/)?'
|
|
=> 'PhabricatorProjectBoardDeleteController',
|
|
'column/(?:(?P<id>\d+)/)?'
|
|
=> 'PhabricatorProjectColumnDetailController',
|
|
'reorder/'
|
|
=> 'PhabricatorProjectBoardReorderController',
|
|
),
|
|
'update/(?P<id>[1-9]\d*)/(?P<action>[^/]+)/'
|
|
=> 'PhabricatorProjectUpdateController',
|
|
'history/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectHistoryController',
|
|
'(?P<action>watch|unwatch)/(?P<id>[1-9]\d*)/'
|
|
=> 'PhabricatorProjectWatchController',
|
|
|
|
),
|
|
'/tag/' => array(
|
|
'(?P<slug>[^/]+)/' => 'PhabricatorProjectProfileController',
|
|
'(?P<slug>[^/]+)/board/' => 'PhabricatorProjectBoardViewController',
|
|
),
|
|
);
|
|
}
|
|
|
|
protected function getCustomCapabilities() {
|
|
return array(
|
|
ProjectCapabilityCreateProjects::CAPABILITY => array(),
|
|
);
|
|
}
|
|
|
|
}
|