manageproducts.html.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * The manage product view file of execution 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 Yanyi Cao<caoyanyi@easycorp.ltd>
  7. * @package execution
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('unmodifiableProducts',$unmodifiableProducts);
  12. jsVar('unmodifiableBranches', $unmodifiableBranches);
  13. jsVar('linkedStoryIDList', $linkedStoryIDList);
  14. jsVar('allProducts', $allProducts);
  15. jsVar('branchGroups', $branchGroups);
  16. jsVar('unLinkProductTip', $lang->project->unLinkProductTip);
  17. $index = 0;
  18. $linkedList = array();
  19. foreach($allProducts as $productID => $productName)
  20. {
  21. if(empty($linkedProducts[$productID])) continue;
  22. foreach($linkedBranches[$productID] as $branchID)
  23. {
  24. $linkedList[] = btn
  25. (
  26. setClass('product-block modal-content center-row justify-start items-center text-left'),
  27. checkbox
  28. (
  29. set::rootClass('w-full p-4 pl-0 clip'),
  30. setClass('linked-product cursor-pointer'),
  31. set::name("products[{$index}]"),
  32. set::text($productName),
  33. set::checked(true),
  34. set::value($productID),
  35. on::click('checkUnlink')
  36. ),
  37. isset($allBranches[$productID][$branchID]) ? picker(set::name("branch[{$index}]"), set::value($branchID), set::items($allBranches[$productID]), set::disabled(true), set::required(true)) : formHidden("branch[{$index}]", $branchID)
  38. );
  39. if(!isset($branchGroups[$productID])) unset($allProducts[$productID]);
  40. if(isset($branchGroups[$productID][$branchID])) unset($branchGroups[$productID][$branchID]);
  41. if(isset($branchGroups[$productID]) and empty($branchGroups[$productID])) unset($allProducts[$productID]);
  42. $index ++;
  43. }
  44. }
  45. $unlinkList = array();
  46. if($execution->grade == 1 || $execution->grade == 2)
  47. {
  48. foreach($allProducts as $productID => $productName)
  49. {
  50. if($execution->grade == 2 && (!isset($linkedProducts[$productID]) || $linkedProducts[$productID]->type == 'normal')) continue;
  51. $unlinkList[] = btn
  52. (
  53. setClass('product-block modal-content center-row justify-start items-center text-left'),
  54. checkbox
  55. (
  56. set::rootClass('w-full p-4 pl-0 clip'),
  57. setClass('cursor-pointer'),
  58. set::name("products[{$index}]"),
  59. set::text($productName),
  60. set::value($productID)
  61. ),
  62. isset($branchGroups[$productID]) ? picker(set::name("branch[{$index}]"), set::value(key($branchGroups[$productID])), set::items($branchGroups[$productID]), set::required(true)) : formHidden("branch[{$index}]", 0)
  63. );
  64. $index ++;
  65. }
  66. }
  67. $canModify = common::canModify('execution', $execution);
  68. form
  69. (
  70. setID('manageProducts'),
  71. setClass('canvas pb-6'),
  72. sectionList
  73. (
  74. section
  75. (
  76. set::title($lang->execution->linkedProducts),
  77. div
  78. (
  79. setClass('flex items-center flex-wrap'),
  80. $linkedList
  81. )
  82. ),
  83. $unlinkList ? h::hr() : null,
  84. $unlinkList ? section
  85. (
  86. set::title($lang->execution->unlinkedProducts),
  87. div
  88. (
  89. setClass('flex items-center flex-wrap'),
  90. $unlinkList
  91. )
  92. ) : null,
  93. $canModify ? h::hr() : null
  94. ),
  95. $canModify ? set::actions(array('submit')) : null
  96. );
  97. render();