diff --git a/module/my/view/testcase.html.php b/module/my/view/testcase.html.php index 13cf4aa501..d377925219 100644 --- a/module/my/view/testcase.html.php +++ b/module/my/view/testcase.html.php @@ -37,15 +37,25 @@ app->loadLang('testtask'); - $canBatchRun = common::hasPriv('testtask', 'batchRun'); - $canBatchEdit = common::hasPriv('testcase', 'batchEdit'); + $canBatchRun = (common::hasPriv('testtask', 'batchRun') and $type == 'assigntome'); + $canBatchEdit = (common::hasPriv('testcase', 'batchEdit') and $type == 'assigntome'); $canBatchAction = ($canBatchRun or $canBatchEdit); ?> - idAB);?> + + +
+ +
+ + idAB);?> + priAB);?> testcase->title);?> + + testtask->common);?> + typeAB);?> openedByAB);?> testtask->lastRunAccount);?> @@ -64,12 +74,21 @@ ?> + +
+ /> + +
+ id); ?> pri?>' title='testcase->priList, $case->pri, $case->pri);?>'>testcase->priList, $case->pri, $case->pri)?> version";?> task";?> createLink('testcase', 'view', $params, '', '', $case->project), $case->title, null, "style='color: $case->color' data-group='project'");?> + + taskName;?> + testcase->typeList, $case->type);?> openedBy);?> lastRunner);?> @@ -93,6 +112,25 @@ diff --git a/module/testcase/control.php b/module/testcase/control.php index 1c94cd15d3..4d4d635e2a 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -48,8 +48,8 @@ class testcase extends control foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; //$this->lang->noMenuModule[] = $this->app->rawModule; } - else - { + else + { $this->lang->testcase->menu = $this->lang->projectQa->menu; $this->lang->testcase->subMenu = $this->lang->projectQa->subMenu; } @@ -746,14 +746,14 @@ class testcase extends control $caseIDList = $this->post->caseIDList ? $this->post->caseIDList : die(js::locate($this->session->caseList)); $caseIDList = array_unique($caseIDList); - - /* Get the edited cases. */ - $cases = $this->testcase->getByList($caseIDList); $branchProduct = false; /* The cases of a product. */ if($productID) { + /* Get the edited cases. */ + $cases = $this->testcase->getByList($caseIDList); + if($type == 'lib') { $libID = $productID; @@ -789,6 +789,13 @@ class testcase extends control /* The cases of my. */ else { + /* Get the edited cases. */ + $cases = $this->dao->select('t1.*,t2.id as runID')->from(TABLE_CASE)->alias('t1') + ->leftJoin(TABLE_TESTRUN)->alias('t2')->on('t1.id = t2.case') + ->where('t2.id')->in($caseIDList) + ->fetchAll('id'); + $caseIDList = array_keys($cases); + $this->lang->testcase->menu = $this->lang->my->menu; $this->lang->set('menugroup.testcase', 'my'); $this->lang->testcase->menuOrder = $this->lang->my->menuOrder; diff --git a/module/testcase/model.php b/module/testcase/model.php index 263d50c9b9..0618e1b2d9 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -530,7 +530,7 @@ class testcaseModel extends model */ public function getByAssignedTo($account, $orderBy = 'id_desc', $pager = null, $auto = 'no') { - return $this->dao->select('t1.*,t2.project,t2.pri,t2.title,t2.type,t2.openedBy,t2.color,t2.product,t2.branch,t2.module,t2.status')->from(TABLE_TESTRUN)->alias('t1') + return $this->dao->select('t1.*,t2.project,t2.pri,t2.title,t2.type,t2.openedBy,t2.color,t2.product,t2.branch,t2.module,t2.status,t3.name as taskName')->from(TABLE_TESTRUN)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case = t2.id') ->leftJoin(TABLE_TESTTASK)->alias('t3')->on('t1.task = t3.id') ->where('t1.assignedTo')->eq($account) diff --git a/module/testcase/view/batchedit.html.php b/module/testcase/view/batchedit.html.php index 81831c1302..3eb4d7942c 100644 --- a/module/testcase/view/batchedit.html.php +++ b/module/testcase/view/batchedit.html.php @@ -67,7 +67,7 @@ product->getByID($cases[$caseID]->product); @@ -79,7 +79,6 @@ } $modules = $this->tree->getOptionMenu($cases[$caseID]->product, $viewType = 'case', 0, $cases[$caseID]->branch); - $modules = array('ditto' => $this->lang->story->ditto) + $modules; } ?> diff --git a/module/testtask/control.php b/module/testtask/control.php index d4bf822da4..634ebf342e 100644 --- a/module/testtask/control.php +++ b/module/testtask/control.php @@ -44,8 +44,8 @@ class testtask extends control $this->app->loadConfig('qa'); foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa'; } - else - { + else + { $this->lang->testtask->menu = $this->lang->projectQa->menu; $this->lang->testtask->subMenu = $this->lang->projectQa->subMenu; } @@ -448,24 +448,24 @@ class testtask extends control $this->view->position[] = $this->lang->testtask->common; $this->view->position[] = $this->lang->testtask->cases; - $this->view->productID = $productID; - $this->view->productName = $this->products[$productID]; - $this->view->task = $task; - $this->view->runs = $runs; - $this->view->users = $this->loadModel('user')->getPairs('noclosed|qafirst|noletter'); - $this->view->assignedToList= $assignedToList; - $this->view->moduleTree = $this->loadModel('tree')->getTreeMenu($productID, $viewType = 'case', $startModuleID = 0, array('treeModel', 'createTestTaskLink'), $extra = $taskID); - $this->view->browseType = $browseType; - $this->view->param = $param; - $this->view->orderBy = $orderBy; - $this->view->taskID = $taskID; - $this->view->moduleID = $moduleID; - $this->view->moduleName = $moduleID ? $this->tree->getById($moduleID)->name : $this->lang->tree->all; - $this->view->treeClass = $browseType == 'bymodule' ? '' : 'hidden'; - $this->view->pager = $pager; - $this->view->branches = $this->loadModel('branch')->getPairs($productID); - $this->view->setModule = false; - $this->view->canBeChanged = $canBeChanged; + $this->view->productID = $productID; + $this->view->productName = $this->products[$productID]; + $this->view->task = $task; + $this->view->runs = $runs; + $this->view->users = $this->loadModel('user')->getPairs('noclosed|qafirst|noletter'); + $this->view->assignedToList = $assignedToList; + $this->view->moduleTree = $this->loadModel('tree')->getTreeMenu($productID, $viewType = 'case', $startModuleID = 0, array('treeModel', 'createTestTaskLink'), $extra = $taskID); + $this->view->browseType = $browseType; + $this->view->param = $param; + $this->view->orderBy = $orderBy; + $this->view->taskID = $taskID; + $this->view->moduleID = $moduleID; + $this->view->moduleName = $moduleID ? $this->tree->getById($moduleID)->name : $this->lang->tree->all; + $this->view->treeClass = $browseType == 'bymodule' ? '' : 'hidden'; + $this->view->pager = $pager; + $this->view->branches = $this->loadModel('branch')->getPairs($productID); + $this->view->setModule = false; + $this->view->canBeChanged = $canBeChanged; $this->display(); } @@ -1077,11 +1077,14 @@ class testtask extends control $caseIDList = $this->post->caseIDList ? $this->post->caseIDList : die(js::locate($url, 'parent')); $caseIDList = array_unique($caseIDList); + /* The case of tasks of qa. */ if($productID) { $this->testtask->setMenu($this->products, $productID, $taskID); - $this->view->moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($productID, $viewType = 'case', $startModuleID = 0); + $this->view->moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($productID, 'case'); + + $cases = $this->dao->select('*')->from(TABLE_CASE)->where('id')->in($caseIDList)->fetchAll('id'); } /* The case of my. */ else @@ -1091,9 +1094,15 @@ class testtask extends control $this->lang->testtask->menuOrder = $this->lang->my->menuOrder; $this->loadModel('my')->setMenu(); $this->view->title = $this->lang->testtask->batchRun; - } - $cases = $this->dao->select('*')->from(TABLE_CASE)->where('id')->in($caseIDList)->fetchAll('id'); + $cases = $this->dao->select('t1.*,t2.id as runID')->from(TABLE_CASE)->alias('t1') + ->leftJoin(TABLE_TESTRUN)->alias('t2')->on('t1.id = t2.case') + ->where('t2.id')->in($caseIDList) + ->fetchAll('runID'); + + $caseIDList = array(); + foreach($cases as $case) $caseIDList[] = $case->id; + } /* If case has changed and not confirmed, remove it. */ if($from == 'testtask') @@ -1111,7 +1120,7 @@ class testtask extends control $this->view->cases = $cases; $this->view->steps = $this->dao->select('t1.*')->from(TABLE_CASESTEP)->alias('t1') ->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case=t2.id') - ->where('t2.id')->in(array_keys($cases)) + ->where('t2.id')->in($caseIDList) ->andWhere('t1.version=t2.version') ->andWhere('t2.status')->ne('wait') ->fetchGroup('case', 'id'); diff --git a/module/testtask/model.php b/module/testtask/model.php index 48f2094555..c3086f94bb 100644 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -1268,7 +1268,7 @@ class testtaskModel extends model { $runs = array(); $postData = fixer::input('post')->get(); - $caseIdList = array_keys($postData->results); + $caseIdList = isset($postData->caseIDList) ? array_keys($postData->caseIDList) : array_keys($postData->results); if($runCaseType == 'testtask') { $runs = $this->dao->select('id, `case`')->from(TABLE_TESTRUN) @@ -1287,7 +1287,8 @@ class testtaskModel extends model $now = helper::now(); foreach($postData->results as $caseID => $result) { - $runID = isset($runs[$caseID]) ? $runs[$caseID] : 0; + $runID = isset($runs[$caseID]) ? $runs[$caseID] : (isset($postData->caseIDList) ? $caseID : 0); + $version = $postData->version[$caseID]; $dbSteps = isset($stepGroups[$caseID]) ? $stepGroups[$caseID] : array(); $postSteps = isset($postData->steps[$caseID]) ? $postData->steps[$caseID] : array(); $postReals = $postData->reals[$caseID]; @@ -1309,13 +1310,16 @@ class testtaskModel extends model $step = array(); $step['result'] = $caseResult; $step['real'] = $caseResult == 'pass' ? '' : $postReals[0]; - $stepResults[] = $step; + $stepResults[] = $step; } + /* Replace caseID if caseID is runID. */ + if(isset($postData->caseIDList[$caseID])) $caseID = $postData->caseIDList[$caseID]; + $result = new stdClass(); $result->run = $runID; $result->case = $caseID; - $result->version = $postData->version[$caseID]; + $result->version = $version; $result->caseResult = $caseResult; $result->stepResults = serialize($stepResults); $result->lastRunner = $this->app->user->account; diff --git a/module/testtask/view/batchrun.html.php b/module/testtask/view/batchrun.html.php index bfcf061d23..bc99558c5b 100644 --- a/module/testtask/view/batchrun.html.php +++ b/module/testtask/view/batchrun.html.php @@ -20,7 +20,7 @@ - + @@ -28,14 +28,20 @@ - - status == 'wait') continue;?> - loadModel('tree')->getOptionMenu($cases[$caseID]->product, $viewType = 'case', $startModuleID = 0);?> + $case):?> + status == 'wait') continue;?> + id]", $caseID); + $moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($case->product, $viewType = 'case', $startModuleID = 0); + } + ?> - - - - + + + + - +
idAB;?> idAB;?> testcase->module;?> testcase->title;?> testcase->precondition;?>testcase->stepDesc . '/' . $lang->testcase->stepExpect?>
version)?>module] . "'>" . $moduleOptionMenu[$cases[$caseID]->module] . ""?>title}'>{$cases[$caseID]->title}"?>precondition}'>{$cases[$caseID]->precondition}"?>version)?>module] . "'>" . $moduleOptionMenu[$case->module] . ""?>title}'>{$case->title}"?>precondition}'>{$case->precondition}"?> lang->testcase->resultList, 'pass', "onclick='showAction(this.value,\".action$caseID\")'", 'block')?> @@ -66,7 +72,7 @@