diff --git a/module/my/view/testcase.html.php b/module/my/view/testcase.html.php index c08044b477..bc463f0dfb 100644 --- a/module/my/view/testcase.html.php +++ b/module/my/view/testcase.html.php @@ -105,9 +105,10 @@ status == 'wait' ? 'disabled' : ''; - common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug', '', 'iframe', 'true', "data-app='qa' data-toggle=''"); + $disabled = (isset($case->lastRunResult) and $case->lastRunResult != 'fail') ? 'disabled' : ''; + common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug', '', "iframe $disabled", 'true', "data-app='qa' data-toggle=''"); common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from={$app->rawMethod}¶m=$caseID", $case, 'list', 'copy', '', 'iframe', true, "data-width='95%'"); + $disabled = $case->status == 'wait' ? 'disabled' : ''; common::printIcon('testtask', 'runCase', "runID=$runID&caseID=$caseID&version=$case->version", '', 'list', 'play', '', "iframe $disabled", true, "data-width='95%'", '', $case->project); common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', true, "data-width='95%'", '', $case->project); common::printIcon('testcase', 'edit', "caseID=$caseID", $case, 'list', 'edit', '', 'iframe', true, "data-width='95%'", '', $case->project); diff --git a/module/testcase/control.php b/module/testcase/control.php index 3af8e4fe59..cd9b490dae 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -1037,8 +1037,7 @@ class testcase extends control $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('t1.deleted')->eq(0) - ->beginIF($tab == 'my')->andWhere('t2.id')->in($caseIDList)->fi() - ->beginIF($tab != 'my')->andWhere('t1.id')->in($caseIDList)->fi() + ->andWhere('t1.id')->in($caseIDList) ->fetchAll('id'); $caseIDList = array_keys($cases); diff --git a/module/testcase/model.php b/module/testcase/model.php index ef61d7d3a0..a28cdc05de 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -1050,15 +1050,15 @@ class testcaseModel extends model if($data->pris[$caseID] == 'ditto') $data->pris[$caseID] = isset($prev['pri']) ? $prev['pri'] : 3; if($data->modules[$caseID] == 'ditto') $data->modules[$caseID] = isset($prev['module']) ? $prev['module'] : 0; if($data->types[$caseID] == 'ditto') $data->types[$caseID] = isset($prev['type']) ? $prev['type'] : ''; - if($data->story[$caseID] == '') $data->story[$caseID] = 0; + if($data->story[$caseID] == '') $data->story[$caseID] = 0; + if($data->story[$caseID] == 'ditto') $data->story[$caseID] = isset($prev['story']) ? $prev['story'] : 0; if(isset($data->branches[$caseID]) and $data->branches[$caseID] == 'ditto') $data->branches[$caseID] = isset($prev['branch']) ? $prev['branch'] : 0; - if($data->story[$caseID] == 'ditto') $data->story[$caseID] = isset($prev['story']) ? $prev['story'] : 0; $prev['pri'] = $data->pris[$caseID]; $prev['type'] = $data->types[$caseID]; $prev['story'] = $data->story[$caseID]; - $prev['branch'] = $data->branches[$caseID]; $prev['module'] = $data->modules[$caseID]; + if(isset($data->branches)) $prev['branch'] = $data->branches[$caseID]; } /* Initialize cases from the post data.*/ @@ -1070,7 +1070,6 @@ class testcaseModel extends model $case->lastEditedBy = $this->app->user->account; $case->lastEditedDate = $now; $case->pri = $data->pris[$caseID]; - $case->branch = $data->branches[$caseID]; $case->module = $data->modules[$caseID]; $case->status = $data->statuses[$caseID]; $case->story = $data->story[$caseID]; @@ -1080,6 +1079,7 @@ class testcaseModel extends model $case->keywords = $data->keywords[$caseID]; $case->type = $data->types[$caseID]; $case->stage = empty($data->stages[$caseID]) ? '' : implode(',', $data->stages[$caseID]); + if(isset($data->branches[$caseID])) $case->branch = $data->branches[$caseID]; foreach($extendFields as $extendField) { @@ -1122,7 +1122,7 @@ class testcaseModel extends model unset($oldCase->steps); $allChanges[$caseID] = common::createChanges($oldCase, $case); - if($case->branch and isset($testtasks[$caseID])) + if(!empty($case->branch) and isset($testtasks[$caseID])) { foreach($testtasks[$caseID] as $taskID => $testtask) { diff --git a/module/testtask/control.php b/module/testtask/control.php index 7361692bc5..fa04dad445 100644 --- a/module/testtask/control.php +++ b/module/testtask/control.php @@ -1232,7 +1232,7 @@ class testtask extends control /* set cookie for ajax load caselist when close colorbox. */ setcookie('selfClose', 1, 0, $this->config->webRoot, '', $this->config->cookieSecure, false); - if($preAndNext->next) + if($preAndNext->next and $this->app->tab != 'my') { $nextRunID = $runID ? $preAndNext->next->id : 0; $nextCaseID = $runID ? $preAndNext->next->case : $preAndNext->next->id; @@ -1255,13 +1255,13 @@ class testtask extends control $preCase = array(); $nextCase = array(); - if($preAndNext->pre) + if($preAndNext->pre and $this->app->tab != 'my') { $preCase['runID'] = $runID ? $preAndNext->pre->id : 0; $preCase['caseID'] = $runID ? $preAndNext->pre->case : $preAndNext->pre->id; $preCase['version'] = $preAndNext->pre->version; } - if($preAndNext->next) + if($preAndNext->next and $this->app->tab != 'my') { $nextCase['runID'] = $runID ? $preAndNext->next->id : 0; $nextCase['caseID'] = $runID ? $preAndNext->next->case : $preAndNext->next->id; @@ -1327,19 +1327,23 @@ class testtask extends control if($this->app->tab == 'project') { $this->loadModel('project')->setMenu($this->session->project); + $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'); } else { $this->lang->testtask->menu = $this->lang->my->menu->work; $this->lang->my->menu->work['subModule'] = 'testtask'; + + $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('t1.id')->in($caseIDList) + ->fetchAll('id'); } $this->view->title = $this->lang->testtask->batchRun; - - $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'); } /* Set modules. */