Ubuntu

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ (function($){$.fn.extend({select2SortableOrder:function(){var $this=this.filter("[multiple]");$this.each(function(){var $select=$(this);if(typeof $select.data("select2")!=="object"){return false}var $select2=$select.siblings(".select2-container"),unselected=[],sorted;$select.find("option").each(function(){!this.selected&&unselected.push(this)});sorted=$($select2.find('.select2-choices li[class!="select2-search-field"]').map(function(){if(!this){return undefined}var id=$(this).data("select2Data").id;return $select.find('option[value="'+id+'"]')[0]}));sorted.push.apply(sorted,unselected);$select.children().remove();$select.append(sorted)});return $this},select2Sortable:function(){var args=Array.prototype.slice.call(arguments,0);$this=this.filter("[multiple]"),validMethods=["destroy"];if(args.length===0||typeof args[0]==="object"){var defaultOptions={bindOrder:"formSubmit",sortableOptions:{placeholder:"ui-state-highlight",items:"li:not(.select2-search-field)",tolerance:"pointer"}};var options=$.extend(defaultOptions,args[0]);if(typeof $this.data("select2")!=="object"){$this.select2()}$this.each(function(){var $select=$(this),$select2choices=$select.siblings(".select2-container").find(".select2-choices");$select2choices.sortable(options.sortableOptions);switch(options.bindOrder){case"sortableStop":$select2choices.on("sortstop.select2sortable",function(event,ui){$select.select2SortableOrder()});$select.on("change",function(e){$(this).select2SortableOrder()});break;default:$select.closest("form").unbind("submit.select2sortable").on("submit.select2sortable",function(){$select.select2SortableOrder()})}})}else if(typeof(args[0]==="string")){if($.inArray(args[0],validMethods)==-1){throw"Unknown method: "+args[0]}if(args[0]==="destroy"){$this.select2SortableDestroy()}}return $this},select2SortableDestroy:function(){var $this=this.filter("[multiple]");$this.each(function(){var $select=$(this),$select2choices=$select.parent().find(".select2-choices");$select.closest("form").unbind("submit.select2sortable");$select2choices.unbind("sortstop.select2sortable");$select2choices.sortable("destroy")});return $this}})})(jQuery);