@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 DrydockAuthorizationListView extends AphrontView {
4
5 private $authorizations;
6 private $noDataString;
7
8 /**
9 * @param array<DrydockAuthorization> $authorizations
10 */
11 public function setAuthorizations(array $authorizations) {
12 assert_instances_of($authorizations, DrydockAuthorization::class);
13 $this->authorizations = $authorizations;
14 return $this;
15 }
16
17 public function setNoDataString($string) {
18 $this->noDataString = $string;
19 return $this;
20 }
21
22 public function getNoDataString() {
23 return $this->noDataString;
24 }
25
26 public function render() {
27 $viewer = $this->getUser();
28
29 $authorizations = $this->authorizations;
30
31 $view = new PHUIObjectItemListView();
32
33 $nodata = $this->getNoDataString();
34 if ($nodata) {
35 $view->setNoDataString($nodata);
36 }
37
38 $handles = $viewer->loadHandles(mpull($authorizations, 'getObjectPHID'));
39
40 foreach ($authorizations as $authorization) {
41 $id = $authorization->getID();
42 $object_phid = $authorization->getObjectPHID();
43 $handle = $handles[$object_phid];
44
45 $item = id(new PHUIObjectItemView())
46 ->setHref("/drydock/authorization/{$id}/")
47 ->setObjectName(pht('Authorization %d', $id))
48 ->setHeader($handle->getFullName());
49
50 $item->addAttribute($handle->getTypeName());
51
52 $object_state = $authorization->getObjectAuthorizationState();
53 $item->addAttribute(
54 DrydockAuthorization::getObjectStateName($object_state));
55
56 $state = $authorization->getBlueprintAuthorizationState();
57 $icon = DrydockAuthorization::getBlueprintStateIcon($state);
58 $name = DrydockAuthorization::getBlueprintStateName($state);
59
60 $item->setStatusIcon($icon, $name);
61
62 $view->addItem($item);
63 }
64
65 return $view;
66 }
67
68}