batchedit.html.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. /**
  3. * The batchEdit view file of bug 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 Mengyi Liu <liumengyi@easycorp.ltd>
  7. * @package bug
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('tab', $app->tab);
  12. jsVar('modules', $modules);
  13. jsVar('products', $products);
  14. jsVar('branchTagOption', $branchTagOption);
  15. jsVar('executionMembers', isset($executionMembers) ? $executionMembers : array());
  16. jsVar('projectMembers', isset($projectMembers) ? $projectMembers : array());
  17. jsVar('productMembers', isset($productMembers) ? $productMembers : array());
  18. jsVar('isBranchProduct', $branchProduct ? 1 : 0);
  19. jsVar('noProductProjects', $noProductProjects);
  20. jsVar('noSprintProjects', $noSprintProjects);
  21. jsVar('deletedProjects', $deletedProjects);
  22. jsVar('deletedExecutions', $deletedExecutions);
  23. jsVar('projectExecutions', $projectExecutions);
  24. jsVar('productProjects', $productProjects);
  25. jsVar('productExecutions', $productExecutions);
  26. jsVar('productOpenedBuilds', $productOpenedBuilds);
  27. jsVar('projectOpenedBuilds', $projectOpenedBuilds);
  28. jsVar('executionOpenedBuilds', $executionOpenedBuilds);
  29. $visibleFields = array();
  30. $requiredFields = array();
  31. foreach(explode(',', $config->bug->custom->batchEditFields) as $field)
  32. {
  33. if($field) $visibleFields[$field] = '';
  34. }
  35. foreach(explode(',', $config->bug->edit->requiredFields) as $field)
  36. {
  37. if($field)
  38. {
  39. $requiredFields[$field] = '';
  40. if(strpos(",{$config->bug->list->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = '';
  41. }
  42. }
  43. $assignedToList = array_merge($users, array('closed' => 'Closed'));
  44. formBatchPanel
  45. (
  46. set::title($lang->bug->batchEdit),
  47. set::mode('edit'),
  48. set::data(array_values($bugs)),
  49. set::onRenderRow(jsRaw('renderRowData')),
  50. on::change('[data-name="project"]', 'projectChange'),
  51. on::change('[data-name="execution"]', 'executionChange'),
  52. on::change('[data-name="branch"]', 'branchChange'),
  53. on::change('[data-name="resolution"]', 'setDuplicate'),
  54. /* Field of id. */
  55. formBatchItem
  56. (
  57. set::name('id'),
  58. set::label($lang->idAB),
  59. set::control('hidden'),
  60. set::hidden(true)
  61. ),
  62. /* Field of id index. */
  63. formBatchItem
  64. (
  65. set::name('id'),
  66. set::label($lang->idAB),
  67. set::control('index'),
  68. set::width('50px')
  69. ),
  70. /* Field of project. */
  71. formBatchItem
  72. (
  73. set::name('project'),
  74. set::label($lang->bug->project),
  75. set::control('picker'),
  76. set::items(array()),
  77. set::width('200px')
  78. ),
  79. /* Field of execution. */
  80. formBatchItem
  81. (
  82. set::name('execution'),
  83. set::label($lang->bug->execution),
  84. set::control('picker'),
  85. set::items(array()),
  86. set::width('200px')
  87. ),
  88. /* Field of type. */
  89. formBatchItem
  90. (
  91. set::name('type'),
  92. set::label($lang->typeAB),
  93. set::hidden(zget($visibleFields, 'type', true, false)),
  94. set::control('picker'),
  95. set::items($lang->bug->typeList),
  96. set::width('160px'),
  97. set::required(isset($requiredFields['type'])),
  98. set::ditto(true),
  99. set::defaultDitto('off')
  100. ),
  101. /* Field of severity. */
  102. formBatchItem
  103. (
  104. set::name('severity'),
  105. set::label($lang->bug->severity),
  106. set::hidden(zget($visibleFields, 'severity', true, false)),
  107. set::control(array('control' => 'severityPicker', 'required' => true)),
  108. set::items($lang->bug->severityList),
  109. set::width('80px'),
  110. set::required(isset($requiredFields['severity']))
  111. ),
  112. /* Field of pri. */
  113. formBatchItem
  114. (
  115. set::name('pri'),
  116. set::label($lang->bug->pri),
  117. set::hidden(zget($visibleFields, 'pri', true, false)),
  118. set::control(array('control' => 'priPicker', 'required' => true)),
  119. set::items($lang->bug->priList),
  120. set::width('80px'),
  121. set::required(isset($requiredFields['pri']))
  122. ),
  123. /* Field of title. */
  124. formBatchItem
  125. (
  126. set::name('title'),
  127. set::control('colorInput'),
  128. set::label($lang->bug->title),
  129. set::width('240px'),
  130. set::required(true)
  131. ),
  132. /* Field of branch. */
  133. formBatchItem
  134. (
  135. set::name('branch'),
  136. set::label($lang->bug->branch),
  137. set::control('picker'),
  138. set::items(array()),
  139. set::width('200px'),
  140. set::required(isset($requiredFields['branch'])),
  141. set::hidden(!$branchProduct)
  142. ),
  143. /* Field of module. */
  144. formBatchItem
  145. (
  146. set::name('module'),
  147. set::label($lang->bug->module),
  148. set::control('picker'),
  149. set::items(array()),
  150. set::width('200px'),
  151. set::required(isset($requiredFields['module'])),
  152. set::ditto(true),
  153. set::defaultDitto('off')
  154. ),
  155. /* Field of openedBuild. */
  156. formBatchItem
  157. (
  158. set::name('openedBuild'),
  159. set::label($lang->bug->openedBuild),
  160. set::control('picker'),
  161. set::items(array()),
  162. set::width('200px'),
  163. set::multiple(true)
  164. ),
  165. /* Field of plan. */
  166. formBatchItem
  167. (
  168. set::name('plan'),
  169. set::label($lang->bug->plan),
  170. set::control(array('control' => 'picker', 'required' => false)),
  171. set::items(array()),
  172. set::width('200px'),
  173. set::required(isset($requiredFields['plan'])),
  174. set::ditto(true),
  175. set::defaultDitto('off')
  176. ),
  177. /* Field of assignedTo. */
  178. formBatchItem
  179. (
  180. set::name('assignedTo'),
  181. set::label($lang->bug->assignedTo),
  182. set::control('picker'),
  183. set::items($assignedToList),
  184. set::width('200px'),
  185. set::required(isset($requiredFields['assignedTo'])),
  186. set::ditto(true),
  187. set::defaultDitto('off')
  188. ),
  189. /* Field of deadline. */
  190. formBatchItem
  191. (
  192. set::name('deadline'),
  193. set::label($lang->bug->deadline),
  194. set::hidden(zget($visibleFields, 'deadline', true, false)),
  195. set::control('date'),
  196. set::width('128px'),
  197. set::required(isset($requiredFields['deadline']))
  198. ),
  199. /* Field of os. */
  200. formBatchItem
  201. (
  202. set::name('os'),
  203. set::label($lang->bug->os),
  204. set::hidden(zget($visibleFields, 'os', true, false)),
  205. set::control('picker'),
  206. set::items($lang->bug->osList),
  207. set::multiple(true),
  208. set::width('200px'),
  209. set::required(isset($requiredFields['os']))
  210. ),
  211. /* Field of browser. */
  212. formBatchItem
  213. (
  214. set::name('browser'),
  215. set::label($lang->bug->browser),
  216. set::hidden(zget($visibleFields, 'browser', true, false)),
  217. set::control('picker'),
  218. set::items($lang->bug->browserList),
  219. set::multiple(true),
  220. set::width('200px'),
  221. set::required(isset($requiredFields['browser']))
  222. ),
  223. /* Field of keywords. */
  224. formBatchItem
  225. (
  226. set::name('keywords'),
  227. set::label($lang->bug->keywords),
  228. set::hidden(zget($visibleFields, 'keywords', true, false)),
  229. set::width('200px'),
  230. set::required(isset($requiredFields['keywords']))
  231. ),
  232. /* Field of resolvedBy. */
  233. formBatchItem
  234. (
  235. set::name('resolvedBy'),
  236. set::label($lang->bug->resolvedBy),
  237. set::control('picker'),
  238. set::items($users),
  239. set::width('200px'),
  240. set::required(isset($requiredFields['resolvedBy'])),
  241. set::ditto(true),
  242. set::defaultDitto('off')
  243. ),
  244. /* Field of resolution. */
  245. formBatchItem
  246. (
  247. set::label($lang->bug->resolution),
  248. set::width('220px'),
  249. set::name('resolutionBox'),
  250. set::control('inputGroup'),
  251. inputGroup
  252. (
  253. picker
  254. (
  255. set::name('resolution'),
  256. set::items($lang->bug->resolutionList),
  257. set::required(isset($requiredFields['resolution']))
  258. ),
  259. picker
  260. (
  261. setClass('duplicate-select hidden'),
  262. set::name('duplicateBug'),
  263. set::items(array()),
  264. set::placeholder($lang->bug->placeholder->duplicate),
  265. set::required(true)
  266. )
  267. )
  268. ),
  269. formBatchItem
  270. (
  271. set::name('product'),
  272. set::hidden(true)
  273. )
  274. );
  275. render();