@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
at recaptime-dev/main 107 lines 3.3 kB view raw
1<?php 2 3final class PhabricatorDashboardApplication extends PhabricatorApplication { 4 5 public function getName() { 6 return pht('Dashboards'); 7 } 8 9 public function getBaseURI() { 10 return '/dashboard/'; 11 } 12 13 public function getTypeaheadURI() { 14 return '/dashboard/console/'; 15 } 16 17 public function getShortDescription() { 18 return pht('Create Custom Pages'); 19 } 20 21 public function getIcon() { 22 return 'fa-tachometer'; 23 } 24 25 public function isPinnedByDefault(PhabricatorUser $viewer) { 26 return true; 27 } 28 29 public function getApplicationOrder() { 30 return 0.160; 31 } 32 33 public function getMonograms() { 34 return array('W'); 35 } 36 37 public function getRoutes() { 38 $menu_rules = $this->getProfileMenuRouting( 39 'PhabricatorDashboardPortalViewController'); 40 41 return array( 42 '/W(?P<id>\d+)' => 'PhabricatorDashboardPanelViewController', 43 '/dashboard/' => array( 44 '(?:query/(?P<queryKey>[^/]+)/)?' 45 => 'PhabricatorDashboardListController', 46 'view/(?P<id>\d+)/' => 'PhabricatorDashboardViewController', 47 'archive/(?P<id>\d+)/' => 'PhabricatorDashboardArchiveController', 48 $this->getEditRoutePattern('edit/') => 49 'PhabricatorDashboardEditController', 50 'install/(?P<id>\d+)/'. 51 '(?:(?P<workflowKey>[^/]+)/'. 52 '(?:(?P<modeKey>[^/]+)/)?)?' => 53 'PhabricatorDashboardInstallController', 54 'console/' => 'PhabricatorDashboardConsoleController', 55 'adjust/(?P<op>remove|add|move)/' 56 => 'PhabricatorDashboardAdjustController', 57 'panel/' => array( 58 'install/(?P<engineKey>[^/]+)/(?:(?P<queryKey>[^/]+)/)?' => 59 'PhabricatorDashboardQueryPanelInstallController', 60 '(?:query/(?P<queryKey>[^/]+)/)?' 61 => 'PhabricatorDashboardPanelListController', 62 $this->getEditRoutePattern('edit/') 63 => 'PhabricatorDashboardPanelEditController', 64 'render/(?P<id>\d+)/' => 'PhabricatorDashboardPanelRenderController', 65 'archive/(?P<id>\d+)/' 66 => 'PhabricatorDashboardPanelArchiveController', 67 'tabs/(?P<id>\d+)/(?P<op>add|move|remove|rename)/' 68 => 'PhabricatorDashboardPanelTabsController', 69 ), 70 ), 71 '/portal/' => array( 72 $this->getQueryRoutePattern() => 73 'PhabricatorDashboardPortalListController', 74 $this->getEditRoutePattern('edit/') => 75 'PhabricatorDashboardPortalEditController', 76 'view/(?P<portalID>\d+)/' => array( 77 '' => 'PhabricatorDashboardPortalViewController', 78 ) + $menu_rules, 79 80 ), 81 ); 82 } 83 84 public function getRemarkupRules() { 85 return array( 86 new PhabricatorDashboardRemarkupRule(), 87 ); 88 } 89 90 protected function getCustomCapabilities() { 91 return array( 92 PhabricatorDashboardCreateCapability::CAPABILITY => array( 93 'default' => PhabricatorPolicies::POLICY_USER, 94 'caption' => pht('Default create policy for Dashboards.'), 95 ), 96 ); 97 } 98 99 public function getApplicationSearchDocumentTypes() { 100 return array( 101 PhabricatorDashboardDashboardPHIDType::TYPECONST, 102 PhabricatorDashboardPanelPHIDType::TYPECONST, 103 PhabricatorDashboardPortalPHIDType::TYPECONST, 104 ); 105 } 106 107}