managecontacts.html.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. /**
  3. * The managecontacts view file of my 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 my
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $listID = isset($list->id) ? $list->id : 0;
  12. $myContactList = array();
  13. $publicContactList = array();
  14. $isActivePublicList = false;
  15. foreach($lists as $contactList)
  16. {
  17. $selected = $listID == $contactList->id;
  18. if($contactList->account == $app->user->account)
  19. {
  20. $myContactList[] = array('text' => $contactList->listName, 'url' => createLink('my', 'manageContacts', "listID=$contactList->id"), 'selected' => $selected);
  21. }
  22. else if($contactList->public)
  23. {
  24. $publicContactList[] = array('text' => $contactList->listName, 'url' => createLink('my', 'manageContacts', "listID=$contactList->id"), 'selected' => $selected);
  25. if($selected) $isActivePublicList = true;
  26. }
  27. }
  28. $userList = array();
  29. if(!empty($list->userList))
  30. {
  31. foreach(explode(',', $list->userList) as $account) $userList[] = zget($users, $account);
  32. }
  33. div
  34. (
  35. setClass('canvas shadow ring rounded mx-auto no-shadow-in-modal'),
  36. style::maxWidth(1200),
  37. div
  38. (
  39. setID('manageContacts'),
  40. setClass('row'),
  41. cell
  42. (
  43. setClass('col flex-none p-4 gap-3 w-48 items-stretch'),
  44. div(setClass('text-gray'), $lang->my->contactList),
  45. btn
  46. (
  47. set::type('primary-pale'),
  48. set::icon('plus'),
  49. set::url('my', 'manageContacts'),
  50. setData('load', '#contactPanel'),
  51. setClass('w-full'),
  52. $lang->my->createContacts
  53. ),
  54. tabs
  55. (
  56. setID('contactTab'),
  57. tabPane(set::title($lang->my->myContact), set::active(!$isActivePublicList), simpleList(set::items($myContactList))),
  58. tabPane(set::title($lang->my->publicContact), set::active($isActivePublicList), simpleList(set::items($publicContactList)))
  59. )
  60. ),
  61. divider(),
  62. cell
  63. (
  64. setID('contactPanel'),
  65. setClass('flex-1 px-8 pb-8'),
  66. div
  67. (
  68. set('class', 'panel-title text-lg flex w-full py-6'),
  69. $label,
  70. !empty($tip) ? array
  71. (
  72. span
  73. (
  74. setClass('flex text-warning'),
  75. icon('info')
  76. ),
  77. span
  78. (
  79. setClass('text-gray text-base font-normal'),
  80. $tip
  81. )
  82. ) : null
  83. ),
  84. ($mode == 'create' || $mode == 'edit') ? form
  85. (
  86. set::actions(array()),
  87. $listID ? null : on::init()->removeClass('#contactTab .selected', 'selected'),
  88. formRow
  89. (
  90. formGroup
  91. (
  92. set::width('1/2'),
  93. set::required(true),
  94. set::label($lang->user->contacts->listName),
  95. input
  96. (
  97. set::name('listName'),
  98. set::value(!empty($list->listName) ? $list->listName : '')
  99. )
  100. )
  101. ),
  102. formRow
  103. (
  104. formGroup
  105. (
  106. set::label($lang->user->contacts->selectedUsers),
  107. set::required(true),
  108. picker
  109. (
  110. set::multiple(true),
  111. set::name('userList[]'),
  112. set::items($users),
  113. set::maxItemsCount($config->maxCount),
  114. set::value(!empty($list->userList) ? $list->userList : '')
  115. )
  116. )
  117. ),
  118. formRow
  119. (
  120. formGroup
  121. (
  122. set::label(''),
  123. set::width('1/1'),
  124. checkbox
  125. (
  126. set::name('public'),
  127. set::value(1),
  128. set::checked(!empty($list->public)),
  129. set::text($lang->my->shareContacts)
  130. )
  131. )
  132. ),
  133. formRow
  134. (
  135. setClass('form-actions'),
  136. formGroup
  137. (
  138. set::label(''),
  139. button(setClass('btn primary'), set::type('submit'), $lang->save),
  140. ($mode == 'edit' && common::hasPriv('my', 'deleteContacts')) ? button
  141. (
  142. setClass('btn ajax-submit ml-4'),
  143. setData('url', createLink('my', 'deleteContacts', "listID=$listID")),
  144. setData('confirm', $lang->user->contacts->confirmDelete),
  145. $lang->delete
  146. ): null
  147. )
  148. )
  149. ) : tableData
  150. (
  151. item
  152. (
  153. set::name($lang->user->contacts->listName),
  154. $list->listName
  155. ),
  156. item
  157. (
  158. set::name($lang->user->contacts->userList),
  159. implode($lang->comma, array_filter($userList))
  160. ),
  161. item
  162. (
  163. set::name($lang->usercontact->account),
  164. zget($users, $list->account)
  165. ),
  166. item
  167. (
  168. ($mode == 'adminView' && common::hasPriv('my', 'deleteContacts')) ? btn
  169. (
  170. setClass('btn ajax-submit ml-4 px-6'),
  171. set::type('danger'),
  172. setData('url', createLink('my', 'deleteContacts', "listID=$listID")),
  173. setData('confirm', $lang->user->contacts->confirmDelete),
  174. $lang->delete
  175. ): null
  176. )
  177. )
  178. )
  179. )
  180. );