taskform.html.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. <?php
  2. /**
  3. * The taskform view file of issue 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 Shujie Tian <tianshujie@easycorp.ltd>
  7. * @package issue
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('teamMemberError', $lang->task->error->teamMember);
  12. jsVar('estimateNotEmpty', sprintf($lang->error->gt, $lang->task->estimate, '0'));
  13. form
  14. (
  15. setID('resolveFrom'),
  16. set::submitBtnText($lang->issue->resolve),
  17. set::actions(array('submit')),
  18. set::url(createLink('issue', 'resolve', "issueID={$issue->id}&from={$from}")),
  19. formGroup
  20. (
  21. set::width('2/3'),
  22. set::label($lang->issue->resolution),
  23. picker
  24. (
  25. set::name('resolution'),
  26. set::items($lang->issue->resolveMethods),
  27. set::value($resolution),
  28. set::required(true),
  29. on::change('getSolutions')
  30. )
  31. ),
  32. formGroup
  33. (
  34. set::width('2/3'),
  35. setClass(!$project->multiple ? 'hidden' : ''),
  36. set::label($lang->task->execution),
  37. set::name('execution'),
  38. set::items($executions),
  39. set::value($issue->execution),
  40. set::required(true),
  41. on::change('loadAll')
  42. ),
  43. formGroup
  44. (
  45. set::width('2/3'),
  46. set::label($lang->task->type),
  47. set::name('type'),
  48. set::items($lang->task->typeList),
  49. set::value($task->type),
  50. set::required(true),
  51. on::change('typeChange')
  52. ),
  53. formRow
  54. (
  55. formGroup
  56. (
  57. set::width('2/3'),
  58. set::label($lang->task->module),
  59. set::required(strpos(",{$config->task->create->requiredFields},", ",module,") !== false),
  60. picker
  61. (
  62. set::name('module'),
  63. set::items($moduleOptionMenu),
  64. set::value($task->module),
  65. set::required(true)
  66. )
  67. ),
  68. formGroup
  69. (
  70. setClass('showAllModuleBox'),
  71. checkbox(set::rootClass('ml-4'), set::text($lang->task->allModule), set::id('showAllModule'), set::name('showAllModule'), set::checked($showAllModule), on::change('loadModules'))
  72. )
  73. ),
  74. formRow
  75. (
  76. formGroup
  77. (
  78. set::width('2/3'),
  79. set::label($lang->task->assignTo),
  80. setClass('assignedToBox'),
  81. picker
  82. (
  83. setID('assignedTo'),
  84. set::name('assignedTo'),
  85. set::items(array()),
  86. set::value($task->assignedTo)
  87. ),
  88. btn
  89. (
  90. set
  91. (
  92. array
  93. (
  94. 'class' => 'btn primary-pale hidden add-team mr-3',
  95. 'data-toggle' => 'modal',
  96. 'url' => '#modalTeam',
  97. 'icon' => 'plus'
  98. )
  99. ),
  100. $lang->task->addMember
  101. ),
  102. div(setClass('assignedToList'))
  103. ),
  104. formGroup
  105. (
  106. setID('multipleBox'),
  107. setClass('items-center'),
  108. checkbox(
  109. set::name('multiple'),
  110. set::text($lang->task->multiple),
  111. set::rootClass('ml-4'),
  112. on::change('toggleTeam')
  113. )
  114. )
  115. ),
  116. formRow
  117. (
  118. formGroup
  119. (
  120. set::width('2/3'),
  121. set::label($lang->task->name),
  122. set::name('name'),
  123. set::value($task->name),
  124. set::required(true)
  125. ),
  126. formGroup
  127. (
  128. set::width('1/3'),
  129. setClass('no-background'),
  130. inputGroup
  131. (
  132. span
  133. (
  134. setClass("input-group-addon"),
  135. $lang->task->pri
  136. ),
  137. priPicker
  138. (
  139. set::name('pri'),
  140. set::value('3'),
  141. set::items(array_filter($lang->task->priList))
  142. ),
  143. span
  144. (
  145. setClass("input-group-addon"),
  146. $lang->task->estimateAB
  147. ),
  148. inputControl
  149. (
  150. input(set::name('estimate')),
  151. to::suffix($lang->task->suffixHour),
  152. set::suffixWidth(20)
  153. )
  154. )
  155. )
  156. ),
  157. formGroup
  158. (
  159. set::label($lang->task->desc),
  160. set::required(strpos(",{$config->task->create->requiredFields},", ",desc,") !== false),
  161. editor
  162. (
  163. set::name('desc'),
  164. set::value($task->desc)
  165. )
  166. ),
  167. formGroup
  168. (
  169. set::width('2/3'),
  170. set::label($lang->task->datePlan),
  171. set::required(strpos(",{$config->task->create->requiredFields},", ",estStarted,") !== false || strpos(",{$config->task->create->requiredFields},", ",deadline,") !== false),
  172. inputGroup
  173. (
  174. datepicker
  175. (
  176. set::control('date'),
  177. set::name('estStarted'),
  178. set::value($task->estStarted),
  179. set::placeholder($lang->task->estStarted)
  180. ),
  181. span
  182. (
  183. setClass('input-group-addon'),
  184. $lang->task->to
  185. ),
  186. datepicker
  187. (
  188. set::control('date'),
  189. set::name('deadline'),
  190. set::value($task->deadline),
  191. set::placeholder($lang->task->deadline)
  192. )
  193. )
  194. ),
  195. formGroup
  196. (
  197. set::width('2/3'),
  198. set::label($lang->issue->resolvedBy),
  199. set::name('resolvedBy'),
  200. set::items($users),
  201. set::value($app->user->account)
  202. ),
  203. formGroup
  204. (
  205. set::width('2/3'),
  206. set::label($lang->issue->resolvedDate),
  207. datePicker
  208. (
  209. set::name('resolvedDate'),
  210. set::value(date('Y-m-d'))
  211. )
  212. ),
  213. formHidden('status', 'wait'),
  214. formHidden('fromIssue', $issue->id),
  215. modal
  216. (
  217. setID('modalTeam'),
  218. set::title($lang->task->addMember),
  219. div
  220. (
  221. setClass('flex items-center w-96 mb-4'),
  222. span(setClass('mr-4 w-16'), $lang->task->mode),
  223. picker
  224. (
  225. set::name("mode"),
  226. set::value("linear"),
  227. set::items($lang->task->modeList),
  228. set::width('150px'),
  229. set::required(true)
  230. )
  231. ),
  232. formBatch
  233. (
  234. set::tagName('div'),
  235. setID('teamTable'),
  236. set::mode('add'),
  237. set::sortable(true),
  238. set::size('sm'),
  239. set::minRows(3),
  240. set::onRenderRow(jsRaw('renderRowData')),
  241. formBatchItem
  242. (
  243. set::name('id'),
  244. set::width('32px'),
  245. set::control('index')
  246. ),
  247. formBatchItem
  248. (
  249. set::name('team'),
  250. set::label($lang->task->teamMember),
  251. set::width('240px'),
  252. set::control('picker'),
  253. set::items(array())
  254. ),
  255. formBatchItem
  256. (
  257. set::name('estimateBox'),
  258. set::label($lang->task->estimateAB),
  259. set::width('135px'),
  260. set::control('inputGroup'),
  261. set::required(true),
  262. inputControl
  263. (
  264. input(set::name("teamEstimate")),
  265. to::suffix($lang->task->suffixHour),
  266. set::suffixWidth(20)
  267. )
  268. ),
  269. set::actions(array(array('text' => $lang->save, 'class' => 'primary team-saveBtn')))
  270. )
  271. )
  272. );