From 10e304792e00c2a6ef70dc5c58ee49d45d3ef441 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Fri, 10 Mar 2023 16:54:01 +0800 Subject: [PATCH] * Modify the module tree on the left of the data dictionary. --- module/dev/control.php | 4 ++-- module/dev/css/api.css | 1 + module/dev/css/db.css | 6 ++++++ module/dev/js/api.js | 2 +- module/dev/js/db.js | 28 ++++++++++++++++++++++++++++ module/dev/model.php | 23 ++++++++++++++--------- module/dev/view/db.html.php | 26 ++------------------------ 7 files changed, 54 insertions(+), 36 deletions(-) diff --git a/module/dev/control.php b/module/dev/control.php index 94aaa5c6a3..6499731156 100644 --- a/module/dev/control.php +++ b/module/dev/control.php @@ -28,7 +28,7 @@ class dev extends control $this->view->tab = 'api'; $this->view->selectedModule = $module; $this->view->apis = $module ? $this->dev->getAPIs($module) : array(); - $this->view->moduleTree = $this->dev->getModuleTree($module); + $this->view->moduleTree = $this->dev->getTree($module, 'module'); $this->display(); } @@ -45,7 +45,7 @@ class dev extends control $this->view->position[] = html::a(inlink('api'), $this->lang->dev->common); $this->view->position[] = $this->lang->dev->db; - $this->view->tables = $this->dev->getTables(); + $this->view->tableTree = $this->dev->getTree($table, 'table'); $this->view->selectedTable = $table; $this->view->tab = 'db'; $this->view->fields = $table ? $this->dev->getFields($table) : array(); diff --git a/module/dev/css/api.css b/module/dev/css/api.css index 898850feb9..31e4460e2b 100644 --- a/module/dev/css/api.css +++ b/module/dev/css/api.css @@ -4,5 +4,6 @@ /* module-tree. */ #moduleTree.tree ul {margin-bottom: 0;} +#moduleTree .active {background-color: #fff;} #menuTree > li.has-list > ul > li {padding-left: 10px;} #menuTree > li.has-list > ul > li.has-list {padding-left: 15px;} diff --git a/module/dev/css/db.css b/module/dev/css/db.css index 9d53604e6c..6708343afd 100644 --- a/module/dev/css/db.css +++ b/module/dev/css/db.css @@ -1,3 +1,9 @@ #sidebar .module-tree, #mainContent .module-content {overflow-y: auto;} #mainContent .module-col {padding: 0;} #mainContent .module-content {padding: 10px; padding-right: 0; margin-right: 0;} + +/* module-tree. */ +#tableTree.tree ul {margin-bottom: 0;} +#tableTree .active {background-color: #fff;} +#tableTree > li.has-list > ul > li {padding-left: 10px;} +#tableTree > li.has-list > ul > li.has-list {padding-left: 15px;} diff --git a/module/dev/js/api.js b/module/dev/js/api.js index 27995ed92a..e446b599da 100644 --- a/module/dev/js/api.js +++ b/module/dev/js/api.js @@ -16,6 +16,7 @@ function setHeight() var paneHeight = $(window).height() - 90; $('#sidebar .module-tree,#mainContent .module-content').css('height', paneHeight); } + /** * Init module tree by zui. * @@ -30,7 +31,6 @@ function initModule() initialState: 'active', itemCreator: function($li, item) { - console.log(item); $li.append('' + item.title + ''); if (item.active) $li.addClass('active open in'); } diff --git a/module/dev/js/db.js b/module/dev/js/db.js index 90b4923f5d..c7f6d7f9cf 100644 --- a/module/dev/js/db.js +++ b/module/dev/js/db.js @@ -1,5 +1,6 @@ $(function() { + initTable(); setHeight(); $(window).resize(setHeight); }); @@ -15,3 +16,30 @@ function setHeight() var paneHeight = $(window).height() - 90; $('#sidebar .module-tree,#mainContent .module-content').css('height', paneHeight); } + +/** + * Init table tree by zui. + * + * @access public + * @return void + */ +function initTable() +{ + $('#tableTree').tree( + { + data: tableTree, + initialState: 'active', + itemCreator: function($li, item) + { + $li.append('' + item.title + ''); + if (item.active) $li.addClass('active open in'); + } + }); + + $('#tableTree').on('click', 'a', function(e) + { + var target = $(e.target); + if (target.attr('data-has-children') === 'true') return; + self.location.href = createLink('dev', 'db', 'module=' + target.attr('data-module')); + }) +} diff --git a/module/dev/model.php b/module/dev/model.php index 9986b9c77a..fe9e6125e2 100644 --- a/module/dev/model.php +++ b/module/dev/model.php @@ -1077,31 +1077,36 @@ class devModel extends model * Get moduleT tree. * * @param string $currentModule + * @param string $type * @access public * @return array */ - public function getModuleTree($currentModule) + public function getTree($currentModule, $type) { - $moduleTree = array(); - $modules = $this->getModules(); + $tree = array(); + if(!in_array($type, array('module', 'table'))) return $tree; + + $objects = $type == 'module' ? $this->getModules() : $this->getTables(); foreach($this->lang->dev->groupList as $moduleKey => $moduleName) { - if(empty($modules[$moduleKey])) continue; + if(empty($objects[$moduleKey])) continue; $module = new stdclass(); $module->key = $moduleKey; $module->title = $moduleName; + $module->active = 0; $module->children = array(); - foreach($modules[$moduleKey] as $objectKey => $objectName) + foreach($objects[$moduleKey] as $objectKey => $objectName) { $object = new stdclass(); - $object->key = $objectKey; + $object->key = $objectName; $object->title = zget($this->lang->dev->tableList, $objectKey, $objectKey); - $object->active = $objectKey == $currentModule ? 1 : 0; + $object->active = $objectName == $currentModule ? 1 : 0; + if($object->active) $module->active = 1; $module->children[] = $object; } - $moduleTree[] = $module; + $tree[] = $module; } - return $moduleTree; + return $tree; } } diff --git a/module/dev/view/db.html.php b/module/dev/view/db.html.php index 0daede4ef3..7a36762adf 100644 --- a/module/dev/view/db.html.php +++ b/module/dev/view/db.html.php @@ -1,33 +1,11 @@ +