diff -r 000000000000 -r bb4aabe07487 src/pyams_skin/resources/js/ext/jquery-dataTables-rowReordering.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_skin/resources/js/ext/jquery-dataTables-rowReordering.js Thu Feb 19 10:59:00 2015 +0100 @@ -0,0 +1,257 @@ +/* + * File: jquery.dataTables.rowReordering.js + * Version: 1.2.1. + * Author: Jovan Popovic + * + * Copyright 2013 Jovan Popovic, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, as supplied with this software. + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. + * + * Parameters: + * @iIndexColumn int Position of the indexing column + * @sURL String Server side page tat will be notified that order is changed + * @iGroupingLevel int Defines that grouping is used + */ +(function ($) { + + "use strict"; + $.fn.rowReordering = function (options) { + + function _fnStartProcessingMode(oTable) { + /// + ///Function that starts "Processing" mode i.e. shows "Processing..." dialog while some action is executing(Default function) + /// + + if (oTable.fnSettings().oFeatures.bProcessing) { + $(".dataTables_processing").css('visibility', 'visible'); + } + } + + function _fnEndProcessingMode(oTable) { + /// + ///Function that ends the "Processing" mode and returns the table in the normal state(Default function) + /// + + if (oTable.fnSettings().oFeatures.bProcessing) { + $(".dataTables_processing").css('visibility', 'hidden'); + } + } + + ///Not used + function fnGetStartPosition(oTable, sSelector) { + var iStart = 1000000; + $(sSelector, oTable).each(function () { + var iPosition = parseInt(oTable.fnGetData(this, properties.iIndexColumn)); + if (iPosition < iStart) + iStart = iPosition; + }); + return iStart; + } + + function fnCancelSorting(oTable, tbody, properties, iLogLevel, sMessage) { + tbody.sortable('cancel'); + if (iLogLevel <= properties.iLogLevel) { + if (sMessage != undefined) { + properties.fnAlert(sMessage, ""); + } else { + properties.fnAlert("Row cannot be moved", ""); + } + } + properties.fnEndProcessingMode(oTable); + } + + function fnGetState(oTable, sSelector, id) { + + var tr = $("#" + id, oTable); + var iCurrentPosition = oTable.fnGetData(tr[0], properties.iIndexColumn); + var iNewPosition = -1; // fnGetStartPosition(sSelector); + var sDirection; + var trPrevious = tr.prev(sSelector); + if (trPrevious.length > 0) { + iNewPosition = parseInt(oTable.fnGetData(trPrevious[0], properties.iIndexColumn)); + if (iNewPosition < iCurrentPosition) { + iNewPosition = iNewPosition + 1; + } + } else { + var trNext = tr.next(sSelector); + if (trNext.length > 0) { + iNewPosition = parseInt(oTable.fnGetData(trNext[0], properties.iIndexColumn)); + if (iNewPosition > iCurrentPosition)//moved back + iNewPosition = iNewPosition - 1; + } + } + if (iNewPosition < iCurrentPosition) + sDirection = "back"; + else + sDirection = "forward"; + + return { sDirection: sDirection, iCurrentPosition: iCurrentPosition, iNewPosition: iNewPosition }; + + } + + function fnMoveRows(oTable, sSelector, iCurrentPosition, iNewPosition, sDirection, id, sGroup) { + var iStart = iCurrentPosition; + var iEnd = iNewPosition; + if (sDirection == "back") { + iStart = iNewPosition; + iEnd = iCurrentPosition; + } + + $(oTable.fnGetNodes()).each(function () { + if (sGroup != "" && $(this).attr("data-group") != sGroup) + return; + var tr = this; + var iRowPosition = parseInt(oTable.fnGetData(tr, properties.iIndexColumn)); + if (iStart <= iRowPosition && iRowPosition <= iEnd) { + if (tr.id == id) { + oTable.fnUpdate(iNewPosition, + oTable.fnGetPosition(tr), // get row position in current model + properties.iIndexColumn, + false); // false = defer redraw until all row updates are done + } else { + if (sDirection == "back") { + oTable.fnUpdate(iRowPosition + 1, + oTable.fnGetPosition(tr), // get row position in current model + properties.iIndexColumn, + false); // false = defer redraw until all row updates are done + } else { + oTable.fnUpdate(iRowPosition - 1, + oTable.fnGetPosition(tr), // get row position in current model + properties.iIndexColumn, + false); // false = defer redraw until all row updates are done + } + } + } + }); + + var oSettings = oTable.fnSettings(); + + //Standing Redraw Extension + //Author: Jonathan Hoguet + //http://datatables.net/plug-ins/api#fnStandingRedraw + if (oSettings.oFeatures.bServerSide === false) { + var before = oSettings._iDisplayStart; + oSettings.oApi._fnReDraw(oSettings); + //iDisplayStart has been reset to zero - so lets change it back + oSettings._iDisplayStart = before; + oSettings.oApi._fnCalculateEnd(oSettings); + } + //draw the 'current' page + oSettings.oApi._fnDraw(oSettings); + } + + function _fnAlert(message, type) { + alert(message); + } + + var defaults = { + iIndexColumn: 0, + iStartPosition: 1, + sURL: null, + sRequestType: "POST", + iGroupingLevel: 0, + fnAlert: _fnAlert, + fnSuccess: jQuery.noop, + iLogLevel: 1, + sDataGroupAttribute: "data-group", + fnStartProcessingMode: _fnStartProcessingMode, + fnEndProcessingMode: _fnEndProcessingMode, + fnUpdateAjaxRequest: jQuery.noop + }; + + var properties = $.extend(defaults, options); + + var iFrom, iTo; + + // Return a helper with preserved width of cells (see Issue 9) + var tableFixHelper = function (e, tr) { + var $originals = tr.children(); + var $helper = tr.clone(); + $helper.children().each(function (index) { + // Set helper cell sizes to match the original sizes + $(this).width($originals.eq(index).width()) + }); + return $helper; + }; + + return this.each(function () { + + var oTable = $(this).dataTable(); + + var aaSortingFixed = (oTable.fnSettings().aaSortingFixed == null ? new Array() : oTable.fnSettings().aaSortingFixed); + aaSortingFixed.push([properties.iIndexColumn, "asc"]); + + oTable.fnSettings().aaSortingFixed = aaSortingFixed; + + + for (var i = 0; i < oTable.fnSettings().aoColumns.length; i++) { + oTable.fnSettings().aoColumns[i].bSortable = false; + /*for(var j=0; j