create.html.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <?php
  2. /**
  3. * The create 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('+projectID', $projectID);
  12. jsVar('copyProjectID', 0);
  13. jsVar('copyExecutionID', 0);
  14. jsVar('isStage', false);
  15. jsVar('window.weekend', $config->execution->weekend);
  16. formPanel
  17. (
  18. set::className('createPanel'),
  19. to::heading(div
  20. (
  21. setClass('panel-title text-lg'),
  22. $lang->execution->create
  23. )),
  24. to::headingActions
  25. (
  26. btn
  27. (
  28. setClass('primary-pale'),
  29. set::icon('copy'),
  30. set::url('#copyExecutionModal'),
  31. set('data-destroyOnHide', true),
  32. set('data-toggle', 'modal'),
  33. $lang->execution->copy
  34. )
  35. ),
  36. on::change('[name=begin]', 'computeWorkDays(NaN)'),
  37. on::change('[name=end]', 'computeWorkDays(NaN)'),
  38. $config->systemMode == 'ALM' ? formGroup
  39. (
  40. set::width('1/2'),
  41. set::label($lang->execution->projectName),
  42. set::required(true),
  43. picker(
  44. setID('project'),
  45. set::name('project'),
  46. set::items($allProjects),
  47. set::value($projectID),
  48. on::change('refreshPage')
  49. )
  50. ) : null,
  51. formGroup
  52. (
  53. set::width('1/2'),
  54. set::name('name'),
  55. set::label($lang->execution->name),
  56. set::value($execution->name)
  57. ),
  58. !empty($config->setCode) ? formGroup
  59. (
  60. set::width('1/2'),
  61. set::name('code'),
  62. set::label($lang->execution->code),
  63. set::value($execution->code)
  64. ) : null,
  65. formRow
  66. (
  67. formGroup
  68. (
  69. set::width('1/2'),
  70. set::label($lang->execution->dateRange),
  71. set::required(true),
  72. inputGroup
  73. (
  74. datePicker
  75. (
  76. set::name('begin'),
  77. set('id', 'begin'),
  78. set::value(date('Y-m-d')),
  79. set::placeholder($lang->execution->begin)
  80. ),
  81. $lang->project->to,
  82. datePicker
  83. (
  84. set::name('end'),
  85. set('id', 'end'),
  86. set::value(''),
  87. set::placeholder($lang->execution->end)
  88. )
  89. )
  90. ),
  91. formGroup
  92. (
  93. radioList
  94. (
  95. set::name('delta'),
  96. set::inline(true),
  97. set::items($lang->execution->endList),
  98. on::change('computeEndDate')
  99. )
  100. )
  101. ),
  102. formGroup
  103. (
  104. set::label($lang->execution->days),
  105. set::width('1/2'),
  106. inputGroup
  107. (
  108. setClass('has-suffix'),
  109. input
  110. (
  111. set::name('days'),
  112. set::value('')
  113. ),
  114. div
  115. (
  116. setClass('input-control-suffix z-50'),
  117. $lang->execution->day
  118. )
  119. )
  120. ),
  121. formGroup
  122. (
  123. set::width('1/2'),
  124. set::label($lang->execution->PM),
  125. picker
  126. (
  127. set::name('PM'),
  128. set::items($pmUsers),
  129. set::value(empty($copyExecution) ? '' : $copyExecution->PM)
  130. )
  131. ),
  132. formGroup
  133. (
  134. set::label($lang->execution->team),
  135. picker
  136. (
  137. set::name('teamMembers[]'),
  138. set::items($users),
  139. set::multiple(true)
  140. )
  141. ),
  142. formGroup
  143. (
  144. set::label($lang->execution->desc),
  145. set::name('desc'),
  146. set::control('editor')
  147. ),
  148. formRow
  149. (
  150. setID('aclList'),
  151. formGroup
  152. (
  153. set::width('1/2'),
  154. set::name('acl'),
  155. set::label($lang->execution->acl),
  156. set::control('radioList'),
  157. set::items($lang->execution->aclList),
  158. set::value($execution->acl),
  159. on::change('setWhite')
  160. )
  161. ),
  162. formGroup
  163. (
  164. set::label($lang->whitelist),
  165. set::id('whitelistBox'),
  166. picker
  167. (
  168. set::name('whitelist[]'),
  169. set::items($users),
  170. set::multiple(true)
  171. )
  172. ),
  173. formHidden('status', 'wait'),
  174. formHidden("products[]", key($allProducts)),
  175. formHidden('PO', ''),
  176. formHidden('QD', ''),
  177. formHidden('RD', ''),
  178. formHidden('type', 'kanban'),
  179. formHidden('vision', 'lite')
  180. );
  181. modalTrigger
  182. (
  183. modal
  184. (
  185. set::id('copyExecutionModal'),
  186. set::footerClass('justify-center'),
  187. to::header
  188. (
  189. div
  190. (
  191. setClass('w-full'),
  192. div
  193. (
  194. h4
  195. (
  196. set::className('copy-title'),
  197. $lang->execution->copyTitle
  198. )
  199. ),
  200. div
  201. (
  202. setClass('flex items-center py-4 border-b border-b-1'),
  203. span
  204. (
  205. setClass('mr-2'),
  206. $lang->execution->selectProject
  207. ),
  208. picker
  209. (
  210. set::className('flex-1 w-full'),
  211. set::name('project'),
  212. set::items($copyProjects),
  213. set::value($projectID),
  214. set::required(true),
  215. on::change('loadProjectExecutions')
  216. )
  217. )
  218. )
  219. ),
  220. to::footer
  221. (
  222. setClass('mt-4'),
  223. btn
  224. (
  225. setClass('primary btn-wide hidden confirmBtn'),
  226. set::text($lang->execution->copyExec),
  227. on::click('setCopyExecution')
  228. )
  229. ),
  230. div
  231. (
  232. set::id('copyExecutions'),
  233. setClass('flex items-center flex-wrap gap-4')
  234. )
  235. )
  236. );