linkcase.html.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * The browse view file of testsuite 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 testsuite
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $items = array();
  12. foreach($lang->testtask->featureBar['linkcase'] as $key => $label)
  13. {
  14. if($key == 'bysuite' && !helper::hasFeature('testsuite')) continue;
  15. $isActive = $key == $type;
  16. if($key == 'bysuite' || $key == 'bybuild')
  17. {
  18. if($isActive) $label = $key == 'bysuite' ? $suites[$param]->name : zget($relatedTasks, $param);
  19. $subItems = array();
  20. $dataList = $key == 'bysuite' ? $suites : $relatedTasks;
  21. if($dataList)
  22. {
  23. foreach($dataList as $dataID => $data)
  24. {
  25. $text = $key == 'bysuite' ? $data->name : $data;
  26. if($key == 'bysuite' && $data->type == 'public') $text .= " ({$lang->testsuite->authorList[$data->type]})";
  27. $subItems[] = array
  28. (
  29. 'text' => $text,
  30. 'active' => $key == $type && $dataID == $param,
  31. 'url' => createLink('testtask', 'linkCase', "taskID={$task->id}&type={$key}&param={$dataID}"),
  32. 'badge' => $dataID == $param && !empty($pager->recTotal) ? array('text' => $pager->recTotal, 'class' => 'size-sm rounded-full white') : null,
  33. 'props' => ['data-id' => $text, 'data-load' => 'table']
  34. );
  35. }
  36. }
  37. else
  38. {
  39. $subItems[] = array ('text' => $key == 'bysuite' ? $lang->testsuite->noticeNone : $lang->testtask->noticeNoOther);
  40. }
  41. $items[] = array
  42. (
  43. 'text' => $label,
  44. 'active' => $isActive,
  45. 'type' => 'dropdown',
  46. 'caret' => 'down',
  47. 'items' => $subItems,
  48. 'badge' => $isActive && !empty($pager->recTotal) ? array('text' => $pager->recTotal, 'class' => 'size-sm rounded-full white') : null,
  49. 'props' => array('data-id' => $label)
  50. );
  51. }
  52. else
  53. {
  54. $items[] = array
  55. (
  56. 'text' => $label,
  57. 'active' => $isActive,
  58. 'url' => createLink('testtask', 'linkCase', "taskID={$task->id}&type={$key}"),
  59. 'badge' => $isActive && !empty($pager->recTotal) ? array('text' => $pager->recTotal, 'class' => 'size-sm rounded-full white') : null,
  60. 'props' => ['data-id' => $label, 'data-load' => 'table']
  61. );
  62. }
  63. }
  64. featureBar
  65. (
  66. set::items($items),
  67. set::current($type),
  68. set::linkParams("taskID={$task->id}&type={key}"),
  69. to::before(backBtn(set::icon('back'), set::className('btn secondary'), $lang->goback)),
  70. li(searchToggle(set::module('testcase'), set::open(true)))
  71. );
  72. $footToolbar = array('items' => array
  73. (
  74. array('text' => $lang->save, 'className' => 'batch-btn ajax-btn', 'data-url' => helper::createLink('testtask', 'linkCase', "taskID={$task->id}&type={$type}&param={$param}"))
  75. ), 'btnProps' => array('size' => 'sm', 'btnType' => 'secondary'));
  76. div
  77. (
  78. set('class', 'mb-2'),
  79. icon('unlink'),
  80. span
  81. (
  82. set('class', 'font-semibold ml-2'),
  83. $lang->testtask->unlinkedCases . "({$pager->recTotal})"
  84. )
  85. );
  86. foreach($config->testtask->linkcase->dtable->fieldList as $field => $fieldConfig) $config->testtask->linkcase->dtable->fieldList[$field]['sort'] = true;
  87. dtable
  88. (
  89. set::extraHeight('+28'),
  90. set::userMap($users),
  91. set::data(array_values($cases)),
  92. set::cols($config->testtask->linkcase->dtable->fieldList),
  93. set::fixedLeftWidth('33%'),
  94. set::plugins(array('form')),
  95. set::checkable(true),
  96. set::footToolbar($footToolbar),
  97. set::onRenderCell(jsRaw('window.renderCell')),
  98. set::footPager(usePager())
  99. );
  100. render();