src/pyams_skin/resources/js/ext/jquery-dataTables-colReorderWithResize.min.js
changeset 0 bb4aabe07487
child 475 79ae32c82e3e
equal deleted inserted replaced
-1:000000000000 0:bb4aabe07487
       
     1 (function(f,d,a){function e(k){var j=[];for(var h=0,g=k.length;h<g;h++){j[k[h]]=h}return j}function c(h,j,i){var g=h.splice(j,1)[0];h.splice(i,0,g)}function b(k,n,m){var j=[];for(var h=0,g=k.childNodes.length;h<g;h++){if(k.childNodes[h].nodeType==1){j.push(k.childNodes[h])}}var l=j[n];if(m!==null){k.insertBefore(l,j[m])}else{k.appendChild(l)}}f.fn.dataTableExt.oApi.fnColReorder=function(k,g,r){var o,l,n,u,v=k.aoColumns.length,t,m;if(g==r){return}if(g<0||g>=v){this.oApi._fnLog(k,1,"ColReorder 'from' index is out of bounds: "+g);return}if(r<0||r>=v){this.oApi._fnLog(k,1,"ColReorder 'to' index is out of bounds: "+r);return}var q=[];for(o=0,l=v;o<l;o++){q[o]=o}c(q,g,r);var s=e(q);for(o=0,l=k.aaSorting.length;o<l;o++){k.aaSorting[o][0]=s[k.aaSorting[o][0]]}if(k.aaSortingFixed!==null){for(o=0,l=k.aaSortingFixed.length;o<l;o++){k.aaSortingFixed[o][0]=s[k.aaSortingFixed[o][0]]}}for(o=0,l=v;o<l;o++){m=k.aoColumns[o];for(n=0,u=m.aDataSort.length;n<u;n++){m.aDataSort[n]=s[m.aDataSort[n]]}}for(o=0,l=v;o<l;o++){m=k.aoColumns[o];if(typeof m.mData=="number"){m.mData=s[m.mData];m.fnGetData=k.oApi._fnGetObjectDataFn(m.mData);m.fnSetData=k.oApi._fnSetObjectDataFn(m.mData)}}if(k.aoColumns[g].bVisible){var h=this.oApi._fnColumnIndexToVisible(k,g);var p=null;o=r<g?r:r+1;while(p===null&&o<v){p=this.oApi._fnColumnIndexToVisible(k,o);o++}t=k.nTHead.getElementsByTagName("tr");for(o=0,l=t.length;o<l;o++){b(t[o],h,p)}if(k.nTFoot!==null){t=k.nTFoot.getElementsByTagName("tr");for(o=0,l=t.length;o<l;o++){b(t[o],h,p)}}for(o=0,l=k.aoData.length;o<l;o++){if(k.aoData[o].nTr!==null){b(k.aoData[o].nTr,h,p)}}}c(k.aoColumns,g,r);c(k.aoPreSearchCols,g,r);for(o=0,l=k.aoData.length;o<l;o++){if(f.isArray(k.aoData[o]._aData)){c(k.aoData[o]._aData,g,r)}c(k.aoData[o]._anHidden,g,r)}for(o=0,l=k.aoHeader.length;o<l;o++){c(k.aoHeader[o],g,r)}if(k.aoFooter!==null){for(o=0,l=k.aoFooter.length;o<l;o++){c(k.aoFooter[o],g,r)}}for(o=0,l=v;o<l;o++){k.aoColumns[o].aDataSort=[o];k.aoColumns[o]._ColReorder_iOrigCol=o;f(k.aoColumns[o].nTh).unbind("click");this.oApi._fnSortAttachListener(k,k.aoColumns[o].nTh,o)}if(typeof ColVis!="undefined"){ColVis.fnRebuild(k.oInstance)}f(k.oInstance).trigger("column-reorder",[k,{iFrom:g,iTo:r,aiInvertMapping:s}]);if(typeof k.oInstance._oPluginFixedHeader!="undefined"){k.oInstance._oPluginFixedHeader.fnUpdate()}};ColReorder=function(h,g){if(!this.CLASS||this.CLASS!="ColReorder"){alert("Warning: ColReorder must be initialised with the keyword 'new'")}if(typeof g=="undefined"){g={}}this.s={dt:null,init:g,allowReorder:true,allowResize:true,fixed:0,dropCallback:null,mouse:{startX:-1,startY:-1,offsetX:-1,offsetY:-1,target:-1,targetIndex:-1,fromIndex:-1},aoTargets:[]};this.dom={drag:null,resize:null,pointer:null};this.table_size=-1;this.s.dt=h.oInstance.fnSettings();this._fnConstruct();h.oApi._fnCallbackReg(h,"aoDestroyCallback",jQuery.proxy(this._fnDestroy,this),"ColReorder");ColReorder.aoInstances.push(this);return this};ColReorder.prototype={fnReset:function(){var h=[];for(var j=0,g=this.s.dt.aoColumns.length;j<g;j++){h.push(this.s.dt.aoColumns[j]._ColReorder_iOrigCol)}this._fnOrderColumns(h)},_fnConstruct:function(){var m=this;var l,g;if(typeof this.s.init.allowReorder!="undefined"){this.s.allowReorder=this.s.init.allowReorder}if(typeof this.s.init.allowResize!="undefined"){this.s.allowResize=this.s.init.allowResize}if(typeof this.s.init.iFixedColumns!="undefined"){this.s.fixed=this.s.init.iFixedColumns}if(typeof this.s.init.fnReorderCallback!="undefined"){this.s.dropCallback=this.s.init.fnReorderCallback}for(l=0,g=this.s.dt.aoColumns.length;l<g;l++){if(l>this.s.fixed-1){this._fnMouseListener(l,this.s.dt.aoColumns[l].nTh)}this.s.dt.aoColumns[l]._ColReorder_iOrigCol=l}this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(i,n){m._fnStateSave.call(m,n)},"ColReorder_State");var h=null;if(typeof this.s.init.aiOrder!="undefined"){h=this.s.init.aiOrder.slice()}if(this.s.dt.oLoadedState&&typeof this.s.dt.oLoadedState.ColReorder!="undefined"&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length){h=this.s.dt.oLoadedState.ColReorder}if(h){if(!m.s.dt._bInitComplete){var k=false;this.s.dt.aoDrawCallback.push({fn:function(){if(!m.s.dt._bInitComplete&&!k){k=true;var i=e(h);m._fnOrderColumns.call(m,i)}},sName:"ColReorder_Pre"})}else{var j=e(h);m._fnOrderColumns.call(m,j)}}},_fnOrderColumns:function(h){if(h.length!=this.s.dt.aoColumns.length){this.s.dt.oInstance.oApi._fnLog(oDTSettings,1,"ColReorder - array reorder does not match known number of columns. Skipping.");return}for(var j=0,g=h.length;j<g;j++){var k=f.inArray(j,h);if(j!=k){c(h,k,j);this.s.dt.oInstance.fnColReorder(k,j)}}if(this.s.dt.oScroll.sX!==""||this.s.dt.oScroll.sY!==""){this.s.dt.oInstance.fnAdjustColumnSizing()}this.s.dt.oInstance.oApi._fnSaveState(this.s.dt)},_fnStateSave:function(h){var j,g,k,l;var m=this.s.dt;for(j=0;j<h.aaSorting.length;j++){h.aaSorting[j][0]=m.aoColumns[h.aaSorting[j][0]]._ColReorder_iOrigCol}aSearchCopy=f.extend(true,[],h.aoSearchCols);h.ColReorder=[];for(j=0,g=m.aoColumns.length;j<g;j++){l=m.aoColumns[j]._ColReorder_iOrigCol;h.aoSearchCols[l]=aSearchCopy[j];h.abVisCols[l]=m.aoColumns[j].bVisible;h.ColReorder.push(l)}},_fnMouseListener:function(g,j){var h=this;f(j).unbind("mousemove.ColReorder");f(j).unbind("mousedown.ColReorder");if(this.s.allowResize){f(j).bind("mousemove.ColReorder",function(l){if(h.dom.drag===null&&h.dom.resize===null){var i=l.target.nodeName=="TH"?l.target:f(l.target).parents("TH")[0];var m=f(i).offset();var k=f(i).innerWidth();if(Math.abs(l.pageX-Math.round(m.left+k))<=5){f(i).css({cursor:"col-resize"})}else{f(i).css({cursor:"pointer"})}}})}f(j).bind("mousedown.ColReorder",function(i){h._fnMouseDown.call(h,i,j,g);return false})},_fnMouseDown:function(o,g,m){var n=this,q=this.s.dt.aoColumns;if(f(g).css("cursor")=="col-resize"){this.s.mouse.startX=o.pageX;this.s.mouse.startWidth=f(g).width();this.s.mouse.resizeElem=f(g);var h=f(g).next();this.s.mouse.nextStartWidth=f(h).width();n.dom.resize=true;this.s.dt.aoColumns[m].bSortable=false;this.s.dt.oFeatures.bAutoWidth=false}else{if(this.s.allowReorder){n.dom.resize=null;var p=o.target.nodeName=="TH"?o.target:f(o.target).parents("TH")[0];var l=f(p).offset();this.s.mouse.startX=o.pageX;this.s.mouse.startY=o.pageY;this.s.mouse.offsetX=o.pageX-l.left;this.s.mouse.offsetY=o.pageY-l.top;this.s.mouse.target=g;this.s.mouse.targetIndex=f("th",g.parentNode).index(g);this.s.mouse.fromIndex=this.s.dt.oInstance.oApi._fnVisibleToColumnIndex(this.s.dt,this.s.mouse.targetIndex);this.s.aoTargets.splice(0,this.s.aoTargets.length);this.s.aoTargets.push({x:f(this.s.dt.nTable).offset().left,to:0});var k=0;for(var m=0,j=q.length;m<j;m++){if(m!=this.s.mouse.fromIndex){k++}if(q[m].bVisible){this.s.aoTargets.push({x:f(q[m].nTh).offset().left+f(q[m].nTh).outerWidth(),to:k})}}if(this.s.fixed!==0){this.s.aoTargets.splice(0,this.s.fixed)}}}f(a).bind("mousemove.ColReorder",function(i){n._fnMouseMove.call(n,i,m)});f(a).bind("mouseup.ColReorder",function(i){setTimeout(function(){n._fnMouseUp.call(n,i,m)},10)})},_fnMouseMove:function(r,p){var q=this;var l;l=this.s.dt.oInit.sScrollX===""?false:true;if(this.table_size<0&&l&&f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)!=undefined){if(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper).length>0){this.table_size=f(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)[0].childNodes[0].childNodes[0]).width()}}if(this.dom.resize){var h=this.s.mouse.resizeElem;var j=f(h).next();var s=r.pageX-this.s.mouse.startX;if(s!=0&&!l){f(j).width(this.s.mouse.nextStartWidth-s)}f(h).width(this.s.mouse.startWidth+s);if(l&&f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)!=undefined){if(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper).length>0){f(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)[0].childNodes[0].childNodes[0]).width(this.table_size+s)}}var n;if(f("div.dataTables_scrollBody")!=null){if(f("div.dataTables_scrollBody").length>0){var g;n=-1;for(g=-1;g<this.s.dt.aoColumns.length-1&&g!=p;g++){if(this.s.dt.aoColumns[g+1].bVisible){n++}}tableScroller=f("div.dataTables_scrollBody",this.s.dt.nTableWrapper)[0];scrollingTableHead=f(tableScroller)[0].childNodes[0].childNodes[0].childNodes[0];if(s!=0&&!l){f(f(scrollingTableHead)[0].childNodes[n+1]).width(this.s.mouse.nextStartWidth-s)}f(f(scrollingTableHead)[0].childNodes[n]).width(this.s.mouse.startWidth+s);if(l){f(f(tableScroller)[0].childNodes[0]).width(this.table_size+s)}}}return}else{if(this.s.allowReorder){if(this.dom.drag===null){if(Math.pow(Math.pow(r.pageX-this.s.mouse.startX,2)+Math.pow(r.pageY-this.s.mouse.startY,2),0.5)<5){return}this._fnCreateDragNode()}this.dom.drag.style.left=(r.pageX-this.s.mouse.offsetX)+"px";this.dom.drag.style.top=(r.pageY-this.s.mouse.offsetY)+"px";var m=false;for(var o=1,k=this.s.aoTargets.length;o<k;o++){if(r.pageX<this.s.aoTargets[o-1].x+((this.s.aoTargets[o].x-this.s.aoTargets[o-1].x)/2)){this.dom.pointer.style.left=this.s.aoTargets[o-1].x+"px";this.s.mouse.toIndex=this.s.aoTargets[o-1].to;m=true;break}}if(!m){this.dom.pointer.style.left=this.s.aoTargets[this.s.aoTargets.length-1].x+"px";this.s.mouse.toIndex=this.s.aoTargets[this.s.aoTargets.length-1].to}}}},_fnMouseUp:function(o,k){var n=this;f(a).unbind("mousemove.ColReorder");f(a).unbind("mouseup.ColReorder");if(this.dom.drag!==null){a.body.removeChild(this.dom.drag);a.body.removeChild(this.dom.pointer);this.dom.drag=null;this.dom.pointer=null;this.s.dt.oInstance.fnColReorder(this.s.mouse.fromIndex,this.s.mouse.toIndex);if(this.s.dt.oScroll.sX!==""||this.s.dt.oScroll.sY!==""){this.s.dt.oInstance.fnAdjustColumnSizing()}if(this.s.dropCallback!==null){this.s.dropCallback.call(this)}this._fnConstruct();this.s.dt.oInstance.oApi._fnSaveState(this.s.dt)}else{if(this.dom.resize!==null){var l;var h;var p;var m;var q;var g;this.s.dt.aoColumns[k].bSortable=true;this.s.dt.aoColumns[k].sWidth=f(this.s.mouse.resizeElem).innerWidth()+"px";g=this.s.dt.oInit.sScrollX===""?false:true;if(!g){for(m=k+1;m<this.s.dt.aoColumns.length;m++){if(this.s.dt.aoColumns[m].bVisible){break}}for(q=k-1;q>=0;q--){if(this.s.dt.aoColumns[q].bVisible){break}}if(this.s.dt.aoColumns.length>m){this.s.dt.aoColumns[m].sWidth=f(this.s.mouse.resizeElem).next().innerWidth()+"px"}else{p=this.s.mouse.resizeElem;for(l=q;l>0;l--){if(this.s.dt.aoColumns[l].bVisible){p=f(p).prev();this.s.dt.aoColumns[l].sWidth=f(p).innerWidth()+"px"}}}}if(g&&f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)!=undefined){if(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper).length>0){this.table_size=f(f("div.dataTables_scrollHead",this.s.dt.nTableWrapper)[0].childNodes[0].childNodes[0]).width()}}this.s.dt.oInstance.oApi._fnSaveState(this.s.dt)}}this.dom.resize=null},_fnCreateDragNode:function(){var g=this;this.dom.drag=f(this.s.dt.nTHead.parentNode).clone(true)[0];this.dom.drag.className+=" DTCR_clonedTable";while(this.dom.drag.getElementsByTagName("caption").length>0){this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("caption")[0])}while(this.dom.drag.getElementsByTagName("tbody").length>0){this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("tbody")[0])}while(this.dom.drag.getElementsByTagName("tfoot").length>0){this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("tfoot")[0])}f("thead tr:eq(0)",this.dom.drag).each(function(){f("th:not(:eq("+g.s.mouse.targetIndex+"))",this).remove()});f("tr",this.dom.drag).height(f("tr:eq(0)",g.s.dt.nTHead).height());f("thead tr:gt(0)",this.dom.drag).remove();f("thead th:eq(0)",this.dom.drag).each(function(h){this.style.width=f("th:eq("+g.s.mouse.targetIndex+")",g.s.dt.nTHead).width()+"px"});this.dom.drag.style.position="absolute";this.dom.drag.style.zIndex=1200;this.dom.drag.style.top="0px";this.dom.drag.style.left="0px";this.dom.drag.style.width=f("th:eq("+g.s.mouse.targetIndex+")",g.s.dt.nTHead).outerWidth()+"px";this.dom.pointer=a.createElement("div");this.dom.pointer.className="DTCR_pointer";this.dom.pointer.style.position="absolute";if(this.s.dt.oScroll.sX===""&&this.s.dt.oScroll.sY===""){this.dom.pointer.style.top=f(this.s.dt.nTable).offset().top+"px";this.dom.pointer.style.height=f(this.s.dt.nTable).height()+"px"}else{this.dom.pointer.style.top=f("div.dataTables_scroll",this.s.dt.nTableWrapper).offset().top+"px";this.dom.pointer.style.height=f("div.dataTables_scroll",this.s.dt.nTableWrapper).height()+"px"}a.body.appendChild(this.dom.pointer);a.body.appendChild(this.dom.drag)},_fnDestroy:function(){for(var h=0,g=ColReorder.aoInstances.length;h<g;h++){if(ColReorder.aoInstances[h]===this){ColReorder.aoInstances.splice(h,1);break}}f(this.s.dt.nTHead).find("*").unbind(".ColReorder");this.s.dt.oInstance._oPluginColReorder=null;this.s=null}};ColReorder.aoInstances=[];ColReorder.fnReset=function(h){for(var j=0,g=ColReorder.aoInstances.length;j<g;j++){if(ColReorder.aoInstances[j].s.dt.oInstance==h){ColReorder.aoInstances[j].fnReset()}}};ColReorder.prototype.CLASS="ColReorder";ColReorder.VERSION="1.0.7";ColReorder.prototype.VERSION=ColReorder.VERSION;if(typeof f.fn.dataTable=="function"&&typeof f.fn.dataTableExt.fnVersionCheck=="function"&&f.fn.dataTableExt.fnVersionCheck("1.9.3")){f.fn.dataTableExt.aoFeatures.push({fnInit:function(i){var g=i.oInstance;if(typeof g._oPluginColReorder=="undefined"){var h=typeof i.oInit.oColReorder!="undefined"?i.oInit.oColReorder:{};g._oPluginColReorder=new ColReorder(i,h)}else{g.oApi._fnLog(i,1,"ColReorder attempted to initialise twice. Ignoring second")}return null},cFeature:"R",sFeature:"ColReorder"})}else{alert("Warning: ColReorder requires DataTables 1.9.3 or greater - www.datatables.net/download")}})(jQuery,window,document);