From a6bb98b81605466f6b0c1924bb044cbe7fa843ff Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 12 Jul 2023 18:39:33 +0800 Subject: [PATCH] * Change the select control. --- module/build/control.php | 32 ++++++++++++++++++++++++++------ module/build/js/create.ui.js | 24 ++++++++++++++++++++---- module/build/ui/create.html.php | 10 +++++++--- 3 files changed, 53 insertions(+), 13 deletions(-) diff --git a/module/build/control.php b/module/build/control.php index 25dd364dd1..943a3f6ea2 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -447,8 +447,15 @@ class build extends control $params = ($type == 'all') ? 'noempty,withbranch,noreleased' : 'noempty,noterminate,nodone,withbranch,noreleased'; $builds = $this->build->getBuildPairs($productID, $branch, $params, $projectID, 'project', $build); - if($isJsonView) return print(json_encode($builds)); - return print(html::select($varName . '[]', $builds , '', 'size=4 class=form-control multiple')); + if($isJsonView) return print(json_encode($builds)); + + $items = array(); + foreach($builds as $id => $name) + { + if(empty($id)) continue; + $items[] = array('text' => $name, 'value' => $id, 'keys' => $name); + } + return print(json_encode($builds)); } if($varName == 'resolvedBuild') { @@ -456,15 +463,28 @@ class build extends control $params = ($type == 'all') ? 'withbranch,noreleased' : 'noterminate,nodone,withbranch,noreleased'; $builds = $this->build->getBuildPairs($productID, $branch, $params, $projectID, 'project', $build); - if($isJsonView) return print(json_encode($builds)); - return print(html::select($varName, $builds, $build, "class='form-control'")); + return print(json_encode($builds)); + + $items = array(); + foreach($builds as $id => $name) + { + if(empty($id)) continue; + $items[] = array('text' => $name, 'value' => $id, 'keys' => $name); + } + if($isJsonView) return print(json_encode($builds)); } if(empty($projectID)) return $this->ajaxGetProductBuilds($productID, $varName, $build, $branch, $index, $type, $extra); $builds = $this->build->getBuildPairs($productID, $branch, $type, $projectID, 'project', $build, false); - if(strpos($extra, 'multiple') !== false) $varName .= '[]'; if($isJsonView) return print(json_encode($builds)); - return print(html::select($varName, $builds, $build, "class='form-control' $extra")); + + $items = array(); + foreach($builds as $id => $name) + { + if(empty($id)) continue; + $items[] = array('text' => $name, 'value' => $id, 'keys' => $name); + } + if($isJsonView) return print(json_encode($builds)); } /** diff --git a/module/build/js/create.ui.js b/module/build/js/create.ui.js index 448716f699..f20dc0cbd5 100644 --- a/module/build/js/create.ui.js +++ b/module/build/js/create.ui.js @@ -13,8 +13,16 @@ $().ready(function() var productID = $('#product').val(); $.get($.createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=builds&build=&branch=all&index=&needCreate=&type=noempty,notrunk,separate,singled&extra=multiple'), function(data) { - $('#builds').replaceWith(data); - $('#builds').attr('data-placeholder', multipleSelect); + if(data) + { + data = JSON.parse(data); + new zui.Picker('#builds', { + items: data, + multiple: true, + name: 'builds[]' + }); + $('#builds').attr('data-placeholder', multipleSelect); + } }); $.get($.createLink('product', 'ajaxGetProductById', 'produtID=' + productID), function(data) @@ -43,8 +51,16 @@ $().ready(function() var productID = $('#product').val(); $.get($.createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=builds&build=&branch=all&index=&needCreate=&type=noempty,notrunk,separate,singled&extra=multiple'), function(data) { - $('#builds').replaceWith(data); - $('#builds').attr('data-placeholder', multipleSelect); + if(data) + { + data = JSON.parse(data); + new zui.Picker('#builds', { + items: data, + multiple: true, + name: 'builds[]' + }); + $('#builds').attr('data-placeholder', multipleSelect); + } }); } }); diff --git a/module/build/ui/create.html.php b/module/build/ui/create.html.php index 1ba50a7296..9ac45e2c14 100644 --- a/module/build/ui/create.html.php +++ b/module/build/ui/create.html.php @@ -113,10 +113,14 @@ formPanel formGroup ( set::width('1/2'), - set::name('builds[]'), set::label($lang->build->builds), - set::items(array()), - set::multiple(true), + picker + ( + set::id('builds'), + set::name('builds[]'), + set::items(array()), + set::multiple(true), + ) ), formGroup (