managemembers.html.php 7.2 KB

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