/src/applications/uiexample/examples/PHUIListExample.php

https://github.com/navyuginfo/phabricator · PHP · 297 lines · 233 code · 60 blank · 4 comment · 0 complexity · 427b5b603230956eb87f0735f8b9b65e MD5 · raw file

  1. <?php
  2. final class PHUIListExample extends PhabricatorUIExample {
  3. public function getName() {
  4. return 'Lists';
  5. }
  6. public function getDescription() {
  7. return 'Create a fanciful list of objects and prismatic donuts.';
  8. }
  9. public function renderExample() {
  10. /* Action Menu */
  11. $action1 = id(new PHUIListItemView())
  12. ->setName('Edit Document')
  13. ->setHref('#')
  14. ->setIcon('fa-pencil')
  15. ->setType(PHUIListItemView::TYPE_LINK);
  16. $action2 = id(new PHUIListItemView())
  17. ->setName('Move Document')
  18. ->setHref('#')
  19. ->setIcon('fa-arrows')
  20. ->setType(PHUIListItemView::TYPE_LINK);
  21. $action3 = id(new PHUIListItemView())
  22. ->setName('Delete Document')
  23. ->setHref('#')
  24. ->setIcon('fa-times')
  25. ->setType(PHUIListItemView::TYPE_LINK);
  26. $action4 = id(new PHUIListItemView())
  27. ->setName('View History')
  28. ->setHref('#')
  29. ->setIcon('fa-list')
  30. ->setType(PHUIListItemView::TYPE_LINK);
  31. $action5 = id(new PHUIListItemView())
  32. ->setName('Subscribe')
  33. ->setHref('#')
  34. ->setIcon('fa-plus-circle')
  35. ->setType(PHUIListItemView::TYPE_LINK);
  36. $actionmenu = id(new PHUIListView())
  37. ->setType(PHUIListView::SIDENAV_LIST)
  38. ->addMenuItem($action1)
  39. ->addMenuItem($action2)
  40. ->addMenuItem($action3)
  41. ->addMenuItem($action4)
  42. ->addMenuItem($action5);
  43. /* Side Navigation */
  44. $label1 = id(new PHUIListItemView())
  45. ->setName('Getting Started')
  46. ->setType(PHUIListItemView::TYPE_LABEL);
  47. $label2 = id(new PHUIListItemView())
  48. ->setName('Documentation')
  49. ->setType(PHUIListItemView::TYPE_LABEL);
  50. $item1 = id(new PHUIListItemView())
  51. ->setName('Installation')
  52. ->setHref('#')
  53. ->setType(PHUIListItemView::TYPE_LINK);
  54. $item2 = id(new PHUIListItemView())
  55. ->setName('Webserver Config')
  56. ->setHref('#')
  57. ->setType(PHUIListItemView::TYPE_LINK);
  58. $item3 = id(new PHUIListItemView())
  59. ->setName('Adding Users')
  60. ->setHref('#')
  61. ->setType(PHUIListItemView::TYPE_LINK);
  62. $item4 = id(new PHUIListItemView())
  63. ->setName('Debugging')
  64. ->setHref('#')
  65. ->setType(PHUIListItemView::TYPE_LINK);
  66. $divider = id(new PHUIListItemView)
  67. ->setType(PHUIListItemView::TYPE_DIVIDER);
  68. $sidenav = id(new PHUIListView())
  69. ->setType(PHUIListView::SIDENAV_LIST)
  70. ->addMenuItem($label1)
  71. ->addMenuItem($item3)
  72. ->addMenuItem($item2)
  73. ->addMenuItem($item1)
  74. ->addMenuItem($item4)
  75. ->addMenuItem($divider)
  76. ->addMenuItem($label2)
  77. ->addMenuItem($item3)
  78. ->addMenuItem($item2)
  79. ->addMenuItem($item1)
  80. ->addMenuItem($item4);
  81. /* Unstyled */
  82. $item1 = id(new PHUIListItemView())
  83. ->setName('Rain');
  84. $item2 = id(new PHUIListItemView())
  85. ->setName('Spain');
  86. $item3 = id(new PHUIListItemView())
  87. ->setName('Mainly');
  88. $item4 = id(new PHUIListItemView())
  89. ->setName('Plains');
  90. $unstyled = id(new PHUIListView())
  91. ->addMenuItem($item1)
  92. ->addMenuItem($item2)
  93. ->addMenuItem($item3)
  94. ->addMenuItem($item4);
  95. /* Top Navigation */
  96. $home = id(new PHUIListItemView())
  97. ->setIcon('fa-home')
  98. ->setHref('#')
  99. ->setType(PHUIListItemView::TYPE_ICON);
  100. $item1 = id(new PHUIListItemView())
  101. ->setName('Installation')
  102. ->setHref('#')
  103. ->setSelected(true)
  104. ->setType(PHUIListItemView::TYPE_LINK);
  105. $item2 = id(new PHUIListItemView())
  106. ->setName('Webserver Config')
  107. ->setHref('#')
  108. ->setType(PHUIListItemView::TYPE_LINK);
  109. $item3 = id(new PHUIListItemView())
  110. ->setName('Adding Users')
  111. ->setHref('#')
  112. ->setType(PHUIListItemView::TYPE_LINK);
  113. $item4 = id(new PHUIListItemView())
  114. ->setName('Debugging')
  115. ->setHref('#')
  116. ->setType(PHUIListItemView::TYPE_LINK);
  117. $item1 = id(new PHUIListItemView())
  118. ->setName('Installation')
  119. ->setHref('#')
  120. ->setSelected(true)
  121. ->setType(PHUIListItemView::TYPE_LINK);
  122. $item2 = id(new PHUIListItemView())
  123. ->setName('Webserver Config')
  124. ->setHref('#')
  125. ->setType(PHUIListItemView::TYPE_LINK);
  126. $details1 = id(new PHUIListItemView())
  127. ->setName('Details')
  128. ->setHref('#')
  129. ->setSelected(true)
  130. ->setType(PHUIListItemView::TYPE_LINK);
  131. $details2 = id(new PHUIListItemView())
  132. ->setName('Lint (OK)')
  133. ->setHref('#')
  134. ->setType(PHUIListItemView::TYPE_LINK);
  135. $details3 = id(new PHUIListItemView())
  136. ->setName('Unit (5/5)')
  137. ->setHref('#')
  138. ->setType(PHUIListItemView::TYPE_LINK);
  139. $details4 = id(new PHUIListItemView())
  140. ->setName('Lint (Warn)')
  141. ->setHref('#')
  142. ->setStatusColor(PHUIListItemView::STATUS_WARN)
  143. ->setType(PHUIListItemView::TYPE_LINK);
  144. $details5 = id(new PHUIListItemView())
  145. ->setName('Unit (3/5)')
  146. ->setHref('#')
  147. ->setStatusColor(PHUIListItemView::STATUS_FAIL)
  148. ->setType(PHUIListItemView::TYPE_LINK);
  149. $topnav = id(new PHUIListView())
  150. ->setType(PHUIListView::NAVBAR_LIST)
  151. ->addMenuItem($home)
  152. ->addMenuItem($item1)
  153. ->addMenuItem($item2)
  154. ->addMenuItem($item3)
  155. ->addMenuItem($item4);
  156. $statustabs = id(new PHUIListView())
  157. ->setType(PHUIListView::NAVBAR_LIST)
  158. ->addMenuItem($details1)
  159. ->addMenuItem($details2)
  160. ->addMenuItem($details3)
  161. ->addMenuItem($details4)
  162. ->addMenuItem($details5);
  163. $layout1 =
  164. array(
  165. id(new PHUIBoxView())
  166. ->appendChild($unstyled)
  167. ->addMargin(PHUI::MARGIN_MEDIUM)
  168. ->addPadding(PHUI::PADDING_SMALL)
  169. ->setBorder(true));
  170. $layout2 =
  171. array(
  172. id(new PHUIBoxView())
  173. ->appendChild($sidenav)
  174. ->addMargin(PHUI::MARGIN_MEDIUM)
  175. ->setBorder(true));
  176. $layout3 =
  177. array(
  178. id(new PHUIBoxView())
  179. ->appendChild($topnav)
  180. ->addMargin(PHUI::MARGIN_MEDIUM)
  181. ->setBorder(true));
  182. $layout4 =
  183. array(
  184. id(new PHUIBoxView())
  185. ->appendChild($actionmenu)
  186. ->addMargin(PHUI::MARGIN_MEDIUM)
  187. ->setBorder(true));
  188. $layout5 =
  189. array(
  190. id(new PHUIBoxView())
  191. ->appendChild($statustabs)
  192. ->addMargin(PHUI::MARGIN_MEDIUM)
  193. ->setBorder(true));
  194. $head1 = id(new PHUIHeaderView())
  195. ->setHeader(pht('Unstyled'));
  196. $head2 = id(new PHUIHeaderView())
  197. ->setHeader(pht('Side Navigation'));
  198. $head3 = id(new PHUIHeaderView())
  199. ->setHeader(pht('Top Navigation'));
  200. $head4 = id(new PHUIHeaderView())
  201. ->setHeader(pht('Action Menu'));
  202. $head5 = id(new PHUIHeaderView())
  203. ->setHeader(pht('Status Tabs'));
  204. $wrap1 = id(new PHUIBoxView())
  205. ->appendChild($layout1)
  206. ->addMargin(PHUI::MARGIN_LARGE);
  207. $wrap2 = id(new PHUIBoxView())
  208. ->appendChild($layout2)
  209. ->addMargin(PHUI::MARGIN_LARGE);
  210. $wrap3 = id(new PHUIBoxView())
  211. ->appendChild($layout3)
  212. ->addMargin(PHUI::MARGIN_LARGE);
  213. $wrap4 = id(new PHUIBoxView())
  214. ->appendChild($layout4)
  215. ->addMargin(PHUI::MARGIN_LARGE);
  216. $wrap5 = id(new PHUIBoxView())
  217. ->appendChild($layout5)
  218. ->addMargin(PHUI::MARGIN_LARGE);
  219. return phutil_tag(
  220. 'div',
  221. array(
  222. 'class' => 'phui-list-example',
  223. ),
  224. array(
  225. $head1,
  226. $wrap1,
  227. $head2,
  228. $wrap2,
  229. $head3,
  230. $wrap3,
  231. $head5,
  232. $wrap5,
  233. $head4,
  234. $wrap4
  235. ));
  236. }
  237. }