taskteam.html.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <?php
  2. /**
  3. * The task team view of task of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  6. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Sun Guangming<sunguangming@easycorp.ltd>
  8. * @package task
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. $teamForm = array();
  13. $hiddenArrow = (empty($task->mode) or $task->mode == 'linear') ? '' : 'hidden';
  14. $i = 1;
  15. if(!empty($task->team))
  16. {
  17. foreach($task->team as $member)
  18. {
  19. $memberDisabled = false;
  20. $sortDisabled = false;
  21. $memberStatus = $member->status;
  22. if($memberStatus == 'done') $memberDisabled = true;
  23. if($memberStatus != 'wait' and $task->mode == 'linear') $sortDisabled = true;
  24. if($memberStatus == 'done' and $task->mode == 'multi') $sortDisabled = true;
  25. if(strpos('|closed|cancel|pause|', $task->status) !== false and $app->rawMethod != 'activate')
  26. {
  27. $memberStatus = $task->status;
  28. $memberDisabled = true;
  29. $sortDisabled = true;
  30. }
  31. $hourDisabled = $memberDisabled;
  32. $teamForm[] = h::tr
  33. (
  34. set
  35. (
  36. array
  37. (
  38. 'class' => "member member-$memberStatus",
  39. 'data-estimate' => (float)$member->estimate,
  40. 'data-consumed' => (float)$member->consumed,
  41. 'data-left' => (float)$member->left
  42. )
  43. ),
  44. h::td
  45. (
  46. setClass('team-index'),
  47. span
  48. (
  49. setClass("team-number"),
  50. $i
  51. ),
  52. icon("angle-down $hiddenArrow")
  53. ),
  54. h::td(set::width('240px'), taskAssignedTo
  55. (
  56. set::name("team[]"),
  57. set::items($members),
  58. set::value($member->account),
  59. $memberDisabled ? set::disabled(true) : null,
  60. !empty($manageLink) ? set::manageLink($manageLink) : null
  61. ), formHidden('teamSource[]', $member->account), $memberDisabled ? formHidden('team[]', $member->account) : null),
  62. h::td
  63. (
  64. set::width('135px'),
  65. inputControl
  66. (
  67. input
  68. (
  69. set::name("teamEstimate[]"),
  70. set::value((float)$member->estimate),
  71. $hourDisabled ? set::readonly(true) : null,
  72. set::placeholder($lang->task->estimateAB)
  73. ),
  74. to::suffix($lang->task->suffixHour),
  75. set::suffixWidth(20)
  76. )
  77. ),
  78. h::td
  79. (
  80. set::width('135px'),
  81. inputControl
  82. (
  83. input
  84. (
  85. set::name("teamConsumed[]"),
  86. set::value((float)$member->consumed),
  87. set::readonly(true),
  88. set::placeholder($lang->task->consumedAB)
  89. ),
  90. to::suffix($lang->task->suffixHour),
  91. set::suffixWidth(20)
  92. )
  93. ),
  94. h::td
  95. (
  96. setClass('required'),
  97. set::width('135px'),
  98. inputControl
  99. (
  100. input
  101. (
  102. set::name("teamLeft[]"),
  103. set::value((float)$member->left),
  104. $hourDisabled ? set::readonly(true) : null,
  105. set::placeholder($lang->task->leftAB)
  106. ),
  107. to::suffix($lang->task->suffixHour),
  108. set::suffixWidth(20)
  109. )
  110. ),
  111. h::td
  112. (
  113. set::width('100px'),
  114. setClass('center'),
  115. $memberDisabled ? null : btnGroup
  116. (
  117. set::items(array(
  118. array('icon' => 'plus', 'class' => 'btn ghost btn-add'),
  119. array('icon' => 'trash', 'class' => 'btn ghost btn-delete')
  120. ))
  121. )
  122. )
  123. );
  124. $i ++;
  125. }
  126. }
  127. $count = isset($task->status) && $task->status != 'wait' && $task->status != 'doing' ? 0 : $i + 3;
  128. for($i; $i < $count; $i ++)
  129. {
  130. $teamForm[] = h::tr
  131. (
  132. setClass('member-wait'),
  133. h::td
  134. (
  135. setClass('team-index'),
  136. span
  137. (
  138. setClass("team-number"),
  139. $i
  140. ),
  141. icon("angle-down $hiddenArrow")
  142. ),
  143. h::td
  144. (
  145. set::width('240px'),
  146. taskAssignedTo
  147. (
  148. set::name("team[]"),
  149. set::items($members),
  150. !empty($manageLink) ? set::manageLink($manageLink) : null
  151. )
  152. ),
  153. h::td
  154. (
  155. set::width('135px'),
  156. inputControl
  157. (
  158. input
  159. (
  160. set::name("teamEstimate[]"),
  161. set::placeholder($lang->task->estimateAB)
  162. ),
  163. to::suffix($lang->task->suffixHour),
  164. set::suffixWidth(20)
  165. )
  166. ),
  167. !empty($task->team) ? h::td
  168. (
  169. set::width('135px'),
  170. inputControl
  171. (
  172. input
  173. (
  174. set::name("teamConsumed[]"),
  175. set::value(0),
  176. set::readonly(true),
  177. set::placeholder($lang->task->consumedAB)
  178. ),
  179. to::suffix($lang->task->suffixHour),
  180. set::suffixWidth(20)
  181. )
  182. ) : null,
  183. !empty($task->team) ? h::td
  184. (
  185. setClass('required'),
  186. set::width('135px'),
  187. inputControl
  188. (
  189. input
  190. (
  191. set::name("teamLeft[]"),
  192. set::placeholder($lang->task->leftAB)
  193. ),
  194. to::suffix($lang->task->suffixHour),
  195. set::suffixWidth(20)
  196. )
  197. ) : null,
  198. h::td
  199. (
  200. set::width('100px'),
  201. setClass('center'),
  202. btnGroup
  203. (
  204. set::items(array(
  205. array('icon' => 'plus', 'class' => 'btn ghost btn-add'),
  206. array('icon' => 'trash', 'class' => 'btn ghost btn-delete')
  207. ))
  208. )
  209. )
  210. );
  211. }
  212. if($count == 0 && $app->rawMethod == 'edit')
  213. {
  214. $teamForm[] = h::tr
  215. (
  216. h::td
  217. (
  218. set('colspan', 6),
  219. div
  220. (
  221. setClass('secondary-pale py-4 pl-4'),
  222. sprintf($lang->task->noticeManageTeam, zget($lang->task->statusList, $task->status))
  223. )
  224. )
  225. );
  226. }