@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 upstream/main 75 lines 2.0 kB view raw
1<?php 2 3final class PhabricatorProjectReportsController 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 $class = PhabricatorFactApplication::class; 14 if (!PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { 15 return new Aphront404Response(); 16 } 17 18 $response = $this->loadProject(); 19 if ($response) { 20 return $response; 21 } 22 23 $project = $this->getProject(); 24 $id = $project->getID(); 25 26 $nav = $this->newNavigation( 27 $project, 28 PhabricatorProject::ITEM_REPORTS); 29 30 $crumbs = $this->buildApplicationCrumbs(); 31 $crumbs->addTextCrumb(pht('Reports')); 32 $crumbs->setBorder(true); 33 34 $chart_panel = id(new PhabricatorProjectBurndownChartEngine()) 35 ->setViewer($viewer) 36 ->setProjects(array($project)) 37 ->buildChartPanel(); 38 39 $chart_panel->setName(pht('%s: Burnup / Burndown Rate', 40 $project->getName())); 41 42 $chart_view = id(new PhabricatorDashboardPanelRenderingEngine()) 43 ->setViewer($viewer) 44 ->setPanel($chart_panel) 45 ->setParentPanelPHIDs(array()) 46 ->renderPanel(); 47 48 $activity_panel = id(new PhabricatorProjectActivityChartEngine()) 49 ->setViewer($viewer) 50 ->setProjects(array($project)) 51 ->buildChartPanel(); 52 53 $activity_panel->setName(pht('%s: Activity', $project->getName())); 54 55 $activity_view = id(new PhabricatorDashboardPanelRenderingEngine()) 56 ->setViewer($viewer) 57 ->setPanel($activity_panel) 58 ->setParentPanelPHIDs(array()) 59 ->renderPanel(); 60 61 $view = id(new PHUITwoColumnView()) 62 ->setFooter( 63 array( 64 $chart_view, 65 $activity_view, 66 )); 67 68 return $this->newPage() 69 ->setNavigation($nav) 70 ->setCrumbs($crumbs) 71 ->setTitle(array($project->getName(), pht('Reports'))) 72 ->appendChild($view); 73 } 74 75}