Skip to content

Commit cb07710

Browse files
committed
SelectWrapper overwrites previous options
1 parent 68f325b commit cb07710

3 files changed

Lines changed: 28 additions & 42 deletions

File tree

src/Presentation/SmartStore.Web.Framework/Extensions/HtmlExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,9 @@ public static MvcHtmlString DatePickerDropDowns(this HtmlHelper html,
304304
monthsList.Attributes.Add("class", "date-part form-control noskin");
305305
yearsList.Attributes.Add("class", "date-part form-control noskin");
306306

307-
daysList.Attributes.Add("data-select-min-results-for-search", "100");
308-
monthsList.Attributes.Add("data-select-min-results-for-search", "100");
309-
//yearsList.Attributes.Add("data-select-min-results-for-search", "100");
307+
daysList.Attributes.Add("data-minimum-results-for-search", "100");
308+
monthsList.Attributes.Add("data-minimum-results-for-search", "100");
309+
//yearsList.Attributes.Add("data-minimum-results-for-search", "100");
310310

311311
if (disabled)
312312
{

src/Presentation/SmartStore.Web/Administration/Views/Shared/EditorTemplates/Html.cshtml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@
2727
{
2828
Html.AddScriptParts(true, locFile.VirtualPath);
2929
}
30-
31-
// Find summernote ImageAttributes plugin localization file
32-
locFile = base.ResolveLocalizationFile(WorkContext.WorkingLanguage.LanguageCulture, "~/Content/editors/summernote/plugin/image/lang", "*.js", null);
33-
if (locFile != null)
34-
{
35-
Html.AddScriptParts(true, locFile.VirtualPath);
36-
}
3730
}
3831

3932
@if (lazy)

src/Presentation/SmartStore.Web/Scripts/smartstore.selectwrapper.js

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55
;
66
(function ($, window, document, undefined) {
77

8+
// Customize select2 defaults
9+
$.extend($.fn.select2.defaults.defaults, {
10+
minimumResultsForSearch: 12,
11+
theme: 'bootstrap',
12+
width: 'style', // 'resolve',
13+
dropdownAutoWidth: false
14+
});
15+
816
var lists = [];
917

1018
function load(url, selectedId, callback) {
@@ -121,7 +129,7 @@
121129
lists[options.resetDataUrl] = null;
122130
return this.each(function () { });
123131
}
124-
132+
125133
options = options || {};
126134

127135
return this.each(function () {
@@ -139,30 +147,6 @@
139147
}
140148
}
141149

142-
if (!options.lazy && sel.data("select-url")) {
143-
options.lazy = {
144-
url: sel.data("select-url"),
145-
loaded: sel.data("select-loaded")
146-
}
147-
}
148-
149-
if (!options.init && sel.data("select-init-text") && sel.data("select-selected-id")) {
150-
options.init = {
151-
id: sel.data("select-selected-id"),
152-
text: sel.data("select-init-text")
153-
}
154-
}
155-
156-
var autoWidth = sel.hasClass("autowidth"),
157-
minResultsForSearch = sel.data("select-min-results-for-search"),
158-
minInputLength = sel.data("select-min-input-length"),
159-
noCache = sel.data("select-nocache"), // future use
160-
lazy = options.lazy,
161-
url = options.lazy ? options.lazy.url : null,
162-
loaded = options.lazy ? options.lazy.loaded : null,
163-
initText = options.init ? options.init.text : null,
164-
selectedId = options.init ? options.init.id : null;
165-
166150
var placeholder = getPlaceholder();
167151

168152
// following code only applicable to select boxes (not input:hidden)
@@ -210,15 +194,10 @@
210194
}
211195

212196
var opts = {
213-
width: 'style', // 'resolve',
214-
dropdownAutoWidth: false,
215197
allowClear: !!(placeholder), // assuming that a placeholder indicates nullability
216198
placeholder: placeholder,
217-
minimumResultsForSearch: _.isNumber(minResultsForSearch) ? minResultsForSearch : 8,
218-
minimumInputLength: _.isNumber(minInputLength) ? minInputLength : 0,
219199
templateResult: renderSelectItem,
220200
templateSelection: renderSelectItem,
221-
theme: 'bootstrap',
222201
closeOnSelect: !(sel.prop('multiple') || sel.data("tags")),
223202
adaptContainerCssClass: function (c) {
224203
if (c.startsWith("select-"))
@@ -234,11 +213,25 @@
234213
}
235214
};
236215

216+
if (!options.lazy && sel.data("select-url")) {
217+
opts.lazy = {
218+
url: sel.data("select-url"),
219+
loaded: sel.data("select-loaded")
220+
}
221+
}
222+
223+
if (!options.init && sel.data("select-init-text") && sel.data("select-selected-id")) {
224+
opts.init = {
225+
id: sel.data("select-selected-id"),
226+
text: sel.data("select-init-text")
227+
}
228+
}
229+
237230
if ($.isPlainObject(options)) {
238231
opts = $.extend({}, opts, options);
239232
}
240233

241-
if (url) {
234+
if (opts.lazy && opts.lazy.url) {
242235
// url specified: load data remotely (lazily on first open)...
243236
opts.dataAdapter = $.fn.select2.amd.require('select2/data/lazyAdapter');
244237
}
@@ -249,7 +242,7 @@
249242

250243
sel.select2(opts);
251244

252-
if (autoWidth) {
245+
if (sel.hasClass("autowidth")) {
253246
// move special "autowidth" class to plugin container,
254247
// so we are able to omit min-width per css
255248
sel.data("select2").$container.addClass("autowidth");

0 commit comments

Comments
 (0)