forked from Wavyzz/dolibarr
New: update jquery datatables with 1.9.1
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
/*
|
||||
* File: ColReorder.js
|
||||
* Version: 1.0.2
|
||||
* Version: 1.0.5
|
||||
* CVS: $Id$
|
||||
* Description: Controls for column visiblity in DataTables
|
||||
* Author: Allan Jardine (www.sprymedia.co.uk)
|
||||
* Created: Wed Sep 15 18:23:29 BST 2010
|
||||
* Modified: $Date$ by $Author$
|
||||
* Language: Javascript
|
||||
* License: GPL v2 or BSD 3 point style
|
||||
* Project: DataTables
|
||||
@@ -107,7 +109,7 @@ function fnDomSwitch( nParent, iFrom, iTo )
|
||||
*/
|
||||
$.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo )
|
||||
{
|
||||
var i, iLen, j, jLen, iCols=oSettings.aoColumns.length, nTrs;
|
||||
var i, iLen, j, jLen, iCols=oSettings.aoColumns.length, nTrs, oCol;
|
||||
|
||||
/* Sanity check in the input */
|
||||
if ( iFrom == iTo )
|
||||
@@ -161,7 +163,22 @@ $.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo )
|
||||
/* Data column sorting (the column which the sort for a given column should take place on) */
|
||||
for ( i=0, iLen=iCols ; i<iLen ; i++ )
|
||||
{
|
||||
oSettings.aoColumns[i].iDataSort = aiInvertMapping[ oSettings.aoColumns[i].iDataSort ];
|
||||
oCol = oSettings.aoColumns[i];
|
||||
for ( j=0, jLen=oCol.aDataSort.length ; j<jLen ; j++ )
|
||||
{
|
||||
oCol.aDataSort[j] = aiInvertMapping[ oCol.aDataSort[j] ];
|
||||
}
|
||||
}
|
||||
|
||||
/* Update the Get and Set functions for each column */
|
||||
for ( i=0, iLen=iCols ; i<iLen ; i++ )
|
||||
{
|
||||
oCol = oSettings.aoColumns[i];
|
||||
if ( typeof oCol.mDataProp == 'number' ) {
|
||||
oCol.mDataProp = aiInvertMapping[ oCol.mDataProp ];
|
||||
oCol.fnGetData = oSettings.oApi._fnGetObjectDataFn( oCol.mDataProp );
|
||||
oCol.fnSetData = oSettings.oApi._fnSetObjectDataFn( oCol.mDataProp );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -204,7 +221,10 @@ $.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo )
|
||||
/* Body */
|
||||
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
|
||||
{
|
||||
fnDomSwitch( oSettings.aoData[i].nTr, iVisibleIndex, iInsertBeforeIndex );
|
||||
if ( oSettings.aoData[i].nTr !== null )
|
||||
{
|
||||
fnDomSwitch( oSettings.aoData[i].nTr, iVisibleIndex, iInsertBeforeIndex );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -324,6 +344,14 @@ ColReorder = function( oTable, oOpts )
|
||||
*/
|
||||
"fixed": 0,
|
||||
|
||||
/**
|
||||
* Callback function for once the reorder has been done
|
||||
* @property dropcallback
|
||||
* @type function
|
||||
* @default null
|
||||
*/
|
||||
"dropCallback": null,
|
||||
|
||||
/**
|
||||
* @namespace Information used for the mouse drag
|
||||
*/
|
||||
@@ -421,6 +449,12 @@ ColReorder.prototype = {
|
||||
this.s.fixed = this.s.init.iFixedColumns;
|
||||
}
|
||||
|
||||
/* Drop callback initialisation option */
|
||||
if ( typeof this.s.init.fnReorderCallback != 'undefined' )
|
||||
{
|
||||
this.s.dropCallback = this.s.init.fnReorderCallback;
|
||||
}
|
||||
|
||||
/* Add event handlers for the drag and drop, and also mark the original column order */
|
||||
for ( i=0, iLen=this.s.dt.aoColumns.length ; i<iLen ; i++ )
|
||||
{
|
||||
@@ -434,12 +468,9 @@ ColReorder.prototype = {
|
||||
}
|
||||
|
||||
/* State saving */
|
||||
this.s.dt.aoStateSave.push( {
|
||||
"fn": function (oS, sVal) {
|
||||
return that._fnStateSave.call( that, sVal );
|
||||
},
|
||||
"sName": "ColReorder_State"
|
||||
} );
|
||||
this.s.dt.oApi._fnCallbackReg( this.s.dt, 'aoStateSaveParams', function (oS, oData) {
|
||||
that._fnStateSave.call( that, oData );
|
||||
}, "ColReorder_State" );
|
||||
|
||||
/* An initial column order has been specified */
|
||||
var aiOrder = null;
|
||||
@@ -526,72 +557,41 @@ ColReorder.prototype = {
|
||||
|
||||
|
||||
/**
|
||||
* This function effectively replaces the state saving function in DataTables (this is needed
|
||||
* because otherwise DataTables would state save the columns in their reordered state, not the
|
||||
* original which is needed on first draw). This is sensitive to any changes in the DataTables
|
||||
* state saving method!
|
||||
* Because we change the indexes of columns in the table, relative to their starting point
|
||||
* we need to reorder the state columns to what they are at the starting point so we can
|
||||
* then rearrange them again on state load!
|
||||
* @method _fnStateSave
|
||||
* @param string sCurrentVal
|
||||
* @param object oState DataTables state
|
||||
* @returns string JSON encoded cookie string for DataTables
|
||||
* @private
|
||||
*/
|
||||
"_fnStateSave": function ( sCurrentVal )
|
||||
"_fnStateSave": function ( oState )
|
||||
{
|
||||
var i, iLen, sTmp;
|
||||
var sValue = sCurrentVal.split('"aaSorting"')[0];
|
||||
var a = [];
|
||||
var i, iLen, aCopy, iOrigColumn;
|
||||
var oSettings = this.s.dt;
|
||||
|
||||
|
||||
/* Sorting */
|
||||
sValue += '"aaSorting":[ ';
|
||||
for ( i=0 ; i<oSettings.aaSorting.length ; i++ )
|
||||
for ( i=0 ; i<oState.aaSorting.length ; i++ )
|
||||
{
|
||||
sValue += '['+oSettings.aoColumns[ oSettings.aaSorting[i][0] ]._ColReorder_iOrigCol+
|
||||
',"'+oSettings.aaSorting[i][1]+'"],';
|
||||
oState.aaSorting[i][0] = oSettings.aoColumns[ oState.aaSorting[i][0] ]._ColReorder_iOrigCol;
|
||||
}
|
||||
sValue = sValue.substring(0, sValue.length-1);
|
||||
sValue += "],";
|
||||
|
||||
/* Column filter */
|
||||
|
||||
aSearchCopy = $.extend( true, [], oState.aoSearchCols );
|
||||
oState.ColReorder = [];
|
||||
|
||||
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
||||
{
|
||||
a[ oSettings.aoColumns[i]._ColReorder_iOrigCol ] = {
|
||||
"sSearch": encodeURIComponent(oSettings.aoPreSearchCols[i].sSearch),
|
||||
"bRegex": !oSettings.aoPreSearchCols[i].bRegex
|
||||
};
|
||||
}
|
||||
iOrigColumn = oSettings.aoColumns[i]._ColReorder_iOrigCol;
|
||||
|
||||
/* Column filter */
|
||||
oState.aoSearchCols[ iOrigColumn ] = aSearchCopy[i];
|
||||
|
||||
/* Visibility */
|
||||
oState.abVisCols[ iOrigColumn ] = oSettings.aoColumns[i].bVisible;
|
||||
|
||||
sValue += '"aaSearchCols":[ ';
|
||||
for ( i=0 ; i<a.length ; i++ )
|
||||
{
|
||||
sValue += '["'+a[i].sSearch+'",'+a[i].bRegex+'],';
|
||||
/* Column reordering */
|
||||
oState.ColReorder.push( iOrigColumn );
|
||||
}
|
||||
sValue = sValue.substring(0, sValue.length-1);
|
||||
sValue += "],";
|
||||
|
||||
/* Visibility */
|
||||
a = [];
|
||||
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
||||
{
|
||||
a[ oSettings.aoColumns[i]._ColReorder_iOrigCol ] = oSettings.aoColumns[i].bVisible;
|
||||
}
|
||||
|
||||
sValue += '"abVisCols":[ ';
|
||||
for ( i=0 ; i<a.length ; i++ )
|
||||
{
|
||||
sValue += a[i]+",";
|
||||
}
|
||||
sValue = sValue.substring(0, sValue.length-1);
|
||||
sValue += "],";
|
||||
|
||||
/* Column reordering */
|
||||
a = [];
|
||||
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ ) {
|
||||
a.push( oSettings.aoColumns[i]._ColReorder_iOrigCol );
|
||||
}
|
||||
sValue += '"ColReorder":['+a.join(',')+']';
|
||||
|
||||
return sValue;
|
||||
},
|
||||
|
||||
|
||||
@@ -774,6 +774,11 @@ ColReorder.prototype = {
|
||||
this.s.dt.oInstance.fnAdjustColumnSizing();
|
||||
}
|
||||
|
||||
if ( this.s.dropCallback !== null )
|
||||
{
|
||||
this.s.dropCallback.call( this );
|
||||
}
|
||||
|
||||
/* Save the state */
|
||||
this.s.dt.oInstance.oApi._fnSaveState( this.s.dt );
|
||||
}
|
||||
@@ -793,6 +798,10 @@ ColReorder.prototype = {
|
||||
|
||||
this.dom.drag = $(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] );
|
||||
@@ -903,9 +912,9 @@ ColReorder.prototype.CLASS = "ColReorder";
|
||||
* ColReorder version
|
||||
* @constant VERSION
|
||||
* @type String
|
||||
* @default 1.0.2
|
||||
* @default As code
|
||||
*/
|
||||
ColReorder.VERSION = "1.0.2";
|
||||
ColReorder.VERSION = "1.0.5";
|
||||
ColReorder.prototype.VERSION = ColReorder.VERSION;
|
||||
|
||||
|
||||
@@ -921,7 +930,7 @@ ColReorder.prototype.VERSION = ColReorder.VERSION;
|
||||
*/
|
||||
if ( typeof $.fn.dataTable == "function" &&
|
||||
typeof $.fn.dataTableExt.fnVersionCheck == "function" &&
|
||||
$.fn.dataTableExt.fnVersionCheck('1.8.0') )
|
||||
$.fn.dataTableExt.fnVersionCheck('1.9.0') )
|
||||
{
|
||||
$.fn.dataTableExt.aoFeatures.push( {
|
||||
"fnInit": function( oDTSettings ) {
|
||||
@@ -942,7 +951,7 @@ if ( typeof $.fn.dataTable == "function" &&
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( "Warning: ColReorder requires DataTables 1.8.0 or greater - www.datatables.net/download");
|
||||
alert( "Warning: ColReorder requires DataTables 1.9.0 or greater - www.datatables.net/download");
|
||||
}
|
||||
|
||||
})(jQuery, window, document);
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* File: ColReorder.min.js
|
||||
* Version: 1.0.2
|
||||
* Version: 1.0.5
|
||||
* Author: Allan Jardine (www.sprymedia.co.uk)
|
||||
*
|
||||
* Copyright 2010-2011 Allan Jardine, all rights reserved.
|
||||
@@ -12,22 +12,22 @@
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
|
||||
*/
|
||||
(function(f,o,i){function l(a){for(var c=[],d=0,b=a.length;d<b;d++)c[a[d]]=d;return c}function j(a,c,d){c=a.splice(c,1)[0];a.splice(d,0,c)}function m(a,c,d){for(var b=[],e=0,h=a.childNodes.length;e<h;e++)a.childNodes[e].nodeType==1&&b.push(a.childNodes[e]);c=b[c];d!==null?a.insertBefore(c,b[d]):a.appendChild(c)}f.fn.dataTableExt.oApi.fnColReorder=function(a,c,d){var b,e,h=a.aoColumns.length,g;if(c!=d)if(c<0||c>=h)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+c);else if(d<0||d>=
|
||||
h)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+d);else{g=[];b=0;for(e=h;b<e;b++)g[b]=b;j(g,c,d);g=l(g);b=0;for(e=a.aaSorting.length;b<e;b++)a.aaSorting[b][0]=g[a.aaSorting[b][0]];if(a.aaSortingFixed!==null){b=0;for(e=a.aaSortingFixed.length;b<e;b++)a.aaSortingFixed[b][0]=g[a.aaSortingFixed[b][0]]}b=0;for(e=h;b<e;b++)a.aoColumns[b].iDataSort=g[a.aoColumns[b].iDataSort];if(a.aoColumns[c].bVisible){var n=this.oApi._fnColumnIndexToVisible(a,c),k=null;for(b=d<c?d:d+1;k===null&&b<h;){k=
|
||||
this.oApi._fnColumnIndexToVisible(a,b);b++}g=a.nTHead.getElementsByTagName("tr");b=0;for(e=g.length;b<e;b++)m(g[b],n,k);if(a.nTFoot!==null){g=a.nTFoot.getElementsByTagName("tr");b=0;for(e=g.length;b<e;b++)m(g[b],n,k)}b=0;for(e=a.aoData.length;b<e;b++)m(a.aoData[b].nTr,n,k)}j(a.aoColumns,c,d);j(a.aoPreSearchCols,c,d);b=0;for(e=a.aoData.length;b<e;b++){f.isArray(a.aoData[b]._aData)&&j(a.aoData[b]._aData,c,d);j(a.aoData[b]._anHidden,c,d)}b=0;for(e=a.aoHeader.length;b<e;b++)j(a.aoHeader[b],c,d);if(a.aoFooter!==
|
||||
null){b=0;for(e=a.aoFooter.length;b<e;b++)j(a.aoFooter[b],c,d)}b=0;for(e=h;b<e;b++){f(a.aoColumns[b].nTh).unbind("click");this.oApi._fnSortAttachListener(a,a.aoColumns[b].nTh,b)}typeof ColVis!="undefined"&&ColVis.fnRebuild(a.oInstance);typeof a.oInstance._oPluginFixedHeader!="undefined"&&a.oInstance._oPluginFixedHeader.fnUpdate()}};ColReorder=function(a,c){if(!this.CLASS||this.CLASS!="ColReorder")alert("Warning: ColReorder must be initialised with the keyword 'new'");if(typeof c=="undefined")c={};
|
||||
this.s={dt:null,init:c,fixed:0,mouse:{startX:-1,startY:-1,offsetX:-1,offsetY:-1,target:-1,targetIndex:-1,fromIndex:-1},aoTargets:[]};this.dom={drag:null,pointer:null};this.s.dt=a.fnSettings();this._fnConstruct();ColReorder.aoInstances.push(this);return this};ColReorder.prototype={fnReset:function(){for(var a=[],c=0,d=this.s.dt.aoColumns.length;c<d;c++)a.push(this.s.dt.aoColumns[c]._ColReorder_iOrigCol);this._fnOrderColumns(a)},_fnConstruct:function(){var a=this,c,d;if(typeof this.s.init.iFixedColumns!=
|
||||
"undefined")this.s.fixed=this.s.init.iFixedColumns;c=0;for(d=this.s.dt.aoColumns.length;c<d;c++){c>this.s.fixed-1&&this._fnMouseListener(c,this.s.dt.aoColumns[c].nTh);this.s.dt.aoColumns[c]._ColReorder_iOrigCol=c}this.s.dt.aoStateSave.push({fn:function(h,g){return a._fnStateSave.call(a,g)},sName:"ColReorder_State"});var b=null;if(typeof this.s.init.aiOrder!="undefined")b=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)b=this.s.dt.oLoadedState.ColReorder;if(b)if(a.s.dt._bInitComplete){c=l(b);a._fnOrderColumns.call(a,c)}else{var e=false;this.s.dt.aoDrawCallback.push({fn:function(){if(!a.s.dt._bInitComplete&&!e){e=true;var h=l(b);a._fnOrderColumns.call(a,h)}},sName:"ColReorder_Pre"})}},_fnOrderColumns:function(a){if(a.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.");else{for(var c=
|
||||
0,d=a.length;c<d;c++){var b=f.inArray(c,a);if(c!=b){j(a,b,c);this.s.dt.oInstance.fnColReorder(b,c)}}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(a){var c,d=a.split('"aaSorting"')[0],b=[],e=this.s.dt;d+='"aaSorting":[ ';for(a=0;a<e.aaSorting.length;a++)d+="["+e.aoColumns[e.aaSorting[a][0]]._ColReorder_iOrigCol+',"'+e.aaSorting[a][1]+'"],';d=d.substring(0,d.length-1);d+="],";
|
||||
a=0;for(c=e.aoColumns.length;a<c;a++)b[e.aoColumns[a]._ColReorder_iOrigCol]={sSearch:encodeURIComponent(e.aoPreSearchCols[a].sSearch),bRegex:!e.aoPreSearchCols[a].bRegex};d+='"aaSearchCols":[ ';for(a=0;a<b.length;a++)d+='["'+b[a].sSearch+'",'+b[a].bRegex+"],";d=d.substring(0,d.length-1);d+="],";b=[];a=0;for(c=e.aoColumns.length;a<c;a++)b[e.aoColumns[a]._ColReorder_iOrigCol]=e.aoColumns[a].bVisible;d+='"abVisCols":[ ';for(a=0;a<b.length;a++)d+=b[a]+",";d=d.substring(0,d.length-1);d+="],";b=[];a=0;
|
||||
for(c=e.aoColumns.length;a<c;a++)b.push(e.aoColumns[a]._ColReorder_iOrigCol);d+='"ColReorder":['+b.join(",")+"]";return d},_fnMouseListener:function(a,c){var d=this;f(c).bind("mousedown.ColReorder",function(b){d._fnMouseDown.call(d,b,c);return false})},_fnMouseDown:function(a,c){var d=this,b=this.s.dt.aoColumns,e=a.target.nodeName=="TH"?a.target:f(a.target).parents("TH")[0];e=f(e).offset();this.s.mouse.startX=a.pageX;this.s.mouse.startY=a.pageY;this.s.mouse.offsetX=a.pageX-e.left;this.s.mouse.offsetY=
|
||||
a.pageY-e.top;this.s.mouse.target=c;this.s.mouse.targetIndex=f("th",c.parentNode).index(c);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});c=a=0;for(e=b.length;c<e;c++){c!=this.s.mouse.fromIndex&&a++;b[c].bVisible&&this.s.aoTargets.push({x:f(b[c].nTh).offset().left+f(b[c].nTh).outerWidth(),to:a})}this.s.fixed!==0&&this.s.aoTargets.splice(0,
|
||||
this.s.fixed);f(i).bind("mousemove.ColReorder",function(h){d._fnMouseMove.call(d,h)});f(i).bind("mouseup.ColReorder",function(h){d._fnMouseUp.call(d,h)})},_fnMouseMove:function(a){if(this.dom.drag===null){if(Math.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5)<5)return;this._fnCreateDragNode()}this.dom.drag.style.left=a.pageX-this.s.mouse.offsetX+"px";this.dom.drag.style.top=a.pageY-this.s.mouse.offsetY+"px";for(var c=false,d=1,b=this.s.aoTargets.length;d<
|
||||
b;d++)if(a.pageX<this.s.aoTargets[d-1].x+(this.s.aoTargets[d].x-this.s.aoTargets[d-1].x)/2){this.dom.pointer.style.left=this.s.aoTargets[d-1].x+"px";this.s.mouse.toIndex=this.s.aoTargets[d-1].to;c=true;break}if(!c){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(){f(i).unbind("mousemove.ColReorder");f(i).unbind("mouseup.ColReorder");if(this.dom.drag!==null){i.body.removeChild(this.dom.drag);
|
||||
i.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();this.s.dt.oInstance.oApi._fnSaveState(this.s.dt)}},_fnCreateDragNode:function(){var a=this;this.dom.drag=f(this.s.dt.nTHead.parentNode).clone(true)[0];for(this.dom.drag.className+=" DTCR_clonedTable";this.dom.drag.getElementsByTagName("tbody").length>
|
||||
0;)this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("tbody")[0]);for(;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("+a.s.mouse.targetIndex+"))",this).remove()});f("tr",this.dom.drag).height(f("tr:eq(0)",a.s.dt.nTHead).height());f("thead tr:gt(0)",this.dom.drag).remove();f("thead th:eq(0)",this.dom.drag).each(function(){this.style.width=f("th:eq("+
|
||||
a.s.mouse.targetIndex+")",a.s.dt.nTHead).width()+"px"});this.dom.drag.style.position="absolute";this.dom.drag.style.top="0px";this.dom.drag.style.left="0px";this.dom.drag.style.width=f("th:eq("+a.s.mouse.targetIndex+")",a.s.dt.nTHead).outerWidth()+"px";this.dom.pointer=i.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"}i.body.appendChild(this.dom.pointer);i.body.appendChild(this.dom.drag)}};ColReorder.aoInstances=[];ColReorder.fnReset=function(a){for(var c=0,d=ColReorder.aoInstances.length;c<d;c++)ColReorder.aoInstances[c].s.dt.oInstance==a&&ColReorder.aoInstances[c].fnReset()};ColReorder.prototype.CLASS=
|
||||
"ColReorder";ColReorder.VERSION="1.0.2";ColReorder.prototype.VERSION=ColReorder.VERSION;typeof f.fn.dataTable=="function"&&typeof f.fn.dataTableExt.fnVersionCheck=="function"&&f.fn.dataTableExt.fnVersionCheck("1.8.0")?f.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var c=a.oInstance;if(typeof c._oPluginColReorder=="undefined")c._oPluginColReorder=new ColReorder(a.oInstance,typeof a.oInit.oColReorder!="undefined"?a.oInit.oColReorder:{});else c.oApi._fnLog(a,1,"ColReorder attempted to initialise twice. Ignoring second");
|
||||
return null},cFeature:"R",sFeature:"ColReorder"}):alert("Warning: ColReorder requires DataTables 1.8.0 or greater - www.datatables.net/download")})(jQuery,window,document);
|
||||
(function(f,o,i){function m(a){for(var c=[],d=0,b=a.length;d<b;d++)c[a[d]]=d;return c}function j(a,c,d){c=a.splice(c,1)[0];a.splice(d,0,c)}function n(a,c,d){for(var b=[],e=0,f=a.childNodes.length;e<f;e++)1==a.childNodes[e].nodeType&&b.push(a.childNodes[e]);c=b[c];null!==d?a.insertBefore(c,b[d]):a.appendChild(c)}f.fn.dataTableExt.oApi.fnColReorder=function(a,c,d){var b,e,g,l,k=a.aoColumns.length,h;if(c!=d)if(0>c||c>=k)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+c);else if(0>d||
|
||||
d>=k)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+d);else{g=[];for(b=0,e=k;b<e;b++)g[b]=b;j(g,c,d);var i=m(g);for(b=0,e=a.aaSorting.length;b<e;b++)a.aaSorting[b][0]=i[a.aaSorting[b][0]];if(null!==a.aaSortingFixed)for(b=0,e=a.aaSortingFixed.length;b<e;b++)a.aaSortingFixed[b][0]=i[a.aaSortingFixed[b][0]];for(b=0,e=k;b<e;b++){h=a.aoColumns[b];for(g=0,l=h.aDataSort.length;g<l;g++)h.aDataSort[g]=i[h.aDataSort[g]]}for(b=0,e=k;b<e;b++)if(h=a.aoColumns[b],"number"==typeof h.mDataProp)h.mDataProp=
|
||||
i[h.mDataProp],h.fnGetData=a.oApi._fnGetObjectDataFn(h.mDataProp),h.fnSetData=a.oApi._fnSetObjectDataFn(h.mDataProp);if(a.aoColumns[c].bVisible){l=this.oApi._fnColumnIndexToVisible(a,c);h=null;for(b=d<c?d:d+1;null===h&&b<k;)h=this.oApi._fnColumnIndexToVisible(a,b),b++;g=a.nTHead.getElementsByTagName("tr");for(b=0,e=g.length;b<e;b++)n(g[b],l,h);if(null!==a.nTFoot){g=a.nTFoot.getElementsByTagName("tr");for(b=0,e=g.length;b<e;b++)n(g[b],l,h)}for(b=0,e=a.aoData.length;b<e;b++)null!==a.aoData[b].nTr&&
|
||||
n(a.aoData[b].nTr,l,h)}j(a.aoColumns,c,d);j(a.aoPreSearchCols,c,d);for(b=0,e=a.aoData.length;b<e;b++)f.isArray(a.aoData[b]._aData)&&j(a.aoData[b]._aData,c,d),j(a.aoData[b]._anHidden,c,d);for(b=0,e=a.aoHeader.length;b<e;b++)j(a.aoHeader[b],c,d);if(null!==a.aoFooter)for(b=0,e=a.aoFooter.length;b<e;b++)j(a.aoFooter[b],c,d);for(b=0,e=k;b<e;b++)f(a.aoColumns[b].nTh).unbind("click"),this.oApi._fnSortAttachListener(a,a.aoColumns[b].nTh,b);"undefined"!=typeof ColVis&&ColVis.fnRebuild(a.oInstance);"undefined"!=
|
||||
typeof a.oInstance._oPluginFixedHeader&&a.oInstance._oPluginFixedHeader.fnUpdate()}};ColReorder=function(a,c){(!this.CLASS||"ColReorder"!=this.CLASS)&&alert("Warning: ColReorder must be initialised with the keyword 'new'");"undefined"==typeof c&&(c={});this.s={dt:null,init:c,fixed:0,dropCallback:null,mouse:{startX:-1,startY:-1,offsetX:-1,offsetY:-1,target:-1,targetIndex:-1,fromIndex:-1},aoTargets:[]};this.dom={drag:null,pointer:null};this.s.dt=a.fnSettings();this._fnConstruct();ColReorder.aoInstances.push(this);
|
||||
return this};ColReorder.prototype={fnReset:function(){for(var a=[],c=0,d=this.s.dt.aoColumns.length;c<d;c++)a.push(this.s.dt.aoColumns[c]._ColReorder_iOrigCol);this._fnOrderColumns(a)},_fnConstruct:function(){var a=this,c,d;if("undefined"!=typeof this.s.init.iFixedColumns)this.s.fixed=this.s.init.iFixedColumns;if("undefined"!=typeof this.s.init.fnReorderCallback)this.s.dropCallback=this.s.init.fnReorderCallback;for(c=0,d=this.s.dt.aoColumns.length;c<d;c++)c>this.s.fixed-1&&this._fnMouseListener(c,
|
||||
this.s.dt.aoColumns[c].nTh),this.s.dt.aoColumns[c]._ColReorder_iOrigCol=c;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(b,c){a._fnStateSave.call(a,c)},"ColReorder_State");var b=null;"undefined"!=typeof this.s.init.aiOrder&&(b=this.s.init.aiOrder.slice());if(this.s.dt.oLoadedState&&"undefined"!=typeof this.s.dt.oLoadedState.ColReorder&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length)b=this.s.dt.oLoadedState.ColReorder;if(b)if(a.s.dt._bInitComplete)c=m(b),
|
||||
a._fnOrderColumns.call(a,c);else{var e=!1;this.s.dt.aoDrawCallback.push({fn:function(){if(!a.s.dt._bInitComplete&&!e){e=!0;var c=m(b);a._fnOrderColumns.call(a,c)}},sName:"ColReorder_Pre"})}},_fnOrderColumns:function(a){if(a.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.");else{for(var c=0,d=a.length;c<d;c++){var b=f.inArray(c,a);c!=b&&(j(a,b,c),this.s.dt.oInstance.fnColReorder(b,c))}(""!==
|
||||
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(a){var c,d,b,e=this.s.dt;for(c=0;c<a.aaSorting.length;c++)a.aaSorting[c][0]=e.aoColumns[a.aaSorting[c][0]]._ColReorder_iOrigCol;aSearchCopy=f.extend(!0,[],a.aoSearchCols);a.ColReorder=[];for(c=0,d=e.aoColumns.length;c<d;c++)b=e.aoColumns[c]._ColReorder_iOrigCol,a.aoSearchCols[b]=aSearchCopy[c],a.abVisCols[b]=e.aoColumns[c].bVisible,a.ColReorder.push(b)},
|
||||
_fnMouseListener:function(a,c){var d=this;f(c).bind("mousedown.ColReorder",function(a){d._fnMouseDown.call(d,a,c);return!1})},_fnMouseDown:function(a,c){var d=this,b=this.s.dt.aoColumns,e="TH"==a.target.nodeName?a.target:f(a.target).parents("TH")[0],e=f(e).offset();this.s.mouse.startX=a.pageX;this.s.mouse.startY=a.pageY;this.s.mouse.offsetX=a.pageX-e.left;this.s.mouse.offsetY=a.pageY-e.top;this.s.mouse.target=c;this.s.mouse.targetIndex=f("th",c.parentNode).index(c);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});for(var g=e=0,j=b.length;g<j;g++)g!=this.s.mouse.fromIndex&&e++,b[g].bVisible&&this.s.aoTargets.push({x:f(b[g].nTh).offset().left+f(b[g].nTh).outerWidth(),to:e});0!==this.s.fixed&&this.s.aoTargets.splice(0,this.s.fixed);f(i).bind("mousemove.ColReorder",function(a){d._fnMouseMove.call(d,a)});f(i).bind("mouseup.ColReorder",function(a){d._fnMouseUp.call(d,a)})},
|
||||
_fnMouseMove:function(a){if(null===this.dom.drag){if(5>Math.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5))return;this._fnCreateDragNode()}this.dom.drag.style.left=a.pageX-this.s.mouse.offsetX+"px";this.dom.drag.style.top=a.pageY-this.s.mouse.offsetY+"px";for(var c=!1,d=1,b=this.s.aoTargets.length;d<b;d++)if(a.pageX<this.s.aoTargets[d-1].x+(this.s.aoTargets[d].x-this.s.aoTargets[d-1].x)/2){this.dom.pointer.style.left=this.s.aoTargets[d-1].x+"px";this.s.mouse.toIndex=
|
||||
this.s.aoTargets[d-1].to;c=!0;break}if(!c)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(){f(i).unbind("mousemove.ColReorder");f(i).unbind("mouseup.ColReorder");if(null!==this.dom.drag)i.body.removeChild(this.dom.drag),i.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),(""!==
|
||||
this.s.dt.oScroll.sX||""!==this.s.dt.oScroll.sY)&&this.s.dt.oInstance.fnAdjustColumnSizing(),null!==this.s.dropCallback&&this.s.dropCallback.call(this),this.s.dt.oInstance.oApi._fnSaveState(this.s.dt)},_fnCreateDragNode:function(){var a=this;this.dom.drag=f(this.s.dt.nTHead.parentNode).clone(!0)[0];for(this.dom.drag.className+=" DTCR_clonedTable";0<this.dom.drag.getElementsByTagName("caption").length;)this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("caption")[0]);for(;0<this.dom.drag.getElementsByTagName("tbody").length;)this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("tbody")[0]);
|
||||
for(;0<this.dom.drag.getElementsByTagName("tfoot").length;)this.dom.drag.removeChild(this.dom.drag.getElementsByTagName("tfoot")[0]);f("thead tr:eq(0)",this.dom.drag).each(function(){f("th:not(:eq("+a.s.mouse.targetIndex+"))",this).remove()});f("tr",this.dom.drag).height(f("tr:eq(0)",a.s.dt.nTHead).height());f("thead tr:gt(0)",this.dom.drag).remove();f("thead th:eq(0)",this.dom.drag).each(function(){this.style.width=f("th:eq("+a.s.mouse.targetIndex+")",a.s.dt.nTHead).width()+"px"});this.dom.drag.style.position=
|
||||
"absolute";this.dom.drag.style.top="0px";this.dom.drag.style.left="0px";this.dom.drag.style.width=f("th:eq("+a.s.mouse.targetIndex+")",a.s.dt.nTHead).outerWidth()+"px";this.dom.pointer=i.createElement("div");this.dom.pointer.className="DTCR_pointer";this.dom.pointer.style.position="absolute";""===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"):(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");i.body.appendChild(this.dom.pointer);i.body.appendChild(this.dom.drag)}};ColReorder.aoInstances=[];ColReorder.fnReset=function(a){for(var c=0,d=ColReorder.aoInstances.length;c<d;c++)ColReorder.aoInstances[c].s.dt.oInstance==a&&ColReorder.aoInstances[c].fnReset()};ColReorder.prototype.CLASS="ColReorder";ColReorder.VERSION="1.0.5";ColReorder.prototype.VERSION=
|
||||
ColReorder.VERSION;"function"==typeof f.fn.dataTable&&"function"==typeof f.fn.dataTableExt.fnVersionCheck&&f.fn.dataTableExt.fnVersionCheck("1.9.0")?f.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var c=a.oInstance;"undefined"==typeof c._oPluginColReorder?c._oPluginColReorder=new ColReorder(a.oInstance,"undefined"!=typeof a.oInit.oColReorder?a.oInit.oColReorder:{}):c.oApi._fnLog(a,1,"ColReorder attempted to initialise twice. Ignoring second");return null},cFeature:"R",sFeature:"ColReorder"}):
|
||||
alert("Warning: ColReorder requires DataTables 1.9.0 or greater - www.datatables.net/download")})(jQuery,window,document);
|
||||
|
||||
Reference in New Issue
Block a user