src/ztfy/myams/resources/js/ext/jquery-select2-sortable.min.js
changeset 130 e3cb023c73b6
child 206 02a40997d8cb
equal deleted inserted replaced
129:e4e7fe9cc975 130:e3cb023c73b6
       
     1 (function(a){a.fn.extend({select2SortableOrder:function(){var b=this.filter("[multiple]");b.each(function(){var f=a(this);if(typeof(f.data("select2"))!=="object"){return false}var e=f.siblings(".select2-container");var d;var c=[];f.find("optgroup").each(function(g,h){c.push(h)});f.find("option").each(function(h,i){var j=a(this).parent("optgroup").prop("label");var g=this;if(j===undefined){if(this.value!==""&&!this.selected){c.push(g)}}});d=a(e.find('.select2-choices li[class!="select2-search-field"]').map(function(){if(!this){return undefined}var g=a(this).data("select2Data").id;return f.find('option[value="'+g+'"]')[0]}));d.push.apply(d,c);f.children().remove();f.append(d)});return b},select2Sortable:function(){var d=Array.prototype.slice.call(arguments,0);$this=this.filter("[multiple]"),validMethods=["destroy"];if(d.length===0||typeof(d[0])==="object"){var b={bindOrder:"formSubmit",sortableOptions:{placeholder:"ui-state-highlight",items:"li:not(.select2-search-field)",tolerance:"pointer"}};var c=a.extend(b,d[0]);if(typeof($this.data("select2"))!=="object"){$this.select2()}$this.each(function(){var e=a(this);var f=e.siblings(".select2-container").find(".select2-choices");f.sortable(c.sortableOptions);switch(c.bindOrder){case"sortableStop":f.on("sortstop.select2sortable",function(g,h){e.select2SortableOrder()});e.on("change",function(g){a(this).select2SortableOrder()});break;default:e.closest("form").unbind("submit.select2sortable").on("submit.select2sortable",function(){e.select2SortableOrder()});break}})}else{if(typeof(d[0]==="string")){if(a.inArray(d[0],validMethods)==-1){throw"Unknown method: "+d[0]}if(d[0]==="destroy"){$this.select2SortableDestroy()}}}return $this},select2SortableDestroy:function(){var b=this.filter("[multiple]");b.each(function(){var c=a(this);var d=c.parent().find(".select2-choices");c.closest("form").unbind("submit.select2sortable");d.unbind("sortstop.select2sortable");d.sortable("destroy")});return b}})}(jQuery));