select2.jet.min.js 3.1 KB

1
  1. (function(e){e.fn.select2.amd.require(["select2/utils","select2/dropdown","select2/dropdown/attachBody","select2/dropdown/search","select2/dropdown/minimumResultsForSearch","select2/dropdown/closeOnSelect"],function(t,n,r,i,s,o){r.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),r=this.$dropdown.hasClass("select2-dropdown--below"),i=null,s=this.$container.position(),o=this.$container.offset();o.bottom=o.top+this.$container.outerHeight(!1);var u={height:this.$container.outerHeight(!1)};u.top=o.top,u.bottom=o.top+u.height;var a={height:this.$dropdown.outerHeight(!1)},f={top:t.scrollTop(),bottom:t.scrollTop()+t.height()},l=f.top<o.top-a.height,c=f.bottom>o.bottom+a.height,h={left:o.left,top:u.bottom};!n&&!r&&(i="below"),!c&&l&&!n?i="above":!l&&c&&n&&(i="below");if(i=="above"||n&&i!=="below")h.top=u.top-a.height;if(i!=null){this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+i),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+i);var p=this.$dropdown.find(".select2-search");i=="above"&&p.is(":first-child")?p.detach().appendTo(this.$dropdown):i=="below"&&p.is(":last-child")&&p.detach().prependTo(this.$dropdown)}this.$dropdownContainer.css(h)},r.prototype.render=function(t){var n=e("<span></span>"),r=t.call(this);return n.append(r),this.$dropdownContainer=n,this.$element.prop("multiple")?this.$dropdown.addClass("select2-multiple-dropdown"):this.$dropdown.removeClass("select2-multiple-dropdown"),n},n.prototype.render=function(){var t="";this.options.get("multiple")&&(t='<div class="select2-buttons"><a href="#" class="select2-buttons-button select2-buttons-button-select-all">'+django.gettext("select all")+"</a> "+'<a href="#" class="select2-buttons-button select2-buttons-button-deselect-all">'+django.gettext("deselect all")+"</a>"+"</div>");var n=e('<span class="select2-dropdown">'+t+'<span class="select2-results"></span>'+"</span>"),r=this.$element;return n.find(".select2-buttons-button-select-all").on("click",function(t){t.preventDefault();var n=[];r.find("option").each(function(){n.push(e(this).val())}),r.select2("val",n),r.select2("close")}),n.find(".select2-buttons-button-deselect-all").on("click",function(e){e.preventDefault(),r.select2("val",""),r.select2("close")}),n.attr("dir",this.options.get("dir")),this.$dropdown=n,n};var u=t.Decorate(t.Decorate(n,i),r);u=t.Decorate(u,s),u=t.Decorate(u,o),e(document).on("select:init","select",function(){var t=e(this);if(t.parents(".empty-form").length>0)return;var n={theme:"jet",dropdownAdapter:u};if(t.hasClass("ajax")){var r=t.data("content-type-id"),i=t.data("app-label"),s=t.data("model"),o=t.data("object-id"),a=100;n.ajax={dataType:"json",data:function(e){return{content_type:r,app_label:i,model:s,q:e.term,page:e.page,page_size:a,object_id:o}},processResults:function(e,t){if(e.error)return{};t.page=t.page||1;var n=t.page*a<e.total;return{results:e.items,pagination:{more:n}}}}}t.select2(n)}),e(document).ready(function(){e("select").trigger("select:init")})})})(jet.jQuery);