@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<?php
2
3final class HarbormasterBuildLogViewController
4 extends HarbormasterController {
5
6 public function shouldAllowPublic() {
7 return true;
8 }
9
10 public function handleRequest(AphrontRequest $request) {
11 $viewer = $this->getViewer();
12
13 $id = $request->getURIData('id');
14
15 $log = id(new HarbormasterBuildLogQuery())
16 ->setViewer($viewer)
17 ->withIDs(array($id))
18 ->executeOne();
19 if (!$log) {
20 return new Aphront404Response();
21 }
22
23 $target = $log->getBuildTarget();
24 $build = $target->getBuild();
25
26 $page_title = pht('Build Log %d', $log->getID());
27
28 $log_view = id(new HarbormasterBuildLogView())
29 ->setViewer($viewer)
30 ->setBuildLog($log)
31 ->setHighlightedLineRange($request->getURIData('lines'))
32 ->setEnableHighlighter(true);
33
34 $crumbs = $this->buildApplicationCrumbs()
35 ->addTextCrumb(pht('Build Logs'))
36 ->addTextCrumb(
37 pht('Build %d', $build->getID()),
38 $build->getURI())
39 ->addTextCrumb($page_title)
40 ->setBorder(true);
41
42 $page_header = id(new PHUIHeaderView())
43 ->setHeader($page_title);
44
45 $page_view = id(new PHUITwoColumnView())
46 ->setHeader($page_header)
47 ->setFooter($log_view);
48
49 return $this->newPage()
50 ->setTitle($page_title)
51 ->setCrumbs($crumbs)
52 ->appendChild($page_view);
53 }
54
55}