src/pyams_skin/resources/js/ext/jquery-dataTables-rowReordering.js
changeset 566 a1707c607eec
parent 565 318533413200
child 567 bca1726b1d85
--- a/src/pyams_skin/resources/js/ext/jquery-dataTables-rowReordering.js	Sun Jul 19 02:02:20 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +0,0 @@
-/*
- * 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) {
-			///<summary>
-			///Function that starts "Processing" mode i.e. shows "Processing..." dialog while some action is executing(Default function)
-			///</summary>
-
-			if (oTable.fnSettings().oFeatures.bProcessing) {
-				$(".dataTables_processing").css('visibility', 'visible');
-			}
-		}
-
-		function _fnEndProcessingMode(oTable) {
-			///<summary>
-			///Function that ends the "Processing" mode and returns the table in the normal state(Default function)
-			///</summary>
-
-			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<aaSortingFixed.length; j++)
-				 {
-				 if( i == aaSortingFixed[j][0] )
-				 oTable.fnSettings().aoColumns[i].bSortable = false;
-				 }*/
-			}
-			oTable.fnDraw();
-
-			$("tbody", oTable).disableSelection().sortable({
-															   cursor: "move",
-															   helper: tableFixHelper,
-															   update: function (event, ui) {
-																   var $dataTable = oTable;
-																   var tbody = $(this);
-																   var sSelector = "tbody tr";
-																   var sGroup = "";
-																   if (properties.bGroupingUsed) {
-																	   sGroup = $(ui.item).attr(properties.sDataGroupAttribute);
-																	   if (sGroup == null || sGroup == undefined) {
-																		   fnCancelSorting($dataTable, tbody, properties, 3, "Grouping row cannot be moved");
-																		   return;
-																	   }
-																	   sSelector = "tbody tr[" + properties.sDataGroupAttribute + " ='" + sGroup + "']";
-																   }
-
-																   var oState = fnGetState($dataTable, sSelector, ui.item.context.id);
-																   if (oState.iNewPosition == -1) {
-																	   fnCancelSorting($dataTable, tbody, properties, 2);
-																	   return;
-																   }
-
-																   if (properties.sURL != null) {
-																	   properties.fnStartProcessingMode($dataTable);
-																	   var oAjaxRequest = {
-																		   url: properties.sURL,
-																		   type: properties.sRequestType,
-																		   data: { id: ui.item.context.id,
-																			   fromPosition: oState.iCurrentPosition,
-																			   toPosition: oState.iNewPosition,
-																			   direction: oState.sDirection,
-																			   group: sGroup
-																		   },
-																		   success: function (data) {
-																			   properties.fnSuccess(data);
-																			   fnMoveRows($dataTable, sSelector, oState.iCurrentPosition, oState.iNewPosition, oState.sDirection, ui.item.context.id, sGroup);
-																			   properties.fnEndProcessingMode($dataTable);
-																		   },
-																		   error: function (jqXHR) {
-																			   fnCancelSorting($dataTable, tbody, properties, 1, jqXHR.statusText);
-																		   }
-																	   };
-																	   properties.fnUpdateAjaxRequest(oAjaxRequest, properties, $dataTable);
-																	   $.ajax(oAjaxRequest);
-																   } else {
-																	   fnMoveRows($dataTable, sSelector, oState.iCurrentPosition, oState.iNewPosition, oState.sDirection, ui.item.context.id, sGroup);
-																   }
-
-															   }
-														   });
-
-		});
-
-	};
-})(jQuery);
\ No newline at end of file