lalala 4.0.0.dev.217 → 4.0.0.dev.218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/lalala/chosen/chosen-sprite.png +0 -0
- data/app/assets/images/lalala/chosen/chosen-sprite@2x.png +0 -0
- data/app/assets/javascripts/lalala/lib/jquery-chosen.js +478 -401
- data/app/assets/stylesheets/lalala/components/_forms.css.scss +1 -1
- data/app/assets/stylesheets/lalala/lib/_chosen.css.scss +333 -273
- data/lib/lalala/version.rb +1 -1
- data/test/dummy/app/admin/articles.rb +1 -0
- data/test/dummy/app/models/article.rb +1 -1
- data/test/dummy/db/migrate/20131113134503_add_category_to_articles.rb +5 -0
- data/test/dummy/db/schema.rb +2 -1
- metadata +5 -2
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
// Chosen, a Select Box Enhancer for jQuery and
|
|
1
|
+
// Chosen, a Select Box Enhancer for jQuery and Prototype
|
|
2
2
|
// by Patrick Filler for Harvest, http://getharvest.com
|
|
3
3
|
//
|
|
4
|
-
// Version 0.
|
|
4
|
+
// Version 1.0.0
|
|
5
5
|
// Full source at https://github.com/harvesthq/chosen
|
|
6
6
|
// Copyright (c) 2011 Harvest http://getharvest.com
|
|
7
7
|
|
|
8
8
|
// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
|
|
9
|
-
// This file is generated by `
|
|
9
|
+
// This file is generated by `grunt build`, do not edit it by hand.
|
|
10
10
|
(function() {
|
|
11
|
-
var SelectParser
|
|
11
|
+
var $, AbstractChosen, Chosen, SelectParser, _ref,
|
|
12
|
+
__hasProp = {}.hasOwnProperty,
|
|
13
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
|
12
14
|
|
|
13
15
|
SelectParser = (function() {
|
|
14
|
-
|
|
15
16
|
function SelectParser() {
|
|
16
17
|
this.options_index = 0;
|
|
17
18
|
this.parsed = [];
|
|
@@ -27,11 +28,12 @@
|
|
|
27
28
|
|
|
28
29
|
SelectParser.prototype.add_group = function(group) {
|
|
29
30
|
var group_position, option, _i, _len, _ref, _results;
|
|
31
|
+
|
|
30
32
|
group_position = this.parsed.length;
|
|
31
33
|
this.parsed.push({
|
|
32
34
|
array_index: group_position,
|
|
33
35
|
group: true,
|
|
34
|
-
label: group.label,
|
|
36
|
+
label: this.escapeExpression(group.label),
|
|
35
37
|
children: 0,
|
|
36
38
|
disabled: group.disabled
|
|
37
39
|
});
|
|
@@ -73,12 +75,35 @@
|
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
77
|
|
|
78
|
+
SelectParser.prototype.escapeExpression = function(text) {
|
|
79
|
+
var map, unsafe_chars;
|
|
80
|
+
|
|
81
|
+
if ((text == null) || text === false) {
|
|
82
|
+
return "";
|
|
83
|
+
}
|
|
84
|
+
if (!/[\&\<\>\"\'\`]/.test(text)) {
|
|
85
|
+
return text;
|
|
86
|
+
}
|
|
87
|
+
map = {
|
|
88
|
+
"<": "<",
|
|
89
|
+
">": ">",
|
|
90
|
+
'"': """,
|
|
91
|
+
"'": "'",
|
|
92
|
+
"`": "`"
|
|
93
|
+
};
|
|
94
|
+
unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
|
|
95
|
+
return text.replace(unsafe_chars, function(chr) {
|
|
96
|
+
return map[chr] || "&";
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
|
|
76
100
|
return SelectParser;
|
|
77
101
|
|
|
78
102
|
})();
|
|
79
103
|
|
|
80
104
|
SelectParser.select_to_array = function(select) {
|
|
81
105
|
var child, parser, _i, _len, _ref;
|
|
106
|
+
|
|
82
107
|
parser = new SelectParser();
|
|
83
108
|
_ref = select.childNodes;
|
|
84
109
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
@@ -88,37 +113,24 @@
|
|
|
88
113
|
return parser.parsed;
|
|
89
114
|
};
|
|
90
115
|
|
|
91
|
-
this.SelectParser = SelectParser;
|
|
92
|
-
|
|
93
|
-
}).call(this);
|
|
94
|
-
|
|
95
|
-
/*
|
|
96
|
-
Chosen source: generate output using 'cake build'
|
|
97
|
-
Copyright (c) 2011 by Harvest
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
(function() {
|
|
102
|
-
var AbstractChosen, root;
|
|
103
|
-
|
|
104
|
-
root = this;
|
|
105
|
-
|
|
106
116
|
AbstractChosen = (function() {
|
|
107
|
-
|
|
108
117
|
function AbstractChosen(form_field, options) {
|
|
109
118
|
this.form_field = form_field;
|
|
110
119
|
this.options = options != null ? options : {};
|
|
120
|
+
if (!AbstractChosen.browser_is_supported()) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
111
123
|
this.is_multiple = this.form_field.multiple;
|
|
112
124
|
this.set_default_text();
|
|
113
125
|
this.set_default_values();
|
|
114
126
|
this.setup();
|
|
115
127
|
this.set_up_html();
|
|
116
128
|
this.register_observers();
|
|
117
|
-
this.finish_setup();
|
|
118
129
|
}
|
|
119
130
|
|
|
120
131
|
AbstractChosen.prototype.set_default_values = function() {
|
|
121
132
|
var _this = this;
|
|
133
|
+
|
|
122
134
|
this.click_test_action = function(evt) {
|
|
123
135
|
return _this.test_active_click(evt);
|
|
124
136
|
};
|
|
@@ -134,22 +146,24 @@ Copyright (c) 2011 by Harvest
|
|
|
134
146
|
this.disable_search_threshold = this.options.disable_search_threshold || 0;
|
|
135
147
|
this.disable_search = this.options.disable_search || false;
|
|
136
148
|
this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
|
|
149
|
+
this.group_search = this.options.group_search != null ? this.options.group_search : true;
|
|
137
150
|
this.search_contains = this.options.search_contains || false;
|
|
138
|
-
this.
|
|
139
|
-
this.single_backstroke_delete = this.options.single_backstroke_delete || false;
|
|
151
|
+
this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
|
|
140
152
|
this.max_selected_options = this.options.max_selected_options || Infinity;
|
|
141
|
-
|
|
153
|
+
this.inherit_select_classes = this.options.inherit_select_classes || false;
|
|
154
|
+
this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
|
|
155
|
+
return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
|
|
142
156
|
};
|
|
143
157
|
|
|
144
158
|
AbstractChosen.prototype.set_default_text = function() {
|
|
145
159
|
if (this.form_field.getAttribute("data-placeholder")) {
|
|
146
160
|
this.default_text = this.form_field.getAttribute("data-placeholder");
|
|
147
161
|
} else if (this.is_multiple) {
|
|
148
|
-
this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text ||
|
|
162
|
+
this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
|
|
149
163
|
} else {
|
|
150
|
-
this.default_text = this.options.placeholder_text_single || this.options.placeholder_text ||
|
|
164
|
+
this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
|
|
151
165
|
}
|
|
152
|
-
return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text ||
|
|
166
|
+
return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
|
|
153
167
|
};
|
|
154
168
|
|
|
155
169
|
AbstractChosen.prototype.mouse_enter = function() {
|
|
@@ -162,6 +176,7 @@ Copyright (c) 2011 by Harvest
|
|
|
162
176
|
|
|
163
177
|
AbstractChosen.prototype.input_focus = function(evt) {
|
|
164
178
|
var _this = this;
|
|
179
|
+
|
|
165
180
|
if (this.is_multiple) {
|
|
166
181
|
if (!this.active_field) {
|
|
167
182
|
return setTimeout((function() {
|
|
@@ -177,6 +192,7 @@ Copyright (c) 2011 by Harvest
|
|
|
177
192
|
|
|
178
193
|
AbstractChosen.prototype.input_blur = function(evt) {
|
|
179
194
|
var _this = this;
|
|
195
|
+
|
|
180
196
|
if (!this.mouse_on_container) {
|
|
181
197
|
this.active_field = false;
|
|
182
198
|
return setTimeout((function() {
|
|
@@ -185,34 +201,79 @@ Copyright (c) 2011 by Harvest
|
|
|
185
201
|
}
|
|
186
202
|
};
|
|
187
203
|
|
|
188
|
-
AbstractChosen.prototype.
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
AbstractChosen.prototype.results_option_build = function(options) {
|
|
205
|
+
var content, data, _i, _len, _ref;
|
|
206
|
+
|
|
207
|
+
content = '';
|
|
208
|
+
_ref = this.results_data;
|
|
209
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
210
|
+
data = _ref[_i];
|
|
211
|
+
if (data.group) {
|
|
212
|
+
content += this.result_add_group(data);
|
|
213
|
+
} else {
|
|
214
|
+
content += this.result_add_option(data);
|
|
198
215
|
}
|
|
199
|
-
if (
|
|
200
|
-
|
|
216
|
+
if (options != null ? options.first : void 0) {
|
|
217
|
+
if (data.selected && this.is_multiple) {
|
|
218
|
+
this.choice_build(data);
|
|
219
|
+
} else if (data.selected && !this.is_multiple) {
|
|
220
|
+
this.single_set_selected_text(data.text);
|
|
221
|
+
}
|
|
201
222
|
}
|
|
202
|
-
style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
|
|
203
|
-
return '<li id="' + option.dom_id + '" class="' + classes.join(' ') + '"' + style + '>' + option.html + '</li>';
|
|
204
|
-
} else {
|
|
205
|
-
return "";
|
|
206
223
|
}
|
|
224
|
+
return content;
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
AbstractChosen.prototype.result_add_option = function(option) {
|
|
228
|
+
var classes, style;
|
|
229
|
+
|
|
230
|
+
if (!option.search_match) {
|
|
231
|
+
return '';
|
|
232
|
+
}
|
|
233
|
+
if (!this.include_option_in_results(option)) {
|
|
234
|
+
return '';
|
|
235
|
+
}
|
|
236
|
+
classes = [];
|
|
237
|
+
if (!option.disabled && !(option.selected && this.is_multiple)) {
|
|
238
|
+
classes.push("active-result");
|
|
239
|
+
}
|
|
240
|
+
if (option.disabled && !(option.selected && this.is_multiple)) {
|
|
241
|
+
classes.push("disabled-result");
|
|
242
|
+
}
|
|
243
|
+
if (option.selected) {
|
|
244
|
+
classes.push("result-selected");
|
|
245
|
+
}
|
|
246
|
+
if (option.group_array_index != null) {
|
|
247
|
+
classes.push("group-option");
|
|
248
|
+
}
|
|
249
|
+
if (option.classes !== "") {
|
|
250
|
+
classes.push(option.classes);
|
|
251
|
+
}
|
|
252
|
+
style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
|
|
253
|
+
return "<li class=\"" + (classes.join(' ')) + "\"" + style + " data-option-array-index=\"" + option.array_index + "\">" + option.search_text + "</li>";
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
AbstractChosen.prototype.result_add_group = function(group) {
|
|
257
|
+
if (!(group.search_match || group.group_match)) {
|
|
258
|
+
return '';
|
|
259
|
+
}
|
|
260
|
+
if (!(group.active_options > 0)) {
|
|
261
|
+
return '';
|
|
262
|
+
}
|
|
263
|
+
return "<li class=\"group-result\">" + group.search_text + "</li>";
|
|
207
264
|
};
|
|
208
265
|
|
|
209
266
|
AbstractChosen.prototype.results_update_field = function() {
|
|
267
|
+
this.set_default_text();
|
|
210
268
|
if (!this.is_multiple) {
|
|
211
269
|
this.results_reset_cleanup();
|
|
212
270
|
}
|
|
213
271
|
this.result_clear_highlight();
|
|
214
272
|
this.result_single_selected = null;
|
|
215
|
-
|
|
273
|
+
this.results_build();
|
|
274
|
+
if (this.results_showing) {
|
|
275
|
+
return this.winnow_results();
|
|
276
|
+
}
|
|
216
277
|
};
|
|
217
278
|
|
|
218
279
|
AbstractChosen.prototype.results_toggle = function() {
|
|
@@ -231,13 +292,114 @@ Copyright (c) 2011 by Harvest
|
|
|
231
292
|
}
|
|
232
293
|
};
|
|
233
294
|
|
|
295
|
+
AbstractChosen.prototype.winnow_results = function() {
|
|
296
|
+
var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
|
|
297
|
+
|
|
298
|
+
this.no_results_clear();
|
|
299
|
+
results = 0;
|
|
300
|
+
searchText = this.get_search_text();
|
|
301
|
+
escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
|
302
|
+
regexAnchor = this.search_contains ? "" : "^";
|
|
303
|
+
regex = new RegExp(regexAnchor + escapedSearchText, 'i');
|
|
304
|
+
zregex = new RegExp(escapedSearchText, 'i');
|
|
305
|
+
_ref = this.results_data;
|
|
306
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
307
|
+
option = _ref[_i];
|
|
308
|
+
option.search_match = false;
|
|
309
|
+
results_group = null;
|
|
310
|
+
if (this.include_option_in_results(option)) {
|
|
311
|
+
if (option.group) {
|
|
312
|
+
option.group_match = false;
|
|
313
|
+
option.active_options = 0;
|
|
314
|
+
}
|
|
315
|
+
if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
|
|
316
|
+
results_group = this.results_data[option.group_array_index];
|
|
317
|
+
if (results_group.active_options === 0 && results_group.search_match) {
|
|
318
|
+
results += 1;
|
|
319
|
+
}
|
|
320
|
+
results_group.active_options += 1;
|
|
321
|
+
}
|
|
322
|
+
if (!(option.group && !this.group_search)) {
|
|
323
|
+
option.search_text = option.group ? option.label : option.html;
|
|
324
|
+
option.search_match = this.search_string_match(option.search_text, regex);
|
|
325
|
+
if (option.search_match && !option.group) {
|
|
326
|
+
results += 1;
|
|
327
|
+
}
|
|
328
|
+
if (option.search_match) {
|
|
329
|
+
if (searchText.length) {
|
|
330
|
+
startpos = option.search_text.search(zregex);
|
|
331
|
+
text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
|
|
332
|
+
option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
|
|
333
|
+
}
|
|
334
|
+
if (results_group != null) {
|
|
335
|
+
results_group.group_match = true;
|
|
336
|
+
}
|
|
337
|
+
} else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
|
|
338
|
+
option.search_match = true;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
this.result_clear_highlight();
|
|
344
|
+
if (results < 1 && searchText.length) {
|
|
345
|
+
this.update_results_content("");
|
|
346
|
+
return this.no_results(searchText);
|
|
347
|
+
} else {
|
|
348
|
+
this.update_results_content(this.results_option_build());
|
|
349
|
+
return this.winnow_results_set_highlight();
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
AbstractChosen.prototype.search_string_match = function(search_string, regex) {
|
|
354
|
+
var part, parts, _i, _len;
|
|
355
|
+
|
|
356
|
+
if (regex.test(search_string)) {
|
|
357
|
+
return true;
|
|
358
|
+
} else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
|
|
359
|
+
parts = search_string.replace(/\[|\]/g, "").split(" ");
|
|
360
|
+
if (parts.length) {
|
|
361
|
+
for (_i = 0, _len = parts.length; _i < _len; _i++) {
|
|
362
|
+
part = parts[_i];
|
|
363
|
+
if (regex.test(part)) {
|
|
364
|
+
return true;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
AbstractChosen.prototype.choices_count = function() {
|
|
372
|
+
var option, _i, _len, _ref;
|
|
373
|
+
|
|
374
|
+
if (this.selected_option_count != null) {
|
|
375
|
+
return this.selected_option_count;
|
|
376
|
+
}
|
|
377
|
+
this.selected_option_count = 0;
|
|
378
|
+
_ref = this.form_field.options;
|
|
379
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
380
|
+
option = _ref[_i];
|
|
381
|
+
if (option.selected) {
|
|
382
|
+
this.selected_option_count += 1;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
return this.selected_option_count;
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
AbstractChosen.prototype.choices_click = function(evt) {
|
|
389
|
+
evt.preventDefault();
|
|
390
|
+
if (!(this.results_showing || this.is_disabled)) {
|
|
391
|
+
return this.results_show();
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
|
|
234
395
|
AbstractChosen.prototype.keyup_checker = function(evt) {
|
|
235
396
|
var stroke, _ref;
|
|
397
|
+
|
|
236
398
|
stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
|
|
237
399
|
this.search_field_scale();
|
|
238
400
|
switch (stroke) {
|
|
239
401
|
case 8:
|
|
240
|
-
if (this.is_multiple && this.backstroke_length < 1 && this.
|
|
402
|
+
if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
|
|
241
403
|
return this.keydown_backstroke();
|
|
242
404
|
} else if (!this.pending_backstroke) {
|
|
243
405
|
this.result_clear_highlight();
|
|
@@ -267,233 +429,237 @@ Copyright (c) 2011 by Harvest
|
|
|
267
429
|
}
|
|
268
430
|
};
|
|
269
431
|
|
|
270
|
-
AbstractChosen.prototype.
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
432
|
+
AbstractChosen.prototype.container_width = function() {
|
|
433
|
+
if (this.options.width != null) {
|
|
434
|
+
return this.options.width;
|
|
435
|
+
} else {
|
|
436
|
+
return "" + this.form_field.offsetWidth + "px";
|
|
437
|
+
}
|
|
275
438
|
};
|
|
276
439
|
|
|
277
|
-
AbstractChosen.prototype.
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
440
|
+
AbstractChosen.prototype.include_option_in_results = function(option) {
|
|
441
|
+
if (this.is_multiple && (!this.display_selected_options && option.selected)) {
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
if (!this.display_disabled_options && option.disabled) {
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
if (option.empty) {
|
|
448
|
+
return false;
|
|
449
|
+
}
|
|
450
|
+
return true;
|
|
282
451
|
};
|
|
283
452
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
453
|
+
AbstractChosen.browser_is_supported = function() {
|
|
454
|
+
if (window.navigator.appName === "Microsoft Internet Explorer") {
|
|
455
|
+
return document.documentMode >= 8;
|
|
456
|
+
}
|
|
457
|
+
if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
|
|
458
|
+
return false;
|
|
459
|
+
}
|
|
460
|
+
if (/Android/i.test(window.navigator.userAgent)) {
|
|
461
|
+
if (/Mobile/i.test(window.navigator.userAgent)) {
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
return true;
|
|
466
|
+
};
|
|
289
467
|
|
|
290
|
-
|
|
468
|
+
AbstractChosen.default_multiple_text = "Select Some Options";
|
|
291
469
|
|
|
292
|
-
|
|
293
|
-
Chosen source: generate output using 'cake build'
|
|
294
|
-
Copyright (c) 2011 by Harvest
|
|
295
|
-
*/
|
|
470
|
+
AbstractChosen.default_single_text = "Select an Option";
|
|
296
471
|
|
|
472
|
+
AbstractChosen.default_no_result_text = "No results match";
|
|
297
473
|
|
|
298
|
-
|
|
299
|
-
var $, Chosen, get_side_border_padding, root,
|
|
300
|
-
__hasProp = {}.hasOwnProperty,
|
|
301
|
-
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
|
474
|
+
return AbstractChosen;
|
|
302
475
|
|
|
303
|
-
|
|
476
|
+
})();
|
|
304
477
|
|
|
305
478
|
$ = jQuery;
|
|
306
479
|
|
|
307
480
|
$.fn.extend({
|
|
308
481
|
chosen: function(options) {
|
|
309
|
-
|
|
310
|
-
ua = navigator.userAgent.toLowerCase();
|
|
311
|
-
match = /(msie) ([\w.]+)/.exec(ua) || [];
|
|
312
|
-
browser = {
|
|
313
|
-
name: match[1] || "",
|
|
314
|
-
version: match[2] || "0"
|
|
315
|
-
};
|
|
316
|
-
if (browser.name === "msie" && (browser.version === "6.0" || (browser.version === "7.0" && document.documentMode === 7))) {
|
|
482
|
+
if (!AbstractChosen.browser_is_supported()) {
|
|
317
483
|
return this;
|
|
318
484
|
}
|
|
319
485
|
return this.each(function(input_field) {
|
|
320
|
-
var $this;
|
|
486
|
+
var $this, chosen;
|
|
487
|
+
|
|
321
488
|
$this = $(this);
|
|
322
|
-
|
|
323
|
-
|
|
489
|
+
chosen = $this.data('chosen');
|
|
490
|
+
if (options === 'destroy' && chosen) {
|
|
491
|
+
chosen.destroy();
|
|
492
|
+
} else if (!chosen) {
|
|
493
|
+
$this.data('chosen', new Chosen(this, options));
|
|
324
494
|
}
|
|
325
495
|
});
|
|
326
496
|
}
|
|
327
497
|
});
|
|
328
498
|
|
|
329
499
|
Chosen = (function(_super) {
|
|
330
|
-
|
|
331
500
|
__extends(Chosen, _super);
|
|
332
501
|
|
|
333
502
|
function Chosen() {
|
|
334
|
-
Chosen.__super__.constructor.apply(this, arguments);
|
|
503
|
+
_ref = Chosen.__super__.constructor.apply(this, arguments);
|
|
504
|
+
return _ref;
|
|
335
505
|
}
|
|
336
506
|
|
|
337
507
|
Chosen.prototype.setup = function() {
|
|
338
508
|
this.form_field_jq = $(this.form_field);
|
|
339
|
-
this.
|
|
340
|
-
return this.is_rtl = this.form_field_jq.hasClass("
|
|
341
|
-
};
|
|
342
|
-
|
|
343
|
-
Chosen.prototype.finish_setup = function() {
|
|
344
|
-
return this.form_field_jq.addClass("chzn-done");
|
|
509
|
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
|
510
|
+
return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
|
|
345
511
|
};
|
|
346
512
|
|
|
347
513
|
Chosen.prototype.set_up_html = function() {
|
|
348
|
-
var container_classes,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
container_classes
|
|
352
|
-
container_classes.push("chzn-container-" + (this.is_multiple ? "multi" : "single"));
|
|
514
|
+
var container_classes, container_props;
|
|
515
|
+
|
|
516
|
+
container_classes = ["chosen-container"];
|
|
517
|
+
container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
|
|
353
518
|
if (this.inherit_select_classes && this.form_field.className) {
|
|
354
519
|
container_classes.push(this.form_field.className);
|
|
355
520
|
}
|
|
356
521
|
if (this.is_rtl) {
|
|
357
|
-
container_classes.push("
|
|
522
|
+
container_classes.push("chosen-rtl");
|
|
358
523
|
}
|
|
359
|
-
this.f_width = this.form_field_jq.outerWidth();
|
|
360
524
|
container_props = {
|
|
361
|
-
|
|
362
|
-
"
|
|
363
|
-
|
|
364
|
-
title: this.form_field.title
|
|
525
|
+
'class': container_classes.join(' '),
|
|
526
|
+
'style': "width: " + (this.container_width()) + ";",
|
|
527
|
+
'title': this.form_field.title
|
|
365
528
|
};
|
|
366
|
-
|
|
529
|
+
if (this.form_field.id.length) {
|
|
530
|
+
container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
|
|
531
|
+
}
|
|
532
|
+
this.container = $("<div />", container_props);
|
|
367
533
|
if (this.is_multiple) {
|
|
368
|
-
|
|
534
|
+
this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
|
|
369
535
|
} else {
|
|
370
|
-
|
|
371
|
-
}
|
|
372
|
-
this.form_field_jq.hide().after(
|
|
373
|
-
this.
|
|
374
|
-
this.dropdown = this.container.find('div.chzn-drop').first();
|
|
375
|
-
dd_top = this.container.height();
|
|
376
|
-
dd_width = this.f_width - get_side_border_padding(this.dropdown);
|
|
377
|
-
this.dropdown.css({
|
|
378
|
-
"width": dd_width + "px",
|
|
379
|
-
"top": dd_top + "px"
|
|
380
|
-
});
|
|
536
|
+
this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
|
|
537
|
+
}
|
|
538
|
+
this.form_field_jq.hide().after(this.container);
|
|
539
|
+
this.dropdown = this.container.find('div.chosen-drop').first();
|
|
381
540
|
this.search_field = this.container.find('input').first();
|
|
382
|
-
this.search_results = this.container.find('ul.
|
|
541
|
+
this.search_results = this.container.find('ul.chosen-results').first();
|
|
383
542
|
this.search_field_scale();
|
|
384
543
|
this.search_no_results = this.container.find('li.no-results').first();
|
|
385
544
|
if (this.is_multiple) {
|
|
386
|
-
this.search_choices = this.container.find('ul.
|
|
545
|
+
this.search_choices = this.container.find('ul.chosen-choices').first();
|
|
387
546
|
this.search_container = this.container.find('li.search-field').first();
|
|
388
547
|
} else {
|
|
389
|
-
this.search_container = this.container.find('div.
|
|
390
|
-
this.selected_item = this.container.find('.
|
|
391
|
-
sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field);
|
|
392
|
-
this.search_field.css({
|
|
393
|
-
"width": sf_width + "px"
|
|
394
|
-
});
|
|
548
|
+
this.search_container = this.container.find('div.chosen-search').first();
|
|
549
|
+
this.selected_item = this.container.find('.chosen-single').first();
|
|
395
550
|
}
|
|
396
551
|
this.results_build();
|
|
397
552
|
this.set_tab_index();
|
|
398
|
-
|
|
553
|
+
this.set_label_behavior();
|
|
554
|
+
return this.form_field_jq.trigger("chosen:ready", {
|
|
399
555
|
chosen: this
|
|
400
556
|
});
|
|
401
557
|
};
|
|
402
558
|
|
|
403
559
|
Chosen.prototype.register_observers = function() {
|
|
404
560
|
var _this = this;
|
|
405
|
-
|
|
561
|
+
|
|
562
|
+
this.container.bind('mousedown.chosen', function(evt) {
|
|
406
563
|
_this.container_mousedown(evt);
|
|
407
564
|
});
|
|
408
|
-
this.container.mouseup
|
|
565
|
+
this.container.bind('mouseup.chosen', function(evt) {
|
|
409
566
|
_this.container_mouseup(evt);
|
|
410
567
|
});
|
|
411
|
-
this.container.mouseenter
|
|
568
|
+
this.container.bind('mouseenter.chosen', function(evt) {
|
|
412
569
|
_this.mouse_enter(evt);
|
|
413
570
|
});
|
|
414
|
-
this.container.mouseleave
|
|
571
|
+
this.container.bind('mouseleave.chosen', function(evt) {
|
|
415
572
|
_this.mouse_leave(evt);
|
|
416
573
|
});
|
|
417
|
-
this.search_results.mouseup
|
|
574
|
+
this.search_results.bind('mouseup.chosen', function(evt) {
|
|
418
575
|
_this.search_results_mouseup(evt);
|
|
419
576
|
});
|
|
420
|
-
this.search_results.mouseover
|
|
577
|
+
this.search_results.bind('mouseover.chosen', function(evt) {
|
|
421
578
|
_this.search_results_mouseover(evt);
|
|
422
579
|
});
|
|
423
|
-
this.search_results.mouseout
|
|
580
|
+
this.search_results.bind('mouseout.chosen', function(evt) {
|
|
424
581
|
_this.search_results_mouseout(evt);
|
|
425
582
|
});
|
|
426
|
-
this.
|
|
583
|
+
this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
|
|
584
|
+
_this.search_results_mousewheel(evt);
|
|
585
|
+
});
|
|
586
|
+
this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
|
|
427
587
|
_this.results_update_field(evt);
|
|
428
588
|
});
|
|
429
|
-
this.form_field_jq.bind("
|
|
589
|
+
this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
|
|
430
590
|
_this.activate_field(evt);
|
|
431
591
|
});
|
|
432
|
-
this.form_field_jq.bind("
|
|
592
|
+
this.form_field_jq.bind("chosen:open.chosen", function(evt) {
|
|
433
593
|
_this.container_mousedown(evt);
|
|
434
594
|
});
|
|
435
|
-
this.search_field.blur
|
|
595
|
+
this.search_field.bind('blur.chosen', function(evt) {
|
|
436
596
|
_this.input_blur(evt);
|
|
437
597
|
});
|
|
438
|
-
this.search_field.keyup
|
|
598
|
+
this.search_field.bind('keyup.chosen', function(evt) {
|
|
439
599
|
_this.keyup_checker(evt);
|
|
440
600
|
});
|
|
441
|
-
this.search_field.keydown
|
|
601
|
+
this.search_field.bind('keydown.chosen', function(evt) {
|
|
442
602
|
_this.keydown_checker(evt);
|
|
443
603
|
});
|
|
444
|
-
this.search_field.focus
|
|
604
|
+
this.search_field.bind('focus.chosen', function(evt) {
|
|
445
605
|
_this.input_focus(evt);
|
|
446
606
|
});
|
|
447
607
|
if (this.is_multiple) {
|
|
448
|
-
return this.search_choices.click
|
|
608
|
+
return this.search_choices.bind('click.chosen', function(evt) {
|
|
449
609
|
_this.choices_click(evt);
|
|
450
610
|
});
|
|
451
611
|
} else {
|
|
452
|
-
return this.container.click
|
|
612
|
+
return this.container.bind('click.chosen', function(evt) {
|
|
453
613
|
evt.preventDefault();
|
|
454
614
|
});
|
|
455
615
|
}
|
|
456
616
|
};
|
|
457
617
|
|
|
618
|
+
Chosen.prototype.destroy = function() {
|
|
619
|
+
$(document).unbind("click.chosen", this.click_test_action);
|
|
620
|
+
if (this.search_field[0].tabIndex) {
|
|
621
|
+
this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
|
|
622
|
+
}
|
|
623
|
+
this.container.remove();
|
|
624
|
+
this.form_field_jq.removeData('chosen');
|
|
625
|
+
return this.form_field_jq.show();
|
|
626
|
+
};
|
|
627
|
+
|
|
458
628
|
Chosen.prototype.search_field_disabled = function() {
|
|
459
629
|
this.is_disabled = this.form_field_jq[0].disabled;
|
|
460
630
|
if (this.is_disabled) {
|
|
461
|
-
this.container.addClass('
|
|
631
|
+
this.container.addClass('chosen-disabled');
|
|
462
632
|
this.search_field[0].disabled = true;
|
|
463
633
|
if (!this.is_multiple) {
|
|
464
|
-
this.selected_item.unbind("focus", this.activate_action);
|
|
634
|
+
this.selected_item.unbind("focus.chosen", this.activate_action);
|
|
465
635
|
}
|
|
466
636
|
return this.close_field();
|
|
467
637
|
} else {
|
|
468
|
-
this.container.removeClass('
|
|
638
|
+
this.container.removeClass('chosen-disabled');
|
|
469
639
|
this.search_field[0].disabled = false;
|
|
470
640
|
if (!this.is_multiple) {
|
|
471
|
-
return this.selected_item.bind("focus", this.activate_action);
|
|
641
|
+
return this.selected_item.bind("focus.chosen", this.activate_action);
|
|
472
642
|
}
|
|
473
643
|
}
|
|
474
644
|
};
|
|
475
645
|
|
|
476
646
|
Chosen.prototype.container_mousedown = function(evt) {
|
|
477
|
-
var target_closelink;
|
|
478
647
|
if (!this.is_disabled) {
|
|
479
|
-
target_closelink = evt != null ? ($(evt.target)).hasClass("search-choice-close") : false;
|
|
480
648
|
if (evt && evt.type === "mousedown" && !this.results_showing) {
|
|
481
649
|
evt.preventDefault();
|
|
482
650
|
}
|
|
483
|
-
if (!
|
|
651
|
+
if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
|
|
484
652
|
if (!this.active_field) {
|
|
485
653
|
if (this.is_multiple) {
|
|
486
654
|
this.search_field.val("");
|
|
487
655
|
}
|
|
488
|
-
$(document).click
|
|
656
|
+
$(document).bind('click.chosen', this.click_test_action);
|
|
489
657
|
this.results_show();
|
|
490
|
-
} else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.
|
|
658
|
+
} else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
|
|
491
659
|
evt.preventDefault();
|
|
492
660
|
this.results_toggle();
|
|
493
661
|
}
|
|
494
662
|
return this.activate_field();
|
|
495
|
-
} else {
|
|
496
|
-
return this.pending_destroy_click = false;
|
|
497
663
|
}
|
|
498
664
|
}
|
|
499
665
|
};
|
|
@@ -504,32 +670,44 @@ Copyright (c) 2011 by Harvest
|
|
|
504
670
|
}
|
|
505
671
|
};
|
|
506
672
|
|
|
673
|
+
Chosen.prototype.search_results_mousewheel = function(evt) {
|
|
674
|
+
var delta, _ref1, _ref2;
|
|
675
|
+
|
|
676
|
+
delta = -((_ref1 = evt.originalEvent) != null ? _ref1.wheelDelta : void 0) || ((_ref2 = evt.originialEvent) != null ? _ref2.detail : void 0);
|
|
677
|
+
if (delta != null) {
|
|
678
|
+
evt.preventDefault();
|
|
679
|
+
if (evt.type === 'DOMMouseScroll') {
|
|
680
|
+
delta = delta * 40;
|
|
681
|
+
}
|
|
682
|
+
return this.search_results.scrollTop(delta + this.search_results.scrollTop());
|
|
683
|
+
}
|
|
684
|
+
};
|
|
685
|
+
|
|
507
686
|
Chosen.prototype.blur_test = function(evt) {
|
|
508
|
-
if (!this.active_field && this.container.hasClass("
|
|
687
|
+
if (!this.active_field && this.container.hasClass("chosen-container-active")) {
|
|
509
688
|
return this.close_field();
|
|
510
689
|
}
|
|
511
690
|
};
|
|
512
691
|
|
|
513
692
|
Chosen.prototype.close_field = function() {
|
|
514
|
-
$(document).unbind("click", this.click_test_action);
|
|
693
|
+
$(document).unbind("click.chosen", this.click_test_action);
|
|
515
694
|
this.active_field = false;
|
|
516
695
|
this.results_hide();
|
|
517
|
-
this.container.removeClass("
|
|
518
|
-
this.winnow_results_clear();
|
|
696
|
+
this.container.removeClass("chosen-container-active");
|
|
519
697
|
this.clear_backstroke();
|
|
520
698
|
this.show_search_field_default();
|
|
521
699
|
return this.search_field_scale();
|
|
522
700
|
};
|
|
523
701
|
|
|
524
702
|
Chosen.prototype.activate_field = function() {
|
|
525
|
-
this.container.addClass("
|
|
703
|
+
this.container.addClass("chosen-container-active");
|
|
526
704
|
this.active_field = true;
|
|
527
705
|
this.search_field.val(this.search_field.val());
|
|
528
706
|
return this.search_field.focus();
|
|
529
707
|
};
|
|
530
708
|
|
|
531
709
|
Chosen.prototype.test_active_click = function(evt) {
|
|
532
|
-
if ($(evt.target).
|
|
710
|
+
if (this.container.is($(evt.target).closest('.chosen-container'))) {
|
|
533
711
|
return this.active_field = true;
|
|
534
712
|
} else {
|
|
535
713
|
return this.close_field();
|
|
@@ -537,56 +715,33 @@ Copyright (c) 2011 by Harvest
|
|
|
537
715
|
};
|
|
538
716
|
|
|
539
717
|
Chosen.prototype.results_build = function() {
|
|
540
|
-
var content, data, _i, _len, _ref;
|
|
541
718
|
this.parsing = true;
|
|
542
|
-
this.
|
|
543
|
-
|
|
719
|
+
this.selected_option_count = null;
|
|
720
|
+
this.results_data = SelectParser.select_to_array(this.form_field);
|
|
721
|
+
if (this.is_multiple) {
|
|
544
722
|
this.search_choices.find("li.search-choice").remove();
|
|
545
|
-
this.choices = 0;
|
|
546
723
|
} else if (!this.is_multiple) {
|
|
547
|
-
this.
|
|
724
|
+
this.single_set_selected_text();
|
|
548
725
|
if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
|
|
549
|
-
this.
|
|
726
|
+
this.search_field[0].readOnly = true;
|
|
727
|
+
this.container.addClass("chosen-container-single-nosearch");
|
|
550
728
|
} else {
|
|
551
|
-
this.
|
|
552
|
-
|
|
553
|
-
}
|
|
554
|
-
content = '';
|
|
555
|
-
_ref = this.results_data;
|
|
556
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
557
|
-
data = _ref[_i];
|
|
558
|
-
if (data.group) {
|
|
559
|
-
content += this.result_add_group(data);
|
|
560
|
-
} else if (!data.empty) {
|
|
561
|
-
content += this.result_add_option(data);
|
|
562
|
-
if (data.selected && this.is_multiple) {
|
|
563
|
-
this.choice_build(data);
|
|
564
|
-
} else if (data.selected && !this.is_multiple) {
|
|
565
|
-
this.selected_item.removeClass("chzn-default").find("span").text(data.text);
|
|
566
|
-
if (this.allow_single_deselect) {
|
|
567
|
-
this.single_deselect_control_build();
|
|
568
|
-
}
|
|
569
|
-
}
|
|
729
|
+
this.search_field[0].readOnly = false;
|
|
730
|
+
this.container.removeClass("chosen-container-single-nosearch");
|
|
570
731
|
}
|
|
571
732
|
}
|
|
733
|
+
this.update_results_content(this.results_option_build({
|
|
734
|
+
first: true
|
|
735
|
+
}));
|
|
572
736
|
this.search_field_disabled();
|
|
573
737
|
this.show_search_field_default();
|
|
574
738
|
this.search_field_scale();
|
|
575
|
-
this.search_results.html(content);
|
|
576
739
|
return this.parsing = false;
|
|
577
740
|
};
|
|
578
741
|
|
|
579
|
-
Chosen.prototype.result_add_group = function(group) {
|
|
580
|
-
if (!group.disabled) {
|
|
581
|
-
group.dom_id = this.container_id + "_g_" + group.array_index;
|
|
582
|
-
return '<li id="' + group.dom_id + '" class="group-result">' + $("<div />").text(group.label).html() + '</li>';
|
|
583
|
-
} else {
|
|
584
|
-
return "";
|
|
585
|
-
}
|
|
586
|
-
};
|
|
587
|
-
|
|
588
742
|
Chosen.prototype.result_do_highlight = function(el) {
|
|
589
743
|
var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
|
|
744
|
+
|
|
590
745
|
if (el.length) {
|
|
591
746
|
this.result_clear_highlight();
|
|
592
747
|
this.result_highlight = el;
|
|
@@ -612,57 +767,67 @@ Copyright (c) 2011 by Harvest
|
|
|
612
767
|
};
|
|
613
768
|
|
|
614
769
|
Chosen.prototype.results_show = function() {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
this.selected_item.addClass("chzn-single-with-drop");
|
|
618
|
-
if (this.result_single_selected) {
|
|
619
|
-
this.result_do_highlight(this.result_single_selected);
|
|
620
|
-
}
|
|
621
|
-
} else if (this.max_selected_options <= this.choices) {
|
|
622
|
-
this.form_field_jq.trigger("liszt:maxselected", {
|
|
770
|
+
if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
|
|
771
|
+
this.form_field_jq.trigger("chosen:maxselected", {
|
|
623
772
|
chosen: this
|
|
624
773
|
});
|
|
625
774
|
return false;
|
|
626
775
|
}
|
|
627
|
-
|
|
628
|
-
this.form_field_jq.trigger("
|
|
776
|
+
this.container.addClass("chosen-with-drop");
|
|
777
|
+
this.form_field_jq.trigger("chosen:showing_dropdown", {
|
|
629
778
|
chosen: this
|
|
630
779
|
});
|
|
631
|
-
this.dropdown.css({
|
|
632
|
-
"top": dd_top + "px",
|
|
633
|
-
"left": 0
|
|
634
|
-
});
|
|
635
780
|
this.results_showing = true;
|
|
636
781
|
this.search_field.focus();
|
|
637
782
|
this.search_field.val(this.search_field.val());
|
|
638
783
|
return this.winnow_results();
|
|
639
784
|
};
|
|
640
785
|
|
|
786
|
+
Chosen.prototype.update_results_content = function(content) {
|
|
787
|
+
return this.search_results.html(content);
|
|
788
|
+
};
|
|
789
|
+
|
|
641
790
|
Chosen.prototype.results_hide = function() {
|
|
642
|
-
if (
|
|
643
|
-
this.
|
|
791
|
+
if (this.results_showing) {
|
|
792
|
+
this.result_clear_highlight();
|
|
793
|
+
this.container.removeClass("chosen-with-drop");
|
|
794
|
+
this.form_field_jq.trigger("chosen:hiding_dropdown", {
|
|
795
|
+
chosen: this
|
|
796
|
+
});
|
|
644
797
|
}
|
|
645
|
-
this.result_clear_highlight();
|
|
646
|
-
this.form_field_jq.trigger("liszt:hiding_dropdown", {
|
|
647
|
-
chosen: this
|
|
648
|
-
});
|
|
649
|
-
this.dropdown.css({
|
|
650
|
-
"left": "-9000px"
|
|
651
|
-
});
|
|
652
798
|
return this.results_showing = false;
|
|
653
799
|
};
|
|
654
800
|
|
|
655
801
|
Chosen.prototype.set_tab_index = function(el) {
|
|
656
802
|
var ti;
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
this.
|
|
660
|
-
|
|
803
|
+
|
|
804
|
+
if (this.form_field.tabIndex) {
|
|
805
|
+
ti = this.form_field.tabIndex;
|
|
806
|
+
this.form_field.tabIndex = -1;
|
|
807
|
+
return this.search_field[0].tabIndex = ti;
|
|
808
|
+
}
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
Chosen.prototype.set_label_behavior = function() {
|
|
812
|
+
var _this = this;
|
|
813
|
+
|
|
814
|
+
this.form_field_label = this.form_field_jq.parents("label");
|
|
815
|
+
if (!this.form_field_label.length && this.form_field.id.length) {
|
|
816
|
+
this.form_field_label = $("label[for='" + this.form_field.id + "']");
|
|
817
|
+
}
|
|
818
|
+
if (this.form_field_label.length > 0) {
|
|
819
|
+
return this.form_field_label.bind('click.chosen', function(evt) {
|
|
820
|
+
if (_this.is_multiple) {
|
|
821
|
+
return _this.container_mousedown(evt);
|
|
822
|
+
} else {
|
|
823
|
+
return _this.activate_field();
|
|
824
|
+
}
|
|
825
|
+
});
|
|
661
826
|
}
|
|
662
827
|
};
|
|
663
828
|
|
|
664
829
|
Chosen.prototype.show_search_field_default = function() {
|
|
665
|
-
if (this.is_multiple && this.
|
|
830
|
+
if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
|
|
666
831
|
this.search_field.val(this.default_text);
|
|
667
832
|
return this.search_field.addClass("default");
|
|
668
833
|
} else {
|
|
@@ -673,6 +838,7 @@ Copyright (c) 2011 by Harvest
|
|
|
673
838
|
|
|
674
839
|
Chosen.prototype.search_results_mouseup = function(evt) {
|
|
675
840
|
var target;
|
|
841
|
+
|
|
676
842
|
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
|
|
677
843
|
if (target.length) {
|
|
678
844
|
this.result_highlight = target;
|
|
@@ -683,6 +849,7 @@ Copyright (c) 2011 by Harvest
|
|
|
683
849
|
|
|
684
850
|
Chosen.prototype.search_results_mouseover = function(evt) {
|
|
685
851
|
var target;
|
|
852
|
+
|
|
686
853
|
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
|
|
687
854
|
if (target) {
|
|
688
855
|
return this.result_do_highlight(target);
|
|
@@ -695,51 +862,40 @@ Copyright (c) 2011 by Harvest
|
|
|
695
862
|
}
|
|
696
863
|
};
|
|
697
864
|
|
|
698
|
-
Chosen.prototype.choices_click = function(evt) {
|
|
699
|
-
evt.preventDefault();
|
|
700
|
-
if (this.active_field && !($(evt.target).hasClass("search-choice" || $(evt.target).parents('.search-choice').first)) && !this.results_showing) {
|
|
701
|
-
return this.results_show();
|
|
702
|
-
}
|
|
703
|
-
};
|
|
704
|
-
|
|
705
865
|
Chosen.prototype.choice_build = function(item) {
|
|
706
|
-
var
|
|
866
|
+
var choice, close_link,
|
|
707
867
|
_this = this;
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
return false;
|
|
713
|
-
}
|
|
714
|
-
choice_id = this.container_id + "_c_" + item.array_index;
|
|
715
|
-
this.choices += 1;
|
|
868
|
+
|
|
869
|
+
choice = $('<li />', {
|
|
870
|
+
"class": "search-choice"
|
|
871
|
+
}).html("<span>" + item.html + "</span>");
|
|
716
872
|
if (item.disabled) {
|
|
717
|
-
|
|
873
|
+
choice.addClass('search-choice-disabled');
|
|
718
874
|
} else {
|
|
719
|
-
|
|
875
|
+
close_link = $('<a />', {
|
|
876
|
+
"class": 'search-choice-close',
|
|
877
|
+
'data-option-array-index': item.array_index
|
|
878
|
+
});
|
|
879
|
+
close_link.bind('click.chosen', function(evt) {
|
|
880
|
+
return _this.choice_destroy_link_click(evt);
|
|
881
|
+
});
|
|
882
|
+
choice.append(close_link);
|
|
720
883
|
}
|
|
721
|
-
this.search_container.before(
|
|
722
|
-
link = $('#' + choice_id).find("a").first();
|
|
723
|
-
return link.click(function(evt) {
|
|
724
|
-
return _this.choice_destroy_link_click(evt);
|
|
725
|
-
});
|
|
884
|
+
return this.search_container.before(choice);
|
|
726
885
|
};
|
|
727
886
|
|
|
728
887
|
Chosen.prototype.choice_destroy_link_click = function(evt) {
|
|
729
888
|
evt.preventDefault();
|
|
889
|
+
evt.stopPropagation();
|
|
730
890
|
if (!this.is_disabled) {
|
|
731
|
-
this.pending_destroy_click = true;
|
|
732
891
|
return this.choice_destroy($(evt.target));
|
|
733
|
-
} else {
|
|
734
|
-
return evt.stopPropagation;
|
|
735
892
|
}
|
|
736
893
|
};
|
|
737
894
|
|
|
738
895
|
Chosen.prototype.choice_destroy = function(link) {
|
|
739
|
-
if (this.result_deselect(link.
|
|
740
|
-
this.choices -= 1;
|
|
896
|
+
if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
|
|
741
897
|
this.show_search_field_default();
|
|
742
|
-
if (this.is_multiple && this.
|
|
898
|
+
if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
|
|
743
899
|
this.results_hide();
|
|
744
900
|
}
|
|
745
901
|
link.parents('li').first().remove();
|
|
@@ -749,10 +905,8 @@ Copyright (c) 2011 by Harvest
|
|
|
749
905
|
|
|
750
906
|
Chosen.prototype.results_reset = function() {
|
|
751
907
|
this.form_field.options[0].selected = true;
|
|
752
|
-
this.
|
|
753
|
-
|
|
754
|
-
this.selected_item.addClass("chzn-default");
|
|
755
|
-
}
|
|
908
|
+
this.selected_option_count = null;
|
|
909
|
+
this.single_set_selected_text();
|
|
756
910
|
this.show_search_field_default();
|
|
757
911
|
this.results_reset_cleanup();
|
|
758
912
|
this.form_field_jq.trigger("change");
|
|
@@ -762,68 +916,81 @@ Copyright (c) 2011 by Harvest
|
|
|
762
916
|
};
|
|
763
917
|
|
|
764
918
|
Chosen.prototype.results_reset_cleanup = function() {
|
|
765
|
-
this.
|
|
919
|
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
|
766
920
|
return this.selected_item.find("abbr").remove();
|
|
767
921
|
};
|
|
768
922
|
|
|
769
923
|
Chosen.prototype.result_select = function(evt) {
|
|
770
|
-
var high,
|
|
924
|
+
var high, item, selected_index;
|
|
925
|
+
|
|
771
926
|
if (this.result_highlight) {
|
|
772
927
|
high = this.result_highlight;
|
|
773
|
-
high_id = high.attr("id");
|
|
774
928
|
this.result_clear_highlight();
|
|
929
|
+
if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
|
|
930
|
+
this.form_field_jq.trigger("chosen:maxselected", {
|
|
931
|
+
chosen: this
|
|
932
|
+
});
|
|
933
|
+
return false;
|
|
934
|
+
}
|
|
775
935
|
if (this.is_multiple) {
|
|
776
|
-
|
|
936
|
+
high.removeClass("active-result");
|
|
777
937
|
} else {
|
|
778
|
-
this.
|
|
938
|
+
if (this.result_single_selected) {
|
|
939
|
+
this.result_single_selected.removeClass("result-selected");
|
|
940
|
+
selected_index = this.result_single_selected[0].getAttribute('data-option-array-index');
|
|
941
|
+
this.results_data[selected_index].selected = false;
|
|
942
|
+
}
|
|
779
943
|
this.result_single_selected = high;
|
|
780
|
-
this.selected_item.removeClass("chzn-default");
|
|
781
944
|
}
|
|
782
945
|
high.addClass("result-selected");
|
|
783
|
-
|
|
784
|
-
item = this.results_data[position];
|
|
946
|
+
item = this.results_data[high[0].getAttribute("data-option-array-index")];
|
|
785
947
|
item.selected = true;
|
|
786
948
|
this.form_field.options[item.options_index].selected = true;
|
|
949
|
+
this.selected_option_count = null;
|
|
787
950
|
if (this.is_multiple) {
|
|
788
951
|
this.choice_build(item);
|
|
789
952
|
} else {
|
|
790
|
-
this.
|
|
791
|
-
if (this.allow_single_deselect) {
|
|
792
|
-
this.single_deselect_control_build();
|
|
793
|
-
}
|
|
953
|
+
this.single_set_selected_text(item.text);
|
|
794
954
|
}
|
|
795
955
|
if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
|
|
796
956
|
this.results_hide();
|
|
797
957
|
}
|
|
798
958
|
this.search_field.val("");
|
|
799
|
-
if (this.is_multiple || this.
|
|
959
|
+
if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
|
|
800
960
|
this.form_field_jq.trigger("change", {
|
|
801
961
|
'selected': this.form_field.options[item.options_index].value
|
|
802
962
|
});
|
|
803
963
|
}
|
|
804
|
-
this.
|
|
964
|
+
this.current_selectedIndex = this.form_field.selectedIndex;
|
|
805
965
|
return this.search_field_scale();
|
|
806
966
|
}
|
|
807
967
|
};
|
|
808
968
|
|
|
809
|
-
Chosen.prototype.
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
969
|
+
Chosen.prototype.single_set_selected_text = function(text) {
|
|
970
|
+
if (text == null) {
|
|
971
|
+
text = this.default_text;
|
|
972
|
+
}
|
|
973
|
+
if (text === this.default_text) {
|
|
974
|
+
this.selected_item.addClass("chosen-default");
|
|
975
|
+
} else {
|
|
976
|
+
this.single_deselect_control_build();
|
|
977
|
+
this.selected_item.removeClass("chosen-default");
|
|
978
|
+
}
|
|
979
|
+
return this.selected_item.find("span").text(text);
|
|
815
980
|
};
|
|
816
981
|
|
|
817
982
|
Chosen.prototype.result_deselect = function(pos) {
|
|
818
|
-
var
|
|
983
|
+
var result_data;
|
|
984
|
+
|
|
819
985
|
result_data = this.results_data[pos];
|
|
820
986
|
if (!this.form_field.options[result_data.options_index].disabled) {
|
|
821
987
|
result_data.selected = false;
|
|
822
988
|
this.form_field.options[result_data.options_index].selected = false;
|
|
823
|
-
|
|
824
|
-
result.removeClass("result-selected").addClass("active-result").show();
|
|
989
|
+
this.selected_option_count = null;
|
|
825
990
|
this.result_clear_highlight();
|
|
826
|
-
this.
|
|
991
|
+
if (this.results_showing) {
|
|
992
|
+
this.winnow_results();
|
|
993
|
+
}
|
|
827
994
|
this.form_field_jq.trigger("change", {
|
|
828
995
|
deselected: this.form_field.options[result_data.options_index].value
|
|
829
996
|
});
|
|
@@ -835,105 +1002,36 @@ Copyright (c) 2011 by Harvest
|
|
|
835
1002
|
};
|
|
836
1003
|
|
|
837
1004
|
Chosen.prototype.single_deselect_control_build = function() {
|
|
838
|
-
if (this.allow_single_deselect
|
|
839
|
-
return
|
|
1005
|
+
if (!this.allow_single_deselect) {
|
|
1006
|
+
return;
|
|
840
1007
|
}
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
Chosen.prototype.winnow_results = function() {
|
|
844
|
-
var found, option, part, parts, regex, regexAnchor, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len1, _ref;
|
|
845
|
-
this.no_results_clear();
|
|
846
|
-
results = 0;
|
|
847
|
-
searchText = this.search_field.val() === this.default_text ? "" : $('<div/>').text($.trim(this.search_field.val())).html();
|
|
848
|
-
regexAnchor = this.search_contains ? "" : "^";
|
|
849
|
-
regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
|
|
850
|
-
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
|
|
851
|
-
_ref = this.results_data;
|
|
852
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
853
|
-
option = _ref[_i];
|
|
854
|
-
if (!option.disabled && !option.empty) {
|
|
855
|
-
if (option.group) {
|
|
856
|
-
$('#' + option.dom_id).css('display', 'none');
|
|
857
|
-
} else if (!(this.is_multiple && option.selected)) {
|
|
858
|
-
found = false;
|
|
859
|
-
result_id = option.dom_id;
|
|
860
|
-
result = $("#" + result_id);
|
|
861
|
-
if (regex.test(option.html)) {
|
|
862
|
-
found = true;
|
|
863
|
-
results += 1;
|
|
864
|
-
} else if (this.enable_split_word_search && (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0)) {
|
|
865
|
-
parts = option.html.replace(/\[|\]/g, "").split(" ");
|
|
866
|
-
if (parts.length) {
|
|
867
|
-
for (_j = 0, _len1 = parts.length; _j < _len1; _j++) {
|
|
868
|
-
part = parts[_j];
|
|
869
|
-
if (regex.test(part)) {
|
|
870
|
-
found = true;
|
|
871
|
-
results += 1;
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
if (found) {
|
|
877
|
-
if (searchText.length) {
|
|
878
|
-
startpos = option.html.search(zregex);
|
|
879
|
-
text = option.html.substr(0, startpos + searchText.length) + '</em>' + option.html.substr(startpos + searchText.length);
|
|
880
|
-
text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
|
|
881
|
-
} else {
|
|
882
|
-
text = option.html;
|
|
883
|
-
}
|
|
884
|
-
result.html(text);
|
|
885
|
-
this.result_activate(result);
|
|
886
|
-
if (option.group_array_index != null) {
|
|
887
|
-
$("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item');
|
|
888
|
-
}
|
|
889
|
-
} else {
|
|
890
|
-
if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
|
|
891
|
-
this.result_clear_highlight();
|
|
892
|
-
}
|
|
893
|
-
this.result_deactivate(result);
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
if (results < 1 && searchText.length) {
|
|
899
|
-
return this.no_results(searchText);
|
|
900
|
-
} else {
|
|
901
|
-
return this.winnow_results_set_highlight();
|
|
1008
|
+
if (!this.selected_item.find("abbr").length) {
|
|
1009
|
+
this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
|
|
902
1010
|
}
|
|
1011
|
+
return this.selected_item.addClass("chosen-single-with-deselect");
|
|
903
1012
|
};
|
|
904
1013
|
|
|
905
|
-
Chosen.prototype.
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
for (_i = 0, _len = lis.length; _i < _len; _i++) {
|
|
911
|
-
li = lis[_i];
|
|
912
|
-
li = $(li);
|
|
913
|
-
if (li.hasClass("group-result")) {
|
|
914
|
-
_results.push(li.css('display', 'auto'));
|
|
915
|
-
} else if (!this.is_multiple || !li.hasClass("result-selected")) {
|
|
916
|
-
_results.push(this.result_activate(li));
|
|
917
|
-
} else {
|
|
918
|
-
_results.push(void 0);
|
|
919
|
-
}
|
|
1014
|
+
Chosen.prototype.get_search_text = function() {
|
|
1015
|
+
if (this.search_field.val() === this.default_text) {
|
|
1016
|
+
return "";
|
|
1017
|
+
} else {
|
|
1018
|
+
return $('<div/>').text($.trim(this.search_field.val())).html();
|
|
920
1019
|
}
|
|
921
|
-
return _results;
|
|
922
1020
|
};
|
|
923
1021
|
|
|
924
1022
|
Chosen.prototype.winnow_results_set_highlight = function() {
|
|
925
1023
|
var do_high, selected_results;
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
}
|
|
1024
|
+
|
|
1025
|
+
selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
|
|
1026
|
+
do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
|
|
1027
|
+
if (do_high != null) {
|
|
1028
|
+
return this.result_do_highlight(do_high);
|
|
932
1029
|
}
|
|
933
1030
|
};
|
|
934
1031
|
|
|
935
1032
|
Chosen.prototype.no_results = function(terms) {
|
|
936
1033
|
var no_results_html;
|
|
1034
|
+
|
|
937
1035
|
no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
|
|
938
1036
|
no_results_html.find("span").first().html(terms);
|
|
939
1037
|
return this.search_results.append(no_results_html);
|
|
@@ -944,25 +1042,21 @@ Copyright (c) 2011 by Harvest
|
|
|
944
1042
|
};
|
|
945
1043
|
|
|
946
1044
|
Chosen.prototype.keydown_arrow = function() {
|
|
947
|
-
var
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
if (first_active) {
|
|
951
|
-
this.result_do_highlight($(first_active));
|
|
952
|
-
}
|
|
953
|
-
} else if (this.results_showing) {
|
|
1045
|
+
var next_sib;
|
|
1046
|
+
|
|
1047
|
+
if (this.results_showing && this.result_highlight) {
|
|
954
1048
|
next_sib = this.result_highlight.nextAll("li.active-result").first();
|
|
955
1049
|
if (next_sib) {
|
|
956
|
-
this.result_do_highlight(next_sib);
|
|
1050
|
+
return this.result_do_highlight(next_sib);
|
|
957
1051
|
}
|
|
958
|
-
}
|
|
959
|
-
if (!this.results_showing) {
|
|
1052
|
+
} else {
|
|
960
1053
|
return this.results_show();
|
|
961
1054
|
}
|
|
962
1055
|
};
|
|
963
1056
|
|
|
964
1057
|
Chosen.prototype.keyup_arrow = function() {
|
|
965
1058
|
var prev_sibs;
|
|
1059
|
+
|
|
966
1060
|
if (!this.results_showing && !this.is_multiple) {
|
|
967
1061
|
return this.results_show();
|
|
968
1062
|
} else if (this.result_highlight) {
|
|
@@ -970,7 +1064,7 @@ Copyright (c) 2011 by Harvest
|
|
|
970
1064
|
if (prev_sibs.length) {
|
|
971
1065
|
return this.result_do_highlight(prev_sibs.first());
|
|
972
1066
|
} else {
|
|
973
|
-
if (this.
|
|
1067
|
+
if (this.choices_count() > 0) {
|
|
974
1068
|
this.results_hide();
|
|
975
1069
|
}
|
|
976
1070
|
return this.result_clear_highlight();
|
|
@@ -980,6 +1074,7 @@ Copyright (c) 2011 by Harvest
|
|
|
980
1074
|
|
|
981
1075
|
Chosen.prototype.keydown_backstroke = function() {
|
|
982
1076
|
var next_available_destroy;
|
|
1077
|
+
|
|
983
1078
|
if (this.pending_backstroke) {
|
|
984
1079
|
this.choice_destroy(this.pending_backstroke.find("a").first());
|
|
985
1080
|
return this.clear_backstroke();
|
|
@@ -1004,8 +1099,9 @@ Copyright (c) 2011 by Harvest
|
|
|
1004
1099
|
};
|
|
1005
1100
|
|
|
1006
1101
|
Chosen.prototype.keydown_checker = function(evt) {
|
|
1007
|
-
var stroke,
|
|
1008
|
-
|
|
1102
|
+
var stroke, _ref1;
|
|
1103
|
+
|
|
1104
|
+
stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
|
|
1009
1105
|
this.search_field_scale();
|
|
1010
1106
|
if (stroke !== 8 && this.pending_backstroke) {
|
|
1011
1107
|
this.clear_backstroke();
|
|
@@ -1028,13 +1124,15 @@ Copyright (c) 2011 by Harvest
|
|
|
1028
1124
|
this.keyup_arrow();
|
|
1029
1125
|
break;
|
|
1030
1126
|
case 40:
|
|
1127
|
+
evt.preventDefault();
|
|
1031
1128
|
this.keydown_arrow();
|
|
1032
1129
|
break;
|
|
1033
1130
|
}
|
|
1034
1131
|
};
|
|
1035
1132
|
|
|
1036
1133
|
Chosen.prototype.search_field_scale = function() {
|
|
1037
|
-
var
|
|
1134
|
+
var div, f_width, h, style, style_block, styles, w, _i, _len;
|
|
1135
|
+
|
|
1038
1136
|
if (this.is_multiple) {
|
|
1039
1137
|
h = 0;
|
|
1040
1138
|
w = 0;
|
|
@@ -1051,39 +1149,18 @@ Copyright (c) 2011 by Harvest
|
|
|
1051
1149
|
$('body').append(div);
|
|
1052
1150
|
w = div.width() + 25;
|
|
1053
1151
|
div.remove();
|
|
1054
|
-
|
|
1055
|
-
|
|
1152
|
+
f_width = this.container.outerWidth();
|
|
1153
|
+
if (w > f_width - 10) {
|
|
1154
|
+
w = f_width - 10;
|
|
1056
1155
|
}
|
|
1057
|
-
this.search_field.css({
|
|
1156
|
+
return this.search_field.css({
|
|
1058
1157
|
'width': w + 'px'
|
|
1059
1158
|
});
|
|
1060
|
-
dd_top = this.container.height();
|
|
1061
|
-
return this.dropdown.css({
|
|
1062
|
-
"top": dd_top + "px"
|
|
1063
|
-
});
|
|
1064
|
-
}
|
|
1065
|
-
};
|
|
1066
|
-
|
|
1067
|
-
Chosen.prototype.generate_random_id = function() {
|
|
1068
|
-
var string;
|
|
1069
|
-
string = "sel" + this.generate_random_char() + this.generate_random_char() + this.generate_random_char();
|
|
1070
|
-
while ($("#" + string).length > 0) {
|
|
1071
|
-
string += this.generate_random_char();
|
|
1072
1159
|
}
|
|
1073
|
-
return string;
|
|
1074
1160
|
};
|
|
1075
1161
|
|
|
1076
1162
|
return Chosen;
|
|
1077
1163
|
|
|
1078
1164
|
})(AbstractChosen);
|
|
1079
1165
|
|
|
1080
|
-
root.Chosen = Chosen;
|
|
1081
|
-
|
|
1082
|
-
get_side_border_padding = function(elmt) {
|
|
1083
|
-
var side_border_padding;
|
|
1084
|
-
return side_border_padding = elmt.outerWidth() - elmt.width();
|
|
1085
|
-
};
|
|
1086
|
-
|
|
1087
|
-
root.get_side_border_padding = get_side_border_padding;
|
|
1088
|
-
|
|
1089
1166
|
}).call(this);
|