batchedit.html.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. /**
  3. * The batch edit view file of testcase 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 Tingting Dai <daitingting@easycorp.ltd>
  7. * @package testcase
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('branchProduct', $branchProduct);
  12. jsVar('branchOption', zget($branchTagOption, $productID, array()));
  13. jsVar('modulePairs', $modulePairs);
  14. jsVar('scenePairs', $scenePairs);
  15. jsVar('productID', $productID);
  16. jsVar('products', $products);
  17. jsVar('cases', $cases);
  18. if(isset($suhosinInfo))
  19. {
  20. div
  21. (
  22. set::className('alert warning'),
  23. html($suhosinInfo)
  24. );
  25. }
  26. else
  27. {
  28. $visibleFields = array();
  29. $requiredFields = array();
  30. foreach(explode(',', $showFields) as $field)
  31. {
  32. if(!$field) continue;
  33. $visibleFields[$field] = $field;
  34. }
  35. foreach(explode(',', $config->testcase->edit->requiredFields) as $field)
  36. {
  37. if(!$field) continue;
  38. $requiredFields[$field] = $field;
  39. if(strpos(",{$config->testcase->list->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = $field;
  40. }
  41. $items = array();
  42. $items[] = array
  43. (
  44. 'name' => 'id',
  45. 'label' => $lang->idAB,
  46. 'control' => 'hidden',
  47. 'hidden' => true
  48. );
  49. $items[] = array
  50. (
  51. 'name' => 'product',
  52. 'control' => 'hidden'
  53. );
  54. $items[] = array
  55. (
  56. 'name' => 'id',
  57. 'label' => $lang->idAB,
  58. 'control' => 'index',
  59. 'width' => '50px'
  60. );
  61. $items[] = array
  62. (
  63. 'name' => 'pri',
  64. 'label' => $lang->priAB,
  65. 'width' => '100px',
  66. 'control' => array('control' => 'priPicker', 'required' => true),
  67. 'items' => $lang->testcase->priList,
  68. 'ditto' => true,
  69. 'hidden' => !isset($visibleFields['pri']),
  70. 'required' => isset($requiredFields['pri']),
  71. 'defaultDitto' => 'off'
  72. );
  73. $items[] = array
  74. (
  75. 'name' => 'status',
  76. 'label' => $lang->statusAB,
  77. 'width' => '120px',
  78. 'control' => array('control' => 'picker', 'required' => true),
  79. 'items' => $lang->testcase->statusList,
  80. 'hidden' => !isset($visibleFields['status']),
  81. 'required' => isset($requiredFields['status'])
  82. );
  83. $items[] = array
  84. (
  85. 'name' => 'branch',
  86. 'label' => $lang->testcase->branch,
  87. 'width' => '180px',
  88. 'control' => array('control' => 'picker', 'required' => true),
  89. 'items' => zget($branchTagOption, $productID, array()),
  90. 'hidden' => !$branchProduct
  91. );
  92. $items[] = array
  93. (
  94. 'name' => 'module',
  95. 'label' => $lang->testcase->module,
  96. 'width' => '180px',
  97. 'control' => array('control' => 'picker', 'required' => true),
  98. 'items' => array(),
  99. 'hidden' => !isset($visibleFields['module']),
  100. 'required' => isset($requiredFields['module'])
  101. );
  102. $items[] = array
  103. (
  104. 'name' => 'scene',
  105. 'label' => $lang->testcase->scene,
  106. 'width' => '180px',
  107. 'control' => array('control' => 'picker', 'required' => true),
  108. 'items' => array(),
  109. 'hidden' => ($isLibCase || !isset($visibleFields['scene'])),
  110. 'required' => isset($requiredFields['scene'])
  111. );
  112. $items[] = array
  113. (
  114. 'name' => 'story',
  115. 'label' => $lang->testcase->story,
  116. 'control' => 'picker',
  117. 'width' => '180px',
  118. 'ditto' => true,
  119. 'defaultDitto' => 'off',
  120. 'items' => $stories,
  121. 'hidden' => !isset($visibleFields['story']),
  122. 'required' => isset($requiredFields['story'])
  123. );
  124. $items[] = array
  125. (
  126. 'name' => 'title',
  127. 'label' => $lang->testcase->title,
  128. 'control' => 'colorInput',
  129. 'width' => '180px',
  130. 'required' => true
  131. );
  132. unset($lang->testcase->typeList['unit']);
  133. $items[] = array
  134. (
  135. 'name' => 'type',
  136. 'label' => $lang->testcase->type,
  137. 'width' => '140px',
  138. 'control' => array('control' => 'picker', 'required' => true),
  139. 'items' => $lang->testcase->typeList,
  140. 'ditto' => true,
  141. 'required' => isset($requiredFields['type']),
  142. 'defaultDitto' => 'off'
  143. );
  144. $items[] = array
  145. (
  146. 'name' => 'precondition',
  147. 'label' => $lang->testcase->precondition,
  148. 'width' => '180px',
  149. 'control' => 'textarea',
  150. 'hidden' => !isset($visibleFields['precondition']),
  151. 'required' => isset($requiredFields['precondition'])
  152. );
  153. /* Field of steps. */
  154. $items[] = array
  155. (
  156. 'name' => 'steps',
  157. 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row', 'placeholder' => $lang->testcase->stepsPlaceholder),
  158. 'label' => $lang->testcase->steps,
  159. 'width' => '256px',
  160. 'required' => isset($requiredFields['steps'])
  161. );
  162. /* Field of expects. */
  163. $items[] = array
  164. (
  165. 'name' => 'expects',
  166. 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row'),
  167. 'label' => $lang->testcase->expect,
  168. 'width' => '256px',
  169. 'required' => isset($requiredFields['expects'])
  170. );
  171. $items[] = array
  172. (
  173. 'name' => 'keywords',
  174. 'label' => $lang->testcase->keywords,
  175. 'control' => 'input',
  176. 'width' => '180px',
  177. 'hidden' => !isset($visibleFields['keywords']),
  178. 'required' => isset($requiredFields['keywords'])
  179. );
  180. $items[] = array
  181. (
  182. 'name' => 'stage',
  183. 'label' => $lang->testcase->stage,
  184. 'width' => '120px',
  185. 'control' => 'picker',
  186. 'multiple' => true,
  187. 'items' => $lang->testcase->stageList,
  188. 'hidden' => !isset($visibleFields['stage']),
  189. 'required' => isset($requiredFields['stage'])
  190. );
  191. formBatchPanel
  192. (
  193. set::title($lang->testcase->batchEdit),
  194. set::customFields(array('list' => $customFields, 'show' => explode(',', $showFields), 'key' => 'batchEditFields')),
  195. on::change('[data-name="branch"]', 'onBranchChangedForBatch'),
  196. on::change('[data-name="module"]', 'onModuleChangedForBatch'),
  197. set::mode('edit'),
  198. set::data(array_values($cases)),
  199. set::items($items),
  200. set::onRenderRow(jsRaw('handleRenderRow'))
  201. );
  202. }
  203. render();