+ Add left module tree block.

This commit is contained in:
caoyanyi
2023-07-20 10:47:30 +08:00
parent 53a89ed1b9
commit a135bdcc32
2 changed files with 247 additions and 0 deletions
+240
View File
@@ -0,0 +1,240 @@
<?php
declare(strict_types=1);
/**
* The left tree 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 Yanyi Cao <caoyanyi@easycorp.ltd>
* @package doc
* @link https://www.zentao.net
*/
namespace zin;
jsVar('release', isset($release) ? $release : 0);
jsVar('versionLang', $lang->build->common);
jsVar('spaceType', $this->session->spaceType);
jsVar('rawModule', $this->app->rawModule);
jsVar('rawMethod', $this->app->rawMethod);
jsVar('objectType', isset($type) ? $type : '');
jsVar('objectID', isset($objectID) ? $objectID : '');
jsVar('isFirstLoad', isset($isFirstLoad) ? $isFirstLoad: '');
jsVar('canViewFiles', common::hasPriv('doc', 'showfiles'));
jsVar('spaceMethod', $config->doc->spaceMethod);
jsVar('canSortDocCatalog', common::hasPriv('doc', 'sortCatalog'));
jsVar('canSortAPICatalog', common::hasPriv('api', 'sortCatalog'));
//div
//(
// setID('fileTree'),
// (isset($type) && $type == 'project') ? div
// (
// div
// (
// setClass('project-tree border-b tree-child'),
// div
// (
// setClass('title'),
// icon('project btn-info'),
// $lang->projectCommon
// ),
// div
// (
// setID('projectTree'),
// set('data-id', 'project')
// )
// ),
// div
// (
// setClass('execution-tree border-b tree-child'),
// div
// (
// setClass('title'),
// icon('execution btn-info'),
// $lang->executionCommon
// ),
// div
// (
// setID('executionTree'),
// set('data-id', 'execution')
// )
// ),
// div
// (
// setClass('annex-tree border-b tree-child'),
// div
// (
// setClass('title'),
// icon('annex btn-info'),
// $lang->annexCommon
// ),
// div
// (
// setID('annexTree'),
// set('data-id', 'annex')
// )
// ),
// ) : null
//);
sidebar
(
docMenu
(
set::modules($libTree),
set::spaceMethod($config->doc->spaceMethod),
set::libID($libID),
set::moduleID($moduleID),
set::linkParams("type=$type&libID=$libID&moduleID=$moduleID&browseType=$barType"),
set::spaceType($session->spaceType),
set::objectType(isset($type) ? $type : ''),
)
);
if($app->rawMethod == 'view' and common::hasPriv('doc', 'displaySetting'))
{
div
(
setClass('text-center bottom-btn-tree'),
a
(
setClass('btn btn-sm btn-primary'),
set('href', inlink('displaySetting')),
set('data-toggle', 'modal'),
set('data-size', 'sm'),
$lang->doc->displaySetting
)
);
}
$canAddCatalog['doc'] = common::hasPriv('doc', 'addCatalog');
$canAddCatalog['api'] = common::hasPriv('api', 'addCatalog');
$canEditCatalog['doc'] = common::hasPriv('doc', 'editCatalog');
$canEditCatalog['api'] = common::hasPriv('api', 'editCatalog');
$canDeleteCatalog['doc'] = common::hasPriv('doc', 'deleteCatalog');
$canDeleteCatalog['api'] = common::hasPriv('api', 'deleteCatalog');
$hasModulePriv['doc'] = $canAddCatalog['doc'] || $canEditCatalog['doc'] || $canDeleteCatalog['doc'];
$hasModulePriv['api'] = $canAddCatalog['api'] || $canEditCatalog['api'] || $canDeleteCatalog['api'];
$hasLibPriv['doc'] = $canAddCatalog['doc'] || common::hasPriv('doc', 'editLib') || common::hasPriv('doc', 'deleteLib');
$hasLibPriv['api'] = $canAddCatalog['api'] || common::hasPriv('api', 'editLib') || common::hasPriv('api', 'deleteLib');
jsVar('canAddCatalog', $canAddCatalog);
jsVar('canEditCatalog', $canEditCatalog);
jsVar('canDeleteCatalog', $canDeleteCatalog);
jsVar('hasModulePriv', $hasModulePriv);
jsVar('hasLibPriv', $hasLibPriv);
$operateList = array();
foreach(array('doc', 'api') as $module)
{
$operateList[] = div
(
ul
(
setClass($module . 'LibDorpdown'),
$canAddCatalog[$module] ? li
(
set(array(
'data-type' => 'add',
'data-libid' => '%libID%',
'data-method' => 'addCataLib',
'data-moduleid' => '%moduleID%',
'data-has-children' => '%hasChildren%',
)),
a
(
icon('add-directory'),
$lang->doc->libDropdown['addModule']
)
) : null,
common::hasPriv($module, 'editLib') ? li
(
set('data-method', 'editLib'),
a
(
set::link(inlink('editLib', 'libID=%libID%')),
set('data-toggle', 'modal'),
set('data-type', 'iframe'),
icon('edit'),
$lang->doc->libDropdown['editLib']
)
) : null,
common::hasPriv($module, 'deleteLib') ? li
(
set('data-method', 'deleteLib'),
a
(
setClass('ajaxSubmit'),
set('data-confirm', $lang->doc->libDropdown['deleteLibConfirm']),
set::link(inlink('deleteLib', 'libID=%libID%')),
icon('trash'),
$lang->doc->libDropdown['deleteLib']
)
) : null,
),
ul
(
setClass($module . 'ModuleDorpdown'),
$canAddCatalog[$module] ? li
(
set(array(
'data-type' => 'addCataBro',
'data-method' => 'addCataLib',
'data-id' => '%moduleID%',
)),
a
(
icon('add-directory'),
$lang->doc->libDropdown['addSameModule']
)
) : null,
$canAddCatalog[$module] ? li
(
set(array(
'data-type' => 'add',
'data-method' => 'addCataChild',
'data-id' => '%moduleID%',
'data-has-children' => '%hasChildren%',
)),
a
(
icon('add-directory'),
$lang->doc->libDropdown['addSubModule']
)
) : null,
$canEditCatalog[$module] ? li
(
setClass('edit-module'),
set('data-method', 'editCata'),
a
(
set('data-link', createLink($module, 'editCatalog', "moduleID=%moduleID%&type=" . ($app->rawModule == 'api' ? 'api' : 'doc'))),
set('data-toggle', 'modal'),
icon('edit'),
$lang->doc->libDropdown['editModule']
)
) : null,
$canDeleteCatalog[$module] ? li
(
set('data-method', 'deleteCata'),
a
(
setClass('ajaxSubmit'),
set('data-confirm', $lang->doc->libDropdown['deleteLibConfirm']),
set::link(createLink($module, 'deleteCatalog', 'rootID=%libID%&moduleID=%moduleID%')),
icon('trash'),
$lang->doc->libDropdown['delModule']
)
) : null,
)
);
}
div
(
setID('dropDownData'),
setClass('hidden'),
$operateList
);
+7
View File
@@ -11,6 +11,12 @@ declare(strict_types=1);
namespace zin;
if($libID && common::hasPriv('doc', 'create')) include 'createbutton.html.php';
jsVar('browseType', $browseType);
jsVar('docLang', $lang->doc);
jsVar('confirmDelete', $lang->doc->confirmDelete);
jsVar('appTab', $app->tab);
jsVar('treeData', $libTree);
/* zin: Define the set::module('doc') feature bar on main menu. */
featureBar
(
@@ -40,6 +46,7 @@ toolbar
$libID && common::hasPriv('doc', 'create') ? $createButton : null
);
include 'left.html.php';
include 'mydoclist.html.php';
/* ====== Render page ====== */