From 6eff6a2e4672d8d7188a81af2a082861dd380180 Mon Sep 17 00:00:00 2001 From: Catouse Date: Mon, 15 Oct 2018 14:32:56 +0800 Subject: [PATCH] * add search_compact option to chosen. --- src/js/chosen.js | 14 ++++++++++++-- src/less/modules/chosen.less | 17 +++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/js/chosen.js b/src/js/chosen.js index 651275adf..0dde523db 100644 --- a/src/js/chosen.js +++ b/src/js/chosen.js @@ -17,7 +17,8 @@ * 2. Enhance the search experience, support search items by custom data * with 'data-keys=*' attribute in option; * 3. ‘middle_highlight’ option can make hightlight item in the middle of - * the dropdown menu + * the dropdown menu; + * 4. 'compact_search' option * ======================================================================== */ @@ -203,6 +204,7 @@ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md this.max_selected_options = this.options.max_selected_options || Infinity; this.drop_direction = this.options.drop_direction || 'auto'; this.middle_highlight = this.options.middle_highlight; + this.compact_search = this.options.compact_search || true; this.inherit_select_classes = this.options.inherit_select_classes || false; this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true; return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true; @@ -646,7 +648,10 @@ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md if(this.is_multiple) { this.container.html('
'); } else { - this.container.html('' + this.default_text + '
'); + this.container.html('' + this.default_text + '
'); + if (this.compact_search) { + this.container.find('.chosen-search').appendTo(this.container.find('.chosen-single')); + } } this.form_field_jq.hide().after(this.container); this.dropdown = this.container.find('div.chosen-drop').first(); @@ -861,9 +866,11 @@ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md if(this.disable_search || this.form_field.options.length <= this.disable_search_threshold) { this.search_field[0].readOnly = true; this.container.addClass("chosen-container-single-nosearch"); + this.container.removeClass('chosen-with-search'); } else { this.search_field[0].readOnly = false; this.container.removeClass("chosen-container-single-nosearch"); + this.container.addClass('chosen-with-search'); } } this.update_results_content(this.results_option_build({ @@ -1132,6 +1139,9 @@ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md /// ZUI change begin /// Change title with text /// return this.selected_item.find("span").text(text); // old code + if (this.compact_search) { + this.search_field.attr('placeholder', text); + } return this.selected_item.find("span").attr('title', text).text(text); /// ZUI change end }; diff --git a/src/less/modules/chosen.less b/src/less/modules/chosen.less index 14d3649e7..8e99d6180 100644 --- a/src/less/modules/chosen.less +++ b/src/less/modules/chosen.less @@ -423,3 +423,20 @@ cursor: default; } } + + +// Compact search +.chosen-container-single .chosen-single > .chosen-search { + display: none; + opacity: 0; + padding: 3px 4px; + left: 0; + > input { + height: 25px; + padding: 2px 26px 2px 4px; + font-size: inherit; + } + + &:before {top: 9px;} +} +.chosen-with-search.chosen-with-drop .chosen-single > .chosen-search {display: block; opacity: 1;} \ No newline at end of file -- GitLab