diff --git a/module/testcase/ui/header.html.php b/module/testcase/ui/header.html.php index be6cb18a37..f627650aec 100644 --- a/module/testcase/ui/header.html.php +++ b/module/testcase/ui/header.html.php @@ -35,6 +35,7 @@ $canImportXmind = hasPriv('testcase', 'importXmind'); $canCreateCase = hasPriv('testcase', 'create'); $canBatchCreateCase = hasPriv('testcase', 'batchCreate'); $canCreateScene = hasPriv('testcase', 'createScene'); +$canImportUnitResult = hasPriv('testtask', 'importUnitResult'); $canCreate = $canCreateCase || $canBatchCreateCase || $canCreateScene; $lang->testcase->typeList[''] = $lang->testcase->allType; @@ -75,7 +76,7 @@ if($canDisplaySuite) $suiteItems = array(); if(empty($suiteList)) { - if($canCreateSuite && (empty($productID) || common::canModify('product', $product))) + if($canCreateSuite && (empty($productID) || $canModify)) { $suiteItems[] = array('text' => $lang->testsuite->create, 'url' => $this->createLink('testsuite', 'create', "productID=$productID")); } @@ -275,6 +276,13 @@ toolbar set::placement('bottom-end'), ) : null, ) : null, + $rawMethod == 'browseunits' && (empty($productID) || $canModify) && $canImportUnitResult ? btn + ( + set::class('btn primary'), + set::icon('import'), + set::url(createLink('testtask', 'importUnitResult', "product=$productID")), + $lang->testtask->importUnitResult, + ) : null, ); if($rawMethod != 'zerocase' && $rawMethod != 'browseunits') diff --git a/module/testtask/ui/importunitresult.html.php b/module/testtask/ui/importunitresult.html.php new file mode 100644 index 0000000000..085aa22763 --- /dev/null +++ b/module/testtask/ui/importunitresult.html.php @@ -0,0 +1,160 @@ + + * @package testtask + * @link https://www.zentao.net + */ +namespace zin; + +formPanel +( + set::title($lang->testtask->importUnitResult), + + on::change('#execution', 'loadExecutionRelated'), + + formRow + ( + formGroup + ( + set::label($lang->testtask->execution), + set::width('1/2'), + select + ( + set::name('execution'), + set::items($executions), + ) + ), + formGroup + ( + set::label($lang->testtask->build), + set::width('1/2'), + set::required(true), + inputGroup + ( + select + ( + set::name('build'), + set::items($builds) + ), + !empty($executionID) && empty($builds) ? span + ( + set::class('input-group-addon'), + a + ( + set::url(createLink('build', 'create', "executionID=$executionID")), + set('data-toggle', 'modal'), + $lang->build->create, + ) + ) : null, + ) + ), + ), + formGroup + ( + set::label($lang->job->frame), + set::width('1/2'), + select + ( + set::name('frame'), + set::items($lang->job->frameList), + ) + ), + formGroup + ( + set::label($lang->testtask->beginAndEnd), + set::width('1/2'), + inputGroup + ( + input + ( + set::type('date'), + set::name('begin'), + set::value(date('Y-m-d')), + on::change('suitEndDate') + ), + $lang->testtask->to, + input + ( + set::type('date'), + set::name('end'), + set::value(date('Y-md-d', time() + 24 * 3600)), + ) + ) + ), + formRow + ( + formGroup + ( + set::label($lang->testtask->resultFile), + set::width('1/2'), + set::required(true), + set::name('resultFile'), + set::control('file'), + ), + div + ( + $lang->testtask->unitXMLFormat, + setStyle('height', '32px'), + setStyle('line-height', '32px'), + setStyle('padding-left', '8px'), + ) + ), + formRow + ( + formGroup + ( + set::label($lang->testtask->name), + set::name('name'), + set::value(sprintf($lang->testtask->titleOfAuto, date('Y-m-d H:i:s'))), + ), + formGroup + ( + set::label($lang->testtask->owner), + select + ( + set::name('owner'), + set::items($users), + set::value($this->app->user->account), + ) + ), + formGroup + ( + set::label($lang->testtask->pri), + select + ( + zui::width('80px'), + set::name('pri'), + set::items($lang->testtask->priList), + set::value(0) + ) + ) + ), + formGroup + ( + set::label($lang->testtask->desc), + editor + ( + set::name('desc'), + set::rows(10), + ) + ), + formGroup + ( + set::label($lang->testtask->mailto), + inputGroup + ( + select + ( + set::name('mailto[]'), + set::items($users), + set::multiple(true) + ), + ) + ) +); + +render();