From 916b12d0bfbddb7c3c7a1226eee9c401d9399d7d Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Wed, 24 Feb 2021 17:05:24 +0800 Subject: [PATCH] * Finish task#36038. --- module/bug/control.php | 12 +++--- module/bug/model.php | 4 +- module/bug/view/browse.html.php | 2 +- module/caselib/view/browse.html.php | 2 +- module/index/js/index.js | 8 ++-- module/project/model.php | 2 +- module/qa/model.php | 2 +- module/story/control.php | 18 ++++++-- module/testcase/control.php | 2 +- module/testcase/model.php | 12 +++--- module/testcase/view/browse.html.php | 2 +- module/testcase/view/caseheader.html.php | 2 +- module/tree/control.php | 53 +++++++++++++++++++++--- 13 files changed, 87 insertions(+), 34 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index e37c108aec..7e191668f1 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -43,7 +43,7 @@ class bug extends control } $this->view->products = $this->products = $this->product->getProductPairsByProject($this->projectID); - if($this->session->PRJ and empty($this->products)) die($this->locate($this->createLink('product', 'showErrorNone', "fromModule=bug"))); + if($this->projectID and empty($this->products)) die($this->locate($this->createLink('product', 'showErrorNone', "fromModule=bug"))); } /** @@ -134,7 +134,7 @@ class bug extends control $pager = new pager($recTotal, $recPerPage, $pageID); /* Get projects. */ - $projects = $this->loadModel('project')->getExecutionPairs($this->session->PRJ, 'all', 'empty|withdelete'); + $projects = $this->loadModel('project')->getExecutionPairs($this->projectID, 'all', 'empty|withdelete'); /* Get bugs. */ $bugs = $this->bug->getBugs($productID, $projects, $branch, $browseType, $moduleID, $queryID, $sort, $pager); @@ -447,7 +447,7 @@ class bug extends control $moduleOptionMenu = $this->tree->getOptionMenu($productID, $viewType = 'bug', $startModuleID = 0, $branch); if(empty($moduleOptionMenu)) die(js::locate(helper::createLink('tree', 'browse', "productID=$productID&view=story"))); - $productList = $this->product->getOrderedProducts('all', 40, $this->session->PRJ); + $productList = $this->product->getOrderedProducts('all', 40, $this->projectID); foreach($productList as $product) $products[$product->id] = $product->name; /* Set custom. */ @@ -609,7 +609,7 @@ class bug extends control $this->lang->set('menugroup.bug', 'repo'); $repos = $this->loadModel('repo')->getRepoPairs($this->session->PRJ); $this->repo->setMenu($repos); - $this->lang->bug->menu = $this->lang->repo->menu; + $this->lang->bug->menu = $this->lang->repo->menu; } /* Get product info. */ @@ -1537,8 +1537,8 @@ class bug extends control /* Get users, products and projects. */ $users = $this->loadModel('user')->getPairs('noletter'); - $products = $this->loadModel('product')->getPairs('nocode', $this->session->PRJ); - $projects = $this->loadModel('project')->getExecutionPairs($this->session->PRJ, 'all', 'all|nocode'); + $products = $this->loadModel('product')->getPairs(); + $projects = $this->loadModel('project')->getExecutionPairs($this->projectID, 'all', 'all'); /* Get related objects id lists. */ $relatedProductIdList = array(); diff --git a/module/bug/model.php b/module/bug/model.php index 17754fa22a..4e7aebb0fc 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -72,7 +72,7 @@ class bugModel extends model ->setDefault('project,story,task', 0) ->setDefault('openedBuild', '') ->setDefault('deadline', '0000-00-00') - ->setIF($this->config->systemMode == 'new', 'PRJ', $this->session->PRJ) + ->setIF($this->config->systemMode == 'new' && $this->lang->navGroup->bug != 'qa', 'PRJ', $this->session->PRJ) ->setIF(strpos($this->config->bug->create->requiredFields, 'deadline') !== false, 'deadline', $this->post->deadline) ->setIF($this->post->assignedTo != '', 'assignedDate', $now) ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) @@ -234,7 +234,7 @@ class bugModel extends model } } - if($this->config->systemMode == 'new') $bug->PRJ = $this->session->PRJ; + if($this->config->systemMode == 'new' && $this->lang->navGroup->bug != 'qa') $bug->PRJ = $this->session->PRJ; $this->dao->insert(TABLE_BUG)->data($bug) ->autoCheck() ->batchCheck($this->config->bug->create->requiredFields, 'notempty') diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php index 56bca8850a..6682d6d291 100644 --- a/module/bug/view/browse.html.php +++ b/module/bug/view/browse.html.php @@ -169,7 +169,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
- tree->manage, '', "class='btn btn-info btn-wide'");?> + lang->navGroup->bug}", $lang->tree->manage, '', "class='btn btn-info btn-wide'");?>
diff --git a/module/caselib/view/browse.html.php b/module/caselib/view/browse.html.php index 30c5e58e54..154532a8f4 100644 --- a/module/caselib/view/browse.html.php +++ b/module/caselib/view/browse.html.php @@ -73,7 +73,7 @@ js::set('flow', $config->global->flow);
- tree->manage, '', "class='btn btn-info btn-wide'");?> + lang->navGroup->caselib}", $lang->tree->manage, '', "class='btn btn-info btn-wide'");?>
diff --git a/module/index/js/index.js b/module/index/js/index.js index 74c627256f..8c3d1b90db 100644 --- a/module/index/js/index.js +++ b/module/index/js/index.js @@ -99,9 +99,9 @@ if(methodLowerCase.indexOf('pgm') === 0) return 'program'; if(methodLowerCase === 'index' || methodLowerCase.indexOf('prj') === 0) return 'project'; } - if(moduleName === 'story' && (methodLowerCase === 'zerocase' || (methodLowerCase === 'batchedit' && (link.params.projectID || link.params.$2)))) + if(moduleName === 'story' && methodLowerCase === 'zerocase') { - return 'project'; + return link.params.from == 'project' ? 'project' : 'qa'; } if(['repo', 'jenkins', 'job', 'compile'].includes(moduleName)) { @@ -122,8 +122,8 @@ { if(methodLowerCase === 'browse') { - var viewType = link.params.viewType || link.params.$2; - if(['bug', 'case', 'caselib'].includes(viewType)) return 'project'; + var viewType = link.params.view || link.params.$2; + if(['bug', 'case', 'caselib'].includes(viewType)) return link.params.from === 'project' ? 'project' : 'qa'; if(viewType === 'doc' && (link.params.from === 'product' || link.params.$5 == 'product')) return 'product'; if(viewType === 'doc' && (link.params.from === 'project' || link.params.$5 == 'project')) return 'project'; diff --git a/module/project/model.php b/module/project/model.php index 2ab69a0f0b..96d7287719 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -871,7 +871,7 @@ class projectModel extends model } /* Order by status's content whether or not done */ - $executions = $this->dao->select('*, IF(INSTR(" done,closed", status) < 2, 0, 1) AS isDone, INSTR("doing,wait,suspended,closed", status) AS sortStatus')->from(TABLE_EXECUTION) + $executions = $this->dao->select('*, IF(INSTR("done,closed", status) < 2, 0, 1) AS isDone, INSTR("doing,wait,suspended,closed", status) AS sortStatus')->from(TABLE_EXECUTION) ->where('deleted')->eq(0) ->beginIF(!$projectID && $type == 'all' && $this->config->systemMode == 'new')->andWhere('type')->in('stage,sprint')->fi() ->beginIF($projectID && $this->config->systemMode == 'new')->andWhere('project')->eq($projectID)->fi() diff --git a/module/qa/model.php b/module/qa/model.php index bbef8be063..08bf876226 100644 --- a/module/qa/model.php +++ b/module/qa/model.php @@ -74,7 +74,7 @@ class qaModel extends model { $itemMenu = zget($moduleSubMenu, $menuKey, ''); $isActive['method'] = ($moduleName == strtolower($menu->link['module']) and $methodName == strtolower($menu->link['method'])); - $isActive['alias'] = ($moduleName == strtolower($menu->link['module']) and (is_array($itemMenu) and isset($itemMenu['alias']) and strpos($itemMenu['alias'], $methodName) !== false)); + $isActive['alias'] = ($moduleName == strtolower($menu->link['module']) and (is_array($itemMenu) and isset($itemMenu['alias']) and strpos(',' . $itemMenu['alias'] . ',', ",$methodName,") !== false)); $isActive['subModule'] = (is_array($itemMenu) and isset($itemMenu['subModule']) and strpos($itemMenu['subModule'], $moduleName) !== false); if($isActive['method'] or $isActive['alias'] or $isActive['subModule']) { diff --git a/module/story/control.php b/module/story/control.php index 4a2bb2c468..da02601ff6 100644 --- a/module/story/control.php +++ b/module/story/control.php @@ -1475,19 +1475,29 @@ class story extends control * * @param int $productID * @param string $orderBy + * @param string $from qa|project * @access public * @return void */ - public function zeroCase($productID, $orderBy = 'id_desc') + public function zeroCase($productID, $orderBy = 'id_desc', $from = 'project') { $this->session->set('productList', $this->app->getURI(true)); $products = $this->product->getPairs(); $this->lang->set('menugroup.story', 'qa'); - $moduleIndex = array_search('story', $this->lang->noMenuModule); - if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]); - $this->lang->navGroup->story = 'project'; + $this->lang->navGroup->story = $from; + if($from == 'project') + { + $moduleIndex = array_search('story', $this->lang->noMenuModule); + if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]); + } + else + { + $this->app->loadConfig('qa'); + foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; + } + $this->lang->story->menu = $this->lang->testcase->menu; $this->lang->story->menuOrder = $this->lang->testcase->menuOrder; $this->loadModel('testcase')->setMenu($products, $productID); diff --git a/module/testcase/control.php b/module/testcase/control.php index d19b37b627..8b0b3d4400 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -1194,7 +1194,7 @@ class testcase extends control /* Get users, products and projects. */ $users = $this->loadModel('user')->getPairs('noletter'); - $products = $this->loadModel('product')->getPairs('nocode', $this->session->PRJ); + $products = $this->loadModel('product')->getPairs(); $branches = $this->loadModel('branch')->getPairs($productID); /* Get related objects id lists. */ diff --git a/module/testcase/model.php b/module/testcase/model.php index 219e536f83..b18f780708 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -73,7 +73,7 @@ class testcaseModel extends model ->add('fromBug', $bugID) ->setDefault('openedBy', $this->app->user->account) ->setDefault('openedDate', $now) - ->setIF($this->config->systemMode == 'new', 'PRJ', $this->session->PRJ) + ->setIF($this->config->systemMode == 'new' && $this->lang->navGroup->testcase != 'qa', 'PRJ', $this->session->PRJ) ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion((int)$this->post->story)) ->remove('steps,expects,files,labels,stepType,forceNotReview') ->setDefault('story', 0) @@ -165,7 +165,7 @@ class testcaseModel extends model $data[$i] = new stdclass(); $data[$i]->product = $productID; - if($this->config->systemMode == 'new') $data[$i]->PRJ = $this->session->PRJ; + if($this->config->systemMode == 'new' && $this->lang->navGroup->testcase != 'qa') $data[$i]->PRJ = $this->session->PRJ; $data[$i]->branch = $cases->branch[$i]; $data[$i]->module = $cases->module[$i]; $data[$i]->type = $cases->type[$i]; @@ -242,7 +242,7 @@ class testcaseModel extends model return $this->dao->select('t1.*, t2.title as storyTitle')->from(TABLE_CASE)->alias('t1') ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id') ->where('t1.product')->eq((int)$productID) - ->andWhere('t1.PRJ')->eq($this->session->PRJ) + ->beginIF($this->lang->navGroup->testcase != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi() ->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi() ->beginIF($moduleIdList)->andWhere('t1.module')->in($moduleIdList)->fi() ->beginIF($browseType == 'wait')->andWhere('t1.status')->eq($browseType)->fi() @@ -271,7 +271,7 @@ class testcaseModel extends model ->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story=t2.id') ->leftJoin(TABLE_SUITECASE)->alias('t3')->on('t1.id=t3.case') ->where('t1.product')->eq((int)$productID) - ->andWhere('t1.PRJ')->eq($this->session->PRJ) + ->beginIF($this->lang->navGroup->testcase != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi() ->andWhere('t3.suite')->eq((int)$suiteID) ->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi() ->beginIF($moduleIdList)->andWhere('t1.module')->in($moduleIdList)->fi() @@ -361,10 +361,10 @@ class testcaseModel extends model { $cases = $this->dao->select('t1.*, t2.title AS storyTitle')->from(TABLE_CASE)->alias('t1')->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id') ->where("t2.status = 'active'") - ->andWhere('t1.PRJ')->eq($this->session->PRJ) ->andWhere('t1.deleted')->eq(0) ->andWhere('t2.version > t1.storyVersion') ->andWhere('t1.product')->eq($productID) + ->beginIF($this->lang->navGroup->testcase != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi() ->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi() ->beginIF($modules)->andWhere('t1.module')->in($modules)->fi() ->beginIF($auto != 'unit')->andWhere('t1.auto')->ne('unit')->fi() @@ -1124,7 +1124,7 @@ class testcaseModel extends model } else { - if($this->config->systemMode == 'new') $caseData->PRJ = $this->session->PRJ; + if($this->config->systemMode == 'new' && $this->lang->navGroup->testcase != 'qa') $caseData->PRJ = $this->session->PRJ; $caseData->version = 1; $caseData->openedBy = $this->app->user->account; $caseData->openedDate = $now; diff --git a/module/testcase/view/browse.html.php b/module/testcase/view/browse.html.php index f9d0f6ab8b..0369d3f3a5 100644 --- a/module/testcase/view/browse.html.php +++ b/module/testcase/view/browse.html.php @@ -35,7 +35,7 @@ js::set('suiteID', $suiteID);
- tree->manage, '', "class='btn btn-info btn-wide'");?> + lang->navGroup->testcase}", $lang->tree->manage, '', "class='btn btn-info btn-wide'");?>
diff --git a/module/testcase/view/caseheader.html.php b/module/testcase/view/caseheader.html.php index 8a5393d24f..36fed85dde 100644 --- a/module/testcase/view/caseheader.html.php +++ b/module/testcase/view/caseheader.html.php @@ -76,7 +76,7 @@ } elseif($hasZeroPriv and $menuType == 'zerocase') { - echo html::a($this->createLink('story', 'zeroCase', "productID=$productID"), "{$lang->story->zeroCase}", '', "class='btn btn-link' id='zerocaseTab'"); + echo html::a($this->createLink('story', 'zeroCase', "productID=$productID&orderBy=id_desc&from={$this->lang->navGroup->testcase}"), "{$lang->story->zeroCase}", '', "class='btn btn-link' id='zerocaseTab'"); } ?> diff --git a/module/tree/control.php b/module/tree/control.php index ffd63743c5..e0120056a0 100644 --- a/module/tree/control.php +++ b/module/tree/control.php @@ -91,8 +91,23 @@ class tree extends control } elseif($viewType == 'bug') { - $this->lang->navGroup->tree = 'project'; - $this->loadModel('bug')->setMenu($this->product->getPairs('', $this->session->PRJ), $rootID); + $this->lang->navGroup->tree = 'qa'; + $productPairs = array(); + if($from == 'project') + { + $this->lang->navGroup->tree = 'project'; + $productPairs = $this->product->getProductPairsByProject($this->session->PRJ); + } + elseif($from == 'qa') + { + $this->lang->noMenuModule[] = 'tree'; + $this->lang->navGroup->tree = 'qa'; + $this->app->loadConfig('qa'); + foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; + $productPairs = $this->product->getPairs(); + } + + $this->loadModel('bug')->setMenu($productPairs, $rootID); $this->lang->tree->menu = $this->lang->bug->menu; $this->lang->tree->menuOrder = $this->lang->bug->menuOrder; $this->lang->set('menugroup.tree', 'qa'); @@ -118,8 +133,24 @@ class tree extends control } elseif($viewType == 'case') { - $this->lang->navGroup->tree = 'project'; - $this->loadModel('testcase')->setMenu($this->product->getPairs('', $this->session->PRJ), $rootID); + $this->lang->navGroup->tree = 'qa'; + + $productPairs = array(); + if($from == 'project') + { + $this->lang->navGroup->tree = 'project'; + $productPairs = $this->product->getProductPairsByProject($this->session->PRJ); + } + elseif($from == 'qa') + { + $this->lang->noMenuModule[] = 'tree'; + $this->lang->navGroup->tree = 'qa'; + $this->app->loadConfig('qa'); + foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; + $productPairs = $this->product->getPairs(); + } + + $this->loadModel('testcase')->setMenu($productPairs, $rootID); $this->lang->tree->menu = $this->lang->testcase->menu; $this->lang->tree->menuOrder = $this->lang->testcase->menuOrder; $this->lang->set('menugroup.tree', 'qa'); @@ -130,7 +161,19 @@ class tree extends control } elseif($viewType == 'caselib') { - $this->lang->navGroup->tree = 'project'; + $this->lang->navGroup->tree = 'qa'; + if($from == 'project') + { + $this->lang->navGroup->tree = 'project'; + } + elseif($from == 'qa') + { + $this->lang->noMenuModule[] = 'tree'; + $this->lang->navGroup->tree = 'qa'; + $this->app->loadConfig('qa'); + foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; + } + $this->caselib->setLibMenu($this->caselib->getLibraries(), $rootID); $this->lang->tree->menu = $this->lang->caselib->menu; $this->lang->tree->menuOrder = $this->lang->caselib->menuOrder;