multi-select-rails 0.9.5 → 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
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