diff --git a/module/api/control.php b/module/api/control.php index fdd02f3ef9..23ab0ca1ee 100755 --- a/module/api/control.php +++ b/module/api/control.php @@ -41,6 +41,9 @@ class api extends control */ public function index($libID = 0, $moduleID = 0, $apiID = 0, $version = 0, $release = 0, $appendLib = 0, $browseType = '', $param = 0) { + $this->session->set('spaceType', 'api', 'doc'); + $this->setMenu($libID); + $objectType = $this->objectType; $objectID = $this->objectID; @@ -141,10 +144,11 @@ class api extends control */ public function view($libID, $apiID, $moduleID = 0, $release = 0, $version = 0) { + $this->setMenu($libID); + /* Get all api doc libraries. */ $libs = $this->doc->getApiLibs($libID); - - $api = $this->api->getLibById($apiID, $version, $release); + $api = $this->api->getLibById($apiID, $version, $release); if($api) { $moduleID = $api->module; @@ -265,16 +269,14 @@ class api extends control * @access public * @return void */ - public function struct($libID = 0, $releaseID = 0, $orderBy = 'id', $recTotal = 0, $recPerPage = 15, $pageID = 1) + public function struct($libID = 0, $releaseID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1) { - $libs = $this->doc->getApiLibs(); - $this->app->loadClass('pager', $static = true); - $this->lang->modulePageNav = $this->generateLibsDropMenu($libs[$libID], $releaseID); - - $pager = new pager($recTotal, $recPerPage, $pageID); + $this->setMenu($libID); /* Append id for secend sort. */ $sort = common::appendOrder($orderBy); + $this->app->loadClass('pager', $static = true); + $pager = new pager($recTotal, $recPerPage, $pageID); if($releaseID) { @@ -306,6 +308,8 @@ class api extends control public function createStruct($libID = 0) { common::setMenuVars('doc', $libID); + $this->setMenu($libID); + if(!empty($_POST)) { $now = helper::now(); @@ -351,6 +355,8 @@ class api extends control public function editStruct($libID, $structID) { common::setMenuVars('doc', $libID); + $this->setMenu($libID); + $struct = $this->api->getStructByID($structID); if(!empty($_POST)) @@ -695,53 +701,32 @@ class api extends control } /** - * Set doc menu by method name. + * Set api menu by method name. * * @param int $libID - * @param int $moduleID * @access public * @return void */ - private function setMenu($libID = 0, $moduleID = 0) + private function setMenu($libID = 0) { common::setMenuVars('doc', ''); - /* Global struct link. */ - $menu = ''; - - if($libID and common::hasPriv('api', 'createRelease')) + $lib = $this->loadModel('doc')->getLibByID($libID); + if($this->app->tab == 'product') { - $menu .= html::a(helper::createLink('api', 'createRelease', "libID=$libID"), $this->lang->api->createRelease, '', 'class="btn btn-link iframe"'); + $this->loadModel('product')->setMenu($lib->product); + } + elseif($this->app->tab == 'project') + { + $this->loadModel('project')->setMenu($lib->project); } - /* page of index menu. */ - if(common::hasPriv('api', 'create') or common::hasPriv('api', 'createLib')) + if(in_array($this->session->spaceType, array('product', 'project'))) { - $menu .= ""; + $this->lang->doc->menu->api['exclude'] = 'api-' . $this->app->rawMethod; + $this->lang->doc->menu->{$this->session->spaceType}['subModule'] = 'api'; } - $this->lang->TRActions = $menu; } /** diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 10b8661ee9..211ae60d05 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -168,7 +168,7 @@ $lang->product->menu->release = array('link' => "{$lang->release->common}|re $lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s"); $lang->product->menu->requirement = array('link' => "{$lang->URCommon}|product|browse|productID=%s&branch=&browseType=unclosed¶m=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story'); $lang->product->menu->track = array('link' => "{$lang->track}|product|track|productID=%s"); -$lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|productSpace|objectID=%s", 'subModule' => 'doc'); +$lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|productSpace|objectID=%s", 'subModule' => 'doc,api'); $lang->product->menu->dynamic = array('link' => "{$lang->dynamic}|product|dynamic|productID=%s"); $lang->product->menu->settings = array('link' => "{$lang->settings}|product|view|productID=%s", 'subModule' => 'tree,branch', 'alias' => 'edit,whitelist,addwhitelist'); @@ -207,7 +207,7 @@ $lang->scrum->menu->execution = array('link' => "$lang->executionCommon|projec $lang->scrum->menu->storyGroup = array('link' => "{$lang->common->story}|projectstory|story|projectID=%s&product=%s",'class' => 'dropdown dropdown-hover', 'exclude' => 'tree-browse'); $lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree', 'alias' => 'story,track'); $lang->scrum->menu->projectplan = array('link' => "{$lang->productplan->shortCommon}|projectplan|browse|productID=%s", 'subModule' => 'productplan'); -$lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s", 'subModule' => 'doc'); +$lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s", 'subModule' => 'doc,api'); $lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport', 'exclude' => 'execution-create,execution-batchedit'); $lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo'); $lang->scrum->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s", 'subModule' => 'projectbuild'); diff --git a/module/doc/control.php b/module/doc/control.php index 7df038341b..3e1fb4d411 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -1196,6 +1196,7 @@ class doc extends control { $this->view->isFirstLoad = $objectID == 0 ? 'true' : 'false'; $this->session->set('createProjectLocate', $this->app->getURI(true), 'doc'); + $this->session->set('spaceType', $type, 'doc'); if(empty($browseType)) $browseType = 'all'; list($libs, $libID, $object, $objectID, $objectDropdown) = $this->doc->setMenuByType($type, $objectID, $libID);