@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 DrydockRepositoryOperationStatusController
4 extends DrydockRepositoryOperationController {
5
6 public function shouldAllowPublic() {
7 return true;
8 }
9
10 public function handleRequest(AphrontRequest $request) {
11 $viewer = $request->getViewer();
12 $id = $request->getURIData('id');
13
14 $operation = id(new DrydockRepositoryOperationQuery())
15 ->setViewer($viewer)
16 ->withIDs(array($id))
17 ->executeOne();
18 if (!$operation) {
19 return new Aphront404Response();
20 }
21
22 $id = $operation->getID();
23
24 $status_view = id(new DrydockRepositoryOperationStatusView())
25 ->setUser($viewer)
26 ->setOperation($operation);
27
28 if ($request->isAjax()) {
29 $payload = array(
30 'markup' => $status_view->renderUnderwayState(),
31 'isUnderway' => $operation->isUnderway(),
32 );
33
34 return id(new AphrontAjaxResponse())
35 ->setContent($payload);
36 }
37
38 $title = pht('Repository Operation %d', $id);
39
40 $crumbs = $this->buildApplicationCrumbs();
41 $crumbs->addTextCrumb(
42 pht('Operations'),
43 $this->getApplicationURI('operation/'));
44 $crumbs->addTextCrumb($title);
45
46 return $this->newPage()
47 ->setTitle(pht('Status'))
48 ->setCrumbs($crumbs)
49 ->appendChild($status_view);
50 }
51
52}