diff --git a/module/build/config/dtable.php b/module/build/config/dtable.php index 126665bb5a..f785058ee2 100644 --- a/module/build/config/dtable.php +++ b/module/build/config/dtable.php @@ -20,13 +20,13 @@ $config->build->dtable->fieldList['productName']['title'] = $lang->build->produc $config->build->dtable->fieldList['productName']['name'] = 'productName'; $config->build->dtable->fieldList['productName']['type'] = 'desc'; $config->build->dtable->fieldList['productName']['group'] = 1; -$config->build->dtable->fieldList['productName']['show'] = 1; +$config->build->dtable->fieldList['productName']['show'] = 1; $config->build->dtable->fieldList['system']['title'] = $lang->build->system; $config->build->dtable->fieldList['system']['name'] = 'system'; $config->build->dtable->fieldList['system']['type'] = 'desc'; $config->build->dtable->fieldList['system']['group'] = 1; -$config->build->dtable->fieldList['system']['show'] = 1; +$config->build->dtable->fieldList['system']['show'] = 1; $config->build->dtable->fieldList['branch']['title'] = $lang->build->branch; $config->build->dtable->fieldList['branch']['name'] = 'branchName'; diff --git a/module/build/config/form.php b/module/build/config/form.php index f9dcc71de6..49ff7e56d0 100644 --- a/module/build/config/form.php +++ b/module/build/config/form.php @@ -22,6 +22,7 @@ $config->build->form->create['createdDate'] = array('type' => 'datetime ', 'requ $config->build->form->edit['execution'] = array('type' => 'int', 'required' => $app->tab == 'execution', 'default' => 0); $config->build->form->edit['product'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->build->form->edit['system'] = array('type' => 'int', 'required' => false, 'default' => 0); $config->build->form->edit['scmPath'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->build->form->edit['filePath'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->build->form->edit['desc'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor'); diff --git a/module/build/control.php b/module/build/control.php index db54a97299..9af0d7e7b9 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -698,7 +698,6 @@ class build extends control public function ajaxGetSystemList(int $productID) { $systemList = $this->loadModel('system')->getPairs($productID, '0'); - if(empty($systemList)) return ''; $system = array(); foreach($systemList as $systemID => $systemName) $system[] = array('text' => $systemName, 'value' => $systemID); diff --git a/module/build/js/common.ui.js b/module/build/js/common.ui.js index a5181df192..805ad01947 100644 --- a/module/build/js/common.ui.js +++ b/module/build/js/common.ui.js @@ -39,11 +39,9 @@ window.loadSystem = function(productID) $.get($.createLink('build', 'ajaxGetSystemList', 'productID=' + productID), function(data) { - if(data) - { - const $systemPicker = $('[name=system]').zui('picker'); - $systemPicker.render({items: data}); - } + const $systemPicker = $('[name=system]').zui('picker'); + $systemPicker.$.clear(); + $systemPicker.render({items: data}); }, 'json'); }; @@ -66,20 +64,18 @@ window.setSystemBox = function(e) window.loadBuilds = function() { let isIntegrated = $('input[name=isIntegrated]:checked').val(); - if(isIntegrated == 'no' || typeof(isIntegrated) == "undefined") return; + if(typeof(build) == "undefined" && (isIntegrated == 'no' || typeof(isIntegrated) == "undefined")) return; - let projectID = $('input[name=project]').val(); let executionID = $('input[name=execution]').val(); let systemID = $('input[name=system]').val(); let productID = $('input[name=product]').val(); + $.get($.createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=builds&build=&branch=all&needCreate=&type=noempty,notrunk,separate,singled&system=' + systemID), function(data) { - if(data) - { - data = JSON.parse(data); - const $buildsPicker = $('select[name^=builds]').zui('picker'); - $buildsPicker.render({items: data, multiple: true}); - $('select[name^=builds]').attr('data-placeholder', multipleSelect); - } + data = JSON.parse(data); + const $buildsPicker = $('select[name^=builds]').zui('picker'); + $buildsPicker.$.clear(); + $buildsPicker.render({items: data, multiple: true}); + $('select[name^=builds]').attr('data-placeholder', multipleSelect); }); } diff --git a/module/build/js/edit.ui.js b/module/build/js/edit.ui.js index 4de84abb88..01603e52e8 100644 --- a/module/build/js/edit.ui.js +++ b/module/build/js/edit.ui.js @@ -28,6 +28,7 @@ function changeProduct() $('[name^=branch]').zui('picker').$.setValue(''); loadBranches(); + loadSystem(); } function changeBranches() diff --git a/module/build/ui/edit.html.php b/module/build/ui/edit.html.php index b59acb7bb8..e8e2d5922d 100644 --- a/module/build/ui/edit.html.php +++ b/module/build/ui/edit.html.php @@ -109,6 +109,7 @@ $productBranches = zget($product, 'branches', array()); formPanel ( set::title($lang->build->edit), + on::change('[name=system]', 'loadBuilds'), $productRow, formRow ( @@ -128,6 +129,30 @@ formPanel ) ) ), + 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(true), + set::items($systemList), + set::value($build->system) + ) + ) + ) + ) + ), !$build->execution ? $buildRow : $executionRow, formRow ( diff --git a/module/build/zen.php b/module/build/zen.php index b2d2cd59ac..347a129cf7 100644 --- a/module/build/zen.php +++ b/module/build/zen.php @@ -77,7 +77,7 @@ class buildZen extends build $projectID = $build->execution ? (int)$build->execution : (int)$build->project; $productGroups = $this->loadModel('product')->getProducts($projectID, $status); $branches = $this->loadModel('branch')->getList($build->product, $projectID, 'all'); - if(!$build->execution) $builds = $this->build->getBuildPairs(array($build->product), 'all', 'noempty,notrunk,singled,separate', $build->project, 'project', $build->builds, false); + if(!$build->execution) $builds = $this->build->getBuildPairs(array($build->product), 'all', 'noempty,notrunk,singled,separate', $build->project, 'project', $build->builds, false, $build->system); /* Get execution info. */ $executions = $this->product->getExecutionPairsByProduct($build->product, $build->branch, (int)$this->session->project, 'stagefilter'); @@ -120,6 +120,7 @@ class buildZen extends build $this->view->executions = $executions; $this->view->executionType = !empty($execution) && $execution->type == 'stage' ? 1 : 0; $this->view->orderBy = 'status_asc, stage_asc, id_desc'; + $this->view->systemList = $this->loadModel('system')->getPairs(zget($this->view->product, 'id', 0), '0'); $this->display(); }