ajaxgetnodes.html.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. * The ajaxGetNodes view file of review module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2024 禅道软件(青岛)有限公司(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
  7. * @package review
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $content = null;
  12. if(empty($nodes))
  13. {
  14. $content = div
  15. (
  16. setClass('h-8 content-center'),
  17. span($lang->noData)
  18. );
  19. }
  20. else
  21. {
  22. $nodeTrs = array();
  23. foreach($nodes as $node)
  24. {
  25. $rangeUsers = $users;
  26. if(isset($node['range']['reviewer']))
  27. {
  28. $rangeUsers = array();
  29. foreach($node['range']['reviewer'] as $range) $rangeUsers[$range] = zget($users, $range, array());
  30. }
  31. $reviewers = array();
  32. foreach(array('appointees', 'role', 'position', 'self', 'upLevel', 'superior', 'superiorList', 'productRole', 'projectRole', 'executionRole') as $key)
  33. {
  34. if(isset($node[$key]['reviewer']))
  35. {
  36. foreach($node[$key]['reviewer'] as $reviewer) $reviewers[$reviewer] = zget($users, $reviewer);
  37. }
  38. }
  39. $ccRangeUsers = $users;
  40. if(isset($node['range']['ccer']))
  41. {
  42. $ccRangeUsers = array();
  43. foreach($node['range']['ccer'] as $range) $ccRangeUsers[$range] = zget($users, $range, array());
  44. }
  45. $ccers = array();
  46. foreach(array('appointees', 'role', 'position', 'upLevel', 'superior') as $key)
  47. {
  48. if(isset($node[$key]['ccer']))
  49. {
  50. foreach($node[$key]['ccer'] as $ccer) $ccers[$ccer] = zget($users, $ccer);
  51. }
  52. }
  53. $lastNode = zget($nodeReviewerPairs, $node['id'], array());
  54. $nodeTrs[] = h::tr
  55. (
  56. h::td
  57. (
  58. setClass('text-center'),
  59. $node['title'],
  60. formHidden('id[]', $node['id'])
  61. ),
  62. h::td
  63. (
  64. setClass('text-center'),
  65. in_array('reviewer', $node['types']) ? div
  66. (
  67. picker
  68. (
  69. set::id("reviewer{$node['id']}"),
  70. set::name('reviewer[' . $node['id'] . '][]'),
  71. set::items(array_diff(array_intersect_key($users, $rangeUsers), $reviewers)),
  72. $lastNode ? set::value($lastNode['reviewers']) : null,
  73. set::multiple(true)
  74. ),
  75. $reviewers ? div
  76. (
  77. setClass('otherReviewer mt-2.5'),
  78. $lang->approval->otherReviewer . join(',', $reviewers)
  79. ) : null
  80. ) : div
  81. (
  82. formHidden('reviewer[' . $node['id'] . '][]', ''),
  83. $reviewers ? join(',', $reviewers) : null
  84. )
  85. ),
  86. h::td
  87. (
  88. setClass('text-center'),
  89. in_array('ccer', $node['types']) ? div
  90. (
  91. picker
  92. (
  93. set::name('ccer[' . $node['id'] . '][]'),
  94. set::items(array_diff(array_intersect_key($users, $rangeUsers), $ccers)),
  95. $lastNode ? set::value($lastNode['ccs']) : null,
  96. set::multiple(true)
  97. ),
  98. $ccers ? div
  99. (
  100. setClass('otherCcer mt-2.5'),
  101. $lang->approval->otherCcer . join(',', $ccers)
  102. ) : null
  103. ) : div
  104. (
  105. formHidden('ccer[' . $node['id'] . '][]', ''),
  106. $ccers ? join(',', $ccers) : null
  107. )
  108. )
  109. );
  110. }
  111. $content = h::table
  112. (
  113. setClass('table bordered'),
  114. h::thead
  115. (
  116. h::tr
  117. (
  118. h::th
  119. (
  120. setClass('text-center'),
  121. width('1/5'),
  122. $lang->approval->node
  123. ),
  124. h::th
  125. (
  126. setClass('text-center'),
  127. width('2/5'),
  128. $lang->approval->reviewer
  129. ),
  130. h::th
  131. (
  132. setClass('text-center'),
  133. width('2/5'),
  134. $lang->approval->ccer
  135. )
  136. )
  137. ),
  138. h::tbody
  139. (
  140. $nodeTrs
  141. )
  142. );
  143. }
  144. div
  145. (
  146. setID('reviewerBox'),
  147. setStyle('width', '100%'),
  148. $content
  149. );
  150. render();