bug.html.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * The bug view file of product plan 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 productplan
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $bugCols = array();
  12. foreach($config->productplan->defaultFields['bug'] as $field) $bugCols[$field] = zget($config->bug->dtable->fieldList, $field, array());
  13. $bugCols['assignedTo']['type'] = 'user';
  14. foreach($bugCols as $bugColKey => $bugCol)
  15. {
  16. $bugCols[$bugColKey]['sortType'] = false;
  17. if(isset($bugCol['link'])) unset($bugCols[$bugColKey]['link']);
  18. if($bugColKey == 'pri') $bugCols[$bugColKey]['priList'] = $lang->bug->priList;
  19. if($bugColKey == 'severity') $bugCols[$bugColKey]['severityList'] = $lang->bug->severityList;
  20. if($bugColKey == 'title') $bugCols[$bugColKey]['link'] = array('url' => createLink('bug', 'view', "bugID={id}"), 'data-toggle' => 'modal', 'data-size' => 'lg');
  21. }
  22. unset($bugCols['actions']);
  23. $productsWithShadow = $this->loadModel('product')->getPairs('', 0, '', 'all');
  24. $productChangeLink = createLink('productplan', 'bug', "productID={productID}&planID=0&blockID=$blockID&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
  25. $planChangeLink = createLink('productplan', 'bug', "productID=$productID&planID={planID}&blockID=$blockID&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
  26. $insertListLink = createLink('productplan', 'bug', "productID=$productID&planID=$planID&blockID={blockID}&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
  27. $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToDoc('#planBugs', 'planBug', $blockID, '$insertListLink')"));
  28. if($from == 'ai') $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToAI('#planBugs', 'bug')"));
  29. formPanel
  30. (
  31. setID('zentaolist'),
  32. setClass('mb-4-important'),
  33. set::title(sprintf($this->lang->doc->insertTitle, $this->lang->doc->zentaoList['planBug'])),
  34. set::actions(array()),
  35. set::showExtra(false),
  36. to::titleSuffix
  37. (
  38. span
  39. (
  40. setClass('text-muted text-sm text-gray-600 font-light'),
  41. span(setClass('text-warning mr-1'), icon('help')),
  42. $lang->doc->previewTip
  43. )
  44. ),
  45. formRow
  46. (
  47. formGroup
  48. (
  49. set::width('1/2'),
  50. set::name('product'),
  51. set::label($lang->doc->product),
  52. set::control(array('required' => false)),
  53. set::items($productsWithShadow),
  54. set::value($productID),
  55. set::required(),
  56. span
  57. (
  58. setClass('error-tip text-danger hidden'),
  59. $lang->doc->emptyError
  60. ),
  61. on::change('[name="product"]')->do("loadModal('$productChangeLink'.replace('{productID}', $(this).val()))")
  62. )
  63. ),
  64. formRow
  65. (
  66. formGroup
  67. (
  68. set::width('1/2'),
  69. set::name('plan'),
  70. set::label($lang->doc->plan),
  71. set::control(array('required' => false)),
  72. set::items($plans),
  73. set::value($planID),
  74. set::required(),
  75. span
  76. (
  77. setClass('error-tip text-danger hidden'),
  78. $lang->doc->emptyError
  79. ),
  80. on::change('[name="plan"]')->do("loadModal('$planChangeLink'.replace('{planID}', $(this).val()))")
  81. )
  82. )
  83. );
  84. dtable
  85. (
  86. setID('planBugs'),
  87. set::userMap($users),
  88. set::checkable(),
  89. set::cols($bugCols),
  90. set::data(array_values($bugs)),
  91. set::noNestedCheck(),
  92. set::orderBy($orderBy),
  93. set::footPager(usePager()),
  94. set::emptyTip($lang->bug->notice->noBug),
  95. set::footToolbar($footToolbar),
  96. set::height(400),
  97. set::afterRender(jsCallback()->call('toggleCheckRows', $idList)),
  98. set::onCheckChange(jsRaw('window.checkedChange'))
  99. );
  100. render();