diff --git a/module/api/control.php b/module/api/control.php index b6b7e883ec..7deaad5c67 100755 --- a/module/api/control.php +++ b/module/api/control.php @@ -49,6 +49,12 @@ class api extends control $objectID = $this->objectID; $isFirstLoad = $libID ? false : true; + if($release) + { + $browseType = 'byrelease'; + $param = $release; + } + /* Get all api doc libraries. */ $libs = $this->doc->getApiLibs($appendLib, $objectType, $objectID); if(empty($libs) and $objectType != 'nolink') @@ -125,7 +131,7 @@ class api extends control $this->view->objectID = $objectID; $this->view->moduleID = $moduleID; $this->view->version = $version; - $this->view->libTree = $this->doc->getLibTree($libID, $libs, 'api', $moduleID, $objectID, $browseType); + $this->view->libTree = $this->doc->getLibTree($libID, $libs, 'api', $moduleID, $objectID, $browseType, $param); $this->view->users = $this->user->getPairs('noclosed,noletter'); $this->view->objectDropdown = isset($libs[$libID]) ? $this->generateLibsDropMenu($libs[$libID], $release) : ''; @@ -931,4 +937,31 @@ class api extends control $this->display(); } + + /** + * Edit a catalog. + * + * @param int $moduleID + * @param string $type doc|api + * @access public + * @return void + */ + public function editCatalog($moduleID, $type) + { + echo $this->fetch('tree', 'edit', "moduleID=$moduleID&type=$type"); + } + + /** + * Delete a catalog. + * + * @param int $rootID + * @param int $moduleID + * @param string $confirm yes|no + * @access public + * @return void + */ + public function deleteCatalog($rootID, $moduleID, $confirm = 'no') + { + echo $this->fetch('tree', 'delete', "rootID=$rootID&moduleID=$moduleID&confirm=$confirm"); + } } diff --git a/module/api/lang/de.php b/module/api/lang/de.php index 3a88082d06..8843f01349 100644 --- a/module/api/lang/de.php +++ b/module/api/lang/de.php @@ -61,6 +61,9 @@ $lang->api->zentaoAPI = "Zentao API v1"; $lang->api->search = "Search"; $lang->api->allLibs = "AllLibs"; $lang->api->noLinked = "No Linked"; +$lang->api->addCatalog = 'Add Catalog'; +$lang->api->editCatalog = 'Edit Catalog'; +$lang->api->deleteCatalog = 'Delete Catalog'; /* Common access control lang. */ $lang->api->whiteList = 'Whitelist'; diff --git a/module/api/lang/en.php b/module/api/lang/en.php index b73d0e5656..d635929153 100644 --- a/module/api/lang/en.php +++ b/module/api/lang/en.php @@ -61,6 +61,9 @@ $lang->api->zentaoAPI = "Zentao API v1"; $lang->api->search = "Search"; $lang->api->allLibs = "AllLibs"; $lang->api->noLinked = "No Linked"; +$lang->api->addCatalog = 'Add Catalog'; +$lang->api->editCatalog = 'Edit Catalog'; +$lang->api->deleteCatalog = 'Delete Catalog'; /* Common access control lang. */ $lang->api->whiteList = 'Whitelist'; diff --git a/module/api/lang/fr.php b/module/api/lang/fr.php index a0425ca703..2ef819831d 100644 --- a/module/api/lang/fr.php +++ b/module/api/lang/fr.php @@ -61,6 +61,9 @@ $lang->api->zentaoAPI = "Zentao API v1"; $lang->api->search = "Search"; $lang->api->allLibs = "AllLibs"; $lang->api->noLinked = "No Linked"; +$lang->api->addCatalog = 'Add Catalog'; +$lang->api->editCatalog = 'Edit Catalog'; +$lang->api->deleteCatalog = 'Delete Catalog'; /* Common access control lang. */ $lang->api->whiteList = 'Whitelist'; diff --git a/module/api/lang/zh-cn.php b/module/api/lang/zh-cn.php index a4eeef8b26..bea818e109 100755 --- a/module/api/lang/zh-cn.php +++ b/module/api/lang/zh-cn.php @@ -61,6 +61,9 @@ $lang->api->zentaoAPI = "禅道API文档v1"; $lang->api->search = "搜索"; $lang->api->allLibs = "全部库"; $lang->api->noLinked = "无关联"; +$lang->api->addCatalog = '添加目录'; +$lang->api->editCatalog = '编辑目录'; +$lang->api->deleteCatalog = '删除目录'; /* Common access control lang. */ $lang->api->whiteList = '白名单'; diff --git a/module/doc/control.php b/module/doc/control.php index 603d4fee04..f7890a4ab3 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -1303,7 +1303,7 @@ class doc extends control $this->view->isFirstLoad = $isFirstLoad; $this->view->param = $queryID; $this->view->users = $this->user->getPairs('noletter'); - $this->view->libTree = $this->doc->getLibTree($libID, $libs, $type, $moduleID, $objectID, $browseType); + $this->view->libTree = $this->doc->getLibTree($libID, $libs, $type, $moduleID, $objectID, $browseType, $param); $this->view->libID = $libID; $this->view->moduleID = $moduleID; $this->view->objectDropdown = $objectDropdown; @@ -1312,6 +1312,7 @@ class doc extends control $this->view->pager = $pager; $this->view->objectID = $objectID; $this->view->orderBy = $orderBy; + $this->view->release = $browseType == 'byrelease' ? $param : 0; $this->view->canExport = $libType == 'api' ? common::hasPriv('api', 'export') : common::hasPriv('doc', $type . '2export'); $this->view->exportMethod = $libType == 'api' ? 'export' : $type . '2export'; $this->view->apiLibID = key($apiLibs); diff --git a/module/doc/model.php b/module/doc/model.php index a414b800a1..715100504c 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -2787,9 +2787,9 @@ class docModel extends model * @access public * @return array */ - public function getModuleTree($rootID, $moduleID = 0, $type = 'doc', $parent = 0, &$modules = array()) + public function getModuleTree($rootID, $moduleID = 0, $type = 'doc', $parent = 0, $modules = array()) { - if(empty($modules)) + if(is_array($modules) and empty($modules)) { $modules = $this->dao->select('*')->from(TABLE_MODULE) ->where('root')->eq((int)$rootID) @@ -2843,10 +2843,11 @@ class docModel extends model * @param int $objectID * @param int $executionID * @param string $browseType bySearch + * @param int $param * @access public * @return array */ - public function getLibTree($libID, $libs, $type, $moduleID, $objectID = 0, $browseType = '') + public function getLibTree($libID, $libs, $type, $moduleID, $objectID = 0, $browseType = '', $param = 0) { if($type == 'project') { @@ -2862,11 +2863,20 @@ class docModel extends model ->fetchPairs(); } + $release = null; + if($browseType == 'byrelease' and $param) $release = $this->loadModel('api')->getRelease(0, 'byId', $param); + $libTree = array($type => array()); $apiLibs = array(); $apiLibIDList = array(); foreach($libs as $lib) { + $releaseModule = array(); + if($release and $release->lib == $lib->id) + { + foreach($release->snap['modules'] as $module) $releaseModule[$module['id']] = (object)$module; + } + $item = new stdclass(); $item->id = $lib->id; $item->type = $lib->type == 'api' ? 'api' : 'lib'; @@ -2874,7 +2884,7 @@ class docModel extends model $item->objectType = $type; $item->objectID = $objectID; $item->active = $lib->id == $libID && $browseType != 'bySearch' ? 1 : 0; - $item->children = $this->getModuleTree($lib->id, $moduleID, $lib->type == 'api' ? 'api' : 'doc'); + $item->children = $this->getModuleTree($lib->id, $moduleID, $lib->type == 'api' ? 'api' : 'doc', 0, $releaseModule); $showDoc = $this->loadModel('setting')->getItem('owner=' . $this->app->user->account . '&module=doc&key=showDoc'); $showDoc = $showDoc === '0' ? 0 : 1; if($this->app->rawMethod == 'view' and $lib->type != 'api' and $showDoc) diff --git a/module/doc/view/lefttree.html.php b/module/doc/view/lefttree.html.php index 5b101f17f4..330ce703ef 100644 --- a/module/doc/view/lefttree.html.php +++ b/module/doc/view/lefttree.html.php @@ -187,15 +187,15 @@ $(function() } else { - var libId; + var lib = 0; var $lis = '