PageRenderTime 49ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

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

http://github.com/facebook/phabricator
PHP | 300 lines | 238 code | 58 blank | 4 comment | 0 complexity | ee5e6ad7294960aac237ec5a25aed5c7 MD5 | raw file
Possible License(s): JSON, MPL-2.0-no-copyleft-exception, Apache-2.0, BSD-3-Clause, LGPL-2.0, MIT, LGPL-2.1, LGPL-3.0
  1. <?php
  2. final class PHUIListExample extends PhabricatorUIExample {
  3. public function getName() {
  4. return pht('Lists');
  5. }
  6. public function getDescription() {
  7. return pht('Create a fanciful list of objects and prismatic donuts.');
  8. }
  9. public function renderExample() {
  10. /* Action Menu */
  11. $action1 = id(new PHUIListItemView())
  12. ->setName(pht('Edit Document'))
  13. ->setHref('#')
  14. ->setIcon('fa-pencil')
  15. ->setType(PHUIListItemView::TYPE_LINK);
  16. $action2 = id(new PHUIListItemView())
  17. ->setName(pht('Move Document'))
  18. ->setHref('#')
  19. ->setIcon('fa-arrows')
  20. ->setType(PHUIListItemView::TYPE_LINK);
  21. $action3 = id(new PHUIListItemView())
  22. ->setName(pht('Delete Document'))
  23. ->setHref('#')
  24. ->setIcon('fa-times')
  25. ->setType(PHUIListItemView::TYPE_LINK);
  26. $action4 = id(new PHUIListItemView())
  27. ->setName(pht('View History'))
  28. ->setHref('#')
  29. ->setIcon('fa-list')
  30. ->setType(PHUIListItemView::TYPE_LINK);
  31. $action5 = id(new PHUIListItemView())
  32. ->setName(pht('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(pht('Getting Started'))
  46. ->setType(PHUIListItemView::TYPE_LABEL);
  47. $label2 = id(new PHUIListItemView())
  48. ->setName(pht('Documentation'))
  49. ->setType(PHUIListItemView::TYPE_LABEL);
  50. $item1 = id(new PHUIListItemView())
  51. ->setName(pht('Installation'))
  52. ->setHref('#')
  53. ->setType(PHUIListItemView::TYPE_LINK);
  54. $item2 = id(new PHUIListItemView())
  55. ->setName(pht('Webserver Config'))
  56. ->setHref('#')
  57. ->setType(PHUIListItemView::TYPE_LINK);
  58. $item3 = id(new PHUIListItemView())
  59. ->setName(pht('Adding Users'))
  60. ->setHref('#')
  61. ->setType(PHUIListItemView::TYPE_LINK);
  62. $item4 = id(new PHUIListItemView())
  63. ->setName(pht('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(pht('Rain'));
  84. $item2 = id(new PHUIListItemView())
  85. ->setName(pht('Spain'));
  86. $item3 = id(new PHUIListItemView())
  87. ->setName(pht('Mainly'));
  88. $item4 = id(new PHUIListItemView())
  89. ->setName(pht('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(pht('Installation'))
  102. ->setHref('#')
  103. ->setSelected(true)
  104. ->setType(PHUIListItemView::TYPE_LINK);
  105. $item2 = id(new PHUIListItemView())
  106. ->setName(pht('Webserver Config'))
  107. ->setHref('#')
  108. ->setType(PHUIListItemView::TYPE_LINK);
  109. $item3 = id(new PHUIListItemView())
  110. ->setName(pht('Adding Users'))
  111. ->setHref('#')
  112. ->setType(PHUIListItemView::TYPE_LINK);
  113. $item4 = id(new PHUIListItemView())
  114. ->setName(pht('Debugging'))
  115. ->setHref('#')
  116. ->setType(PHUIListItemView::TYPE_LINK);
  117. $item1 = id(new PHUIListItemView())
  118. ->setName(pht('Installation'))
  119. ->setHref('#')
  120. ->setSelected(true)
  121. ->setType(PHUIListItemView::TYPE_LINK);
  122. $item2 = id(new PHUIListItemView())
  123. ->setName(pht('Webserver Config'))
  124. ->setHref('#')
  125. ->setType(PHUIListItemView::TYPE_LINK);
  126. $details1 = id(new PHUIListItemView())
  127. ->setName(pht('Details'))
  128. ->setHref('#')
  129. ->setSelected(true)
  130. ->setType(PHUIListItemView::TYPE_LINK);
  131. $details2 = id(new PHUIListItemView())
  132. ->setName(pht('Lint (OK)'))
  133. ->setHref('#')
  134. ->setType(PHUIListItemView::TYPE_LINK);
  135. $details3 = id(new PHUIListItemView())
  136. ->setName(pht('Unit (5/5)'))
  137. ->setHref('#')
  138. ->setType(PHUIListItemView::TYPE_LINK);
  139. $details4 = id(new PHUIListItemView())
  140. ->setName(pht('Lint (Warn)'))
  141. ->setHref('#')
  142. ->setStatusColor(PHUIListItemView::STATUS_WARN)
  143. ->setType(PHUIListItemView::TYPE_LINK);
  144. $details5 = id(new PHUIListItemView())
  145. ->setName(pht('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. );
  171. $layout2 =
  172. array(
  173. id(new PHUIBoxView())
  174. ->appendChild($sidenav)
  175. ->addMargin(PHUI::MARGIN_MEDIUM)
  176. ->setBorder(true),
  177. );
  178. $layout3 =
  179. array(
  180. id(new PHUIBoxView())
  181. ->appendChild($topnav)
  182. ->addMargin(PHUI::MARGIN_MEDIUM)
  183. ->setBorder(true),
  184. );
  185. $layout4 =
  186. array(
  187. id(new PHUIBoxView())
  188. ->appendChild($actionmenu)
  189. ->addMargin(PHUI::MARGIN_MEDIUM)
  190. ->setBorder(true),
  191. );
  192. $layout5 =
  193. array(
  194. id(new PHUIBoxView())
  195. ->appendChild($statustabs)
  196. ->addMargin(PHUI::MARGIN_MEDIUM)
  197. ->setBorder(true),
  198. );
  199. $head1 = id(new PHUIHeaderView())
  200. ->setHeader(pht('Unstyled'));
  201. $head2 = id(new PHUIHeaderView())
  202. ->setHeader(pht('Side Navigation'));
  203. $head3 = id(new PHUIHeaderView())
  204. ->setHeader(pht('Top Navigation'));
  205. $head4 = id(new PHUIHeaderView())
  206. ->setHeader(pht('Action Menu'));
  207. $head5 = id(new PHUIHeaderView())
  208. ->setHeader(pht('Status Tabs'));
  209. $wrap1 = id(new PHUIBoxView())
  210. ->appendChild($layout1)
  211. ->addMargin(PHUI::MARGIN_LARGE);
  212. $wrap2 = id(new PHUIBoxView())
  213. ->appendChild($layout2)
  214. ->addMargin(PHUI::MARGIN_LARGE);
  215. $wrap3 = id(new PHUIBoxView())
  216. ->appendChild($layout3)
  217. ->addMargin(PHUI::MARGIN_LARGE);
  218. $wrap4 = id(new PHUIBoxView())
  219. ->appendChild($layout4)
  220. ->addMargin(PHUI::MARGIN_LARGE);
  221. $wrap5 = id(new PHUIBoxView())
  222. ->appendChild($layout5)
  223. ->addMargin(PHUI::MARGIN_LARGE);
  224. return phutil_tag(
  225. 'div',
  226. array(
  227. 'class' => 'phui-list-example',
  228. ),
  229. array(
  230. $head1,
  231. $wrap1,
  232. $head2,
  233. $wrap2,
  234. $head3,
  235. $wrap3,
  236. $head5,
  237. $wrap5,
  238. $head4,
  239. $wrap4,
  240. ));
  241. }
  242. }