mergebyline.html.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * The mergebyline mode view file of upgrade 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 upgrade
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $getMergeData = function($data)
  12. {
  13. global $lang;
  14. include_once('createprogram.html.php');
  15. $checkBoxGroup = array();
  16. foreach($data->productlines as $line)
  17. {
  18. $lineGroups = array();
  19. foreach($data->lineGroups[$line->id] as $productID => $product)
  20. {
  21. $productGroups = array();
  22. if(isset($data->productGroups[$productID]))
  23. {
  24. foreach($data->productGroups[$productID] as $sprint)
  25. {
  26. $productGroups[] = div
  27. (
  28. setClass('sprintItem mb-2'),
  29. checkbox(setID("sprints-{$line->id}-{$productID}-{$sprint->id}"), set::name("sprints[$line->id][$productID][]"), set::text($sprint->name), set::value($sprint->id), setData(array('on' => 'change', 'call' => 'changeSprints', 'params' => 'event', 'line' => $line->id, 'product' => $productID, 'begin' => $sprint->begin, 'end' => $sprint->end, 'status' => $sprint->status, 'pm' => $sprint->PM))),
  30. input(setClass('hidden'), set::name("sprintIdList[$line->id][$productID][$sprint->id]"), set::value($sprint->id))
  31. );
  32. }
  33. }
  34. $lineGroups[] = div
  35. (
  36. setClass('flex mb-2'),
  37. cell
  38. (
  39. set::width('1/2'),
  40. setClass('productItem p-4 overflow-hidden'),
  41. set::style(array('background-color' => 'var(--color-gray-50)')),
  42. checkbox(setID("products-{$line->id}-{$productID}"), set::name("products[{$line->id}][]"), set::text($product->name), set::value($productID), setData(array('on' => 'change', 'call' => 'changeProducts', 'params' => 'event', 'line' => $line->id, 'productid' => $productID, 'begin' => $product->createdDate, 'programid' => $product->program))),
  43. input(setClass('hidden'), set::name("productIdList[$line->id][$productID]"), set::value($productID))
  44. ),
  45. cell
  46. (
  47. set::width('1/2'),
  48. setClass('p-4 overflow-hidden'),
  49. set::style(array('background-color' => 'var(--color-gray-50)')),
  50. $productGroups
  51. )
  52. );
  53. }
  54. $checkBoxGroup[] = div
  55. (
  56. setClass('flex'),
  57. cell(set::width('1/3'), setClass('productList px-4 flex items-center border-t mr-2 overflow-hidden'), set::style(array('background-color' => 'var(--color-gray-50)')), checkbox(setID("productLines{$line->id}"), set::name("productLines[$line->id][]"), set::text($line->name), set::value($line->id), setData(array('on' => 'change', 'call' => 'changeLines', 'params' => 'event')))),
  58. cell
  59. (
  60. set::flex('1'),
  61. setClass('productList'),
  62. div
  63. (
  64. setClass('scroll-handle'),
  65. $lineGroups
  66. )
  67. )
  68. );
  69. }
  70. return div
  71. (
  72. setClass('flex mt-4'),
  73. cell
  74. (
  75. setID('source'),
  76. set::width('1/2'),
  77. setClass('border p-4 overflow-hidden'),
  78. div(setClass('flex mb-4'), cell
  79. (
  80. set::width('1/3'),
  81. setClass('item checkbox-primary px-4 overflow-hidden mr-3'),
  82. checkbox(setID('checkAllLines'), set::text($lang->upgrade->allLines), setData(array('on' => 'change', 'call' => 'changeAllLines')))
  83. ), cell
  84. (
  85. set::width('1/3'),
  86. setClass('item checkbox-primary px-4 overflow-hidden'),
  87. checkbox(setID('checkAllProducts'), set::text($lang->productCommon), setData(array('on' => 'change', 'call' => 'changeAllProducts')))
  88. ), cell
  89. (
  90. set::width('1/3'),
  91. setClass('item checkbox-primary px-4 overflow-hidden'),
  92. checkbox(setID('checkAllSprints'), set::text($lang->projectCommon), setData(array('on' => 'change', 'call' => 'changeAllSprints')))
  93. )),
  94. div
  95. (
  96. $checkBoxGroup
  97. )
  98. ),
  99. cell
  100. (
  101. set::width('1/2'),
  102. setClass('border ml-4 p-4'),
  103. setID('programBox'), $createProgram($data)
  104. )
  105. );
  106. };