diff --git a/module/testcase/config.php b/module/testcase/config.php index 71726c8204..6f114629de 100644 --- a/module/testcase/config.php +++ b/module/testcase/config.php @@ -39,6 +39,8 @@ $config->testcase->custom->batchEditFields = 'branch,module,stage,status,pri,s $config->testcase->excludeCheckFileds = ',pri,type,stage,needReview,story,branch,'; +$config->testcase->scriptAcceptFileTypes = '.php,.py,.js,.go,.sh,.bat,.lua,.rb,.tcl,.pl'; + global $lang; $config->testcase->search['module'] = 'testcase'; $config->testcase->search['fields']['title'] = $lang->testcase->title; diff --git a/module/testcase/js/edit.ui.js b/module/testcase/js/edit.ui.js index 612b181494..f87a202271 100644 --- a/module/testcase/js/edit.ui.js +++ b/module/testcase/js/edit.ui.js @@ -5,3 +5,24 @@ function loadLibModules() $('#moduleIdBox').load(link); } + +function checkScript() +{ + $('.autoScript').toggleClass('hidden', !$('#auto').prop('checked')); +} + +function readScriptContent() +{ + $uploadBtnLabel = $('#scriptFile').next(); + + $uploadBtnLabel.toggle($('#scriptFile').parents('td').find('.file-list').length < 1); + + var reader = new FileReader(); + reader.readAsText($('#scriptFile')[0].files[0], 'UTF-8'); + reader.onload = function(evt){$('#script').val(evt.target.result);} +} + +function showUploadScriptBtn() +{ + $('#scriptFile').next().show(); +} diff --git a/module/testcase/ui/edit.html.php b/module/testcase/ui/edit.html.php index 3e2c4ee911..6cffa8a4ba 100644 --- a/module/testcase/ui/edit.html.php +++ b/module/testcase/ui/edit.html.php @@ -62,7 +62,10 @@ detailBody on::change('#product', 'loadProductRelated()'), on::change('#module', 'loadModuleRelated'), on::change('#branch', 'loadBranchRelated'), + on::change('#scriptFile', 'readScriptContent'), on::click('.refresh', $isCaseLib ? 'loadLibModules' : 'loadProductModules'), + on::click('#auto', 'checkScript'), + on::click('.autoScript .file-delete', 'showUploadScriptBtn'), sectionList ( section @@ -115,8 +118,10 @@ detailBody ) : null, formGroup ( - set::name('files[]'), - set::control('file'), + upload + ( + set::name('files'), + ), ) ), section @@ -152,7 +157,7 @@ detailBody ) : item ( set::name($lang->testcase->product), - set::hidden($product->shadow), + set::trClass($product->shadow ? 'hidden' : ''), inputGroup ( select @@ -240,9 +245,19 @@ detailBody ), item ( - set::class('autoScript'), - set::hidden(true), + set::trClass('hidden autoScript'), set::name($lang->testcase->autoScript), + upload + ( + set::name('scriptFile'), + set::accept($config->testcase->scriptAcceptFileTypes), + set::limitCount(1) + ), + input + ( + set::type('hidden'), + set::name('script'), + ) ), item ( @@ -284,7 +299,7 @@ detailBody set::value($case->keywords) ) ), - ($isLibCase && hasPriv('testcase', 'linkCases')) ? item + (!$isLibCase && hasPriv('testcase', 'linkCases')) ? item ( set::name($lang->testcase->linkCase), a @@ -294,14 +309,14 @@ detailBody $lang->testcase->linkCases, ) ) : null, - ($isLibCase && hasPriv('testcase', 'linkCases')) ? item + (!$isLibCase && hasPriv('testcase', 'linkCases')) ? item ( - set::hidden(!isset($case->linkCaseTitles)), + set::trClass(!isset($case->linkCaseTitles) ? 'hidden' : ''), control ( set::type('checkList'), set::name('linkCase[]'), - set::value(array_keys($case->linkCaseTitles)), + set::value(isset($case->linkCaseTitles) ? array_keys($case->linkCaseTitles) : ''), set::items($linkCaseItems), ), span @@ -309,7 +324,7 @@ detailBody set::id('linkCaseBox'), ) ) : null, - ($isLibCase && hasPriv('testcase', 'linkBugs')) ? item + (!$isLibCase && hasPriv('testcase', 'linkBugs')) ? item ( set::name($lang->testcase->linkBug), a @@ -319,9 +334,9 @@ detailBody $lang->testcase->linkBugs, ) ) : null, - ($isLibCase && hasPriv('testcase', 'linkBugs')) ? item + (!$isLibCase && hasPriv('testcase', 'linkBugs')) ? item ( - set::hidden(!isset($case->toBugs)), + set::trClass(!isset($case->toBugs) ? 'hidden' : ''), control ( set::type('checkList'),