* @package testcase * @link https://www.zentao.net */ namespace zin; jsVar('productID', $productID); jsVar('branch', $branch); jsVar('modules', $modules); unset($lang->testcase->typeList['unit']); if(!empty($suhosinInfo)) { div ( setClass('alert secondary-pale'), html($suhosinInfo) ); } elseif(empty($maxImport) && $allCount > $this->config->file->maxImport) { $importActions[] = array('id' => 'import', 'type' => 'primary', 'text' => $lang->import); $maxImportInput = html::input('maxImport', $config->file->maxImport, "style='width:50px' class='border'"); panel ( on::change('#maxImport', 'computeImportTimes'), on::click('#import', 'importNextPage'), set::title($lang->testcase->import), html(sprintf($lang->file->importSummary, $allCount, $maxImportInput, ceil($allCount / $config->file->maxImport))), set::footerActions($importActions) ); } else { $priList = array_filter($lang->testcase->priList); $requiredFields = $config->testcase->create->requiredFields; $items[] = array ( 'name' => 'index', 'label' => $lang->idAB, 'control' => 'index', 'width' => '50px' ); $items[] = array ( 'name' => 'rawID', 'label' => '', 'hidden' => true, 'control' => 'hidden', 'width' => '32px' ); $items[] = array ( 'name' => 'product', 'label' => '', 'hidden' => true, 'control' => 'hidden', 'width' => '32px' ); $items[] = $product->type != 'normal' ? array ( 'name' => 'branch', 'label' => $lang->product->branch, 'control' => array('control' => 'picker', 'required' => true), 'items' => $branches, 'width' => '120px' ) : array(); $items[] = array ( 'name' => 'title', 'label' => $lang->testcase->title, 'width' => '240px', 'required' => strpos(",$requiredFields,", ',title,') !== false ); $items[] = array ( 'name' => 'module', 'label' => $lang->testcase->module, 'control' => array('control' => 'picker', 'required' => true), 'items' => isset($modules[$branch]) ? $modules[$branch] : array(), 'width' => '200px', 'required' => strpos(",$requiredFields,", ',module,') !== false ); if($this->config->edition != 'open') { $items[] = array ( 'name' => 'scene', 'label' => $lang->testcase->scene, 'control' => array('control' => 'picker', 'required' => true), 'items' => array(), 'width' => '200px', 'required' => strpos(",$requiredFields,", ',scene,') !== false ); } $items[] = array ( 'name' => 'story', 'label' => $lang->testcase->story, 'control' => 'picker', 'items' => array(), 'width' => '240px', 'required' => strpos(",$requiredFields,", ',story,') !== false ); $items[] = array ( 'name' => 'type', 'label' => $lang->testcase->type, 'control' => 'picker', 'items' => $lang->testcase->typeList, 'width' => '160px', 'required' => strpos(",$requiredFields,", ',type,') !== false ); $items[] = array ( 'name' => 'pri', 'label' => $lang->testcase->pri, 'control' => 'pripicker', 'items' => $priList, 'width' => '80px', 'required' => strpos(",$requiredFields,", ',pri,') !== false ); $items[] = array ( 'name' => 'precondition', 'label' => $lang->testcase->precondition, 'control' => 'textarea', 'width' => '240px', 'required' => strpos(",$requiredFields,", ',precondition,') !== false ); $items[] = array ( 'name' => 'keywords', 'label' => $lang->testcase->keywords, 'width' => '240px', 'required' => strpos(",$requiredFields,", ',keywords,') !== false ); $items[] = array ( 'name' => 'stage', 'label' => $lang->testcase->stage, 'control' => 'picker', 'multiple' => true, 'items' => $lang->testcase->stageList, 'width' => '240px', 'required' => strpos(",$requiredFields,", ',stage,') !== false ); /* Field of steps. */ $items[] = array ( 'name' => 'steps', 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row', 'placeholder' => $lang->testcase->stepsPlaceholder), 'label' => $lang->testcase->steps, 'width' => '256px', 'required' => isset($requiredFields['steps']) ); /* Field of expects. */ $items[] = array ( 'name' => 'expects', 'control' => array('control' => 'textarea', 'class' => 'form-control form-batch-input text-3-row'), 'label' => $lang->testcase->expect, 'width' => '256px', 'required' => isset($requiredFields['expects']) ); $insert = true; $caseData = array_values($caseData); foreach($caseData as $key => $case) { $case->type = $case->type ? $case->type : 'feature'; if(empty($case->pri)) $case->pri = 3; if(empty($case->id)) { $case->new = true; $case->id = $key + 1; $case->rawID = ''; } else { $case->id = trim($case->id); $case->rawID = $case->id; $insert = false; $dbCase = zget($cases, $case->id, array()); if(empty($dbCase)) continue; $case->product = $dbCase->product; if(!isset($case->module)) $case->module = $dbCase->module; if(!isset($case->pri)) $case->pri = $dbCase->pri; if(!isset($case->type)) $case->type = $dbCase->type; if(empty($case->stage)) $case->stage = $dbCase->stage; } } $submitText = $isEndPage ? $this->lang->save : $this->lang->file->saveAndNext; formBatchPanel ( set::mode('edit'), set::title($lang->testcase->import), set::items($items), set::data($caseData), set::actionsText(false), set::onRenderRowCol(jsRaw('renderRowCol')), on::change('[data-name="branch"]', 'changeBranch'), on::change('[data-name="module"]', 'changeModule'), input(set::className('hidden'), set::name('isEndPage'), set::value($isEndPage ? '1' : '0')), input(set::className('hidden'), set::name('pagerID'), set::value($pagerID)), input(set::className('hidden'), set::name('insert'), set::value($dataInsert)), (!$insert && $dataInsert === '') ? set::actions(array(array('text' => $submitText, 'data-toggle' => 'modal', 'data-target' => '#importNoticeModal', 'class' => 'primary showNotice'), 'cancel')) : set::submitBtnText($submitText) ); if(!$insert && $dataInsert === '') include '../../common/ui/noticeimport.html.php'; } render();