*[bug#55956,2h].
This commit is contained in:
@@ -240,6 +240,8 @@ $config->logonMethods[] = 'doc.createbasicinfo';
|
||||
$config->logonMethods[] = 'doc.selectlibtype';
|
||||
$config->logonMethods[] = 'doc.uploaddocs';
|
||||
$config->logonMethods[] = 'doc.setdocbasic';
|
||||
$config->logonMethods[] = 'doc.commoneditaction';
|
||||
$config->logonMethods[] = 'doc.commondeleteaction';
|
||||
$config->logonMethods[] = 'execution.browse';
|
||||
$config->logonMethods[] = 'feedback.mergeproductmodule';
|
||||
$config->logonMethods[] = 'file.buildoldform';
|
||||
|
||||
+57
-4
@@ -164,6 +164,20 @@ class doc extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑一个文档空间。
|
||||
* Edit a doc space.
|
||||
*
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function editSpace(int $libID)
|
||||
{
|
||||
$this->commonEditAction($libID);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑一个文档库。
|
||||
* Edit a library.
|
||||
@@ -174,11 +188,26 @@ class doc extends control
|
||||
*/
|
||||
public function editLib(int $libID)
|
||||
{
|
||||
$this->commonEditAction($libID);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑空间和编辑库的公用方法。
|
||||
* Edit a lib or space.
|
||||
*
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function commonEditAction($libID)
|
||||
{
|
||||
if(!common::hasPriv('doc', 'editSpace') && !common::hasPriv('doc', 'editLib')) return;
|
||||
$lib = $this->doc->getLibByID($libID);
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$this->lang->doc->name = $this->lang->nameAB;
|
||||
$libData = form::data()->get();
|
||||
$libData = form::data($this->config->doc->form->editlib)->get();
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$changes = $this->doc->updateLib($libID, $libData);
|
||||
@@ -223,12 +252,23 @@ class doc extends control
|
||||
$this->view->groups = $this->loadModel('group')->getPairs();
|
||||
$this->view->users = $this->user->getPairs('noletter|noclosed', $lib->users);
|
||||
$this->view->libID = $libID;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除一个数据库。
|
||||
* 删除一个文档空间。
|
||||
* Delete a doc space.
|
||||
*
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function deleteSpace(int $libID)
|
||||
{
|
||||
$this->commonDeleteAction($libID);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除一个文档库。
|
||||
* Delete a library.
|
||||
*
|
||||
* @param int $libID
|
||||
@@ -236,6 +276,19 @@ class doc extends control
|
||||
* @return void
|
||||
*/
|
||||
public function deleteLib(int $libID)
|
||||
{
|
||||
$this->commonDeleteAction($libID);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除空间和删除库的公用方法。
|
||||
* Delete a lib or space.
|
||||
*
|
||||
* @param int $libID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function commonDeleteAction(int $libID)
|
||||
{
|
||||
if(in_array($libID, array('product', 'execution'))) return;
|
||||
|
||||
|
||||
@@ -636,7 +636,7 @@ const commands =
|
||||
{
|
||||
const docApp = getDocApp();
|
||||
const spaceID = args[0] || docApp.spaceID;
|
||||
const url = $.createLink('doc', 'editLib', `libID=${spaceID}`);
|
||||
const url = $.createLink('doc', 'editSpace', `libID=${spaceID}`);
|
||||
zui.Modal.open({size: 'sm', url: url});
|
||||
},
|
||||
deleteSpace: function(_, args)
|
||||
@@ -646,7 +646,7 @@ const commands =
|
||||
$.ajaxSubmit(
|
||||
{
|
||||
confirm: getLang('confirmDeleteSpace'),
|
||||
url: $.createLink('doc', 'deleteLib', `libID=${spaceID}`),
|
||||
url: $.createLink('doc', 'deleteSpace', `libID=${spaceID}`),
|
||||
load: false,
|
||||
onSuccess: function(res)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
$(function()
|
||||
{
|
||||
toggleAcl('lib');
|
||||
})
|
||||
@@ -208,14 +208,16 @@ $lang->doc->libType = '库类型';
|
||||
$lang->doc->custom = '自定义文档库';
|
||||
$lang->doc->customAB = '自定义库';
|
||||
$lang->doc->createLib = '创建库';
|
||||
$lang->doc->createLibAction = '创建空间/库';
|
||||
$lang->doc->createLibAction = '创建库';
|
||||
$lang->doc->createSpace = '创建空间';
|
||||
$lang->doc->allLibs = '库列表';
|
||||
$lang->doc->objectLibs = "库文档详情";
|
||||
$lang->doc->showFiles = '附件库';
|
||||
$lang->doc->editLib = '编辑库';
|
||||
$lang->doc->editLibAction = '编辑空间/库';
|
||||
$lang->doc->deleteLibAction = '删除空间/库';
|
||||
$lang->doc->editSpaceAction = '编辑空间';
|
||||
$lang->doc->editLibAction = '编辑库';
|
||||
$lang->doc->deleteSpaceAction = '删除空间';
|
||||
$lang->doc->deleteLibAction = '删除库';
|
||||
$lang->doc->moveLibAction = '移动库';
|
||||
$lang->doc->moveDocAction = '移动文档';
|
||||
$lang->doc->batchMove = '批量移动';
|
||||
|
||||
@@ -48,9 +48,9 @@ $privs['moveLib'] = hasPriv('doc', 'moveLib');
|
||||
$privs['deleteLib'] = hasPriv('doc', 'deleteLib');
|
||||
$privs['sortDocLib'] = hasPriv('doc', 'sortDocLib');
|
||||
$privs['exportFiles'] = hasPriv('doc', 'exportFiles');
|
||||
$privs['createSpace'] = $hasCustomSpace && hasPriv('doc', 'createLib');
|
||||
$privs['deleteSpace'] = $hasCustomSpace && hasPriv('doc', 'deleteLib');
|
||||
$privs['editSpace'] = $hasCustomSpace && hasPriv('doc', 'editLib');
|
||||
$privs['createSpace'] = $hasCustomSpace && hasPriv('doc', 'createSpace');
|
||||
$privs['deleteSpace'] = $hasCustomSpace && hasPriv('doc', 'deleteSpace');
|
||||
$privs['editSpace'] = $hasCustomSpace && hasPriv('doc', 'editSpace');
|
||||
$privs['addModule'] = hasPriv('doc', 'addCatalog');
|
||||
$privs['deleteModule'] = hasPriv('doc', 'deleteCatalog');
|
||||
$privs['editModule'] = hasPriv('doc', 'editCatalog');
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* The editLib view file of doc module of ZenTaoPMS.
|
||||
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
|
||||
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author Shujie Tian<tianshujie@easycorp.ltd>
|
||||
* @package doc
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
namespace zin;
|
||||
|
||||
$libType = $lib->type;
|
||||
$defaultAcl = $lib->acl;
|
||||
if(!empty($lib->main) && $lib->type != 'mine') $defaultAcl = 'default';
|
||||
|
||||
jsVar('doclibID', $lib->id);
|
||||
jsVar('libType', $libType);
|
||||
|
||||
$isSpace = ($lib->type == 'custom' || $lib->type == 'mine') && $lib->parent == 0;
|
||||
modalHeader
|
||||
(
|
||||
set::title($isSpace ? $lang->doclib->editSpace : $lang->doc->editLib),
|
||||
set::entityID($lib->id),
|
||||
set::entityText($lib->name),
|
||||
);
|
||||
|
||||
formPanel
|
||||
(
|
||||
on::change('[name^=users]', 'checkObjectPriv'),
|
||||
in_array($lib->type, array('product', 'project', 'execution')) ? formGroup
|
||||
(
|
||||
set::label($lang->doc->{$lib->type}),
|
||||
set::control('static'),
|
||||
set::value($object->name)
|
||||
) : null,
|
||||
formHidden('product', $lib->product),
|
||||
formHidden('project', $lib->project),
|
||||
formHidden('execution', $lib->execution),
|
||||
formGroup
|
||||
(
|
||||
set::label($isSpace ? $lang->doclib->spaceName : $lang->doc->libName),
|
||||
set::name('name'),
|
||||
set::value($lib->name),
|
||||
radioList
|
||||
(
|
||||
setClass('hidden'),
|
||||
set::name('acl'),
|
||||
set::items($lang->doc->libTypeList),
|
||||
set::value($libType)
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
$isSpace ? setClass('hidden') : null,
|
||||
setID('aclBox'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->doclib->control),
|
||||
radioList
|
||||
(
|
||||
set::name('acl'),
|
||||
set::items($lib->type == 'api' ? $lang->api->aclList : $lang->doclib->aclList),
|
||||
set::value($defaultAcl),
|
||||
on::change("toggleAcl('lib')")
|
||||
)
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
setID('whiteListBox'),
|
||||
setClass('hidden'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->doc->whiteList),
|
||||
div
|
||||
(
|
||||
setClass('w-full check-list'),
|
||||
div
|
||||
(
|
||||
setClass('w-full'),
|
||||
inputGroup
|
||||
(
|
||||
$lang->doclib->group,
|
||||
picker
|
||||
(
|
||||
set::name('groups[]'),
|
||||
set::items($groups),
|
||||
set::value($lib->groups),
|
||||
set::multiple(true)
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
setClass('w-full'),
|
||||
userPicker(set::label($lang->doclib->user), set::items($users), set::value($lib->users))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/* ====== Render page ====== */
|
||||
render();
|
||||
@@ -1,105 +1,2 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* The editLib view file of doc module of ZenTaoPMS.
|
||||
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
|
||||
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author Shujie Tian<tianshujie@easycorp.ltd>
|
||||
* @package doc
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
namespace zin;
|
||||
|
||||
$libType = $lib->type;
|
||||
$defaultAcl = $lib->acl;
|
||||
if(!empty($lib->main) && $lib->type != 'mine') $defaultAcl = 'default';
|
||||
|
||||
jsVar('doclibID', $lib->id);
|
||||
jsVar('libType', $libType);
|
||||
|
||||
$isSpace = ($lib->type == 'custom' || $lib->type == 'mine') && $lib->parent == 0;
|
||||
modalHeader
|
||||
(
|
||||
set::title($isSpace ? $lang->doclib->editSpace : $lang->doc->editLib),
|
||||
set::entityID($lib->id),
|
||||
set::entityText($lib->name),
|
||||
);
|
||||
|
||||
formPanel
|
||||
(
|
||||
on::change('[name^=users]', 'checkObjectPriv'),
|
||||
in_array($lib->type, array('product', 'project', 'execution')) ? formGroup
|
||||
(
|
||||
set::label($lang->doc->{$lib->type}),
|
||||
set::control('static'),
|
||||
set::value($object->name)
|
||||
) : null,
|
||||
formHidden('product', $lib->product),
|
||||
formHidden('project', $lib->project),
|
||||
formHidden('execution', $lib->execution),
|
||||
formGroup
|
||||
(
|
||||
set::label($isSpace ? $lang->doclib->spaceName : $lang->doc->libName),
|
||||
set::name('name'),
|
||||
set::value($lib->name),
|
||||
radioList
|
||||
(
|
||||
setClass('hidden'),
|
||||
set::name('acl'),
|
||||
set::items($lang->doc->libTypeList),
|
||||
set::value($libType)
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
$isSpace ? setClass('hidden') : null,
|
||||
setID('aclBox'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->doclib->control),
|
||||
radioList
|
||||
(
|
||||
set::name('acl'),
|
||||
set::items($lib->type == 'api' ? $lang->api->aclList : $lang->doclib->aclList),
|
||||
set::value($defaultAcl),
|
||||
on::change("toggleAcl('lib')")
|
||||
)
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
setID('whiteListBox'),
|
||||
setClass('hidden'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->doc->whiteList),
|
||||
div
|
||||
(
|
||||
setClass('w-full check-list'),
|
||||
div
|
||||
(
|
||||
setClass('w-full'),
|
||||
inputGroup
|
||||
(
|
||||
$lang->doclib->group,
|
||||
picker
|
||||
(
|
||||
set::name('groups[]'),
|
||||
set::items($groups),
|
||||
set::value($lib->groups),
|
||||
set::multiple(true)
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
setClass('w-full'),
|
||||
userPicker(set::label($lang->doclib->user), set::items($users), set::value($lib->users))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/* ====== Render page ====== */
|
||||
render();
|
||||
include './commoneditlib.html.php';
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
include './commoneditlib.html.php';
|
||||
@@ -1521,7 +1521,9 @@ $lang->resource->doc->myCreation = 'myCreation';
|
||||
$lang->resource->doc->myEdited = 'myEdited';
|
||||
$lang->resource->doc->createSpace = 'createSpace';
|
||||
$lang->resource->doc->createLib = 'createLibAction';
|
||||
$lang->resource->doc->editSpace = 'editSpaceAction';
|
||||
$lang->resource->doc->editLib = 'editLibAction';
|
||||
$lang->resource->doc->deleteSpace = 'deleteSpaceAction';
|
||||
$lang->resource->doc->deleteLib = 'deleteLibAction';
|
||||
$lang->resource->doc->moveLib = 'moveLibAction';
|
||||
$lang->resource->doc->moveDoc = 'moveDocAction';
|
||||
|
||||
@@ -3605,6 +3605,7 @@ $config->group->package->manageDoc->subset = 'doc';
|
||||
$config->group->package->manageDoc->privs = array();
|
||||
$config->group->package->manageDoc->privs['doc-createSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('doc-index', 'doc-teamSpace'), 'recommend' => array('doc-createLib'));
|
||||
$config->group->package->manageDoc->privs['doc-createLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('doc-index'), 'recommend' => array('doc-editLib', 'doc-showFiles', 'doc-moveLib', 'doc-sortDoclib'));
|
||||
$config->group->package->manageDoc->privs['doc-editSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('doc-index'), 'recommend' => array('doc-createSpace', 'doc-showFiles', 'doc-sortDoclib'));
|
||||
$config->group->package->manageDoc->privs['doc-editLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('doc-index'), 'recommend' => array('doc-createLib', 'doc-showFiles', 'doc-sortDoclib'));
|
||||
$config->group->package->manageDoc->privs['doc-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('doc-index'), 'recommend' => array('doc-collect', 'doc-edit', 'doc-moveDoc', 'doc-batchMoveDoc', 'doc-sortDoc'));
|
||||
$config->group->package->manageDoc->privs['doc-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array('doc-index'), 'recommend' => array('doc-collect', 'doc-create', 'doc-sortDoc'));
|
||||
@@ -3623,6 +3624,7 @@ $config->group->package->deleteDoc = new stdclass();
|
||||
$config->group->package->deleteDoc->order = 20;
|
||||
$config->group->package->deleteDoc->subset = 'doc';
|
||||
$config->group->package->deleteDoc->privs = array();
|
||||
$config->group->package->deleteDoc->privs['doc-deleteSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 40, 'depend' => array('doc-index'), 'recommend' => array());
|
||||
$config->group->package->deleteDoc->privs['doc-deleteLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 40, 'depend' => array('doc-index'), 'recommend' => array());
|
||||
$config->group->package->deleteDoc->privs['doc-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 60, 'depend' => array('doc-index'), 'recommend' => array());
|
||||
$config->group->package->deleteDoc->privs['doc-deleteFile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 65, 'depend' => array('doc-index'), 'recommend' => array());
|
||||
|
||||
Reference in New Issue
Block a user