|
1 | 1 | /* |
2 | | - * Bootstrap Duallistbox - v3.0.5 |
| 2 | + * Bootstrap Duallistbox - v3.0.6 |
3 | 3 | * A responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices. |
4 | 4 | * http://www.virtuosoft.eu/code/bootstrap-duallistbox/ |
5 | 5 | * |
|
30 | 30 | infoTextFiltered: '<span class="label label-warning">Filtered</span> {0} from {1}', // when not all of the options are visible due to the filter |
31 | 31 | infoTextEmpty: 'Empty list', // when there are no options present in the list |
32 | 32 | filterOnValues: false, // filter by selector's values, boolean |
33 | | - sortByInputOrder: false |
| 33 | + sortByInputOrder: false, |
| 34 | + eventMoveOverride: false, // boolean, allows user to unbind default event behaviour and run their own instead |
| 35 | + eventMoveAllOverride: false, // boolean, allows user to unbind default event behaviour and run their own instead |
| 36 | + eventRemoveOverride: false, // boolean, allows user to unbind default event behaviour and run their own instead |
| 37 | + eventRemoveAllOverride: false // boolean, allows user to unbind default event behaviour and run their own instead |
34 | 38 | }, |
35 | 39 | // Selections are invisible on android if the containing select is styled with CSS |
36 | 40 | // http://code.google.com/p/android/issues/detail?id=16922 |
|
255 | 259 | refreshSelects(dualListbox); |
256 | 260 | triggerChangeEvent(dualListbox); |
257 | 261 | sortOptions(dualListbox.elements.select1); |
| 262 | + if(dualListbox.settings.sortByInputOrder){ |
| 263 | + sortOptionsByInputOrder(dualListbox.elements.select2); |
| 264 | + } |
258 | 265 | } |
259 | 266 |
|
260 | 267 | function moveAll(dualListbox) { |
|
321 | 328 | dualListbox.setSelectedFilter('', true); |
322 | 329 | }); |
323 | 330 |
|
324 | | - dualListbox.elements.moveButton.on('click', function() { |
325 | | - move(dualListbox); |
326 | | - }); |
| 331 | + if (dualListbox.settings.eventMoveOverride === false) { |
| 332 | + dualListbox.elements.moveButton.on('click', function() { |
| 333 | + move(dualListbox); |
| 334 | + }); |
| 335 | + } |
327 | 336 |
|
328 | | - dualListbox.elements.moveAllButton.on('click', function() { |
329 | | - moveAll(dualListbox); |
330 | | - }); |
| 337 | + if (dualListbox.settings.eventMoveAllOverride === false) { |
| 338 | + dualListbox.elements.moveAllButton.on('click', function() { |
| 339 | + moveAll(dualListbox); |
| 340 | + }); |
| 341 | + } |
331 | 342 |
|
332 | | - dualListbox.elements.removeButton.on('click', function() { |
333 | | - remove(dualListbox); |
334 | | - }); |
| 343 | + if (dualListbox.settings.eventRemoveOverride === false) { |
| 344 | + dualListbox.elements.removeButton.on('click', function() { |
| 345 | + remove(dualListbox); |
| 346 | + }); |
| 347 | + } |
335 | 348 |
|
336 | | - dualListbox.elements.removeAllButton.on('click', function() { |
337 | | - removeAll(dualListbox); |
338 | | - }); |
| 349 | + if (dualListbox.settings.eventRemoveAllOverride === false) { |
| 350 | + dualListbox.elements.removeAllButton.on('click', function() { |
| 351 | + removeAll(dualListbox); |
| 352 | + }); |
| 353 | + } |
339 | 354 |
|
340 | 355 | dualListbox.elements.filterInput1.on('change keyup', function() { |
341 | 356 | filter(dualListbox, 1); |
|
449 | 464 | this.setInfoTextEmpty(this.settings.infoTextEmpty); |
450 | 465 | this.setFilterOnValues(this.settings.filterOnValues); |
451 | 466 | this.setSortByInputOrder(this.settings.sortByInputOrder); |
| 467 | + this.setEventMoveOverride(this.settings.eventMoveOverride); |
| 468 | + this.setEventMoveAllOverride(this.settings.eventMoveAllOverride); |
| 469 | + this.setEventRemoveOverride(this.settings.eventRemoveOverride); |
| 470 | + this.setEventRemoveAllOverride(this.settings.eventRemoveAllOverride); |
452 | 471 |
|
453 | 472 | // Hide the original select |
454 | 473 | this.element.hide(); |
|
690 | 709 | } |
691 | 710 | return this.element; |
692 | 711 | }, |
| 712 | + setEventMoveOverride: function(value, refresh) { |
| 713 | + this.settings.eventMoveOverride = value; |
| 714 | + if (refresh) { |
| 715 | + refreshSelects(this); |
| 716 | + } |
| 717 | + return this.element; |
| 718 | + }, |
| 719 | + setEventMoveAllOverride: function(value, refresh) { |
| 720 | + this.settings.eventMoveAllOverride = value; |
| 721 | + if (refresh) { |
| 722 | + refreshSelects(this); |
| 723 | + } |
| 724 | + return this.element; |
| 725 | + }, |
| 726 | + setEventRemoveOverride: function(value, refresh) { |
| 727 | + this.settings.eventRemoveOverride = value; |
| 728 | + if (refresh) { |
| 729 | + refreshSelects(this); |
| 730 | + } |
| 731 | + return this.element; |
| 732 | + }, |
| 733 | + setEventRemoveAllOverride: function(value, refresh) { |
| 734 | + this.settings.eventRemoveAllOverride = value; |
| 735 | + if (refresh) { |
| 736 | + refreshSelects(this); |
| 737 | + } |
| 738 | + return this.element; |
| 739 | + }, |
693 | 740 | getContainer: function() { |
694 | 741 | return this.container; |
695 | 742 | }, |
|
0 commit comments