From 49db5d2b2ec04cdf2e3440f9f1e80a2da98a198f Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 17 Jun 2022 14:12:47 +0800 Subject: [PATCH] * Fix bug #23870#23868. --- module/doc/control.php | 15 ++++++---- module/doc/js/common.js | 52 -------------------------------- module/doc/js/create.js | 53 +++++++++++++++++++++++++++++++++ module/doc/js/edit.js | 53 +++++++++++++++++++++++++++++++++ module/doc/view/create.html.php | 2 +- 5 files changed, 116 insertions(+), 59 deletions(-) diff --git a/module/doc/control.php b/module/doc/control.php index 8b4b0922fe..9f6a58abb5 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -362,6 +362,7 @@ class doc extends control $this->view->objectType = $objectType; $this->view->objectID = $objectID; $this->view->libID = $libID; + $this->view->lib = $lib; $this->view->libs = $libs; $this->view->gobackLink = $gobackLink; $this->view->libName = $this->dao->findByID($libID)->from(TABLE_DOCLIB)->fetch('name'); @@ -832,19 +833,21 @@ class doc extends control * @param int $doclibID * @param string $acl open|custom|private * @param string $control user|group + * @param int $docID * @access public * @return string */ - public function ajaxGetWhitelist($doclibID, $acl = '', $control = '') + public function ajaxGetWhitelist($doclibID, $acl = '', $control = '', $docID = 0) { - $doclib = $this->doc->getLibById($doclibID); - $users = $this->user->getPairs('noletter|noempty|noclosed'); - $selectedUser = $doclib->users; + $doclib = $this->doc->getLibById($doclibID); + $doc = $this->doc->getById($docID); + $users = $this->user->getPairs('noletter|noempty|noclosed'); + $selectedUser = $docID ? $doc->users : $doclib->users; + $selectedGroup = $docID ? $doc->groups : $doclib->groups; if($control == 'group') { - $groups = $this->loadModel('group')->getPairs(); - $selectedGroup = $doclib->groups; + $groups = $this->loadModel('group')->getPairs(); if($doclib->acl == 'custom') { foreach($groups as $groupID => $group) diff --git a/module/doc/js/common.js b/module/doc/js/common.js index 6425ea92ef..328fed5690 100644 --- a/module/doc/js/common.js +++ b/module/doc/js/common.js @@ -89,58 +89,6 @@ function loadDocModule(libID) loadWhitelist(libID); } -/** - * Load whitelist by libID. - * - * @param int $libID - * @access public - * @return void - */ -function loadWhitelist(libID) -{ - var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group'); - var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user'); - $.post(groupLink, function(groups) - { - if(!(groups == 'default' || groups == 'private')) - { - $('#groups').replaceWith(groups); - $('#groups_chosen').remove(); - $('#groups').chosen(); - } - }); - - $.post(userLink, function(users) - { - if(users != 'default') - { - if(users == 'private') - { - $('#aclopen').parent('.radio-inline').addClass('hidden'); - $('#aclcustom').parent('.radio-inline').addClass('hidden'); - $('#aclprivate').prop('checked', true); - } - else - { - $('#aclopen').parent('.radio-inline').removeClass('hidden'); - $('#aclcustom').parent('.radio-inline').removeClass('hidden'); - - $('#users').replaceWith(users); - $('#users_chosen').remove(); - $('#whiteListBox .picker').remove(); - if($('#users option').length < maxCount) - { - $('#users').chosen(); - } - else - { - $('#users').picker(); - } - } - } - }); -} - /** * Set cookie of browse type and reload. * diff --git a/module/doc/js/create.js b/module/doc/js/create.js index bc3b5b57a6..33c07e65ee 100644 --- a/module/doc/js/create.js +++ b/module/doc/js/create.js @@ -101,3 +101,56 @@ function initPage(type) $('#urlBox').hide(); } } + +/** + * Load whitelist by libID. + * + * @param int $libID + * @access public + * @return void + */ +function loadWhitelist(libID) +{ + var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group'); + var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user'); + $.post(groupLink, function(groups) + { + if(!(groups == 'default' || groups == 'private')) + { + $('#groups').replaceWith(groups); + $('#groups_chosen').remove(); + $('#groups').chosen(); + } + }); + + $.post(userLink, function(users) + { + if(users != 'default') + { + if(users == 'private') + { + $('#aclopen').parent('.radio-inline').addClass('hidden'); + $('#aclcustom').parent('.radio-inline').addClass('hidden'); + $('#whiteListBox').addClass('hidden'); + $('#aclprivate').prop('checked', true); + } + else + { + $('#aclopen').parent('.radio-inline').removeClass('hidden'); + $('#aclcustom').parent('.radio-inline').removeClass('hidden'); + + $('#users').replaceWith(users); + $('#users_chosen').remove(); + $('#whiteListBox .picker').remove(); + if($('#users option').length < maxCount) + { + $('#users').chosen(); + } + else + { + $('#users').picker(); + } + } + } + }); +} diff --git a/module/doc/js/edit.js b/module/doc/js/edit.js index 747ea15f26..2692326b91 100644 --- a/module/doc/js/edit.js +++ b/module/doc/js/edit.js @@ -125,3 +125,56 @@ function saveDraft() var link = createLink('doc', 'ajaxSaveDraft', 'docID=' + docID); $.post(link, {content: content}); } + +/** + * Load whitelist by libID. + * + * @param int $libID + * @access public + * @return void + */ +function loadWhitelist(libID) +{ + var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group' + '&docID=' + docID); + var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user' + '&docID=' + docID); + $.post(groupLink, function(groups) + { + if(!(groups == 'default' || groups == 'private')) + { + $('#groups').replaceWith(groups); + $('#groups_chosen').remove(); + $('#groups').chosen(); + } + }); + + $.post(userLink, function(users) + { + if(users != 'default') + { + if(users == 'private') + { + $('#aclopen').parent('.radio-inline').addClass('hidden'); + $('#aclcustom').parent('.radio-inline').addClass('hidden'); + $('#whiteListBox').addClass('hidden'); + $('#aclprivate').prop('checked', true); + } + else + { + $('#aclopen').parent('.radio-inline').removeClass('hidden'); + $('#aclcustom').parent('.radio-inline').removeClass('hidden'); + + $('#users').replaceWith(users); + $('#users_chosen').remove(); + $('#whiteListBox .picker').remove(); + if($('#users option').length < maxCount) + { + $('#users').chosen(); + } + else + { + $('#users').picker(); + } + } + } + }); +} diff --git a/module/doc/view/create.html.php b/module/doc/view/create.html.php index 380295240f..37d3a71d6a 100644 --- a/module/doc/view/create.html.php +++ b/module/doc/view/create.html.php @@ -108,7 +108,7 @@ $("a[href^='###']").click(function() doclib->control;?> - doc->aclList, 'open', "onchange='toggleAcl(this.value, \"doc\")'");?> + doc->aclList, $lib->acl, "onchange='toggleAcl(this.value, \"doc\")'");?> doc->noticeAcl['doc']['open'];?>