diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 428b3a6dfa..502dc4403d 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -258,7 +258,7 @@ $lang->testcase->menu = new stdclass(); $lang->testcase->menu->product = array('link' => '%s', 'fixed' => true); $lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s'); -$lang->testcase->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase', 'subModule' => 'tree'); +$lang->testcase->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'subModule' => 'tree'); $lang->testcase->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase'); $lang->testcase->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase'); $lang->testcase->menu->report = array('link' => 'Report|testreport|browse|productID=%s', 'alias' => 'view,create'); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 3eecf10939..c109e12e6c 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -258,7 +258,7 @@ $lang->testcase->menu = new stdclass(); $lang->testcase->menu->product = array('link' => '%s', 'fixed' => true); $lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s'); -$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importlib,report', 'subModule' => 'tree'); +$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'subModule' => 'tree'); $lang->testcase->menu->testtask = array('link' => '版本|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase'); $lang->testcase->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase'); $lang->testcase->menu->report = array('link' => '报告|testreport|browse|productID=%s', 'alias' => 'view,create'); diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index c1c4e08aff..19a3c28084 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -520,7 +520,7 @@ $lang->resource->testcase->report = 'reportChart'; $lang->resource->testcase->review = 'review'; $lang->resource->testcase->batchReview = 'batchReview'; $lang->resource->testcase->batchStoryChange = 'batchStoryChange'; -$lang->resource->testcase->importLib = 'importLib'; +$lang->resource->testcase->importFromLib = 'importFromLib'; $lang->testcase->methodOrder[0] = 'index'; $lang->testcase->methodOrder[5] = 'browse'; @@ -544,7 +544,7 @@ $lang->testcase->methodOrder[90] = 'report'; $lang->testcase->methodOrder[95] = 'review'; $lang->testcase->methodOrder[100] = 'batchReview'; $lang->testcase->methodOrder[105] = 'batchStoryChange'; -$lang->testcase->methodOrder[110] = 'importLib'; +$lang->testcase->methodOrder[110] = 'importFromLib'; /* Test task. */ $lang->resource->testtask = new stdclass(); @@ -1266,7 +1266,7 @@ $lang->changelog['9.1'][] = 'testcase-report'; $lang->changelog['9.1'][] = 'testcase-review'; $lang->changelog['9.1'][] = 'testcase-batchReview'; $lang->changelog['9.1'][] = 'testcase-batchStoryChange'; -$lang->changelog['9.1'][] = 'testcase-importLib'; +$lang->changelog['9.1'][] = 'testcase-importFromLib'; $lang->changelog['9.1'][] = 'testreport-browse'; $lang->changelog['9.1'][] = 'testreport-create'; $lang->changelog['9.1'][] = 'testreport-view'; diff --git a/module/testcase/control.php b/module/testcase/control.php index 8c20cfd08b..7fd5c726b7 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -1346,6 +1346,58 @@ class testcase extends control $this->display(); } + /** + * Import case from lib. + * + * @param int $productID + * @param int $branch + * @param int $libID + * @param string $orderBy + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID + * @access public + * @return void + */ + public function importFromLib($productID, $branch = 0, $libID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) + { + if($_POST) + { + $this->testcase->importFromLib($productID); + die(js::reload('parent')); + } + + $this->testcase->setMenu($this->products, $productID, $branch); + + $libraries = $this->loadModel('testsuite')->getLibraries(); + if(empty($libraries)) + { + echo js::alert($this->lang->testcase->noLibrary); + die(js::locate(inlink('browse'))); + } + if(empty($libID) or !isset($libraries[$libID])) $libID = key($libraries); + + /* Load pager. */ + $this->app->loadClass('pager', $static = true); + $pager = pager::init($recTotal, $recPerPage, $pageID); + + $this->view->title = $this->lang->testcase->common . $this->lang->colon . $this->lang->testcase->importFromLib; + $this->view->position[] = $this->lang->testcase->importFromLib; + + $this->view->libraries = $libraries; + $this->view->libID = $libID; + $this->view->productID = $productID; + $this->view->branch = $branch; + $this->view->cases = $this->testsuite->getNotImportedCases($productID, $libID, $orderBy, $pager); + $this->view->modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, $branch); + $this->view->libModules = $this->tree->getOptionMenu($libID, 'caselib'); + $this->view->pager = $pager; + $this->view->orderBy = $orderBy; + $this->view->branches = $this->loadModel('branch')->getPairs($productID); + + $this->display(); + } + /** * Show import data * @@ -1520,64 +1572,4 @@ class testcase extends control $this->view->users = $this->loadModel('user')->getPairs('noletter'); $this->display(); } - - /** - * Import case from lib. - * - * @param int $productID - * @param int $branch - * @param int $libID - * @param string $orderBy - * @param int $recTotal - * @param int $recPerPage - * @param int $pageID - * @access public - * @return void - */ - public function importLib($productID, $branch = 0, $libID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) - { - if($_POST) - { - $this->testcase->importLib($productID); - die(js::reload('parent')); - } - - $this->testcase->setMenu($this->products, $productID, $branch); - - $libraries = $this->loadModel('testsuite')->getLibraries(); - if(empty($libraries)) - { - echo js::alert($this->lang->testcase->noLibrary); - die(js::locate(inlink('browse'))); - } - if(empty($libID) or !isset($libraries[$libID])) $libID = key($libraries); - - /* Load pager. */ - $this->app->loadClass('pager', $static = true); - $pager = pager::init($recTotal, $recPerPage, $pageID); - - $modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, $branch); - $libName = $libraries[$libID]; - $libModules = $this->tree->getOptionMenu($libID, 'caselib'); - foreach($libModules as $moduleID => $moduleName) - { - if($moduleID == 0) continue; - $modules[$moduleID] = $libName . $moduleName; - } - - $this->view->title = $this->lang->testcase->common . $this->lang->colon . $this->lang->testcase->importFromLib; - $this->view->position[] = $this->lang->testcase->importFromLib; - - $this->view->libraries = $libraries; - $this->view->libID = $libID; - $this->view->productID = $productID; - $this->view->branch = $branch; - $this->view->cases = $this->testsuite->getNotImportedCases($productID, $libID, $orderBy, $pager); - $this->view->modules = $modules; - $this->view->pager = $pager; - $this->view->orderBy = $orderBy; - $this->view->branches = $this->loadModel('branch')->getPairs($productID); - - $this->display(); - } } diff --git a/module/testcase/css/importlib.css b/module/testcase/css/importfromlib.css similarity index 58% rename from module/testcase/css/importlib.css rename to module/testcase/css/importfromlib.css index 9c7db148a6..d3a2345a18 100644 --- a/module/testcase/css/importlib.css +++ b/module/testcase/css/importfromlib.css @@ -1,2 +1,2 @@ -#titlebar .input-group {position: relative; top: -6px; margin-left: 10px; width: 300px;} +#titlebar .input-group {position: relative; top: -6px; width: 350px;} #titlebar .input-group-addon, #titlebar .form-control {font-size: 12px; padding: 5px 10px; line-height: 18px; height: 30px} diff --git a/module/testcase/js/importlib.js b/module/testcase/js/importfromlib.js similarity index 55% rename from module/testcase/js/importlib.js rename to module/testcase/js/importfromlib.js index 856cca551c..06e2f661dd 100644 --- a/module/testcase/js/importlib.js +++ b/module/testcase/js/importfromlib.js @@ -1,6 +1,6 @@ function reload(libID) { - link = createLink('testcase','importLib','productID='+ productID + '&branch=' + branch + '&libID='+libID); + link = createLink('testcase','importFromLib','productID='+ productID + '&branch=' + branch + '&libID='+libID); location.href = link; } $(function() diff --git a/module/testcase/lang/zh-cn.php b/module/testcase/lang/zh-cn.php index c4eedb9171..1f1afacd86 100644 --- a/module/testcase/lang/zh-cn.php +++ b/module/testcase/lang/zh-cn.php @@ -56,6 +56,7 @@ $lang->testcase->resultsAB = 'R'; $lang->testcase->stepNumber = '用例步骤数'; $lang->testcase->stepNumberAB = 'S'; $lang->testcase->createBug = '转Bug'; +$lang->testcase->fromModule = '来源模块'; $lang->case = $lang->testcase; // 用于DAO检查时使用。因为case是系统关键字,所以无法定义该模块为case,只能使用testcase,但表还是使用的case。 $lang->testcase->stepID = '编号'; @@ -70,7 +71,6 @@ $lang->testcase->batchCreate = "批量添加"; $lang->testcase->delete = "删除用例"; $lang->testcase->view = "用例详情"; $lang->testcase->review = "评审"; -$lang->testcase->importLib = "从库导入"; $lang->testcase->edit = "编辑"; $lang->testcase->batchEdit = "批量编辑 "; $lang->testcase->batchChangeModule = "批量修改模块"; @@ -82,7 +82,7 @@ $lang->testcase->browse = "用例列表"; $lang->testcase->groupCase = "分组浏览用例"; $lang->testcase->import = "导入"; $lang->testcase->importFile = "导入CSV"; -$lang->testcase->importFromLib = "从库中导入"; +$lang->testcase->importFromLib = "从用例库中导入"; $lang->testcase->showImport = "显示导入内容"; $lang->testcase->exportTemplet = "导出模板"; $lang->testcase->export = "导出数据"; @@ -181,11 +181,11 @@ $lang->testcase->action->fromlib = array('main' => '$date, 由 $actortestcase->action->reviewed = array('main' => '$date, 由 $actor 记录评审结果,结果为 $extra。', 'extra' => 'reviewResultList'); $lang->testcase->featureBar['browse']['all'] = $lang->testcase->allCases; -$lang->testcase->featureBar['browse']['needconfirm'] = $lang->testcase->needConfirm; $lang->testcase->featureBar['browse']['wait'] = '待评审'; +$lang->testcase->featureBar['browse']['needconfirm'] = $lang->testcase->needConfirm; $lang->testcase->featureBar['browse']['group'] = '分组查看'; -$lang->testcase->featureBar['browse']['zerocase'] = '零用例需求'; $lang->testcase->featureBar['browse']['suite'] = '套件'; +$lang->testcase->featureBar['browse']['zerocase'] = '零用例需求'; $lang->testcase->featureBar['groupcase'] = $lang->testcase->featureBar['browse']; /* 统计报表。*/ diff --git a/module/testcase/model.php b/module/testcase/model.php index 7e0b1b6cac..5fbe0b97ac 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -1080,7 +1080,7 @@ class testcaseModel extends model * @access public * @return void */ - public function importLib($productID) + public function importFromLib($productID) { $data = fixer::input('post')->get(); $libCases = $this->dao->select('*')->from(TABLE_CASE)->where('deleted')->eq(0)->andWhere('id')->in($data->caseIdList)->fetchAll('id'); @@ -1092,10 +1092,12 @@ class testcaseModel extends model if(isset($data->module[$case->id])) $case->module = $data->module[$case->id]; if(isset($data->branch[$case->id])) $case->branch = $data->branch[$case->id]; unset($case->id); + $this->dao->insert(TABLE_CASE)->data($case) ->autoCheck() ->batchCheck($this->config->testcase->create->requiredFields, 'notempty') ->exec(); + if(!dao::isError()) { $caseID = $this->dao->lastInsertID(); diff --git a/module/testcase/view/caseheader.html.php b/module/testcase/view/caseheader.html.php index 5d95bd624d..63936ccfdf 100644 --- a/module/testcase/view/caseheader.html.php +++ b/module/testcase/view/caseheader.html.php @@ -34,35 +34,42 @@ } elseif($hasBrowsePriv and $menuType == 'suite') { - echo "'; } elseif($hasGroupPriv and $menuType == 'group') { - echo "'; } elseif($hasZeroPriv and $menuType == 'zerocase') @@ -95,18 +102,15 @@
- + diff --git a/module/testcase/view/importlib.html.php b/module/testcase/view/importfromlib.html.php similarity index 84% rename from module/testcase/view/importlib.html.php rename to module/testcase/view/importfromlib.html.php index e07cad654b..aa267e1cf6 100644 --- a/module/testcase/view/importlib.html.php +++ b/module/testcase/view/importfromlib.html.php @@ -1,22 +1,20 @@ * @package testcase - * @version $Id: importlib.html.php 4669 2013-04-23 02:28:08Z chencongzhi520@gmail.com $ + * @version $Id * @link http://www.zentao.net */ ?>
- icons['testcase']);?> - icons['import']);?> testcase->importFromLib;?>
- testcase->selectLib;?> + testcase->selectLib;?>
@@ -32,6 +30,7 @@ priAB);?> testcase->title);?> + testcase->fromModule ?> testcase->module ?> testcase->type)?> @@ -48,7 +47,8 @@ testcase->priList, $case->pri, $case->pri)?>'>pri == '0' ? '' : zget($lang->testcase->priList, $case->pri, $case->pri);?> id", $case->title)) echo $case->title;?> - id}]", $modules, $case->module, "class='from-control chosen'");?> + module, '');?> + id}]", $modules, 0, "class='from-control chosen'");?> testcase->typeList, $case->type);?> diff --git a/module/testsuite/view/linkcase.html.php b/module/testsuite/view/linkcase.html.php index 85085d0b96..bb436ae6c0 100644 --- a/module/testsuite/view/linkcase.html.php +++ b/module/testsuite/view/linkcase.html.php @@ -53,7 +53,7 @@ echo $case->title . ' ( '; for($i = $case->version; $i >= 1; $i --) { - echo html::a($this->createLink('testcase', 'view', "caseID=$case->id&version=$i"), "#$i", '_blank'); + echo html::a($this->createLink('testcase', 'view', "caseID=$case->id&version=$i", '', true), "#$i", '', "class='iframe' data-width='95%'"); } echo ')'; ?> diff --git a/module/testsuite/view/view.html.php b/module/testsuite/view/view.html.php index 8820748ab4..202be8ee7a 100644 --- a/module/testsuite/view/view.html.php +++ b/module/testsuite/view/view.html.php @@ -91,7 +91,7 @@ testcase->priList, $case->pri, $case->pri)?>'>testcase->priList, $case->pri, $case->pri)?> branch) echo "{$branches[$case->branch]}"?> - createLink('testcase', 'view', "caseID=$case->id&version=$case->caseVersion"), $case->title, '_blank');?> + createLink('testcase', 'view', "caseID=$case->id&version=$case->caseVersion"), $case->title);?> testcase->typeList[$case->type];?> version < $case->caseVersion) ? "{$lang->testcase->changed}" : $lang->testcase->statusList[$case->status];?> diff --git a/module/testtask/view/casesdata.html.php b/module/testtask/view/casesdata.html.php index d1a181f883..c950184ef4 100644 --- a/module/testtask/view/casesdata.html.php +++ b/module/testtask/view/casesdata.html.php @@ -48,7 +48,7 @@ testcase->priList, $run->pri, $run->pri)?>'>testcase->priList, $run->pri, $run->pri)?> branch) echo "{$branches[$run->branch]}"?> - createLink('testcase', 'view', "caseID=$run->case&version=$run->version&from=testtask&taskID=$run->task"), $run->title, '_blank');?> + createLink('testcase', 'view', "caseID=$run->case&version=$run->version&from=testtask&taskID=$run->task"), $run->title);?> testcase->typeList[$run->type];?> assignedTo]; echo substr($assignedTo, strpos($assignedTo, ':') + 1);?> diff --git a/module/testtask/view/linkcase.html.php b/module/testtask/view/linkcase.html.php index f51f43fb98..802098ff71 100644 --- a/module/testtask/view/linkcase.html.php +++ b/module/testtask/view/linkcase.html.php @@ -104,7 +104,7 @@ echo $case->title . ' ( '; for($i = $case->version; $i >= 1; $i --) { - echo html::a($this->createLink('testcase', 'view', "caseID=$case->id&version=$i"), "#$i", '_blank'); + echo html::a($this->createLink('testcase', 'view', "caseID=$case->id&version=$i", '', true), "#$i", '', "class='iframe' data-width='95%'"); } echo ')'; ?>