From 79b35763543bf0c55fa0271d97c2f63c1d057e13 Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Wed, 27 Feb 2019 09:23:03 +0800 Subject: [PATCH] * Finish task #5267. --- module/entry/view/browse.html.php | 2 +- module/testcase/control.php | 23 +++++++++++++++++++++++ module/testcase/lang/en.php | 3 +++ module/testcase/lang/zh-cn.php | 5 ++++- module/testcase/model.php | 3 ++- module/testcase/view/view.html.php | 10 ++++++++-- 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/module/entry/view/browse.html.php b/module/entry/view/browse.html.php index 320f91005e..844add788a 100644 --- a/module/entry/view/browse.html.php +++ b/module/entry/view/browse.html.php @@ -43,7 +43,7 @@ if(common::hasPriv('entry', 'delete')) { $deleteURL = $this->createLink('entry', 'delete', "entryID=$id&confirm=yes"); - echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"entryList\",confirmDelete)", '', '', "title='{$lang->entry->delete}' class='btn'"); + echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"entryList\",confirmDelete)", '', '', "title='{$lang->entry->delete}' class='btn'"); } ?> diff --git a/module/testcase/control.php b/module/testcase/control.php index ec65893fe0..080750cf8e 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -979,6 +979,29 @@ class testcase extends control die(js::locate(inLink('view', "caseID=$caseID"), 'parent')); } + /** + * Confirm libcase changed. + * + * @param int $caseID + * @param int $libcaseID + * @param int $version + * @access public + * @return void + */ + public function confirmLibcaseChange($caseID, $libcaseID, $version) + { + $case = $this->testcase->getById($caseID); + $this->dao->update(TABLE_CASE)->set('version')->eq($version)->where('id')->eq($caseID)->exec(); + $steps = $this->dao->select('*')->from(TABLE_CASESTEP)->where('`case`')->eq($libcaseID)->andWhere('version')->eq($version)->fetchAll(); + foreach($steps as $step) + { + unset($step->id); + $step->case = $caseID; + $this->dao->insert(TABLE_CASESTEP)->data($step)->exec(); + } + die(js::locate(inLink('view', "caseID=$caseID"), 'parent')); + } + /** * Confirm story changes. * diff --git a/module/testcase/lang/en.php b/module/testcase/lang/en.php index a89a21d2e9..ade3b92aef 100644 --- a/module/testcase/lang/en.php +++ b/module/testcase/lang/en.php @@ -64,6 +64,9 @@ $lang->testcase->stepNumberAB = 'S'; $lang->testcase->createBug = 'Convert to Bug'; $lang->testcase->fromModule = 'Source Module'; $lang->testcase->fromCase = 'Source Case'; +$lang->testcase->sync = 'Sync Case'; +$lang->testcase->fromTesttask = 'From Testtask'; +$lang->testcase->fromCaselib = 'From Caselib'; $lang->case = $lang->testcase; // For dao checking using. Because 'case' is a php keywords, so the module name is testcase, table name is still case. $lang->testcase->stepID = 'ID'; diff --git a/module/testcase/lang/zh-cn.php b/module/testcase/lang/zh-cn.php index 8983c59994..83c1cbb27e 100644 --- a/module/testcase/lang/zh-cn.php +++ b/module/testcase/lang/zh-cn.php @@ -54,7 +54,7 @@ $lang->testcase->expect = '预期'; $lang->testcase->allProduct = "所有{$lang->productCommon}"; $lang->testcase->fromBug = '来源Bug'; $lang->testcase->toBug = '生成Bug'; -$lang->testcase->changed = '用例变更'; +$lang->testcase->changed = '原用例更新'; $lang->testcase->bugs = '产生Bug数'; $lang->testcase->bugsAB = 'B'; $lang->testcase->results = '执行结果数'; @@ -64,6 +64,9 @@ $lang->testcase->stepNumberAB = 'S'; $lang->testcase->createBug = '转Bug'; $lang->testcase->fromModule = '来源模块'; $lang->testcase->fromCase = '来源用例'; +$lang->testcase->sync = '同步'; +$lang->testcase->fromTesttask = '测试单用例'; +$lang->testcase->fromCaselib = '用例库用例'; $lang->case = $lang->testcase; // 用于DAO检查时使用。因为case是系统关键字,所以无法定义该模块为case,只能使用testcase,但表还是使用的case。 $lang->testcase->stepID = '编号'; diff --git a/module/testcase/model.php b/module/testcase/model.php index e1f6308d8c..1b36ab2934 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -395,7 +395,8 @@ class testcaseModel extends model $case->storyStatus = $story->status; $case->latestStoryVersion = $story->version; } - if($case->fromBug) $case->fromBugTitle = $this->dao->findById($case->fromBug)->from(TABLE_BUG)->fields('title')->fetch('title'); + if($case->fromBug) $case->fromBugTitle = $this->dao->findById($case->fromBug)->from(TABLE_BUG)->fields('title')->fetch('title'); + if($case->fromCaseID) $case->libCaseVersion = $this->dao->findById($case->fromCaseID)->from(TABLE_CASE)->fetch('version'); $case->toBugs = array(); $toBugs = $this->dao->select('id, title')->from(TABLE_BUG)->where('`case`')->eq($caseID)->fetchAll(); diff --git a/module/testcase/view/view.html.php b/module/testcase/view/view.html.php index 14d5d70274..d3e85dcef7 100644 --- a/module/testcase/view/view.html.php +++ b/module/testcase/view/view.html.php @@ -218,8 +218,14 @@ echo $lang->testcase->statusList[$case->status]; if($case->version > $case->currentVersion and $from == 'testtask') { - echo "({$lang->testcase->changed} "; - echo html::a($this->createLink('testcase', 'confirmchange', "caseID=$case->id"), $lang->confirm, 'hiddenwin', "class='btn btn-mini btn-info'"); + echo "(testcase->fromTesttask}>{$lang->testcase->changed} "; + echo html::a($this->createLink('testcase', 'confirmchange', "caseID=$case->id"), $lang->testcase->sync, 'hiddenwin', "class='btn btn-mini btn-info' title={$lang->testcase->fromTesttask}"); + echo ")"; + } + if(isset($case->libCaseVersion) and $case->libCaseVersion > $case->version and $from != 'testtask') + { + echo "(testcase->fromCaselib}>{$lang->testcase->changed} "; + echo html::a($this->createLink('testcase', 'confirmLibcaseChange', "caseID=$case->id&libcaseID=$case->fromCaseID&version=$case->libCaseVersion"), $lang->testcase->sync, 'hiddenwin', "class='btn btn-mini btn-info' title={$lang->testcase->fromCaselib}"); echo ")"; } ?>