managemembers.html.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <?php
  2. /**
  3. * The manageMembers view file of execution 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 Shujie Tian<tianshujie@easycorp.ltd>
  7. * @package execution
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('roles', $roles);
  12. jsVar('team2Import', $team2Import);
  13. jsVar('executionID', $execution->id);
  14. jsVar('isInModal', isInModal());
  15. /* zin: Define the set::module('team') feature bar on main menu. */
  16. $copyTeamBox = '';
  17. if(count($teams2Import) != 0)
  18. {
  19. $copyTeamBox = div
  20. (
  21. setClass('select-team-box ml-4'),
  22. span
  23. (
  24. set::className('flex items-center team-title'),
  25. $lang->execution->copyTeam
  26. ),
  27. picker
  28. (
  29. set::name('execution'),
  30. set::value($team2Import),
  31. set::items($teams2Import),
  32. set('data-placeholder', $lang->execution->copyTeamTitle),
  33. on::change('choseTeam2Copy')
  34. )
  35. );
  36. }
  37. featureBar
  38. (
  39. set::current('all'),
  40. set::linkParams("executionID={$execution->id}"),
  41. div
  42. (
  43. setClass('select-dept-box ml-4'),
  44. span
  45. (
  46. set::className('flex items-center dept-title'),
  47. $lang->execution->selectDept
  48. ),
  49. picker
  50. (
  51. set::id('dept'),
  52. set::name('dept'),
  53. set::value($dept),
  54. set::items($depts),
  55. set('data-placeholder', $lang->execution->selectDeptTitle),
  56. set::required(true),
  57. on::change('setDeptUsers')
  58. ),
  59. $copyTeamBox
  60. )
  61. );
  62. $memberTR = array();
  63. $i = 0;
  64. foreach($teamMembers as $member)
  65. {
  66. if($member->memberType == 'dept' && !isset($users[$member->account])) continue;
  67. $memberTR[] = h::tr
  68. (
  69. $member->memberType == 'default' ? h::td(input
  70. (
  71. set::id("realname{$i}"),
  72. set::name("realname[$i]"),
  73. set::value($member->realname),
  74. set::readonly(true)
  75. ), input
  76. (
  77. set::id("account{$i}"),
  78. set::name("account[$i]"),
  79. set::value($member->account),
  80. set::type('hidden')
  81. )) : h::td(
  82. picker
  83. (
  84. set::id("account{$i}"),
  85. set::name("account[$i]"),
  86. set::value($member->account),
  87. set::items(array_values($userItems)),
  88. set::maxItemsCount($config->maxCount),
  89. set('onchange', "setRole('{$i}')")
  90. )
  91. ),
  92. h::td
  93. (
  94. input
  95. (
  96. set::id("role{$i}"),
  97. set::name("role[$i]"),
  98. set::value($member->role)
  99. )
  100. ),
  101. h::td
  102. (
  103. input
  104. (
  105. set::id("days{$i}"),
  106. set::name("days[$i]"),
  107. set::value($member->days)
  108. )
  109. ),
  110. h::td
  111. (
  112. input
  113. (
  114. set::id("hours{$i}"),
  115. set::name("hours[$i]"),
  116. set::value($member->hours)
  117. )
  118. ),
  119. h::td
  120. (
  121. radioList
  122. (
  123. set::id("limited{$i}"),
  124. set::name("limited[$i]"),
  125. set::items($lang->team->limitedList),
  126. set::value($member->limited),
  127. set::inline(true)
  128. )
  129. ),
  130. h::td
  131. (
  132. set::className('actions-list'),
  133. btnGroup
  134. (
  135. set::items(array(
  136. array('class' => 'btn btn-link text-gray', 'icon' => 'plus', 'onclick' => 'addItem(this)'),
  137. array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)')
  138. ))
  139. )
  140. )
  141. );
  142. if(in_array($member->memberType, array('default', 'dept'))) $userItems[$member->account]['disabled'] = true;
  143. $i ++;
  144. }
  145. jsVar('+itemIndex', $i);
  146. $i = '_i';
  147. h::table
  148. (
  149. set::className('hidden'),
  150. set::id('addItem'),
  151. h::tr(
  152. h::td(
  153. picker
  154. (
  155. set::id("account{$i}"),
  156. set::name("account[$i]"),
  157. set::items(array_values($userItems)),
  158. set::maxItemsCount($config->maxCount),
  159. set('onchange', "setRole('{$i}')")
  160. )
  161. ),
  162. h::td
  163. (
  164. input
  165. (
  166. set::id("role{$i}"),
  167. set::name("role[$i]")
  168. )
  169. ),
  170. h::td
  171. (
  172. input
  173. (
  174. set::id("days{$i}"),
  175. set::name("days[$i]"),
  176. set::value($execution->days)
  177. )
  178. ),
  179. h::td
  180. (
  181. input
  182. (
  183. set::id("hours{$i}"),
  184. set::name("hours[$i]"),
  185. set::value($config->execution->defaultWorkhours)
  186. )
  187. ),
  188. h::td
  189. (
  190. radioList
  191. (
  192. set::id("limited{$i}"),
  193. set::name("limited[$i]"),
  194. set::items($lang->team->limitedList),
  195. set::value('no'),
  196. set::inline(true)
  197. )
  198. ),
  199. h::td
  200. (
  201. set::className('actions-list'),
  202. btnGroup
  203. (
  204. set::items(array(
  205. array('class' => 'btn btn-link text-gray', 'icon' => 'plus', 'onclick' => 'addItem(this)'),
  206. array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)')
  207. ))
  208. )
  209. )
  210. )
  211. );
  212. div
  213. (
  214. setClass('main-content'),
  215. formPanel
  216. (
  217. setClass('main-form'),
  218. setID('teamForm'),
  219. h::table
  220. (
  221. set::className('table table-form'),
  222. h::thead
  223. (
  224. h::tr
  225. (
  226. h::th
  227. (
  228. $lang->team->account,
  229. set::width('240px')
  230. ),
  231. h::th
  232. (
  233. $lang->team->role,
  234. set::width('240px')
  235. ),
  236. h::th
  237. (
  238. $lang->team->days,
  239. set::width('96px')
  240. ),
  241. h::th
  242. (
  243. $lang->team->hours,
  244. set::width('136px')
  245. ),
  246. h::th
  247. (
  248. $lang->team->limited,
  249. icon
  250. (
  251. setClass('text-light ml-0.5'),
  252. toggle::tooltip(array('title' => $lang->execution->limitedTip)),
  253. 'help'
  254. ),
  255. set::width('120px')
  256. ),
  257. h::th
  258. (
  259. $lang->actions,
  260. set::width('48px')
  261. )
  262. )
  263. ),
  264. h::tbody
  265. (
  266. $memberTR
  267. )
  268. )
  269. )
  270. );
  271. /* ====== Render page ====== */
  272. render();