bind.html.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /**
  3. * The bind view file of webhook 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 Yidong Wang <yidong@easycorp.ltd>
  7. * @package webhook
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $useridLang = $lang->webhook->dingUserid;
  12. if($webhook->type == 'wechatuser') $useridLang = $lang->webhook->wechatUserid;
  13. if($webhook->type == 'feishuuser') $useridLang = $lang->webhook->feishuUserid;
  14. $statusLang = $lang->webhook->dingBindStatus;
  15. if($webhook->type == 'wechatuser') $statusLang = $lang->webhook->wechatBindStatus;
  16. if($webhook->type == 'feishuuser') $statusLang = $lang->webhook->feishuBindStatus;
  17. $fnBuildTbody = function() use($users, $boundUsers, $oauthUsers, $useridPairs, $boundUseridPairs, $lang)
  18. {
  19. $trItems = array();
  20. foreach($users as $user)
  21. {
  22. $userid = '';
  23. $bindStatus = 0;
  24. if(isset($boundUsers[$user->account]))
  25. {
  26. $userid = $boundUsers[$user->account];
  27. $bindStatus = 1;
  28. }
  29. elseif(isset($oauthUsers[$user->realname]))
  30. {
  31. $userid = $oauthUsers[$user->realname];
  32. }
  33. $trItems[] = h::tr
  34. (
  35. h::td(set::colspan(2), $user->account, span(setClass('label secondary-outline circle ml-2'), $user->realname)),
  36. h::td
  37. (
  38. set::colspan(2),
  39. div
  40. (
  41. setClass("username"),
  42. $userid ? span(setClass('label primary-outline circle'), \zget($useridPairs, $userid, \zget($boundUseridPairs, $userid))) : null
  43. ),
  44. formHidden("userid[{$user->account}]", $userid)
  45. ),
  46. h::td(set::style(array('text-align' => 'center')), btn(setClass('bind btn-link'), set('data-value', "userid[{$user->account}]"), set('data-toggle', "modal"), set('data-target', '#userList'), set('data-size', 'sm'), icon('edit'))),
  47. h::td(set::style(array('text-align' => 'center')), \zget($lang->webhook->dingBindStatusList, $bindStatus, ''))
  48. );
  49. }
  50. return h::tbody($trItems);
  51. };
  52. $fnBuildFooter = function() use($users, $lang, $selectedDepts, $webhook)
  53. {
  54. if(empty($users)) return null;
  55. return row
  56. (
  57. setClass('table-footer justify-between items-center'),
  58. cell
  59. (
  60. btn(set::btnType('submit'), setClass('primary mr-2'), set::size('sm'), $lang->save),
  61. btn(set::url(createLink('webhook', 'browse')), setClass('mr-2'), set::size('sm'), $lang->goback),
  62. $selectedDepts ? btn(set::url(createLink('webhook', 'chooseDept', "id={$webhook->id}")), set::size('sm'), $lang->webhook->chooseDeptAgain) : null
  63. ),
  64. cell(pager())
  65. );
  66. };
  67. panel
  68. (
  69. setClass('m-auto'),
  70. set::style(array('width' => '900px')),
  71. set::title($lang->webhook->bind),
  72. form
  73. (
  74. set::actions(false),
  75. set::method('post'),
  76. h::table
  77. (
  78. setClass('bindUsersList'),
  79. on::click('.bind', 'showBindModal'),
  80. setClass('table bordered condensed'),
  81. h::thead
  82. (
  83. h::tr
  84. (
  85. h::th(set::colspan(2), $lang->webhook->zentaoUser),
  86. h::th(set::colspan(2), $useridLang),
  87. h::th(set::width('80'), set::style(array('text-align' => 'center')), $lang->actions),
  88. h::th(set::width('150'), set::style(array('text-align' => 'center')), $statusLang)
  89. )
  90. ),
  91. $fnBuildTbody()
  92. ),
  93. $fnBuildFooter()
  94. )
  95. );
  96. modal
  97. (
  98. setID('userList'),
  99. set::title($lang->webhook->bind),
  100. set::closeBtn(true),
  101. div
  102. (
  103. setClass('mt-3'),
  104. picker(setID('userSelect'), set::name('userid'), set::items($useridPairs)),
  105. div(setClass('text-center'), btn(setClass('primary mt-3'), set('onclick', 'confirmChanges()'), $lang->save))
  106. ),
  107. div(setID('saveInput'))
  108. );
  109. render();