* @package bug * @link http://www.zentao.net */ namespace zin; jsVar('executionID', $executionID); jsVar('tab', $this->app->tab); if($app->tab == 'execution') jsVar('objectID', $executionID); if($app->tab == 'project') jsVar('objectID', $projectID); $priList = array_filter($lang->testcase->priList); unset($lang->testcase->typeList['unit']); formPanel ( on::change('#product', 'changeProduct'), on::change('#branch', 'changeBranch'), on::change('#module', 'changeModule'), on::change('#story', 'changeStory'), on::change('#scriptFile', 'readScriptContent'), on::change('#scriptFile', 'hideUploadScriptBtn'), on::click('#refresh', 'clickRefresh'), on::click('#auto', 'checkScript'), on::click('.autoScript .file-delete', 'showUploadScriptBtn'), set::title($lang->testcase->create), set::customFields(true), !empty($gobackLink) ? set::backUrl($gobackLink) : null, formRow ( formGroup ( set::width('1/3'), setClass(!empty($product->shadow) ? 'hidden' : ''), set::label($lang->testcase->product), inputGroup ( picker ( set::id('product'), set::name('product'), set::items($products), set::value(!empty($case->product) ? $case->product : $productID) ), picker ( set::className(!isset($product->type) || $product->type == 'normal' ? 'hidden' : ''), set::width('100px'), set::id('branch'), set::name('branch'), set::items($branches), set::value($branch), set::emptyValue('') ) ) ), formGroup ( set::width('1/3'), set::label($lang->testcase->module), set::required(strpos(",{$config->testcase->create->requiredFields},", ',module,') !== false), inputGroup ( set('id', 'moduleBox'), picker ( set::id('module'), set::name('module'), set::items($moduleOptionMenu), set::value($currentModuleID), set::required(true), ), span ( set('class', 'input-group-addon' . (count($moduleOptionMenu) > 1 ? ' hidden' : '')), a ( set('class', 'mr-2'), set('href', $this->createLink('tree', 'browse', "rootID=$productID&view=case¤tModuleID=0&branch={$branch}")), set('data-toggle', 'modal'), set('data-size', 'lg'), $lang->tree->manage ), a ( set('id', 'refreshModule'), set('class', 'text-black'), set('href', 'javascript:void(0)'), icon('refresh') ) ), ) ), ), formRow ( formGroup ( set::width('1/3'), set::label($lang->testcase->scene), inputGroup ( set('id', 'sceneBox'), picker ( set::id('scene'), set::name('scene'), set::items($sceneOptionMenu), set::value($currentSceneID), set::required(true), ) ) ) ), formRow ( formGroup ( set::width('1/3'), set::label($lang->testcase->type), set::required(strpos(",{$config->testcase->create->requiredFields},", ',type,') !== false), picker ( set::id('type'), set::name('type'), set::items($lang->testcase->typeList), set::value($case->type), set::required(true) ), ), formGroup ( setClass('ml-2 items-center'), checkbox ( set::id('auto'), set::name('auto'), set::value('auto'), set::text($lang->testcase->automated) ) ), ), formRow ( setClass('hidden autoScript'), formGroup ( set::width('1/3'), set::label($lang->testcase->autoScript), upload ( set::name('scriptFile'), set::accept($config->testcase->scriptAcceptFileTypes), set::limitCount(1) ), input ( set::type('hidden'), set::name('script') ) ) ), formRow ( formGroup ( set::width('1/3'), set::label($lang->testcase->stage), set::required(strpos(",{$config->testcase->create->requiredFields},", ',stage,') !== false), inputGroup ( set('id', 'stageBox'), picker ( set::id('stage'), set::name('stage[]'), set::multiple(true), set::items($lang->testcase->stageList), set::value($case->stage) ) ) ) ), formRow ( formGroup ( set::width('1/2'), set::label($lang->testcase->lblStory), set::required(strpos(",{$config->testcase->create->requiredFields},", ',story,') !== false), inputGroup ( set('id', 'storyBox'), picker ( set::id('story'), set::name('story'), set::items($stories), set::value($case->story) ), span ( set('class', 'input-group-addon'), set('class' , !$case->story ? 'hidden' : ''), a ( set::id('preview'), set::href(helper::createLink('story', 'view', "storyID={$case->story}")), set('data-toggle', 'modal'), $lang->preview ) ) ) ) ), formRow ( setClass('title-row'), formGroup ( setClass('grow'), set::label($lang->testcase->title), set::required(true), inputControl ( input ( set::name('title'), set::value($case->title), ), set::suffixWidth('icon'), to::suffix ( colorPicker ( set::name('color'), set::value($case->color), set::syncColor('#title') ) ) ) ), formGroup ( setClass('grow-0'), set::label($lang->testcase->pri), set::required(strpos(",{$config->testcase->create->requiredFields},", ',pri,') !== false), priPicker ( width('80px'), set::name('pri'), set::items($priList), set::value($case->pri) ), ), $needReview ? formGroup ( setClass('grow-0'), set::label($lang->testcase->isReviewed), picker ( width('80px'), set::items($lang->testcase->reviewList), set::id('needReview'), set::name('needReview'), set::value('0'), set::required(true), ), ) : null ), formRow ( formGroup ( set::label($lang->testcase->precondition), set::control(array('type' => 'textarea', 'rows' => 2)), set::name('precondition'), set::value($case->precondition) ) ), formRow ( formGroup ( set::label($lang->testcase->steps), stepsEditor(set::data($case->steps)) ) ), formRow ( formGroup ( set::label($lang->testcase->keywords), set::name('keywords'), set::value($case->keywords) ) ), formRow ( formGroup ( set::label($lang->testcase->files), upload() ) ) ); render(); function printStepsTable() { global $lang; $stepsTR = array(); for($i = 1; $i <= 3; $i ++) { $stepsTR[] = h::tr ( h::td(set::className('center'), $i), h::td ( inputGroup ( textarea ( set::rows(1), set::name("steps[$i]") ), span ( set('class', 'input-group-addon'), checkbox ( set::name("stepType[$i]"), set::text($lang->testcase->automated), ) ) ) ), h::td ( textarea ( set::rows(1), set::name("expects[$i]") ) ), h::td ( set::className('center'), btnGroup ( set::items(array( array('icon' => 'plus'), array('icon' => 'trash'), array('icon' => 'move') )) ) ) ); } return h::table ( set::className('w-full'), h::thead ( h::tr ( h::th($lang->testcase->stepID), h::th($lang->testcase->stepDesc), h::th($lang->testcase->stepExpect), h::th($lang->actions) ) ), h::tbody ( $stepsTR ) ); }