From a135bdcc32eadf0d92bdac1e7302b9d414d15516 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 20 Jul 2023 10:46:26 +0800 Subject: [PATCH] + Add left module tree block. --- module/doc/ui/left.html.php | 240 +++++++++++++++++++++++++++++++++ module/doc/ui/myspace.html.php | 7 + 2 files changed, 247 insertions(+) create mode 100644 module/doc/ui/left.html.php diff --git a/module/doc/ui/left.html.php b/module/doc/ui/left.html.php new file mode 100644 index 0000000000..27992ec467 --- /dev/null +++ b/module/doc/ui/left.html.php @@ -0,0 +1,240 @@ + + * @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 +); diff --git a/module/doc/ui/myspace.html.php b/module/doc/ui/myspace.html.php index 65d44d38a7..95a3323b80 100644 --- a/module/doc/ui/myspace.html.php +++ b/module/doc/ui/myspace.html.php @@ -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 ====== */