diff --git a/module/projectrelease/control.php b/module/projectrelease/control.php index 231c0e9db8..48f83c10e7 100644 --- a/module/projectrelease/control.php +++ b/module/projectrelease/control.php @@ -481,6 +481,7 @@ class projectrelease extends control } /** + * 通过 ajax 加载版本。 * Ajax load builds. * * @param int $projectID @@ -488,12 +489,19 @@ class projectrelease extends control * @access public * @return void */ - public function ajaxLoadBuilds($projectID, $productID) + public function ajaxLoadBuilds(int $projectID, int $productID) { $builds = $this->loadModel('build')->getBuildPairs(array($productID), 'all', 'notrunk,withbranch,hasproject', $projectID, 'project', '', false); $releasedBuilds = $this->projectrelease->getReleasedBuilds($projectID); - foreach($releasedBuilds as $build) unset($builds[$build]); - return print(html::select('build[]', $builds, '', "class='form-control chosen' multiple")); + $buildList = array(); + foreach($builds as $buildID => $buildName) + { + if(in_array($buildID, $releasedBuilds)) continue; + + $buildList[] = array('text' => $buildName, 'value' => $buildID); + } + + return print(json_encode($buildList)); } } diff --git a/module/release/js/create.ui.js b/module/release/js/create.ui.js index 9850a9acb9..893df51d9a 100644 --- a/module/release/js/create.ui.js +++ b/module/release/js/create.ui.js @@ -3,7 +3,11 @@ function loadBuilds(event) let productID = $(event.target).val(); $.get($.createLink('projectrelease', 'ajaxLoadBuilds', "projectID=" + projectID + "&productID=" + productID), function(data) { - $('#build').replaceWith(data); + if(data) + { + data = JSON.parse(data); + $('[name*="build"]').zui('picker').render({items: data}); + } }); }