diff --git a/module/build/control.php b/module/build/control.php index 0bc491c6bf..55f01bf8c6 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -58,6 +58,7 @@ class build extends control $message = $this->executeHooks($buildID); if($message) $this->lang->saveSuccess = $message; + if(in_array($this->app->tab, array('execution', 'project')) && helper::isAjaxRequest('modal')) return $this->sendSuccess(array('closeModal' => true, 'callback' => 'loadExecutionBuilds()')); return $this->sendSuccess(array('load' => $this->createLink($this->app->rawModule, 'view', "buildID=$buildID"), 'id' => $buildID)); } diff --git a/module/testtask/js/common.ui.js b/module/testtask/js/common.ui.js index 62fc712ced..c361f4bc0f 100644 --- a/module/testtask/js/common.ui.js +++ b/module/testtask/js/common.ui.js @@ -24,7 +24,7 @@ function loadExecutionRelated() * @access public * @return void */ -function loadExecutionBuilds() +window.loadExecutionBuilds = function() { const productID = $('[name=product]').val(); const executionID = $('[name=execution]').val(); @@ -35,13 +35,19 @@ function loadExecutionBuilds() if(executionID == 0) link = $.createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=build&build=' + selectedBuild + '&branch=&needCreate=&type=noempty,notrunk,withexecution'); if(executionID == 0 && projectID == 0) link = $.createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=build&build=&branch=all&index=&type=notrunk,withexecution'); - $.get(link, function(data) + $.getJSON(link, function(data) { let $buildPicker = $('[name="build"]').zui('picker'); - if(data) + let oldBuild = $('[name="build"]').val(); + $buildPicker.render({items: data}); + $buildPicker.$.setValue(oldBuild); + if(data.length == 0) { - data = JSON.parse(data); - $buildPicker.render({items: data}); + $('[name="build"]').closest('.input-group').find('.input-group-addon').removeClass('hidden'); + } + else + { + $('[name="build"]').closest('.input-group').find('.input-group-addon').addClass('hidden'); } }); } @@ -201,7 +207,6 @@ function setExecutionByBuild() link = $.createLink('testtask', 'ajaxGetExecutionByBuild', 'buildID=' + buildID); $.get(link, function(data) { - $('[name="execution"]').zui('picker').$.setValue(data); }); } diff --git a/module/testtask/ui/create.html.php b/module/testtask/ui/create.html.php index 5644446735..6d8a6fee75 100644 --- a/module/testtask/ui/create.html.php +++ b/module/testtask/ui/create.html.php @@ -34,15 +34,18 @@ formPanel set::type('hidden'), set::name('execution'), set::value($noMultipleExecutionID) - ) : formGroup + ) : formRow ( - set::width('1/2'), - set::label($lang->testtask->execution), set::className(($app->tab == 'execution' && $executionID) ? 'hidden' : ''), - set::name('execution'), - set::value($executionID), - set::control('picker'), - set::items($executions) + formGroup + ( + set::width('1/2'), + set::label($lang->testtask->execution), + set::name('execution'), + set::value($executionID), + set::control('picker'), + set::items($executions) + ) ), formGroup ( @@ -63,7 +66,7 @@ formPanel ), span ( - set::className(!empty($executionID) && empty($builds) ? 'input-group-addon' : 'hidden'), + set::className('input-group-addon', !empty($executionID) && empty($builds) ? '' : 'hidden'), a ( set('href', createLink('build', 'create', "executionID=$executionID&productID={$product->id}&projectID={$projectID}")), @@ -73,7 +76,7 @@ formPanel ), span ( - set::className(!empty($executionID) && empty($builds) ? 'input-group-addon' : 'hidden'), + set::className('input-group-addon', !empty($executionID) && empty($builds) ? '' : 'hidden'), a ( set('href', 'javascript:void(0)'),