showimport.html.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /**
  3. * The showimport view file of caselib 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 Yuting Wang <wangyuting@easycorp.ltd>
  7. * @package caselib
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('libID', $libID);
  12. jsVar('newTestcase', $lang->testcase->new);
  13. if(isset($suhosinInfo))
  14. {
  15. div
  16. (
  17. setClass('alert secondary-pale'),
  18. html($suhosinInfo)
  19. );
  20. }
  21. elseif(empty($maxImport) && $totalAmount > $this->config->file->maxImport)
  22. {
  23. $importActions[] = array('id' => 'import', 'type' => 'primary', 'text' => $lang->import);
  24. $maxImportInput = html::input('maxImport', $config->file->maxImport, "style='width:50px' class='border'");
  25. panel
  26. (
  27. on::change('#maxImport', 'computeImportTimes'),
  28. on::click('#import', 'importNextPage'),
  29. set::title($lang->caselib->import),
  30. html(sprintf($lang->file->importSummary, $totalAmount, $maxImportInput, ceil($totalAmount / $config->file->maxImport))),
  31. set::footerActions($importActions)
  32. );
  33. }
  34. else
  35. {
  36. $items[] = array
  37. (
  38. 'name' => 'id',
  39. 'label' => $lang->idAB,
  40. 'control' => 'index',
  41. 'width' => '50px'
  42. );
  43. $items[] = array
  44. (
  45. 'name' => 'lib',
  46. 'control' => 'hidden',
  47. 'value' => $libID,
  48. );
  49. $items[] = array
  50. (
  51. 'name' => 'title',
  52. 'label' => $lang->testcase->title,
  53. 'width' => '240px'
  54. );
  55. $items[] = array
  56. (
  57. 'name' => 'module',
  58. 'label' => $lang->testcase->module,
  59. 'control' => 'picker',
  60. 'items' => $modules,
  61. 'width' => '200px'
  62. );
  63. $items[] = array
  64. (
  65. 'name' => 'type',
  66. 'label' => $lang->testcase->type,
  67. 'control' => 'picker',
  68. 'items' => $lang->testcase->typeList,
  69. 'required' => true,
  70. 'width' => '160px'
  71. );
  72. $items[] = array
  73. (
  74. 'name' => 'pri',
  75. 'label' => $lang->testcase->pri,
  76. 'control' => 'pripicker',
  77. 'items' => $lang->testcase->priList,
  78. 'width' => '80px'
  79. );
  80. $items[] = array
  81. (
  82. 'name' => 'precondition',
  83. 'label' => $lang->testcase->precondition,
  84. 'control' => 'textarea',
  85. 'width' => '240px'
  86. );
  87. $items[] = array
  88. (
  89. 'name' => 'keywords',
  90. 'label' => $lang->testcase->keywords,
  91. 'width' => '240px'
  92. );
  93. $items[] = array
  94. (
  95. 'name' => 'stage',
  96. 'label' => $lang->testcase->stage,
  97. 'control' => 'picker',
  98. 'multiple' => true,
  99. 'items' => $lang->testcase->stageList,
  100. 'width' => '240px'
  101. );
  102. /* Field of steps. */
  103. $items[] = array
  104. (
  105. 'name' => 'steps',
  106. 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row', 'placeholder' => $lang->testcase->stepsPlaceholder),
  107. 'label' => $lang->testcase->steps,
  108. 'width' => '256px',
  109. 'required' => isset($requiredFields['steps'])
  110. );
  111. /* Field of expects. */
  112. $items[] = array
  113. (
  114. 'name' => 'expects',
  115. 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row'),
  116. 'label' => $lang->testcase->expect,
  117. 'width' => '256px',
  118. 'required' => isset($requiredFields['expects'])
  119. );
  120. $insert = true;
  121. foreach($caseData as $key => $case)
  122. {
  123. if(empty($case->id) || !isset($cases[$case->id]))
  124. {
  125. $case->new = true;
  126. $case->id = $key;
  127. }
  128. else
  129. {
  130. $insert = false;
  131. if(!isset($case->module)) $case->module = $cases[$case->id]->module;
  132. if(!isset($case->pri)) $case->pri = $cases[$case->id]->pri;
  133. if(!isset($case->type)) $case->type = $cases[$case->id]->type;
  134. if(empty($case->stage)) $case->stage = $cases[$case->id]->stage;
  135. }
  136. }
  137. $submitText = $isEndPage ? $this->lang->save : $this->lang->file->saveAndNext;
  138. formBatchPanel
  139. (
  140. set::title($lang->caselib->import),
  141. set::items($items),
  142. set::data(array_values($caseData)),
  143. set::mode('edit'),
  144. set::actionsText(false),
  145. set::onRenderRow(jsRaw('handleRenderRow')),
  146. input(set::className('hidden'), set::name('isEndPage'), set::value($isEndPage ? '1' : '0')),
  147. input(set::className('hidden'), set::name('pageID'), set::value($pageID)),
  148. input(set::className('hidden'), set::name('insert'), set::value($dataInsert)),
  149. (!$insert && $dataInsert === '') ? set::actions(array(array('text' => $submitText, 'data-toggle' => 'modal', 'data-target' => '#importNoticeModal', 'class' => 'primary showNotice'), 'cancel')) : set::submitBtnText($submitText)
  150. );
  151. if(!$insert && $dataInsert === '') include '../../common/ui/noticeimport.html.php';
  152. }
  153. render();