* @package build * @link https://www.zentao.net */ namespace zin; jsVar('projectID', $build->project); jsVar('executionID', $build->execution); jsVar('build', $build); jsVar('builds', $build->builds); jsVar('buildID', $build->id); jsVar('multipleSelect', $lang->build->placeholder->multipleSelect); $productRow = ''; $testtaskID = $testtask ? $testtask->id : 0; if(!$hidden) { $productRow = formRow( formGroup ( set::width('1/2'), set::name('product'), set::label($lang->build->product), set::value($build->product), set::items($products), set::required(true), set::disabled($build->stories || $build->bugs || $testtaskID), on::change('changeProduct') ), $build->stories || $build->bugs || $testtaskID ? formGroup ( set::width('1/2'), setClass('items-center pl-4'), $lang->build->notice->changeProduct ) : '' ); } else { $productRow = formHidden('product', $build->product); } $executionRow = ''; $buildRow = ''; if(!$build->execution) { $buildRow = formRow ( formGroup ( set::width('1/2'), set::label($lang->build->builds), picker ( set::name('builds[]'), set::items($builds), set::value($build->builds), set::readonly(!empty($testtaskID)), set::placeholder($lang->build->placeholder->multipleSelect), set::multiple(true) ) ), formGroup ( set::width('1/2'), setClass('items-center pl-4'), $testtaskID ? $lang->build->notice->changeBuilds : $lang->build->notice->autoRelation ) ); } else { if(!empty($multipleProject)) { $executionRow = formRow ( formGroup ( set::width('1/2'), set::name('execution'), set::label($executionType ? $lang->build->executionAB : $lang->build->execution), set::value($build->execution), set::items($executions), set::disabled(!empty($testtaskID)), set::required(true) ), $testtaskID ? formGroup( set::width('1/2'), setClass('items-center pl-4'), $lang->build->notice->changeExecution ) : '' ); } else { $executionRow = formHidden('execution', $build->execution); } } if(empty($product)) $product = new stdclass(); $productType = zget($product, 'type', 'normal'); $productBranches = zget($product, 'branches', array()); formPanel ( set::title($lang->build->edit), setClass('form-build'), on::change('[name=system]', 'loadBuilds'), $productRow, formRow ( setClass(isset($product->type) && $product->type != 'normal' && !empty($build->execution) ? '' : 'hidden'), formGroup ( set::width('1/2'), set::label($lang->product->branchName[$productType]), picker ( set::emptyValue(''), set::name('branch[]'), set::value($build->branch), set::items($branchTagOption), set::multiple(true), on::change('changeBranches') ) ) ), formRow ( formGroup ( set::width('1/2'), set::label($lang->build->system), set::required(true), inputGroup ( div ( setClass('w-full'), setId('systemBox'), picker ( set::name('system'), set::required(empty($build->isChild)), set::disabled(!empty($build->isChild)), set::items($systemList), set::value($build->system) ) ) ) ) ), !$build->execution ? $buildRow : $executionRow, formRow ( formGroup ( set::width('1/2'), set::name('name'), set::label($lang->build->nameAB), set::value($build->name), ) ), formRow ( formGroup ( set::width('1/2'), set::name('builder'), set::label($lang->build->builder), set::value($build->builder), set::items($users) ) ), formRow ( set::id('buildDateRow'), formGroup ( set::width('1/2'), set::name('date'), set::id('buildDate'), set::label($lang->build->date), set::control('date'), set::value($build->date) ) ), formRow ( formGroup ( set::name('scmPath'), set::label($lang->build->scmPath), set::placeholder($lang->build->placeholder->scmPath), set::value($build->scmPath) ) ), formRow ( formGroup ( set::name('filePath'), set::label($lang->build->filePath), set::placeholder($lang->build->placeholder->filePath), set::value($build->filePath) ) ), formRow ( set::id('buildFiles'), formGroup ( set::required(strpos($config->build->edit->requiredFields, 'files') !== false), set::label($lang->build->files), fileSelector($build->files ? set::defaultFiles(array_values($build->files)) : null) ) ), formRow ( formGroup ( set::label($lang->build->desc), editor ( set::name('desc'), html($build->desc) ) ) ) ); /* ====== Render page ====== */ render();