batchedit.html.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?php
  2. /**
  3. * The batchedit view file of task 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 task
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. /* ====== Preparing and processing page data ====== */
  12. $noPauseStatusList = array();
  13. foreach($lang->task->statusList as $status => $label)
  14. {
  15. if ($status == 'pause') continue;
  16. $noPauseStatusList[] = array('text' => $label, 'value' => $status, 'key' => $label);
  17. }
  18. /* zin: Set variables to define picker options for form. */
  19. jsVar('executionTeams', $executionTeams);
  20. jsVar('users', $users);
  21. jsVar('teams', $teams);
  22. jsVar('currentUser', $app->user->account);
  23. jsVar('moduleGroup', $moduleGroup);
  24. jsVar('executionID', $executionID);
  25. jsVar('childTasks', $childTasks);
  26. jsVar('nonStoryChildTasks', $nonStoryChildTasks);
  27. jsVar('childrenDateLimit', $childrenDateLimit);
  28. jsVar('tasks', $tasks);
  29. jsVar('noPauseStatusList', $noPauseStatusList);
  30. jsVar('stories', $stories);
  31. jsVar('syncStoryToChildrenTip', $lang->task->syncStoryToChildrenTip);
  32. jsVar('parentTasks', $parentTasks);
  33. jsVar('manageLinkList', $manageLinkList);
  34. jsVar('noSprintPairs', $noSprintPairs);
  35. jsVar('ignoreLang', $lang->project->ignore);
  36. jsVar('overParentEstStartedLang', $lang->task->overParentEsStarted);
  37. jsVar('overParentDeadlineLang', $lang->task->overParentDeadline);
  38. jsVar('overChildEstStartedLang', $lang->task->overChildEstStarted);
  39. jsVar('overChildDeadlineLang', $lang->task->overChildDeadline);
  40. jsVar('manageTeamMemberText', $lang->execution->manageTeamMember);
  41. jsVar('taskDateLimit', empty($project) ? '' : $project->taskDateLimit);
  42. /* ====== Define the page structure with zin widgets ====== */
  43. formBatchPanel
  44. (
  45. set::title($lang->task->batchEdit),
  46. set::mode('edit'),
  47. set::data(array_values($tasks)),
  48. set::onRenderRow(jsRaw('renderRowData')),
  49. set::customFields(array('list' => $customFields, 'show' => explode(',', $showFields), 'key' => 'batchEditFields')),
  50. set::ajax(array('beforeSubmit' => jsRaw('clickSubmit'))),
  51. on::change('[data-name="status"]', 'statusChange'),
  52. on::change('[data-name="estStarted"], [data-name="deadline"]', 'checkBatchEstStartedAndDeadline'),
  53. on::change('[data-name="module"]', 'setStories'),
  54. on::change('input[name^=story]', 'setStoryRelated'),
  55. on::change('[data-name="estimate"],[data-name="consumed"]', 'computeForParent'),
  56. on::click('[data-name=story] [data-type=ditto]', 'setStoryRelated'),
  57. set::formID('taskBatchEditForm' . $executionID),
  58. formBatchItem
  59. (
  60. set::name('id'),
  61. set::label($lang->idAB),
  62. set::control('hidden'),
  63. set::hidden(true)
  64. ),
  65. formBatchItem
  66. (
  67. set::name('id'),
  68. set::label($lang->idAB),
  69. set::control('index'),
  70. set::width('64px')
  71. ),
  72. formBatchItem
  73. (
  74. set::name('name'),
  75. set::control('colorInput'),
  76. set::label($lang->task->name),
  77. set::width('240px')
  78. ),
  79. formBatchItem
  80. (
  81. set::name('module'),
  82. set::label($lang->task->module),
  83. set::control('picker'),
  84. set::items($modules),
  85. set::width('200px'),
  86. set::ditto(true),
  87. set::defaultDitto('off')
  88. ),
  89. $executionID && $execution->lifetime == 'ops' ? null : formBatchItem
  90. (
  91. set::name('story'),
  92. set::label($lang->task->story),
  93. set::control('picker'),
  94. set::items(array()),
  95. set::width('300px'),
  96. set::ditto(true),
  97. set::defaultDitto('off')
  98. ),
  99. formBatchItem
  100. (
  101. set::name('assignedTo'),
  102. set::label($lang->task->assignedTo),
  103. set::control(array('control' => 'taskAssignedTo')),
  104. set::items(array()),
  105. set::width('128px'),
  106. set::ditto(true),
  107. set::defaultDitto('off')
  108. ),
  109. formBatchItem
  110. (
  111. set::name('type'),
  112. set::label($lang->task->type),
  113. set::control('picker'),
  114. set::items($lang->task->typeList),
  115. set::width('128px'),
  116. set::ditto(true),
  117. set::defaultDitto('off')
  118. ),
  119. formBatchItem
  120. (
  121. set::name('status'),
  122. set::label($lang->task->status),
  123. set::control('picker'),
  124. set::items($lang->task->statusList),
  125. set::width('128px'),
  126. set::ditto(true),
  127. set::defaultDitto('off')
  128. ),
  129. formBatchItem
  130. (
  131. set::name('estStarted'),
  132. set::label($lang->task->estStarted),
  133. set::control('date'),
  134. set::width('128px')
  135. ),
  136. formBatchItem
  137. (
  138. set::name('deadline'),
  139. set::label($lang->task->deadline),
  140. set::control('date'),
  141. set::width('128px')
  142. ),
  143. formBatchItem
  144. (
  145. set::name('pri'),
  146. set::label($lang->task->pri),
  147. set::control('priPicker'),
  148. set::ditto(true),
  149. set::items($lang->task->priList),
  150. set::width('110px'),
  151. set::defaultDitto('off')
  152. ),
  153. formBatchItem
  154. (
  155. set::name('estimate'),
  156. set::label($lang->task->estimateAB),
  157. set::width('64px'),
  158. set::control
  159. (
  160. array(
  161. 'type' => 'inputControl',
  162. 'suffix' => $lang->task->suffixHour,
  163. 'suffixWidth' => 20
  164. )
  165. )
  166. ),
  167. formBatchItem
  168. (
  169. set::name('consumed'),
  170. set::label($lang->task->consumedThisTime),
  171. set::width('64px'),
  172. set::control
  173. (
  174. array(
  175. 'type' => 'inputControl',
  176. 'suffix' => $lang->task->suffixHour,
  177. 'suffixWidth' => 20
  178. )
  179. )
  180. ),
  181. formBatchItem
  182. (
  183. set::name('left'),
  184. set::label($lang->task->leftAB),
  185. set::width('64px'),
  186. set::control
  187. (
  188. array(
  189. 'type' => 'inputControl',
  190. 'suffix' => $lang->task->suffixHour,
  191. 'suffixWidth' => 20
  192. )
  193. )
  194. )
  195. );
  196. /* ====== Render page ====== */
  197. render();