@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 PhabricatorStatusUIExample extends PhabricatorUIExample {
4
5 public function getName() {
6 return pht('Status List');
7 }
8
9 public function getDescription() {
10 return pht(
11 'Use %s to show relationships with objects.',
12 phutil_tag('tt', array(), 'PHUIStatusListView'));
13 }
14
15 public function renderExample() {
16 $out = array();
17
18 $view = new PHUIStatusListView();
19
20 $view->addItem(
21 id(new PHUIStatusItemView())
22 ->setIcon(PHUIStatusItemView::ICON_ACCEPT, 'green', pht('Yum'))
23 ->setTarget(pht('Apple'))
24 ->setNote(pht('You can eat them.')));
25
26 $view->addItem(
27 id(new PHUIStatusItemView())
28 ->setIcon(PHUIStatusItemView::ICON_ADD, 'blue', pht('Has Peel'))
29 ->setTarget(pht('Banana'))
30 ->setNote(pht('Comes in bunches.'))
31 ->setHighlighted(true));
32
33 $view->addItem(
34 id(new PHUIStatusItemView())
35 ->setIcon(PHUIStatusItemView::ICON_WARNING, 'dark', pht('Caution'))
36 ->setTarget(pht('Pomegranate'))
37 ->setNote(pht('Lots of seeds. Watch out.')));
38
39 $view->addItem(
40 id(new PHUIStatusItemView())
41 ->setIcon(PHUIStatusItemView::ICON_REJECT, 'red', pht('Bleh!'))
42 ->setTarget(pht('Zucchini'))
43 ->setNote(pht('Slimy and gross. Yuck!')));
44
45 $out[] = id(new PHUIHeaderView())
46 ->setHeader(pht('Fruit and Vegetable Status'));
47
48 $out[] = id(new PHUIBoxView())
49 ->addMargin(PHUI::MARGIN_LARGE)
50 ->addPadding(PHUI::PADDING_LARGE)
51 ->setBorder(true)
52 ->appendChild($view);
53
54
55 $view = new PHUIStatusListView();
56
57 $manifest = array(
58 PHUIStatusItemView::ICON_ACCEPT => 'PHUIStatusItemView::ICON_ACCEPT',
59 PHUIStatusItemView::ICON_REJECT => 'PHUIStatusItemView::ICON_REJECT',
60 PHUIStatusItemView::ICON_LEFT => 'PHUIStatusItemView::ICON_LEFT',
61 PHUIStatusItemView::ICON_RIGHT => 'PHUIStatusItemView::ICON_RIGHT',
62 PHUIStatusItemView::ICON_UP => 'PHUIStatusItemView::ICON_UP',
63 PHUIStatusItemView::ICON_DOWN => 'PHUIStatusItemView::ICON_DOWN',
64 PHUIStatusItemView::ICON_QUESTION => 'PHUIStatusItemView::ICON_QUESTION',
65 PHUIStatusItemView::ICON_WARNING => 'PHUIStatusItemView::ICON_WARNING',
66 PHUIStatusItemView::ICON_INFO => 'PHUIStatusItemView::ICON_INFO',
67 PHUIStatusItemView::ICON_ADD => 'PHUIStatusItemView::ICON_ADD',
68 PHUIStatusItemView::ICON_MINUS => 'PHUIStatusItemView::ICON_MINUS',
69 PHUIStatusItemView::ICON_OPEN => 'PHUIStatusItemView::ICON_OPEN',
70 PHUIStatusItemView::ICON_CLOCK => 'PHUIStatusItemView::ICON_CLOCK',
71 );
72
73 foreach ($manifest as $icon => $label) {
74
75 $view->addItem(
76 id(new PHUIStatusItemView())
77 ->setIcon($icon, 'indigo')
78 ->setTarget($label));
79 }
80
81 $out[] = id(new PHUIHeaderView())
82 ->setHeader(pht('All Icons'));
83
84 $out[] = id(new PHUIBoxView())
85 ->addMargin(PHUI::MARGIN_LARGE)
86 ->addPadding(PHUI::PADDING_LARGE)
87 ->setBorder(true)
88 ->appendChild($view);
89
90 return $out;
91 }
92}