createknowledgelib.html.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace zin;
  3. $isEdit = !empty($knowledgeLib);
  4. $selectedGroups = array();
  5. $selectedUsers = array();
  6. if($isEdit && !empty($knowledgeLib->groups)) $selectedGroups = array_filter(explode(',', trim($knowledgeLib->groups, ',')));
  7. if($isEdit && !empty($knowledgeLib->users)) $selectedUsers = array_filter(explode(',', trim($knowledgeLib->users, ',')));
  8. jsVar('isEdit', $isEdit);
  9. jsVar('selectedGroups', $selectedGroups);
  10. jsVar('selectedUsers', $selectedUsers);
  11. if($isEdit)
  12. {
  13. $name = $knowledgeLib->name;
  14. $desc = $knowledgeLib->desc;
  15. $acl = $knowledgeLib->acl;
  16. }
  17. else
  18. {
  19. $name = '';
  20. $desc = '';
  21. $acl = $type === 'my' ? 'private' : 'open';
  22. }
  23. $aclOptions = array();
  24. $importAclOptions = array();
  25. if (!$isEdit || $knowledgeLib->importType == 'custom')
  26. {
  27. $aclOptions = $type === 'my'
  28. ? array(
  29. 'private' => $lang->ai->knowledgeLibs->myPrivateAccess
  30. )
  31. : array(
  32. 'open' => $lang->ai->knowledgeLibs->teamPublicAccess,
  33. 'private' => $lang->ai->knowledgeLibs->teamPrivateAccess
  34. );
  35. }
  36. else
  37. {
  38. $importAclOptions = $type === 'my'
  39. ? array(
  40. 'default' => $lang->ai->knowledgeLibs->myPrivateAccess
  41. )
  42. : array(
  43. 'default' => $knowledgeLib->importType == 'doclib' ? $lang->ai->knowledgeLibs->defaultAccess : $lang->ai->knowledgeLibs->teamPublicAccess
  44. );
  45. }
  46. $labelWidth = common::checkNotCN() ? '200px' : '100px';
  47. $aclFormRow = null;
  48. if(!empty($aclOptions))
  49. {
  50. $aclFormRow = formRow(
  51. formGroup(
  52. set::label($lang->ai->knowledgeLibs->acl),
  53. set::labelWidth($labelWidth),
  54. set::control('radioList'),
  55. set::name('acl'),
  56. set::items($aclOptions),
  57. set::value($acl),
  58. on::change('toggleWhiteListBox')
  59. )
  60. );
  61. }
  62. $importAclFormRow = null;
  63. if(!empty($importAclOptions))
  64. {
  65. $importAclFormRow = formRow(
  66. formGroup(
  67. set::label($lang->ai->knowledgeLibs->acl),
  68. set::labelWidth($labelWidth),
  69. set::control('radioList'),
  70. set::name('acl'),
  71. set::items($importAclOptions),
  72. set::value('default')
  73. )
  74. );
  75. }
  76. $whiteListBox = null;
  77. if(!empty($aclOptions) && in_array('private', array_keys($aclOptions)))
  78. {
  79. $groups = $this->loadModel('group')->getPairs();
  80. $groupItems = array();
  81. foreach($groups as $groupID => $groupName)
  82. {
  83. $groupItems[] = array('text' => $groupName, 'value' => $groupID, 'keys' => $groupName);
  84. }
  85. $users = $this->loadModel('user')->getPairs('noletter|noempty|noclosed');
  86. $userItems = array();
  87. foreach($users as $account => $realname)
  88. {
  89. $userItems[] = array('text' => $realname, 'value' => $account, 'keys' => $realname);
  90. }
  91. $whiteListBoxClass = ($type == 'team' && $acl == 'private') ? '' : 'hidden';
  92. $extraClass = common::checkNotCN() ? ' not-cn' : '';
  93. $whiteListBox = formRow(
  94. setID('whiteListBox'),
  95. setClass($whiteListBoxClass . $extraClass),
  96. formGroup(
  97. set::label($lang->ai->knowledgeLibs->whiteList),
  98. set::labelWidth($labelWidth),
  99. div(
  100. setClass('w-full check-list'),
  101. div(
  102. setClass('w-full'),
  103. inputGroup(
  104. $lang->ai->knowledgeLibs->group,
  105. picker(
  106. set::name('groups[]'),
  107. set::items($groupItems),
  108. set::multiple(true),
  109. set::value($selectedGroups)
  110. )
  111. )
  112. ),
  113. div(
  114. setClass('w-full'),
  115. userPicker(
  116. set::label($lang->ai->knowledgeLibs->user),
  117. set::items($userItems),
  118. set::value($selectedUsers)
  119. )
  120. )
  121. )
  122. )
  123. );
  124. }
  125. formPanel(
  126. set::id('createKnowledgeLibForm'),
  127. set::title($title),
  128. set::submitBtnText($lang->save),
  129. formRow(
  130. formGroup(
  131. set::label($lang->ai->knowledgeLibs->knowledgeLibName),
  132. set::labelWidth($labelWidth),
  133. set::name('name'),
  134. set::required(true),
  135. set::control(array('control' => 'input', 'maxlength' => 255)),
  136. set::value($name)
  137. )
  138. ),
  139. formRow(
  140. formGroup(
  141. set::label($lang->ai->knowledgeLibs->knowledgeLibDesc),
  142. set::labelWidth($labelWidth),
  143. set::control(array('control' => 'textarea', 'rows' => 4)),
  144. set::name('desc'),
  145. set::placeholder($lang->ai->knowledgeLibs->knowledgeLibDescPlaceholder),
  146. set::value($desc)
  147. )
  148. ),
  149. $aclFormRow,
  150. $importAclFormRow,
  151. $whiteListBox
  152. );