@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 50 lines 1.3 kB view raw
1<?php 2 3final class PonderAnswerHistoryController 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 $answer = id(new PonderAnswerQuery()) 14 ->setViewer($viewer) 15 ->withIDs(array($id)) 16 ->executeOne(); 17 if (!$answer) { 18 return new Aphront404Response(); 19 } 20 21 $timeline = $this->buildTransactionTimeline( 22 $answer, 23 new PonderAnswerTransactionQuery()); 24 $timeline->setShouldTerminate(true); 25 26 $qid = $answer->getQuestion()->getID(); 27 $aid = $answer->getID(); 28 29 $crumbs = $this->buildApplicationCrumbs(); 30 $crumbs->setBorder(true); 31 $crumbs->addTextCrumb("Q{$qid}", "/Q{$qid}"); 32 $crumbs->addTextCrumb("A{$aid}", "/Q{$qid}#{$aid}"); 33 $crumbs->addTextCrumb(pht('History')); 34 $crumbs->setBorder(true); 35 36 $header = id(new PHUIHeaderView()) 37 ->setHeader(pht('Answer History')) 38 ->setHeaderIcon('fa-history'); 39 40 $view = id(new PHUITwoColumnView()) 41 ->setHeader($header) 42 ->setFooter($timeline); 43 44 return $this->newPage() 45 ->setTitle(pht('Answer History')) 46 ->setCrumbs($crumbs) 47 ->appendChild($view); 48 } 49 50}