From c0e97a501cbb953927b66861eb287ba71a5c1423 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 14:33:10 +0800 Subject: [PATCH 1/7] * Finish task #64976. --- db/update17.5.sql | 3 + module/common/lang/menu.php | 2 +- module/common/lang/vi.php | 2 +- module/group/lang/resource.php | 105 +++++++++-------- module/index/js/index.js | 2 +- module/product/control.php | 55 +++++++++ module/{story => product}/css/track.css | 0 module/{story => product}/js/track.js | 0 module/product/lang/de.php | 2 + module/product/lang/en.php | 2 + module/product/lang/fr.php | 2 + module/product/lang/zh-cn.php | 1 + module/product/model.php | 6 +- module/{story => product}/view/track.html.php | 0 module/projectstory/control.php | 2 +- module/story/control.php | 109 ------------------ module/testcase/control.php | 54 +++++++++ .../{story => testcase}/css/zerocase.en.css | 0 .../{story => testcase}/css/zerocase.vi.css | 0 .../css/zerocase.zh-cn.css | 0 .../css/zerocase.zh-tw.css | 0 module/testcase/js/zerocase.js | 4 + module/testcase/lang/de.php | 1 + module/testcase/lang/en.php | 1 + module/testcase/lang/fr.php | 1 + module/testcase/lang/zh-cn.php | 1 + module/testcase/view/caseheader.html.php | 4 +- .../view/zerocase.html.php | 15 ++- 28 files changed, 201 insertions(+), 173 deletions(-) rename module/{story => product}/css/track.css (100%) rename module/{story => product}/js/track.js (100%) rename module/{story => product}/view/track.html.php (100%) rename module/{story => testcase}/css/zerocase.en.css (100%) rename module/{story => testcase}/css/zerocase.vi.css (100%) rename module/{story => testcase}/css/zerocase.zh-cn.css (100%) rename module/{story => testcase}/css/zerocase.zh-tw.css (100%) create mode 100644 module/testcase/js/zerocase.js rename module/{story => testcase}/view/zerocase.html.php (96%) diff --git a/db/update17.5.sql b/db/update17.5.sql index bd9371892f..19dec9209c 100644 --- a/db/update17.5.sql +++ b/db/update17.5.sql @@ -247,3 +247,6 @@ INSERT IGNORE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `syst ('de', 'bug', 'osList', 'freebsd', 'FreeBSD', '1', 'rnd'), ('de', 'bug', 'osList', 'unix', 'Unix', '1', 'rnd'), ('de', 'bug', 'osList', 'others', 'Andere', '1', 'rnd'); + +UPDATE `zt_grouppriv` SET `module` = 'testcase' WHERE `module` = 'story' and `method` = 'zeroCase'; +UPDATE `zt_grouppriv` SET `module` = 'product' WHERE `module` = 'story' and `method` = 'track'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index dda70b11b2..0cfef8bcf2 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -163,7 +163,7 @@ $lang->product->menu->release = array('link' => "{$lang->release->common}|relea $lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s"); if($config->systemMode == 'new') $lang->product->menu->project = array('link' => "{$lang->project->common}|product|project|status=all&productID=%s"); if($config->systemMode == 'classic') $lang->product->menu->project = array('link' => "{$lang->execution->common}|product|project|status=all&productID=%s"); -$lang->product->menu->track = array('link' => "{$lang->track}|story|track|productID=%s"); +$lang->product->menu->track = array('link' => "{$lang->track}|product|track|productID=%s"); $lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=product&objectID=%s", 'subModule' => 'doc'); $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'); diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php index e2e12d543c..b5e9712fd7 100644 --- a/module/common/lang/vi.php +++ b/module/common/lang/vi.php @@ -203,7 +203,7 @@ $lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse $lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release'); $lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s'; $lang->product->viewMenu->project = "Project|product|project|status=all&productID=%s"; -$lang->product->viewMenu->track = array('link' => "Track|story|track|productID=%s"); +$lang->product->viewMenu->track = array('link' => "Track|product|track|productID=%s"); $lang->product->viewMenu->doc = array('link' => 'Doc|doc|objectLibs|type=product&objectID=%s&from=product', 'subModule' => 'doc'); $lang->product->viewMenu->dynamic = 'Dynamic|product|dynamic|productID=%s'; $lang->product->viewMenu->set = array('link' => 'Setting|product|view|productID=%s', 'subModule' => 'tree,branch', 'alias' => 'edit'); diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 56080b05d5..27f8d65040 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -416,27 +416,28 @@ if($config->systemMode == 'new') /* Product. */ $lang->resource->product = new stdclass(); -$lang->resource->product->index = 'indexAction'; -$lang->resource->product->browse = 'browse'; -$lang->resource->product->create = 'create'; -$lang->resource->product->view = 'view'; -$lang->resource->product->edit = 'edit'; -$lang->resource->product->batchEdit = 'batchEdit'; -$lang->resource->product->delete = 'delete'; -$lang->resource->product->roadmap = 'roadmap'; -$lang->resource->product->dynamic = 'dynamic'; -$lang->resource->product->project = 'project'; -$lang->resource->product->dashboard = 'dashboard'; -$lang->resource->product->close = 'closeAction'; -$lang->resource->product->updateOrder = 'orderAction'; -$lang->resource->product->all = 'list'; -$lang->resource->product->kanban = 'kanban'; -$lang->resource->product->manageLine = 'manageLine'; -$lang->resource->product->build = 'build'; -$lang->resource->product->export = 'exportAction'; -$lang->resource->product->whitelist = 'whitelist'; -$lang->resource->product->addWhitelist = 'addWhitelist'; +$lang->resource->product->index = 'indexAction'; +$lang->resource->product->browse = 'browse'; +$lang->resource->product->create = 'create'; +$lang->resource->product->view = 'view'; +$lang->resource->product->edit = 'edit'; +$lang->resource->product->batchEdit = 'batchEdit'; +$lang->resource->product->delete = 'delete'; +$lang->resource->product->roadmap = 'roadmap'; +$lang->resource->product->dynamic = 'dynamic'; +$lang->resource->product->project = 'project'; +$lang->resource->product->dashboard = 'dashboard'; +$lang->resource->product->close = 'closeAction'; +$lang->resource->product->updateOrder = 'orderAction'; +$lang->resource->product->all = 'list'; +$lang->resource->product->kanban = 'kanban'; +$lang->resource->product->manageLine = 'manageLine'; +$lang->resource->product->build = 'build'; +$lang->resource->product->export = 'exportAction'; +$lang->resource->product->whitelist = 'whitelist'; +$lang->resource->product->addWhitelist = 'addWhitelist'; $lang->resource->product->unbindWhitelist = 'unbindWhitelist'; +$lang->resource->product->track = 'track'; $lang->product->methodOrder[0] = 'index'; $lang->product->methodOrder[5] = 'browse'; @@ -501,7 +502,6 @@ $lang->resource->story->activate = 'activateAction'; $lang->resource->story->tasks = 'tasks'; $lang->resource->story->bugs = 'bugs'; $lang->resource->story->cases = 'cases'; -$lang->resource->story->zeroCase = 'zeroCase'; $lang->resource->story->report = 'reportAction'; $lang->resource->story->batchChangePlan = 'batchChangePlan'; $lang->resource->story->batchChangeBranch = 'batchChangeBranch'; @@ -509,7 +509,6 @@ $lang->resource->story->batchChangeStage = 'batchChangeStage'; $lang->resource->story->batchAssignTo = 'batchAssignTo'; $lang->resource->story->batchChangeModule = 'batchChangeModule'; $lang->resource->story->batchToTask = 'batchToTask'; -$lang->resource->story->track = 'trackAB'; $lang->resource->story->processStoryChange = 'processStoryChange'; $lang->resource->story->linkStories = 'linkStoriesAB'; @@ -535,15 +534,13 @@ $lang->story->methodOrder[85] = 'activate'; $lang->story->methodOrder[90] = 'tasks'; $lang->story->methodOrder[95] = 'bugs'; $lang->story->methodOrder[100] = 'cases'; -$lang->story->methodOrder[105] = 'zeroCase'; -$lang->story->methodOrder[110] = 'report'; -$lang->story->methodOrder[115] = 'linkStory'; -$lang->story->methodOrder[120] = 'batchChangeBranch'; -$lang->story->methodOrder[125] = 'batchChangeModule'; -$lang->story->methodOrder[130] = 'batchToTask'; -$lang->story->methodOrder[135] = 'track'; -$lang->story->methodOrder[140] = 'processStoryChange'; -$lang->story->methodOrder[145] = 'linkStories'; +$lang->story->methodOrder[105] = 'report'; +$lang->story->methodOrder[110] = 'linkStory'; +$lang->story->methodOrder[115] = 'batchChangeBranch'; +$lang->story->methodOrder[120] = 'batchChangeModule'; +$lang->story->methodOrder[125] = 'batchToTask'; +$lang->story->methodOrder[130] = 'processStoryChange'; +$lang->story->methodOrder[135] = 'linkStories'; if($config->URAndSR) $lang->story->methodOrder[150] = 'linkRequirements'; @@ -970,6 +967,7 @@ $lang->bug->methodOrder[110] = 'batchChangeBranch'; $lang->resource->testcase = new stdclass(); $lang->resource->testcase->browse = 'browse'; $lang->resource->testcase->groupCase = 'groupCase'; +$lang->resource->testcase->zeroCase = 'zeroCase'; $lang->resource->testcase->create = 'create'; $lang->resource->testcase->batchCreate = 'batchCreate'; $lang->resource->testcase->createBug = 'createBug'; @@ -1001,31 +999,32 @@ $lang->resource->testcase->importToLib = 'importToLib'; $lang->testcase->methodOrder[0] = 'index'; $lang->testcase->methodOrder[5] = 'browse'; $lang->testcase->methodOrder[10] = 'groupCase'; -$lang->testcase->methodOrder[15] = 'create'; -$lang->testcase->methodOrder[20] = 'batchCreate'; -$lang->testcase->methodOrder[25] = 'createBug'; -$lang->testcase->methodOrder[30] = 'view'; -$lang->testcase->methodOrder[35] = 'edit'; -$lang->testcase->methodOrder[40] = 'delete'; -$lang->testcase->methodOrder[45] = 'export'; -$lang->testcase->methodOrder[50] = 'confirmChange'; -$lang->testcase->methodOrder[55] = 'confirmStoryChange'; -$lang->testcase->methodOrder[60] = 'batchEdit'; -$lang->testcase->methodOrder[65] = 'batchDelete'; -$lang->testcase->methodOrder[70] = 'batchChangeModule'; -$lang->testcase->methodOrder[75] = 'batchChangeBranch'; -$lang->testcase->methodOrder[80] = 'linkCases'; -$lang->testcase->methodOrder[82] = 'linkBugs'; +$lang->testcase->methodOrder[15] = 'zeroCase'; +$lang->testcase->methodOrder[20] = 'create'; +$lang->testcase->methodOrder[25] = 'batchCreate'; +$lang->testcase->methodOrder[30] = 'createBug'; +$lang->testcase->methodOrder[35] = 'view'; +$lang->testcase->methodOrder[40] = 'edit'; +$lang->testcase->methodOrder[45] = 'delete'; +$lang->testcase->methodOrder[50] = 'export'; +$lang->testcase->methodOrder[55] = 'confirmChange'; +$lang->testcase->methodOrder[60] = 'confirmStoryChange'; +$lang->testcase->methodOrder[65] = 'batchEdit'; +$lang->testcase->methodOrder[70] = 'batchDelete'; +$lang->testcase->methodOrder[75] = 'batchChangeModule'; +$lang->testcase->methodOrder[80] = 'batchChangeBranch'; +$lang->testcase->methodOrder[85] = 'linkCases'; +$lang->testcase->methodOrder[87] = 'linkBugs'; $lang->testcase->methodOrder[90] = 'bugs'; $lang->testcase->methodOrder[95] = 'review'; $lang->testcase->methodOrder[100] = 'batchReview'; -$lang->testcase->methodOrder[105] = 'batchConfirmStoryChange'; -$lang->testcase->methodOrder[110] = 'importFromLib'; -$lang->testcase->methodOrder[115] = 'batchCaseTypeChange'; -$lang->testcase->methodOrder[120] = 'confirmLibcaseChange'; -$lang->testcase->methodOrder[125] = 'ignoreLibcaseChange'; -$lang->testcase->methodOrder[130] = 'batchConfirmStoryChange'; -$lang->testcase->methodOrder[135] = 'importToLib'; +$lang->testcase->methodOrder[110] = 'batchConfirmStoryChange'; +$lang->testcase->methodOrder[115] = 'importFromLib'; +$lang->testcase->methodOrder[120] = 'batchCaseTypeChange'; +$lang->testcase->methodOrder[125] = 'confirmLibcaseChange'; +$lang->testcase->methodOrder[130] = 'ignoreLibcaseChange'; +$lang->testcase->methodOrder[135] = 'batchConfirmStoryChange'; +$lang->testcase->methodOrder[140] = 'importToLib'; /* Test task. */ $lang->resource->testtask = new stdclass(); diff --git a/module/index/js/index.js b/module/index/js/index.js index 6d4f97f5f7..9354e04071 100644 --- a/module/index/js/index.js +++ b/module/index/js/index.js @@ -122,7 +122,7 @@ } } if(moduleName === 'story' && vision === 'lite') return 'project' - if(moduleName === 'story' && methodLowerCase === 'zerocase') + if(moduleName === 'testcase' && methodLowerCase === 'zerocase') { return link.params.from == 'project' ? 'project' : 'qa'; } diff --git a/module/product/control.php b/module/product/control.php index e4c45cf9cf..8774ee920f 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -1554,4 +1554,59 @@ class product extends control $this->session->set('product', (int)$productID, $this->app->tab); $this->send(array('result' => 'success', 'productID' => $this->session->product)); } + + /** + * Story track. + * + * @param int $productID + * @param int|string $branch + * @param int $projectID + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID + * @access public + * @return void + */ + public function track($productID, $branch = '', $projectID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1) + { + $branch = ($this->cookie->preBranch !== '' and $branch === '') ? $this->cookie->preBranch : $branch; + setcookie('preBranch', $branch, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true); + + /* Set menu. The projectstory module does not execute. */ + if(!$projectID) + { + $products = $this->product->getPairs(); + $productID = $this->product->saveState($productID, $products); + $this->product->products = $this->product->saveState($productID, $products); + $this->product->setMenu($productID, $branch); + } + + /* Save session. */ + $this->session->set('storyList', $this->app->getURI(true), 'product'); + $this->session->set('taskList', $this->app->getURI(true), 'execution'); + $this->session->set('designList', $this->app->getURI(true), 'project'); + $this->session->set('bugList', $this->app->getURI(true), 'qa'); + $this->session->set('caseList', $this->app->getURI(true), 'qa'); + $this->session->set('revisionList', $this->app->getURI(true), 'repo'); + + /* Load pager and get tracks. */ + $this->app->loadClass('pager', $static = true); + $pager = new pager($recTotal, $recPerPage, $pageID); + $tracks = $this->story->getTracks($productID, $branch, $projectID, $pager); + + if($projectID) + { + $this->loadModel('project')->setMenu($projectID); + $projectProducts = $this->product->getProducts($projectID); + } + + $this->view->title = $this->lang->story->track; + $this->view->position[] = $this->lang->story->track; + + $this->view->tracks = $tracks; + $this->view->pager = $pager; + $this->view->productID = $productID; + $this->view->projectProducts = isset($projectProducts) ? $projectProducts : array(); + $this->display(); + } } diff --git a/module/story/css/track.css b/module/product/css/track.css similarity index 100% rename from module/story/css/track.css rename to module/product/css/track.css diff --git a/module/story/js/track.js b/module/product/js/track.js similarity index 100% rename from module/story/js/track.js rename to module/product/js/track.js diff --git a/module/product/lang/de.php b/module/product/lang/de.php index 7bf83d2c21..e6f048368b 100644 --- a/module/product/lang/de.php +++ b/module/product/lang/de.php @@ -11,6 +11,7 @@ */ $lang->product->index = $lang->productCommon . 'Home'; $lang->product->browse = 'Story Liste'; +$lang->product->requirement = 'Requirement Liste'; $lang->product->dynamic = 'Verlauf'; $lang->product->view = 'Übersicht'; $lang->product->edit = "{$lang->productCommon} bearbeiten"; @@ -34,6 +35,7 @@ $lang->product->changeProgram = "{$lang->productCommon} confirmation of the s $lang->product->changeProgramTip = "%s > Change Program"; $lang->product->addWhitelist = 'Add Whitelist'; $lang->product->unbindWhitelist = 'Remove Whitelist'; +$lang->product->track = 'View Stories Matrix'; $lang->product->checkedProducts = '%s products selected'; $lang->product->indexAction = "All {$lang->productCommon}"; diff --git a/module/product/lang/en.php b/module/product/lang/en.php index 5c30a03101..0de635095b 100644 --- a/module/product/lang/en.php +++ b/module/product/lang/en.php @@ -11,6 +11,7 @@ */ $lang->product->index = $lang->productCommon . ' Home'; $lang->product->browse = 'Story List'; +$lang->product->requirement = 'Requirement List'; $lang->product->dynamic = 'Dynamics'; $lang->product->view = "{$lang->productCommon} Detail"; $lang->product->edit = "Edit {$lang->productCommon}"; @@ -34,6 +35,7 @@ $lang->product->changeProgram = "{$lang->productCommon} confirmation of the s $lang->product->changeProgramTip = "%s > Change Program"; $lang->product->addWhitelist = 'Add Whitelist'; $lang->product->unbindWhitelist = 'Unbind Whitelist'; +$lang->product->track = 'View Stories Matrix'; $lang->product->checkedProducts = '%s products selected'; $lang->product->indexAction = "All {$lang->productCommon}"; diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php index 04c0a205f9..822e86edda 100644 --- a/module/product/lang/fr.php +++ b/module/product/lang/fr.php @@ -11,6 +11,7 @@ */ $lang->product->index = 'Accueil ' . $lang->productCommon; $lang->product->browse = 'Liste Stories'; +$lang->product->requirement = 'Liste Requirements'; $lang->product->dynamic = 'Historique'; $lang->product->view = "{$lang->productCommon} Détail"; $lang->product->edit = "Editer {$lang->productCommon}"; @@ -34,6 +35,7 @@ $lang->product->changeProgram = "{$lang->productCommon} confirmation of the s $lang->product->changeProgramTip = "%s > Change Program"; $lang->product->addWhitelist = 'Add Whitelist'; $lang->product->unbindWhitelist = 'Remove Whitelist'; +$lang->product->track = 'Consulter Stories Matrice'; $lang->product->checkedProducts = '%s produits s électionnés'; $lang->product->indexAction = "All {$lang->productCommon}"; diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php index f13204cd93..9d45538f3a 100644 --- a/module/product/lang/zh-cn.php +++ b/module/product/lang/zh-cn.php @@ -34,6 +34,7 @@ $lang->product->changeProgram = "{$lang->productCommon}调整所属项目集 $lang->product->changeProgramTip = "%s > 修改项目集"; $lang->product->addWhitelist = '添加白名单'; $lang->product->unbindWhitelist = '移除白名单'; +$lang->product->track = "查看{$lang->SRCommon}矩阵"; $lang->product->checkedProducts = '已选择%s项产品'; $lang->product->indexAction = "所有{$lang->productCommon}仪表盘"; diff --git a/module/product/model.php b/module/product/model.php index 3ee3ad29c2..e7f216d526 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -601,7 +601,7 @@ class productModel extends model /* Init currentModule and currentMethod for report and story. */ if($currentModule == 'story') { - $storyMethods = ",track,create,batchcreate,batchclose,zerocase,"; + $storyMethods = ",create,batchcreate,batchclose,"; if(strpos($storyMethods, "," . $currentMethod . ",") === false) $currentModule = 'product'; if($currentMethod == 'view' or $currentMethod == 'change' or $currentMethod == 'review') $currentMethod = 'browse'; } @@ -630,7 +630,7 @@ class productModel extends model if($notNormalProduct) { $isShowBranch = false; - if($currentModule == 'story' and $currentMethod == 'track') $isShowBranch = true; + if($currentModule == 'product' and $currentMethod == 'track') $isShowBranch = true; if($currentModule == 'tree' and $currentMethod == 'browse') $isShowBranch = true; if($currentModule == 'product' and strpos($this->config->product->showBranchMethod, $currentMethod) !== false) $isShowBranch = true; if($this->app->tab == 'qa' and strpos(',testsuite,testreport,testtask,', ",$currentModule,") === false) $isShowBranch = true; @@ -2229,7 +2229,7 @@ class productModel extends model { $link = helper::createLink('testsuite', 'browse', "productID=%s"); } - elseif(($module == 'testcase' and $method == 'groupCase') or ($module == 'story' and $method == 'zeroCase') and $this->app->tab == 'project') + elseif($module == 'testcase' and ($method == 'groupCase' or $method == 'zeroCase') and $this->app->tab == 'project') { parse_str($extra, $output); $projectID = isset($output['projectID']) ? $output['projectID'] : 0; diff --git a/module/story/view/track.html.php b/module/product/view/track.html.php similarity index 100% rename from module/story/view/track.html.php rename to module/product/view/track.html.php diff --git a/module/projectstory/control.php b/module/projectstory/control.php index 2907121fc4..6cf48eafe0 100644 --- a/module/projectstory/control.php +++ b/module/projectstory/control.php @@ -57,7 +57,7 @@ class projectStory extends control $products = $this->loadModel('product')->getProductPairsByProject($projectID); if(empty($productID)) $productID = key($products); - echo $this->fetch('story', 'track', "productID=$productID&branch=$branch&projectID=$projectID&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); + echo $this->fetch('product', 'track', "productID=$productID&branch=$branch&projectID=$projectID&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"); } /** diff --git a/module/story/control.php b/module/story/control.php index 3abd90d2f6..94ee2e9d92 100644 --- a/module/story/control.php +++ b/module/story/control.php @@ -1988,61 +1988,6 @@ class story extends control echo js::locate($this->session->storyList, 'parent'); } - /** - * Story track. - * - * @param int $productID - * @param int|string $branch - * @param int $projectID - * @param int $recTotal - * @param int $recPerPage - * @param int $pageID - * @access public - * @return void - */ - public function track($productID, $branch = '', $projectID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1) - { - $branch = ($this->cookie->preBranch !== '' and $branch === '') ? $this->cookie->preBranch : $branch; - setcookie('preBranch', $branch, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true); - - /* Set menu. The projectstory module does not execute. */ - if(!$projectID) - { - $products = $this->product->getPairs(); - $productID = $this->product->saveState($productID, $products); - $this->product->products = $this->product->saveState($productID, $products); - $this->product->setMenu($productID, $branch); - } - - /* Save session. */ - $this->session->set('storyList', $this->app->getURI(true), 'product'); - $this->session->set('taskList', $this->app->getURI(true), 'execution'); - $this->session->set('designList', $this->app->getURI(true), 'project'); - $this->session->set('bugList', $this->app->getURI(true), 'qa'); - $this->session->set('caseList', $this->app->getURI(true), 'qa'); - $this->session->set('revisionList', $this->app->getURI(true), 'repo'); - - /* Load pager and get tracks. */ - $this->app->loadClass('pager', $static = true); - $pager = new pager($recTotal, $recPerPage, $pageID); - $tracks = $this->story->getTracks($productID, $branch, $projectID, $pager); - - if($projectID) - { - $this->loadModel('project')->setMenu($projectID); - $projectProducts = $this->product->getProducts($projectID); - } - - $this->view->title = $this->lang->story->track; - $this->view->position[] = $this->lang->story->track; - - $this->view->tracks = $tracks; - $this->view->pager = $pager; - $this->view->productID = $productID; - $this->view->projectProducts = isset($projectProducts) ? $projectProducts : array(); - $this->display(); - } - /** * Tasks of a story. * @@ -2093,60 +2038,6 @@ class story extends control $this->display(); } - /** - * Show zero case story. - * - * @param int $productID - * @param int $branchID - * @param string $orderBy - * @access public - * @return void - */ - public function zeroCase($productID = 0, $branchID = 0, $orderBy = 'id_desc', $projectID = 0) - { - $orderBy = empty($orderBy) ? 'id_desc' : $orderBy; - $this->session->set('storyList', $this->app->getURI(true) . '#app=' . $this->app->tab, 'product'); - $this->session->set('caseList', $this->app->getURI(true), $this->app->tab); - - $this->loadModel('testcase'); - if($this->app->tab == 'project') - { - $this->loadModel('project')->setMenu($this->session->project); - $this->app->rawModule = 'qa'; - $this->lang->project->menu->qa['subMenu']->testcase['subModule'] = 'story'; - $products = $this->product->getProducts($this->session->project, 'all', '', false); - $productID = $this->product->saveState($productID, $products); - $this->lang->modulePageNav = $this->product->select($products, $productID, 'story', 'zeroCase', "projectID=$projectID", $branchID); - } - else - { - $products = $this->product->getPairs(); - $productID = $this->product->saveState($productID, $products); - $this->loadModel('qa'); - $this->app->rawModule = 'testcase'; - foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; - $this->qa->setMenu($products, $productID, $branchID); - } - - /* Append id for secend sort. */ - $sort = common::appendOrder($orderBy); - - $this->view->title = $this->lang->story->zeroCase; - $this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $products[$productID]); - $this->view->position[] = $this->lang->story->zeroCase; - - $this->view->stories = $this->story->getZeroCase($productID, $branchID, $sort); - $this->view->users = $this->user->getPairs('noletter'); - $this->view->projectID = $projectID; - $this->view->productID = $productID; - $this->view->branchID = $branchID; - $this->view->orderBy = $orderBy; - $this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID); - $this->view->browseType = ''; - $this->view->product = $this->product->getByID($productID); - $this->display(); - } - /** * If type is linkStories, link related stories else link child stories. * diff --git a/module/testcase/control.php b/module/testcase/control.php index dc0d28d76b..01f64c423f 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -295,6 +295,60 @@ class testcase extends control $this->display(); } + /** + * Show zero case story. + * + * @param int $productID + * @param int $branchID + * @param string $orderBy + * @access public + * @return void + */ + public function zeroCase($productID = 0, $branchID = 0, $orderBy = 'id_desc', $projectID = 0) + { + $orderBy = empty($orderBy) ? 'id_desc' : $orderBy; + $this->session->set('storyList', $this->app->getURI(true) . '#app=' . $this->app->tab, 'product'); + $this->session->set('caseList', $this->app->getURI(true), $this->app->tab); + + $this->loadModel('story'); + if($this->app->tab == 'project') + { + $this->loadModel('project')->setMenu($this->session->project); + $this->app->rawModule = 'qa'; + $this->lang->project->menu->qa['subMenu']->testcase['subModule'] = 'story'; + $products = $this->product->getProducts($this->session->project, 'all', '', false); + $productID = $this->product->saveState($productID, $products); + $this->lang->modulePageNav = $this->product->select($products, $productID, 'testcase', 'zeroCase', "projectID=$projectID", $branchID); + } + else + { + $products = $this->product->getPairs(); + $productID = $this->product->saveState($productID, $products); + $this->loadModel('qa'); + $this->app->rawModule = 'testcase'; + foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; + $this->qa->setMenu($products, $productID, $branchID); + } + + /* Append id for secend sort. */ + $sort = common::appendOrder($orderBy); + + $this->view->title = $this->lang->story->zeroCase; + $this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $products[$productID]); + $this->view->position[] = $this->lang->story->zeroCase; + + $this->view->stories = $this->story->getZeroCase($productID, $branchID, $sort); + $this->view->users = $this->user->getPairs('noletter'); + $this->view->projectID = $projectID; + $this->view->productID = $productID; + $this->view->branchID = $branchID; + $this->view->orderBy = $orderBy; + $this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID); + $this->view->browseType = ''; + $this->view->product = $this->product->getByID($productID); + $this->display(); + } + /** * Create a test case. * @param $productID diff --git a/module/story/css/zerocase.en.css b/module/testcase/css/zerocase.en.css similarity index 100% rename from module/story/css/zerocase.en.css rename to module/testcase/css/zerocase.en.css diff --git a/module/story/css/zerocase.vi.css b/module/testcase/css/zerocase.vi.css similarity index 100% rename from module/story/css/zerocase.vi.css rename to module/testcase/css/zerocase.vi.css diff --git a/module/story/css/zerocase.zh-cn.css b/module/testcase/css/zerocase.zh-cn.css similarity index 100% rename from module/story/css/zerocase.zh-cn.css rename to module/testcase/css/zerocase.zh-cn.css diff --git a/module/story/css/zerocase.zh-tw.css b/module/testcase/css/zerocase.zh-tw.css similarity index 100% rename from module/story/css/zerocase.zh-tw.css rename to module/testcase/css/zerocase.zh-tw.css diff --git a/module/testcase/js/zerocase.js b/module/testcase/js/zerocase.js new file mode 100644 index 0000000000..618b5d612c --- /dev/null +++ b/module/testcase/js/zerocase.js @@ -0,0 +1,4 @@ +$(document).ready(function() +{ + $('#zerocaseTab').addClass('btn-active-text'); +}); diff --git a/module/testcase/lang/de.php b/module/testcase/lang/de.php index bab3e85285..1f6ad3be9a 100644 --- a/module/testcase/lang/de.php +++ b/module/testcase/lang/de.php @@ -125,6 +125,7 @@ $lang->testcase->batchConfirmStoryChange = "Mehrere bestätigen"; $lang->testcase->batchCaseTypeChange = "Mehrere Typen änderen"; $lang->testcase->browse = "Fälle"; $lang->testcase->groupCase = "Nach Gruppe"; +$lang->testcase->zeroCase = "Storys ohne Fälle"; $lang->testcase->import = "Importieren"; $lang->testcase->importAction = "Import Case"; $lang->testcase->fileImport = "Importiere CSV"; diff --git a/module/testcase/lang/en.php b/module/testcase/lang/en.php index a0196e03d2..aac6b0d554 100644 --- a/module/testcase/lang/en.php +++ b/module/testcase/lang/en.php @@ -125,6 +125,7 @@ $lang->testcase->batchConfirmStoryChange = "Batch Confirm"; $lang->testcase->batchCaseTypeChange = "Batch Change Types"; $lang->testcase->browse = "Case List"; $lang->testcase->groupCase = "View By Group"; +$lang->testcase->zeroCase = "Stories without cases"; $lang->testcase->import = "Import"; $lang->testcase->importAction = "Import Case"; $lang->testcase->fileImport = "Import CSV"; diff --git a/module/testcase/lang/fr.php b/module/testcase/lang/fr.php index 79d6ad2dcf..a322aea693 100644 --- a/module/testcase/lang/fr.php +++ b/module/testcase/lang/fr.php @@ -125,6 +125,7 @@ $lang->testcase->batchConfirmStoryChange = "Confirmer par Lot"; $lang->testcase->batchCaseTypeChange = "Changer Types par Lot"; $lang->testcase->browse = "Liste CasTests"; $lang->testcase->groupCase = "Vue par Groupe"; +$lang->testcase->zeroCase = "Stories sans CasTests"; $lang->testcase->import = "Importer"; $lang->testcase->importAction = "Importer CasTest"; $lang->testcase->fileImport = "Importer CSV"; diff --git a/module/testcase/lang/zh-cn.php b/module/testcase/lang/zh-cn.php index 94a2d47c79..6b1dae6b4b 100644 --- a/module/testcase/lang/zh-cn.php +++ b/module/testcase/lang/zh-cn.php @@ -125,6 +125,7 @@ $lang->testcase->batchConfirmStoryChange = "批量确认变更"; $lang->testcase->batchCaseTypeChange = "批量修改类型"; $lang->testcase->browse = "用例列表"; $lang->testcase->groupCase = "分组浏览用例"; +$lang->testcase->zeroCase = "零用例{$lang->SRCommon}"; $lang->testcase->import = "导入"; $lang->testcase->importAction = "导入用例"; $lang->testcase->fileImport = "导入CSV"; diff --git a/module/testcase/view/caseheader.html.php b/module/testcase/view/caseheader.html.php index f7e246bf8e..bee9079524 100644 --- a/module/testcase/view/caseheader.html.php +++ b/module/testcase/view/caseheader.html.php @@ -40,7 +40,7 @@ @@ -100,7 +100,7 @@ elseif($hasZeroPriv and $menuType == 'zerocase') { $projectID = $isProjectApp ? $this->session->project : 0; - echo html::a($this->createLink('story', 'zeroCase', "productID=$productID&branch=$branch&orderBy=id_desc&projectID=$projectID"), "{$lang->story->zeroCase}", '', "class='btn btn-link' id='zerocaseTab' data-app='{$this->app->tab}'"); + echo html::a($this->createLink('testcase', 'zeroCase', "productID=$productID&branch=$branch&orderBy=id_desc&projectID=$projectID"), "{$lang->testcase->zeroCase}", '', "class='btn btn-link' id='zerocaseTab' data-app='{$this->app->tab}'"); } elseif($hasUnitPriv and $menuType == 'browseunits') { diff --git a/module/story/view/zerocase.html.php b/module/testcase/view/zerocase.html.php similarity index 96% rename from module/story/view/zerocase.html.php rename to module/testcase/view/zerocase.html.php index e9302c0db0..deb4594d24 100644 --- a/module/story/view/zerocase.html.php +++ b/module/testcase/view/zerocase.html.php @@ -24,7 +24,7 @@ app->rawModule = 'story'; + $this->app->rawModule = 'testcase'; $vars = "productID=$productID&branchID=$branchID&orderBy=%s"; ?> @@ -63,7 +63,18 @@ id);?> pri;?>' title='story->priList, $story->pri);?>'>story->priList, $story->pri)?> - title, '', "data-app='product'");?> + + title, '', "data-app='product'") . ""; + } + else + { + echo $story->title; + } + ?> + planTitle;?> story->sourceList[$story->source];?> openedBy);?> From 9f468e6d240d14bb5dc9a980f5717268c40f6f18 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 14:35:19 +0800 Subject: [PATCH 2/7] * Finish task #64976. --- db/zentao.sql | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/db/zentao.sql b/db/zentao.sql index d586ddba19..db34402264 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -2407,9 +2407,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (1,'story','report'), (1,'story','review'), (1,'story','tasks'), -(1,'story','track'), +(1,'product','track'), (1,'story','view'), -(1,'story','zeroCase'), +(1,'testcase','zeroCase'), (1,'svn','apiSync'), (1,'svn','cat'), (1,'svn','diff'), @@ -2778,7 +2778,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (2,'story','cases'), (2,'story','report'), (2,'story','tasks'), -(2,'story','track'), +(2,'product','track'), (2,'story','view'), (2,'svn','apiSync'), (2,'svn','cat'), @@ -3074,9 +3074,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (3,'story','processStoryChange'), (3,'story','report'), (3,'story','tasks'), -(3,'story','track'), +(3,'product','track'), (3,'story','view'), -(3,'story','zeroCase'), +(3,'testcase','zeroCase'), (3,'svn','apiSync'), (3,'svn','cat'), (3,'svn','diff'), @@ -3568,9 +3568,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (4,'story','report'), (4,'story','review'), (4,'story','tasks'), -(4,'story','track'), +(4,'product','track'), (4,'story','view'), -(4,'story','zeroCase'), +(4,'testcase','zeroCase'), (4,'svn','apiSync'), (4,'svn','cat'), (4,'svn','diff'), @@ -4068,9 +4068,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (5,'story','report'), (5,'story','review'), (5,'story','tasks'), -(5,'story','track'), +(5,'product','track'), (5,'story','view'), -(5,'story','zeroCase'), +(5,'testcase','zeroCase'), (5,'svn','apiSync'), (5,'svn','cat'), (5,'svn','diff'), @@ -4442,9 +4442,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (6,'story','processStoryChange'), (6,'story','report'), (6,'story','tasks'), -(6,'story','track'), +(6,'product','track'), (6,'story','view'), -(6,'story','zeroCase'), +(6,'testcase','zeroCase'), (6,'svn','apiSync'), (6,'svn','cat'), (6,'svn','diff'), @@ -4847,9 +4847,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (7,'story','report'), (7,'story','review'), (7,'story','tasks'), -(7,'story','track'), +(7,'product','track'), (7,'story','view'), -(7,'story','zeroCase'), +(7,'testcase','zeroCase'), (7,'svn','apiSync'), (7,'svn','cat'), (7,'svn','diff'), @@ -5192,9 +5192,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (8,'story','processStoryChange'), (8,'story','report'), (8,'story','tasks'), -(8,'story','track'), +(8,'product','track'), (8,'story','view'), -(8,'story','zeroCase'), +(8,'testcase','zeroCase'), (8,'svn','apiSync'), (8,'svn','cat'), (8,'svn','diff'), @@ -5578,9 +5578,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (9,'story','report'), (9,'story','review'), (9,'story','tasks'), -(9,'story','track'), +(9,'product','track'), (9,'story','view'), -(9,'story','zeroCase'), +(9,'testcase','zeroCase'), (9,'svn','apiSync'), (9,'svn','cat'), (9,'svn','diff'), @@ -5829,7 +5829,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (10,'story','processStoryChange'), (10,'story','report'), (10,'story','tasks'), -(10,'story','track'), +(10,'product','track'), (10,'story','view'), (10,'svn','apiSync'), (10,'svn','cat'), @@ -6079,9 +6079,9 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (11,'story','export'), (11,'story','report'), (11,'story','tasks'), -(11,'story','track'), +(11,'product','track'), (11,'story','view'), -(11,'story','zeroCase'), +(11,'testcase','zeroCase'), (11,'svn','apiSync'), (11,'svn','cat'), (11,'svn','diff'), From 2851fd4c2cba9c062f173d7366435e6905755fdf Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 16:24:43 +0800 Subject: [PATCH 3/7] * Resolve issue #720. --- module/group/lang/resource.php | 29 +++++++++++++++-------------- module/product/lang/zh-cn.php | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 27f8d65040..f5c563abba 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -424,6 +424,7 @@ $lang->resource->product->edit = 'edit'; $lang->resource->product->batchEdit = 'batchEdit'; $lang->resource->product->delete = 'delete'; $lang->resource->product->roadmap = 'roadmap'; +$lang->resource->product->track = 'track'; $lang->resource->product->dynamic = 'dynamic'; $lang->resource->product->project = 'project'; $lang->resource->product->dashboard = 'dashboard'; @@ -437,7 +438,6 @@ $lang->resource->product->export = 'exportAction'; $lang->resource->product->whitelist = 'whitelist'; $lang->resource->product->addWhitelist = 'addWhitelist'; $lang->resource->product->unbindWhitelist = 'unbindWhitelist'; -$lang->resource->product->track = 'track'; $lang->product->methodOrder[0] = 'index'; $lang->product->methodOrder[5] = 'browse'; @@ -447,19 +447,20 @@ $lang->product->methodOrder[20] = 'edit'; $lang->product->methodOrder[25] = 'batchEdit'; $lang->product->methodOrder[35] = 'delete'; $lang->product->methodOrder[40] = 'roadmap'; -$lang->product->methodOrder[45] = 'dynamic'; -$lang->product->methodOrder[50] = 'project'; -$lang->product->methodOrder[55] = 'dashboard'; -$lang->product->methodOrder[60] = 'close'; -$lang->product->methodOrder[65] = 'updateOrder'; -$lang->product->methodOrder[70] = 'all'; -$lang->product->methodOrder[75] = 'kanban'; -$lang->product->methodOrder[80] = 'manageLine'; -$lang->product->methodOrder[85] = 'build'; -$lang->product->methodOrder[90] = 'export'; -$lang->product->methodOrder[95] = 'whitelist'; -$lang->product->methodOrder[100] = 'addWhitelist'; -$lang->product->methodOrder[105] = 'unbindWhitelist'; +$lang->product->methodOrder[45] = 'track'; +$lang->product->methodOrder[50] = 'dynamic'; +$lang->product->methodOrder[55] = 'project'; +$lang->product->methodOrder[60] = 'dashboard'; +$lang->product->methodOrder[65] = 'close'; +$lang->product->methodOrder[70] = 'updateOrder'; +$lang->product->methodOrder[75] = 'all'; +$lang->product->methodOrder[80] = 'kanban'; +$lang->product->methodOrder[85] = 'manageLine'; +$lang->product->methodOrder[90] = 'build'; +$lang->product->methodOrder[95] = 'export'; +$lang->product->methodOrder[100] = 'whitelist'; +$lang->product->methodOrder[105] = 'addWhitelist'; +$lang->product->methodOrder[110] = 'unbindWhitelist'; /* Branch. */ $lang->resource->branch = new stdclass(); diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php index 9d45538f3a..b646840492 100644 --- a/module/product/lang/zh-cn.php +++ b/module/product/lang/zh-cn.php @@ -34,7 +34,7 @@ $lang->product->changeProgram = "{$lang->productCommon}调整所属项目集 $lang->product->changeProgramTip = "%s > 修改项目集"; $lang->product->addWhitelist = '添加白名单'; $lang->product->unbindWhitelist = '移除白名单'; -$lang->product->track = "查看{$lang->SRCommon}矩阵"; +$lang->product->track = "查看需求矩阵"; $lang->product->checkedProducts = '已选择%s项产品'; $lang->product->indexAction = "所有{$lang->productCommon}仪表盘"; From 36d0243dac26987f5401c2ed95c2b31859433470 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 16:59:56 +0800 Subject: [PATCH 4/7] * Add pager to the zero case story list. --- module/testcase/control.php | 18 +++++++++++++++--- module/testcase/view/zerocase.html.php | 3 ++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/module/testcase/control.php b/module/testcase/control.php index 01f64c423f..39a48f21b8 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -301,10 +301,14 @@ class testcase extends control * @param int $productID * @param int $branchID * @param string $orderBy + * @param int $projectID + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID * @access public * @return void */ - public function zeroCase($productID = 0, $branchID = 0, $orderBy = 'id_desc', $projectID = 0) + public function zeroCase($productID = 0, $branchID = 0, $orderBy = 'id_desc', $projectID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1) { $orderBy = empty($orderBy) ? 'id_desc' : $orderBy; $this->session->set('storyList', $this->app->getURI(true) . '#app=' . $this->app->tab, 'product'); @@ -331,13 +335,20 @@ class testcase extends control } /* Append id for secend sort. */ - $sort = common::appendOrder($orderBy); + $sort = common::appendOrder($orderBy); + $stories = $this->story->getZeroCase($productID, $branchID, $sort); + + /* Pager. */ + $this->app->loadClass('pager', $static = true); + $recTotal = count($stories); + $pager = new pager($recTotal, $recPerPage, $pageID); + $stories = array_chunk($stories, $pager->recPerPage); $this->view->title = $this->lang->story->zeroCase; $this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $products[$productID]); $this->view->position[] = $this->lang->story->zeroCase; - $this->view->stories = $this->story->getZeroCase($productID, $branchID, $sort); + $this->view->stories = empty($stories) ? $stories : $stories[$pageID - 1]; $this->view->users = $this->user->getPairs('noletter'); $this->view->projectID = $projectID; $this->view->productID = $productID; @@ -346,6 +357,7 @@ class testcase extends control $this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID); $this->view->browseType = ''; $this->view->product = $this->product->getByID($productID); + $this->view->pager = $pager; $this->display(); } diff --git a/module/testcase/view/zerocase.html.php b/module/testcase/view/zerocase.html.php index deb4594d24..930e4cc964 100644 --- a/module/testcase/view/zerocase.html.php +++ b/module/testcase/view/zerocase.html.php @@ -25,7 +25,7 @@ app->rawModule = 'testcase'; - $vars = "productID=$productID&branchID=$branchID&orderBy=%s"; + $vars = "productID=$productID&branchID=$branchID&orderBy=%s&project=$projectID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
@@ -159,6 +159,7 @@ } ?>
+ show('right', 'pagerjs');?> From db82296c3c9cb558c2315d3376790a4addc051a6 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 17:07:30 +0800 Subject: [PATCH 5/7] * Finish task #64976. --- module/story/js/zerocase.js | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 module/story/js/zerocase.js diff --git a/module/story/js/zerocase.js b/module/story/js/zerocase.js deleted file mode 100644 index 618b5d612c..0000000000 --- a/module/story/js/zerocase.js +++ /dev/null @@ -1,4 +0,0 @@ -$(document).ready(function() -{ - $('#zerocaseTab').addClass('btn-active-text'); -}); From dc45d798496b33fd418bd50e82f5a8dcf44d4178 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 17:09:35 +0800 Subject: [PATCH 6/7] * Finish task #64976. --- module/testcase/view/zerocase.html.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/module/testcase/view/zerocase.html.php b/module/testcase/view/zerocase.html.php index 930e4cc964..89db0c9244 100644 --- a/module/testcase/view/zerocase.html.php +++ b/module/testcase/view/zerocase.html.php @@ -64,16 +64,7 @@ pri;?>' title='story->priList, $story->pri);?>'>story->priList, $story->pri)?> - title, '', "data-app='product'") . ""; - } - else - { - echo $story->title; - } - ?> + title, '', "data-app='product'") . "" : $story->title;?> planTitle;?> story->sourceList[$story->source];?> From 1eccd830ec496f996d788b21ea681b49ab8eafb9 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 18 Aug 2022 17:24:06 +0800 Subject: [PATCH 7/7] * Finish task #64976. --- module/product/model.php | 2 +- module/testcase/view/zerocase.html.php | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/module/product/model.php b/module/product/model.php index e7f216d526..8a208089a7 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -2229,7 +2229,7 @@ class productModel extends model { $link = helper::createLink('testsuite', 'browse', "productID=%s"); } - elseif($module == 'testcase' and ($method == 'groupCase' or $method == 'zeroCase') and $this->app->tab == 'project') + elseif($module == 'testcase' and in_array($method, array('groupCase', 'zeroCase')) and $this->app->tab == 'project') { parse_str($extra, $output); $projectID = isset($output['projectID']) ? $output['projectID'] : 0; diff --git a/module/testcase/view/zerocase.html.php b/module/testcase/view/zerocase.html.php index 89db0c9244..bdd7e01b09 100644 --- a/module/testcase/view/zerocase.html.php +++ b/module/testcase/view/zerocase.html.php @@ -63,8 +63,10 @@ id);?> pri;?>' title='story->priList, $story->pri);?>'>story->priList, $story->pri)?> - - title, '', "data-app='product'") . "" : $story->title;?> + + + title, '', "data-app='product'") : $story->title;?> + planTitle;?> story->sourceList[$story->source];?>