multi-select-rails 0.9.5 → 0.9.6

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.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Multiselect 0.9.5 for Rails
1
+ # Multiselect for Rails [![Gem Version](https://badge.fury.io/rb/multi-select-rails.png)](http://badge.fury.io/rb/multi-select-rails)
2
2
 
3
3
  [multi-select](https://github.com/lou/multi-select) is a tiny jQuery plugin to customize selects with the multiple attribute.
4
4
 
data/Rakefile CHANGED
@@ -3,9 +3,9 @@ task :update do
3
3
  system("rm -rf multi-select-src")
4
4
 
5
5
  system("git clone https://github.com/lou/multi-select.git multi-select-src")
6
- system("cp multi-select-src/img/switch.png vendor/assets/images/switch.png")
7
- system("cp multi-select-src/css/multi-select.css vendor/assets/stylesheets/multi-select.scss")
8
- system("cp multi-select-src/js/jquery.multi-select.js vendor/assets/javascripts/multi-select.js")
6
+ system("cp multi-select-src/img/switch.png app/assets/images/switch.png")
7
+ system("cp multi-select-src/css/multi-select.css app/assets/stylesheets/multi-select.scss")
8
+ system("cp multi-select-src/js/jquery.multi-select.js app/assets/javascripts/multi-select.js")
9
9
 
10
10
  fixes
11
11
 
@@ -13,7 +13,7 @@ task :update do
13
13
  end
14
14
 
15
15
  def fixes
16
- replace_string_in_file("vendor/assets/stylesheets/multi-select.scss", "url('../img/switch.png')", "image-url('switch.png')")
16
+ replace_string_in_file("app/assets/stylesheets/multi-select.scss", "url('../img/switch.png')", "image-url('switch.png')")
17
17
  end
18
18
 
19
19
  def replace_string_in_file(file, find, replace)
File without changes
@@ -1,5 +1,5 @@
1
1
  /*
2
- * MultiSelect v0.9.5
2
+ * MultiSelect v0.9.6
3
3
  * Copyright (c) 2012 Louis Cuny
4
4
  *
5
5
  * This program is free software. It comes without any warranty, to
@@ -11,7 +11,7 @@
11
11
 
12
12
  !function ($) {
13
13
 
14
- "use strict"; // jshint ;_;
14
+ "use strict";
15
15
 
16
16
 
17
17
  /* MULTISELECT CLASS DEFINITION
@@ -20,13 +20,18 @@
20
20
  var MultiSelect = function (element, options) {
21
21
  this.options = options;
22
22
  this.$element = $(element);
23
- this.$container = $('<div id="ms-'+this.$element.attr('id')+'" class="ms-container"></div>');
24
- this.$selectableContainer = $('<div class="ms-selectable"></div>');
25
- this.$selectionContainer = $('<div class="ms-selection"></div>');
26
- this.$selectableUl = $('<ul class="ms-list"></ul>');
27
- this.$selectionUl = $('<ul class="ms-list"></ul>');
23
+
24
+ var id = this.$element.attr('id');
25
+
26
+ this.$container = $('<div/>', { 'id': "ms-"+id, 'class': "ms-container" });
27
+ this.$selectableContainer = $('<div/>', { 'class': 'ms-selectable' });
28
+ this.$selectionContainer = $('<div/>', { 'class': 'ms-selection' });
29
+ this.$selectableUl = $('<ul/>', { 'class': "ms-list", 'tabindex' : '-1' });
30
+ this.$selectionUl = $('<ul/>', { 'class': "ms-list", 'tabindex' : '-1' });
28
31
  this.scrollTo = 0;
29
- }
32
+ this.sanitizeRegexp = new RegExp("\\W+", 'gi');
33
+ this.elemsSelector = 'li:visible:not(.ms-optgroup-label,.ms-optgroup-container)';
34
+ };
30
35
 
31
36
  MultiSelect.prototype = {
32
37
  constructor: MultiSelect,
@@ -35,16 +40,13 @@
35
40
  var that = this,
36
41
  ms = this.$element;
37
42
 
38
- if (ms.next('.ms-container').length == 0){
43
+ if (ms.next('.ms-container').length === 0){
39
44
  ms.css({ position: 'absolute', left: '-9999px' });
40
45
  ms.attr('id', ms.attr('id') ? ms.attr('id') : 'ms-'+Math.ceil(Math.random()*1000));
41
46
 
42
-
43
-
44
47
  var optgroupLabel = null,
45
48
  optgroupId = null,
46
49
  optgroupCpt = 0,
47
- scroll = 0,
48
50
  optgroupContainerTemplate = '<li class="ms-optgroup-container"></li>',
49
51
  optgroupUlTemplate = '<ul class="ms-optgroup"></ul>',
50
52
  optgroupLiTemplate = '<li class="ms-optgroup-label"><span></span></li>';
@@ -62,12 +64,12 @@
62
64
 
63
65
  if (that.options.selectableOptgroup){
64
66
  optgroupSelectableLi.on('click', function(){
65
- var values = optgroup.children(':not(:selected)').map(function(){ return $(this).val() }).get();
67
+ var values = optgroup.children(':not(:selected)').map(function(){ return $(this).val(); }).get();
66
68
  that.select(values);
67
69
  });
68
70
 
69
71
  optgroupSelectionLi.on('click', function(){
70
- var values = optgroup.children(':selected').map(function(){ return $(this).val() }).get();
72
+ var values = optgroup.children(':selected').map(function(){ return $(this).val(); }).get();
71
73
  that.deselect(values);
72
74
  });
73
75
  }
@@ -105,7 +107,7 @@
105
107
  selectedLi = selectableLi.clone();
106
108
 
107
109
  var value = $(this).val(),
108
- msId = that.sanitize(value);
110
+ msId = that.sanitize(value, that.sanitizeRegexp);
109
111
 
110
112
  selectableLi
111
113
  .data('ms-value', value)
@@ -140,171 +142,202 @@
140
142
  }
141
143
  });
142
144
 
143
- if (that.options.selectableHeader)
145
+ if (that.options.selectableHeader){
144
146
  that.$selectableContainer.append(that.options.selectableHeader);
147
+ }
145
148
  that.$selectableContainer.append(that.$selectableUl);
146
- if (that.options.selectableFooter)
149
+ if (that.options.selectableFooter){
147
150
  that.$selectableContainer.append(that.options.selectableFooter);
151
+ }
148
152
 
149
- if (that.options.selectionHeader)
153
+ if (that.options.selectionHeader){
150
154
  that.$selectionContainer.append(that.options.selectionHeader);
155
+ }
151
156
  that.$selectionContainer.append(that.$selectionUl);
152
- if (that.options.selectionFooter)
157
+ if (that.options.selectionFooter){
153
158
  that.$selectionContainer.append(that.options.selectionFooter);
159
+ }
154
160
 
155
161
  that.$container.append(that.$selectableContainer);
156
162
  that.$container.append(that.$selectionContainer);
157
163
  ms.after(that.$container);
158
- that.$selectableUl.on('mouseenter', '.ms-elem-selectable', function(){
159
- $('li', that.$container).removeClass('ms-hover');
160
- $(this).addClass('ms-hover');
161
- }).on('mouseleave', function(){
162
- $('li', that.$container).removeClass('ms-hover');
164
+
165
+ that.activeMouse(that.$selectableUl);
166
+ that.activeKeyboard(that.$selectableUl);
167
+
168
+ var action = that.options.dblClick ? 'dblclick' : 'click';
169
+
170
+ that.$selectableUl.on(action, '.ms-elem-selectable', function(){
171
+ that.select($(this).data('ms-value'));
172
+ });
173
+ that.$selectionUl.on(action, '.ms-elem-selection', function(){
174
+ that.deselect($(this).data('ms-value'));
163
175
  });
164
176
 
165
- if(that.options.dblClick) {
166
- that.$selectableUl.on('dblclick', '.ms-elem-selectable', function(){
167
- that.select($(this).data('ms-value'));
168
- });
169
- that.$selectionUl.on('dblclick', '.ms-elem-selection', function(){
170
- that.deselect($(this).data('ms-value'));
171
- });
172
- } else {
173
- that.$selectableUl.on('click', '.ms-elem-selectable', function(){
174
- that.select($(this).data('ms-value'));
175
- });
176
- that.$selectionUl.on('click', '.ms-elem-selection', function(){
177
- that.deselect($(this).data('ms-value'));
178
- });
177
+ that.activeMouse(that.$selectionUl);
178
+ that.activeKeyboard(that.$selectionUl);
179
+
180
+ ms.on('focus', function(){
181
+ that.$selectableUl.focus();
182
+ })
183
+ }
184
+
185
+ var selectedValues = ms.find('option:selected').map(function(){ return $(this).val(); }).get();
186
+ that.select(selectedValues, 'init');
187
+
188
+ if (typeof that.options.afterInit === 'function') {
189
+ that.options.afterInit.call(this, this.$container);
190
+ }
191
+ },
192
+
193
+ 'activeKeyboard' : function($list){
194
+ var that = this;
195
+
196
+ $list.on('focus', function(){
197
+ $(this).addClass('ms-focus');
198
+ })
199
+ .on('blur', function(){
200
+ $(this).removeClass('ms-focus');
201
+ })
202
+ .on('keydown', function(e){
203
+ switch (e.which) {
204
+ case 40:
205
+ case 38:
206
+ e.preventDefault();
207
+ e.stopPropagation();
208
+ that.moveHighlight($(this), (e.which === 38) ? -1 : 1);
209
+ return;
210
+ case 32:
211
+ e.preventDefault();
212
+ e.stopPropagation();
213
+ that.selectHighlighted($list);
214
+ return;
215
+ case 37:
216
+ case 39:
217
+ e.preventDefault();
218
+ e.stopPropagation();
219
+ that.switchList($list);
220
+ return;
179
221
  }
222
+ });
223
+ },
180
224
 
225
+ 'moveHighlight': function($list, direction){
226
+ var $elems = $list.find(this.elemsSelector),
227
+ $currElem = $elems.filter('.ms-hover'),
228
+ $nextElem = null,
229
+ elemHeight = $elems.first().outerHeight(),
230
+ containerHeight = $list.height(),
231
+ containerSelector = '#'+this.$container.prop('id');
181
232
 
182
- that.$selectionUl.on('mouseenter', '.ms-elem-selection', function(){
183
- $('li', that.$selectionUl).removeClass('ms-hover');
184
- $(this).addClass('ms-hover');
185
- }).on('mouseleave', function(){
186
- $('li', that.$selectionUl).removeClass('ms-hover');
187
- });
233
+ // Deactive mouseenter event when move is active
234
+ // It fixes a bug when mouse is over the list
235
+ $elems.off('mouseenter');
188
236
 
189
- that.$selectableUl.on('focusin', function(){
190
- $(this).addClass('ms-focus');
191
- that.$selectionUl.focusout();
192
- }).on('focusout', function(){
193
- $(this).removeClass('ms-focus');
194
- $('li', that.$container).removeClass('ms-hover');
195
- });
237
+ $elems.removeClass('ms-hover');
238
+ if (direction === 1){ // DOWN
196
239
 
197
- that.$selectionUl.on('focusin', function(){
198
- $(this).addClass('ms-focus');
199
- }).on('focusout', function(){
200
- $(this).removeClass('ms-focus');
201
- $('li', that.$container).removeClass('ms-hover');
202
- });
240
+ $nextElem = $currElem.nextAll(this.elemsSelector).first();
241
+ if ($nextElem.length === 0){
242
+ var $optgroupUl = $currElem.parent();
203
243
 
204
- ms.on('focusin', function(){
205
- ms.focusout();
206
- that.$selectableUl.focusin();
207
- }).on('focusout', function(){
208
- that.$selectableUl.removeClass('ms-focus');
209
- that.$selectionUl.removeClass('ms-focus');
210
- });
244
+ if ($optgroupUl.hasClass('ms-optgroup')){
245
+ var $optgroupLi = $optgroupUl.parent(),
246
+ $nextOptgroupLi = $optgroupLi.next(':visible');
211
247
 
212
- ms.onKeyDown = function(e, keyContainer){
213
- var ul = that.$container.find('.'+keyContainer).find('.ms-list'),
214
- lis = ul.find('li:visible:not(.ms-optgroup-label, .ms-optgroup-container)'),
215
- lisNumber = lis.length,
216
- liFocused = ul.find('li.ms-hover'),
217
- liFocusedIndex = liFocused.length > 0 ? lis.index(liFocused) : -1,
218
- ulHeight = ul.innerHeight(),
219
- liHeight = lis.first().outerHeight(true),
220
- numberOfLisDisplayed = Math.floor(ulHeight / liHeight);
221
-
222
- if (e.keyCode == 32){ // space
223
- if (liFocused.length >0){
224
- var method = keyContainer == 'ms-selectable' ? 'select' : 'deselect';
225
- if (keyContainer == 'ms-selectable'){
226
- that.select(liFocused.data('ms-value'));
227
- } else {
228
- that.deselect(liFocused.data('ms-value'));
229
- }
230
- lis.removeClass('ms-hover');
231
- that.scrollTo = 0;
232
- ul.scrollTop(that.scrollTo);
233
- }
234
- } else if (e.keyCode == 40){ // Down
235
- if (lis.length > 0){
236
- var nextLiIndex = liFocusedIndex+1,
237
- nextLi = (lisNumber != nextLiIndex) ? lis.eq(nextLiIndex) : lis.first(),
238
- ulPosition = ul.position().top,
239
- nextLiPosition = nextLi.position().top;
240
-
241
- lis.removeClass('ms-hover');
242
- nextLi.addClass('ms-hover');
243
-
244
- if (lisNumber == nextLiIndex){
245
- that.scrollTo = 0;
246
- } else if (nextLiPosition >= (ulPosition + (numberOfLisDisplayed * liHeight))){
247
- that.scrollTo += liHeight;
248
- }
249
- ul.scrollTop(that.scrollTo);
250
- }
251
- } else if (e.keyCode == 38){ // Up
252
- if (lis.length > 0){
253
- var prevLiIndex = Math.max(liFocusedIndex-1, -1),
254
- prevLi = lis.eq(prevLiIndex),
255
- ulPosition = ul.position().top,
256
- prevLiPosition = prevLi.position().top;
257
-
258
- lis.removeClass('ms-hover');
259
- prevLi.addClass('ms-hover');
260
- if (prevLiPosition <= ulPosition){
261
- that.scrollTo -= liHeight;
262
- } else if (prevLiIndex < 0){
263
- that.scrollTo = (lisNumber - numberOfLisDisplayed) * liHeight;
264
- }
265
- ul.scrollTop(that.scrollTo);
266
- }
267
- } else if (e.keyCode == 37 || e.keyCode == 39){
268
- if (that.$selectableUl.hasClass('ms-focus')){
269
- that.$selectableUl.focusout();
270
- that.$selectionUl.focusin();
248
+ if ($nextOptgroupLi.length > 0){
249
+ $nextElem = $nextOptgroupLi.find(this.elemsSelector).first();
271
250
  } else {
272
- that.$selectableUl.focusin();
273
- that.$selectionUl.focusout();
251
+ $nextElem = $elems.first();
274
252
  }
253
+ } else {
254
+ $nextElem = $elems.first();
275
255
  }
276
256
  }
257
+ } else if (direction === -1){ // UP
258
+
259
+ $nextElem = $currElem.prevAll(this.elemsSelector).first();
260
+ if ($nextElem.length === 0){
261
+ var $optgroupUl = $currElem.parent();
277
262
 
278
- ms.on('keydown', function(e){
279
- if (ms.is(':focus')){
280
- var keyContainer = that.$selectableUl.hasClass('ms-focus') ? 'ms-selectable' : 'ms-selection';
281
- ms.onKeyDown(e, keyContainer);
263
+ if ($optgroupUl.hasClass('ms-optgroup')){
264
+ var $optgroupLi = $optgroupUl.parent(),
265
+ $prevOptgroupLi = $optgroupLi.prev(':visible');
266
+
267
+ if ($prevOptgroupLi.length > 0){
268
+ $nextElem = $prevOptgroupLi.find(this.elemsSelector).last();
269
+ } else {
270
+ $nextElem = $elems.last();
271
+ }
272
+ } else {
273
+ $nextElem = $elems.last();
282
274
  }
283
- });
275
+ }
284
276
  }
277
+ if ($nextElem.length > 0){
278
+ $nextElem.addClass('ms-hover');
279
+ var scrollTo = $list.scrollTop() + $nextElem.position().top -
280
+ containerHeight / 2 + elemHeight / 2;
285
281
 
286
- var selectedValues = ms.find('option:selected').map(function(){ return $(this).val() }).get();
287
- that.select(selectedValues, 'init')
282
+ $list.scrollTop(scrollTo);
283
+ }
284
+ },
288
285
 
289
- if (typeof that.options.afterInit == 'function') {
290
- that.options.afterInit.call(this, this.$container);
286
+ 'selectHighlighted' : function($list){
287
+ var $elems = $list.find(this.elemsSelector),
288
+ $highlightedElem = $elems.filter('.ms-hover').first();
289
+
290
+ if ($highlightedElem.length > 0){
291
+ if ($list.parent().hasClass('ms-selectable')){
292
+ this.select($highlightedElem.data('ms-value'));
293
+ } else {
294
+ this.deselect($highlightedElem.data('ms-value'));
295
+ }
296
+ $elems.removeClass('ms-hover');
297
+ }
298
+ },
299
+
300
+ 'switchList' : function($list){
301
+ $list.blur();
302
+ if ($list.parent().hasClass('ms-selectable')){
303
+ this.$selectionUl.focus();
304
+ } else {
305
+ this.$selectableUl.focus();
291
306
  }
292
307
  },
293
308
 
309
+ 'activeMouse' : function($list){
310
+ var that = this;
311
+
312
+ $list.on('mousemove', function(){
313
+ var elems = $list.find(that.elemsSelector);
314
+
315
+ elems.on('mouseenter', function(){
316
+ elems.removeClass('ms-hover');
317
+ $(this).addClass('ms-hover');
318
+ });
319
+ });
320
+ },
321
+
294
322
  'refresh' : function() {
323
+ this.destroy();
324
+ this.$element.multiSelect(this.options);
325
+ },
326
+
327
+ 'destroy' : function(){
295
328
  $("#ms-"+this.$element.attr("id")).remove();
296
- this.init(this.options);
329
+ this.$element.removeData('multiselect');
297
330
  },
298
331
 
299
332
  'select' : function(value, method){
300
- if (typeof value == 'string')
301
- value = [value]
333
+ if (typeof value === 'string'){ value = [value]; }
334
+
302
335
  var that = this,
303
336
  ms = this.$element,
304
- msIds = $.map(value, function(val, index){ return(that.sanitize(val)) }),
337
+ msIds = $.map(value, function(val){ return(that.sanitize(val, that.sanitizeRegexp)); }),
305
338
  selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable').filter(':not(.'+that.options.disabledClass+')'),
306
339
  selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection'),
307
- options = ms.find('option').filter(function(index){ return($.inArray(this.value, value) > -1) });
340
+ options = ms.find('option').filter(function(){ return($.inArray(this.value, value) > -1); });
308
341
 
309
342
  if (selectables.length > 0){
310
343
  selectables.addClass('ms-selected').hide();
@@ -315,7 +348,7 @@
315
348
  if (selectableOptgroups.length > 0){
316
349
  selectableOptgroups.each(function(){
317
350
  var selectablesLi = $(this).find('.ms-elem-selectable');
318
- if (selectablesLi.length == selectablesLi.filter('.ms-selected').length){
351
+ if (selectablesLi.length === selectablesLi.filter('.ms-selected').length){
319
352
  $(this).find('.ms-optgroup-label').hide();
320
353
  }
321
354
  });
@@ -328,11 +361,9 @@
328
361
  }
329
362
  });
330
363
  }
331
- if (method != 'init'){
332
- that.$selectionUl.focusout();
333
- that.$selectableUl.focusin();
364
+ if (method !== 'init'){
334
365
  ms.trigger('change');
335
- if (typeof that.options.afterSelect == 'function') {
366
+ if (typeof that.options.afterSelect === 'function') {
336
367
  that.options.afterSelect.call(this, value);
337
368
  }
338
369
  }
@@ -340,14 +371,14 @@
340
371
  },
341
372
 
342
373
  'deselect' : function(value){
343
- if (typeof value == 'string')
344
- value = [value]
374
+ if (typeof value === 'string'){ value = [value]; }
375
+
345
376
  var that = this,
346
377
  ms = this.$element,
347
- msIds = $.map(value, function(val, index){ return(that.sanitize(val)) }),
378
+ msIds = $.map(value, function(val){ return(that.sanitize(val, that.sanitizeRegexp)); }),
348
379
  selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),
349
380
  selections = this.$selectionUl.find('#' + msIds.join('-selection, #')+'-selection').filter('.ms-selected'),
350
- options = ms.find('option').filter(function(index){ return($.inArray(this.value, value) > -1) });
381
+ options = ms.find('option').filter(function(){ return($.inArray(this.value, value) > -1); });
351
382
 
352
383
  if (selections.length > 0){
353
384
  selectables.removeClass('ms-selected').show();
@@ -366,15 +397,13 @@
366
397
  var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');
367
398
  selectionOptgroups.each(function(){
368
399
  var selectionsLi = $(this).find('.ms-elem-selection');
369
- if (selectionsLi.filter('.ms-selected').length == 0){
400
+ if (selectionsLi.filter('.ms-selected').length === 0){
370
401
  $(this).find('.ms-optgroup-label').hide();
371
402
  }
372
403
  });
373
404
  }
374
- this.$selectableUl.focusout();
375
- this.$selectionUl.focusin();
376
405
  ms.trigger('change');
377
- if (typeof that.options.afterDeselect == 'function') {
406
+ if (typeof that.options.afterDeselect === 'function') {
378
407
  that.options.afterDeselect.call(this, value);
379
408
  }
380
409
  }
@@ -389,10 +418,9 @@
389
418
  this.$selectionUl.find('.ms-optgroup-label').show();
390
419
  this.$selectableUl.find('.ms-optgroup-label').hide();
391
420
  this.$selectionUl.find('.ms-elem-selection').addClass('ms-selected').show();
392
- this.$selectionUl.focusin();
393
- this.$selectableUl.focusout();
421
+ this.$selectionUl.focus();
394
422
  ms.trigger('change');
395
- if (typeof this.options.afterSelect == 'function') {
423
+ if (typeof this.options.afterSelect === 'function') {
396
424
  var selectedValues = $.grep(ms.val(), function(item){
397
425
  return $.inArray(item, values) < 0;
398
426
  });
@@ -409,10 +437,9 @@
409
437
  this.$selectionUl.find('.ms-optgroup-label').hide();
410
438
  this.$selectableUl.find('.ms-optgroup-label').show();
411
439
  this.$selectionUl.find('.ms-elem-selection').removeClass('ms-selected').hide();
412
- this.$selectableUl.focusin();
413
- this.$selectionUl.focusout();
440
+ this.$selectableUl.focus();
414
441
  ms.trigger('change');
415
- if (typeof this.options.afterDeselect == 'function') {
442
+ if (typeof this.options.afterDeselect === 'function') {
416
443
  this.options.afterDeselect.call(this, values);
417
444
  }
418
445
  },
@@ -426,10 +453,10 @@
426
453
  );
427
454
  },
428
455
 
429
- sanitize: function(value){
430
- return(value.replace(/[^A-Za-z0-9]*/gi, '_'));
456
+ sanitize: function(value, reg){
457
+ return(value.replace(reg, '_'));
431
458
  }
432
- }
459
+ };
433
460
 
434
461
  /* MULTISELECT PLUGIN DEFINITION
435
462
  * ======================= */
@@ -441,24 +468,24 @@
441
468
  return this.each(function () {
442
469
  var $this = $(this),
443
470
  data = $this.data('multiselect'),
444
- options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option == 'object' && option);
471
+ options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option === 'object' && option);
445
472
 
446
- if (!data) $this.data('multiselect', (data = new MultiSelect(this, options)))
473
+ if (!data){ $this.data('multiselect', (data = new MultiSelect(this, options))); }
447
474
 
448
- if (typeof option == 'string'){
449
- data[option](args[1])
475
+ if (typeof option === 'string'){
476
+ data[option](args[1]);
450
477
  } else {
451
478
  data.init();
452
479
  }
453
- })
454
- }
480
+ });
481
+ };
455
482
 
456
483
  $.fn.multiSelect.defaults = {
457
484
  selectableOptgroup: false,
458
485
  disabledClass : 'disabled',
459
486
  dblClick : false
460
- }
487
+ };
461
488
 
462
- $.fn.multiSelect.Constructor = MultiSelect
489
+ $.fn.multiSelect.Constructor = MultiSelect;
463
490
 
464
491
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  module MultiSelectRails
2
2
  module Rails
3
- VERSION = "0.9.5"
3
+ VERSION = "0.9.6"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multi-select-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-20 00:00:00.000000000 Z
12
+ date: 2013-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -70,15 +70,15 @@ files:
70
70
  - Gemfile
71
71
  - README.md
72
72
  - Rakefile
73
+ - app/assets/images/switch.png
74
+ - app/assets/javascripts/multi-select.js
75
+ - app/assets/stylesheets/multi-select.scss
73
76
  - lib/multi-select-rails.rb
74
77
  - lib/multi-select-rails/engine.rb
75
78
  - lib/multi-select-rails/railtie.rb
76
79
  - lib/multi-select-rails/version.rb
77
80
  - multi-select-rails.gemspec
78
81
  - multi-select.sublime-project
79
- - vendor/assets/images/switch.png
80
- - vendor/assets/javascripts/multi-select.js
81
- - vendor/assets/stylesheets/multi-select.scss
82
82
  homepage: https://github.com/klenis/multi-select-rails
83
83
  licenses: []
84
84
  post_install_message:
@@ -91,21 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
- segments:
95
- - 0
96
- hash: -981162216703867007
97
94
  required_rubygems_version: !ruby/object:Gem::Requirement
98
95
  none: false
99
96
  requirements:
100
97
  - - ! '>='
101
98
  - !ruby/object:Gem::Version
102
99
  version: '0'
103
- segments:
104
- - 0
105
- hash: -981162216703867007
106
100
  requirements: []
107
101
  rubyforge_project:
108
- rubygems_version: 1.8.24
102
+ rubygems_version: 1.8.23
109
103
  signing_key:
110
104
  specification_version: 3
111
105
  summary: Multiselect jQuery plugin for Rails asset pipeline