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 .= "
";
- $menu .= "";
- $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);