@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 48 lines 1.2 kB view raw
1<?php 2 3final class PonderQuestionHistoryController extends PonderController { 4 5 public function shouldAllowPublic() { 6 return true; 7 } 8 9 public function handleRequest(AphrontRequest $request) { 10 $viewer = $request->getViewer(); 11 $id = $request->getURIData('id'); 12 13 $question = id(new PonderQuestionQuery()) 14 ->setViewer($viewer) 15 ->withIDs(array($id)) 16 ->executeOne(); 17 if (!$question) { 18 return new Aphront404Response(); 19 } 20 21 $timeline = $this->buildTransactionTimeline( 22 $question, 23 new PonderQuestionTransactionQuery()); 24 $timeline->setShouldTerminate(true); 25 26 $qid = $question->getID(); 27 28 $crumbs = $this->buildApplicationCrumbs(); 29 $crumbs->setBorder(true); 30 $crumbs->addTextCrumb("Q{$qid}", "/Q{$qid}"); 31 $crumbs->addTextCrumb(pht('History')); 32 $crumbs->setBorder(true); 33 34 $header = id(new PHUIHeaderView()) 35 ->setHeader($question->getTitle()) 36 ->setHeaderIcon('fa-history'); 37 38 $view = id(new PHUITwoColumnView()) 39 ->setHeader($header) 40 ->setFooter($timeline); 41 42 return $this->newPage() 43 ->setTitle(pht('Question History')) 44 ->setCrumbs($crumbs) 45 ->appendChild($view); 46 } 47 48}