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();