@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 70 lines 1.9 kB view raw
1<?php 2 3final class PhabricatorConfigIssueViewController 4 extends PhabricatorConfigController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $request->getViewer(); 8 $issue_key = $request->getURIData('key'); 9 10 $engine = new PhabricatorSetupEngine(); 11 $response = $engine->execute(); 12 if ($response) { 13 return $response; 14 } 15 $issues = $engine->getIssues(); 16 17 if (empty($issues[$issue_key])) { 18 $content = id(new PHUIInfoView()) 19 ->setSeverity(PHUIInfoView::SEVERITY_NOTICE) 20 ->setTitle(pht('Issue Resolved')) 21 ->appendChild(pht('This setup issue has been resolved. ')) 22 ->appendChild( 23 phutil_tag( 24 'a', 25 array( 26 'href' => $this->getApplicationURI('issue/'), 27 ), 28 pht('Return to Open Issue List'))); 29 $title = pht('Resolved Issue'); 30 } else { 31 $issue = $issues[$issue_key]; 32 $content = $this->renderIssue($issue); 33 $title = $issue->getShortName(); 34 } 35 36 $crumbs = $this 37 ->buildApplicationCrumbs() 38 ->addTextCrumb(pht('Setup Issues'), $this->getApplicationURI('issue/')) 39 ->addTextCrumb($title, $request->getRequestURI()) 40 ->setBorder(true); 41 42 $launcher_view = id(new PHUILauncherView()) 43 ->appendChild($content); 44 45 $content = id(new PHUITwoColumnView()) 46 ->setFooter($launcher_view); 47 48 return $this->newPage() 49 ->setTitle($title) 50 ->setCrumbs($crumbs) 51 ->appendChild($content); 52 } 53 54 private function renderIssue(PhabricatorSetupIssue $issue) { 55 require_celerity_resource('setup-issue-css'); 56 57 $view = new PhabricatorSetupIssueView(); 58 $view->setIssue($issue); 59 60 $container = phutil_tag( 61 'div', 62 array( 63 'class' => 'setup-issue-background', 64 ), 65 $view->render()); 66 67 return $container; 68 } 69 70}