browsegroup.html.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?php
  2. /**
  3. * The browsegroup view file of tree module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Tingting Dai <daitingting@easycorp.ltd>
  7. * @package tree
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('rootID', $rootID);
  12. jsVar('viewType', 'chart');
  13. h:css('#treeEditor-tree-browsegroup .tree-item-inner>.toolbar {margin-left: 0;}');
  14. $rootGroup = new stdclass();
  15. $rootGroup->id = 0;
  16. $rootGroup->name = $lang->chart->allGroup;
  17. array_unshift($parentModules, $rootGroup);
  18. $parentPath = array();
  19. foreach($parentModules as $group)
  20. {
  21. $parentPath[] = div
  22. (
  23. setClass('row flex-nowrap items-center'),
  24. a
  25. (
  26. setClass('tree-link text-clip'),
  27. set('href', helper::createLink('tree', 'browsegroup', "dimensionID=$dimensionID&groupID={$group->id}&type={$viewType}")),
  28. set('data-app', $app->tab),
  29. set::title($group->name),
  30. $group->name
  31. ),
  32. h::i
  33. (
  34. setClass('icon icon-angle-right muted align-middle'),
  35. setStyle('color', '#313C52')
  36. )
  37. );
  38. }
  39. /* Generate module rows. */
  40. $maxOrder = 0;
  41. $moduleRows = array();
  42. foreach($sons as $son)
  43. {
  44. if($son->order > $maxOrder) $maxOrder = $son->order;
  45. $moduleRows[] = formRow
  46. (
  47. formGroup
  48. (
  49. inputGroup
  50. (
  51. setClass('row-module'),
  52. input
  53. (
  54. setClass('col-module'),
  55. set::name("modules[id$son->id]"),
  56. set::type('input'),
  57. set::value($son->name),
  58. set::placeholder($lang->tree->groupName)
  59. ),
  60. input
  61. (
  62. setClass('col-short'),
  63. set::name("shorts[id$son->id]"),
  64. set::type('input'),
  65. set::value($son->short),
  66. set::placeholder($lang->tree->short)
  67. ),
  68. input
  69. (
  70. setClass('hidden'),
  71. set::name("order[id$son->id]"),
  72. set::value($son->order),
  73. set::control('hidden')
  74. )
  75. ),
  76. batchActions
  77. (
  78. set::actionClass('action-group child-hidden')
  79. )
  80. )
  81. );
  82. }
  83. for($i = 0; $i < \tree::NEW_CHILD_COUNT; $i ++)
  84. {
  85. $moduleRows[] = formRow
  86. (
  87. formGroup
  88. (
  89. inputGroup
  90. (
  91. setClass('row-module'),
  92. input
  93. (
  94. setClass('col-module'),
  95. set::name("modules[$i]"),
  96. set::type('input'),
  97. set::value(''),
  98. set::placeholder($lang->tree->groupName)
  99. ),
  100. input
  101. (
  102. setClass('col-short'),
  103. set::name("shorts[$i]"),
  104. set::type('input'),
  105. set::placeholder($lang->tree->short)
  106. )
  107. ),
  108. batchActions
  109. (
  110. set::actionClass('action-group')
  111. )
  112. )
  113. );
  114. }
  115. div
  116. (
  117. setClass('flex gap-x-4 mb-3'),
  118. backBtn
  119. (
  120. set::icon('back'),
  121. set::type('secondary'),
  122. set::url($gobackLink),
  123. $lang->goback
  124. ),
  125. div
  126. (
  127. setClass('entity-label flex items-center gap-x-2 text-lg font-bold'),
  128. $lang->chart->manageGroup
  129. )
  130. );
  131. div
  132. (
  133. setClass('row gap-4 mt-2'),
  134. sidebar
  135. (
  136. set::toggleBtn(false),
  137. set::width(400),
  138. set::minWidth(350),
  139. set::maxWidth(550),
  140. panel
  141. (
  142. set::title($title),
  143. treeEditor
  144. (
  145. set('selected', $currentModuleID),
  146. set('type', $viewType),
  147. set('items', $tree),
  148. set('canEdit', hasPriv('tree', 'edit')),
  149. set('canDelete', hasPriv('tree', 'delete')),
  150. set::sortable(array('handle' => '.icon-move')),
  151. set::onSort(jsRaw('window.updateOrder'))
  152. )
  153. )
  154. ),
  155. div
  156. (
  157. setClass('flex-auto'),
  158. setID('modulePanel'),
  159. panel
  160. (
  161. setClass('pb-4'),
  162. set::title($lang->chart->manageGroup),
  163. div
  164. (
  165. setClass('flex'),
  166. div
  167. (
  168. setClass('pr-2 tree-item-content row items-center'),
  169. setStyle('max-width', '380px'),
  170. setStyle('padding-bottom', '48px'),
  171. $parentPath
  172. ),
  173. form
  174. (
  175. setClass('flex-1 form-horz'),
  176. set::url(helper::createLink('tree', 'manageChild', "root=$dimensionID&viewType=$viewType")),
  177. set('data-app', $app->tab),
  178. $moduleRows,
  179. set::actionsClass('justify-start'),
  180. set::submitBtnText($lang->save),
  181. input
  182. (
  183. set::type('hidden'),
  184. set::name('parentModuleID'),
  185. set::value($currentModuleID),
  186. set::control('hidden')
  187. ),
  188. input
  189. (
  190. set::type('hidden'),
  191. set::name('maxOrder'),
  192. set::value($maxOrder),
  193. set::control('hidden')
  194. )
  195. )
  196. )
  197. )
  198. )
  199. );
  200. render();