diff --git a/module/doc/ui/editlib.html.php b/module/doc/ui/editlib.html.php
index a6b74a4db7..45cad6f94b 100644
--- a/module/doc/ui/editlib.html.php
+++ b/module/doc/ui/editlib.html.php
@@ -9,8 +9,9 @@ declare(strict_types=1);
* @link https://www.zentao.net
*/
namespace zin;
+
jsVar('doclibID', $lib->id);
-jsVar('libType', $lib->type);
+jsVar('libType', $libType);
modalHeader
(
set::title($lib->type == 'custom' && $lib->parent == 0 ? $lang->doclib->editSpace : $lang->doc->editLib),
@@ -26,6 +27,13 @@ formPanel
set::control('static'),
set::value($object->name)
) : null,
+ isset($spaces) ? formGroup
+ (
+ set::name('space'),
+ set::label($lang->doc->space),
+ set::control(array('control' => 'picker', 'value' => $targetSpace, 'items' => $spaces, 'required' => true)),
+ on::change('changeSpace')
+ ) : null,
formGroup
(
set::label($lib->type == 'custom' && $lib->parent == 0 ? $lang->doclib->spaceName : $lang->doc->libName),
@@ -36,7 +44,7 @@ formPanel
setClass('hidden'),
set::name('acl'),
set::items($lang->doc->libTypeList),
- set::value($lib->type)
+ set::value($libType)
)
),
formRow
@@ -49,7 +57,7 @@ formPanel
(
set::name('acl'),
set::items($lib->type == 'api' ? $lang->api->aclList : $lang->doclib->aclList),
- set::value(empty($lib->main) ? $lib->acl : 'default'),
+ set::value($defaultAcl),
on::change("toggleAcl('lib')")
)
)
diff --git a/module/doc/zen.php b/module/doc/zen.php
index ab3eb70b2d..0b5b019bdf 100644
--- a/module/doc/zen.php
+++ b/module/doc/zen.php
@@ -311,28 +311,33 @@ class docZen extends doc
* Handle the access control of editing document library.
*
* @param object $lib
+ * @param string $targetSpace
* @access protected
* @return void
*/
- protected function setAclForEditLib(object $lib): void
+ protected function setAclForEditLib(object $lib, string $targetSpace = ''): void
{
- if($lib->type == 'custom')
+ $libType = $lib->type;
+ if($targetSpace == 'mine') $libType = 'mine';
+ if(is_numeric($targetSpace)) $libType = 'custom';
+
+ if($libType == 'custom')
{
unset($this->lang->doclib->aclList['default']);
}
- elseif($lib->type == 'api')
+ elseif($libType == 'api')
{
$this->app->loadLang('api');
$type = !empty($lib->product) ? 'product' : 'project';
$this->lang->api->aclList['default'] = sprintf($this->lang->api->aclList['default'], $this->lang->{$type}->common);
}
- elseif($lib->type == 'mine')
+ elseif($libType == 'mine')
{
$this->lang->doclib->aclList = $this->lang->doclib->mySpaceAclList;
}
- elseif($lib->type != 'custom')
+ elseif($libType != 'custom')
{
- $type = isset($type) ? $type : $lib->type;
+ $type = isset($type) ? $type : $libType;
$this->lang->doclib->aclList['default'] = sprintf($this->lang->doclib->aclList['default'], $this->lang->{$type}->common);
$this->lang->doclib->aclList['private'] = sprintf($this->lang->doclib->privateACL, $this->lang->{$type}->common);
unset($this->lang->doclib->aclList['open']);
@@ -865,4 +870,9 @@ class docZen extends doc
$mineLib->addedDate = helper::now();
$this->dao->insert(TABLE_DOCLIB)->data($mineLib)->exec();
}
+
+ public function getAllSpaces(): array
+ {
+ return array('mine' => $this->lang->doc->spaceList['mine']) + $this->doc->getTeamSpaces();
+ }
}