@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 DrydockResourceListView extends AphrontView {
4
5 private $resources;
6
7 /**
8 * @param array<DrydockResource> $resources
9 */
10 public function setResources(array $resources) {
11 assert_instances_of($resources, DrydockResource::class);
12 $this->resources = $resources;
13 return $this;
14 }
15
16 public function render() {
17 $resources = $this->resources;
18 $viewer = $this->getUser();
19
20 $view = new PHUIObjectItemListView();
21 foreach ($resources as $resource) {
22 $id = $resource->getID();
23
24 $item = id(new PHUIObjectItemView())
25 ->setHref("/drydock/resource/{$id}/")
26 ->setObjectName(pht('Resource %d', $id))
27 ->setHeader($resource->getResourceName());
28
29 $icon = $resource->getStatusIcon();
30 $color = $resource->getStatusColor();
31 $label = $resource->getStatusDisplayName();
32
33 $item->setStatusIcon("{$icon} {$color}", $label);
34
35 $view->addItem($item);
36 }
37
38 return $view;
39 }
40
41}