importfromlib.html.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * The import from lib 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('app', $app->tab);
  12. jsVar('productID', $productID);
  13. jsVar('branch', $branch);
  14. featureBar
  15. (
  16. to::before
  17. (
  18. backBtn
  19. (
  20. $lang->goback,
  21. set::icon('back'),
  22. set::url($this->session->caseList),
  23. set::className('secondary')
  24. ),
  25. picker
  26. (
  27. zui::width('200px'),
  28. set::name('fromlib'),
  29. set::items($libraries),
  30. set::value($libID),
  31. set::required(true),
  32. on::change("toggleLib")
  33. )
  34. )
  35. );
  36. searchForm
  37. (
  38. set::module('testsuite'),
  39. set::simple(true),
  40. set::show(true)
  41. );
  42. $config->testcase->importfromlib->dtable->fieldList['fromModule']['map'] = $libModules;
  43. $config->testcase->importfromlib->dtable->fieldList['branch']['controlItems'] = array();
  44. if($product->type == 'normal') unset($config->testcase->importfromlib->dtable->fieldList['branch']);
  45. foreach($cases as $case)
  46. {
  47. $case->fromModule = $case->module;
  48. $caseBranchItems = array();
  49. $caseBranch = ($branch == 'all' || empty($branch)) ? 0 : $branch;
  50. $canImportBranches = array();
  51. foreach($branches as $branchID => $branchName)
  52. {
  53. if(empty($canImportModules[$branchID][$case->id])) continue;
  54. $caseBranchItems[] = array('text' => $branchName, 'value' => $branchID);
  55. $canImportBranches[$branchID] = $branchID;
  56. }
  57. if(!empty($canImportBranches) && !isset($canImportBranches[$caseBranch])) $caseBranch = key($canImportBranches);
  58. $case->branchItems = $caseBranchItems;
  59. $case->branch = $caseBranch;
  60. if($case->id != key($cases))
  61. {
  62. $case->module = 'ditto';
  63. }
  64. else
  65. {
  66. $case->module = 0;
  67. }
  68. $case->moduleItems = !empty($canImportModules[$caseBranch][$case->id]) ? $canImportModules[$caseBranch][$case->id] : array();
  69. }
  70. $footToolbar = array('items' => array(array('text' => $lang->testcase->import, 'btnType' => 'secondary', 'className' => 'import-btn')));
  71. $sortLink = createLink('testcase', 'importFromLib', "product={$productID}&branch={$branch}&libID={$libID}&orderBy={name}_{sortType}&browseType={$browseType}&queryID={$queryID}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&projectID={$projectID}");
  72. formBase
  73. (
  74. setID('importFromLibForm'),
  75. set::action(createLink('testcase', 'importFromLib', "product={$productID}&branch={$branch}&libID={$libID}")),
  76. set::actions(array()),
  77. dtable
  78. (
  79. set::cols($config->testcase->importfromlib->dtable->fieldList),
  80. set::data($cases),
  81. set::onRenderCell(jsRaw('window.renderModuleItem')),
  82. set::checkable(true),
  83. set::sortLink($sortLink),
  84. set::footToolbar($footToolbar),
  85. set::footPager(usePager()),
  86. set::plugins(array('form'))
  87. )
  88. );
  89. render();