@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.

Add empty subproject/milestone controllers

Summary: Ref T10010. These do nothing yet.

Test Plan: Clicked 'em.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

Differential Revision: https://secure.phabricator.com/D14894

+80 -1
+4
src/__phutil_library_map__.php
··· 2864 2864 'PhabricatorProjectMembersEditController' => 'applications/project/controller/PhabricatorProjectMembersEditController.php', 2865 2865 'PhabricatorProjectMembersPolicyRule' => 'applications/project/policyrule/PhabricatorProjectMembersPolicyRule.php', 2866 2866 'PhabricatorProjectMembersRemoveController' => 'applications/project/controller/PhabricatorProjectMembersRemoveController.php', 2867 + 'PhabricatorProjectMilestonesController' => 'applications/project/controller/PhabricatorProjectMilestonesController.php', 2867 2868 'PhabricatorProjectMoveController' => 'applications/project/controller/PhabricatorProjectMoveController.php', 2868 2869 'PhabricatorProjectNameContextFreeGrammar' => 'applications/project/lipsum/PhabricatorProjectNameContextFreeGrammar.php', 2869 2870 'PhabricatorProjectNoProjectsDatasource' => 'applications/project/typeahead/PhabricatorProjectNoProjectsDatasource.php', ··· 2883 2884 'PhabricatorProjectSlug' => 'applications/project/storage/PhabricatorProjectSlug.php', 2884 2885 'PhabricatorProjectStandardCustomField' => 'applications/project/customfield/PhabricatorProjectStandardCustomField.php', 2885 2886 'PhabricatorProjectStatus' => 'applications/project/constants/PhabricatorProjectStatus.php', 2887 + 'PhabricatorProjectSubprojectsController' => 'applications/project/controller/PhabricatorProjectSubprojectsController.php', 2886 2888 'PhabricatorProjectTestDataGenerator' => 'applications/project/lipsum/PhabricatorProjectTestDataGenerator.php', 2887 2889 'PhabricatorProjectTransaction' => 'applications/project/storage/PhabricatorProjectTransaction.php', 2888 2890 'PhabricatorProjectTransactionEditor' => 'applications/project/editor/PhabricatorProjectTransactionEditor.php', ··· 7207 7209 'PhabricatorProjectMembersEditController' => 'PhabricatorProjectController', 7208 7210 'PhabricatorProjectMembersPolicyRule' => 'PhabricatorPolicyRule', 7209 7211 'PhabricatorProjectMembersRemoveController' => 'PhabricatorProjectController', 7212 + 'PhabricatorProjectMilestonesController' => 'PhabricatorProjectController', 7210 7213 'PhabricatorProjectMoveController' => 'PhabricatorProjectController', 7211 7214 'PhabricatorProjectNameContextFreeGrammar' => 'PhutilContextFreeGrammar', 7212 7215 'PhabricatorProjectNoProjectsDatasource' => 'PhabricatorTypeaheadDatasource', ··· 7229 7232 'PhabricatorStandardCustomFieldInterface', 7230 7233 ), 7231 7234 'PhabricatorProjectStatus' => 'Phobject', 7235 + 'PhabricatorProjectSubprojectsController' => 'PhabricatorProjectController', 7232 7236 'PhabricatorProjectTestDataGenerator' => 'PhabricatorTestDataGenerator', 7233 7237 'PhabricatorProjectTransaction' => 'PhabricatorApplicationTransaction', 7234 7238 'PhabricatorProjectTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
+4
src/applications/project/application/PhabricatorProjectApplication.php
··· 60 60 'picture/(?P<id>[1-9]\d*)/' 61 61 => 'PhabricatorProjectEditPictureController', 62 62 'create/' => 'PhabricatorProjectEditDetailsController', 63 + 'subprojects/(?P<id>[1-9]\d*)/' 64 + => 'PhabricatorProjectSubprojectsController', 65 + 'milestones/(?P<id>[1-9]\d*)/' 66 + => 'PhabricatorProjectMilestonesController', 63 67 'board/(?P<id>[1-9]\d*)/'. 64 68 '(?P<filter>filter/)?'. 65 69 '(?:query/(?P<queryKey>[^/]+)/)?'
+6
src/applications/project/controller/PhabricatorProjectController.php
··· 151 151 $nav->addIcon("members/{$id}/", pht('Members'), 'fa-group'); 152 152 $nav->addIcon("details/{$id}/", pht('Edit Details'), 'fa-pencil'); 153 153 154 + if (PhabricatorEnv::getEnvConfig('phabricator.show-prototypes')) { 155 + $nav->addIcon("subprojects/{$id}/", pht('Subprojects'), 'fa-sitemap'); 156 + $nav->addIcon("milestones/{$id}/", pht('Milestones'), 'fa-map-marker'); 157 + } 158 + 159 + 154 160 return $nav; 155 161 } 156 162
-1
src/applications/project/controller/PhabricatorProjectFeedController.php
··· 35 35 36 36 $nav = $this->buildIconNavView($project); 37 37 $nav->selectFilter("feed/{$id}/"); 38 - $nav->appendChild($box); 39 38 40 39 $crumbs = $this->buildApplicationCrumbs(); 41 40 $crumbs->addTextCrumb(pht('Feed'));
+33
src/applications/project/controller/PhabricatorProjectMilestonesController.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectMilestonesController 4 + extends PhabricatorProjectController { 5 + 6 + public function shouldAllowPublic() { 7 + return true; 8 + } 9 + 10 + public function handleRequest(AphrontRequest $request) { 11 + $viewer = $request->getViewer(); 12 + 13 + $response = $this->loadProject(); 14 + if ($response) { 15 + return $response; 16 + } 17 + 18 + $project = $this->getProject(); 19 + $id = $project->getID(); 20 + 21 + $nav = $this->buildIconNavView($project); 22 + $nav->selectFilter("milestones/{$id}/"); 23 + 24 + $crumbs = $this->buildApplicationCrumbs(); 25 + $crumbs->addTextCrumb(pht('Milestones')); 26 + 27 + return $this->newPage() 28 + ->setNavigation($nav) 29 + ->setCrumbs($crumbs) 30 + ->setTitle(array($project->getName(), pht('Milestones'))); 31 + } 32 + 33 + }
+33
src/applications/project/controller/PhabricatorProjectSubprojectsController.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectSubprojectsController 4 + extends PhabricatorProjectController { 5 + 6 + public function shouldAllowPublic() { 7 + return true; 8 + } 9 + 10 + public function handleRequest(AphrontRequest $request) { 11 + $viewer = $request->getViewer(); 12 + 13 + $response = $this->loadProject(); 14 + if ($response) { 15 + return $response; 16 + } 17 + 18 + $project = $this->getProject(); 19 + $id = $project->getID(); 20 + 21 + $nav = $this->buildIconNavView($project); 22 + $nav->selectFilter("subprojects/{$id}/"); 23 + 24 + $crumbs = $this->buildApplicationCrumbs(); 25 + $crumbs->addTextCrumb(pht('Subprojects')); 26 + 27 + return $this->newPage() 28 + ->setNavigation($nav) 29 + ->setCrumbs($crumbs) 30 + ->setTitle(array($project->getName(), pht('Subprojects'))); 31 + } 32 + 33 + }