src/pyams_skin/resources/js/myams-dataTables.js
changeset 566 a1707c607eec
parent 565 318533413200
child 567 bca1726b1d85
--- a/src/pyams_skin/resources/js/myams-dataTables.js	Sun Jul 19 02:02:20 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,718 +0,0 @@
-/*
- * MyAMS extensions to jquery-dataTables plug-in
- * Version 0.1.0
- * ©2014-2015 Thierry Florac <tflorac@ulthar.net>
- */
-
-
-(function($, globals) {
-
-	"use strict";
-
-	/**
-	 * Update default values for DataTables initialization
-	 */
-	$.extend(true, $.fn.dataTable.defaults, {
-		"sDom": "R<'dt-top-row'CLF>r<'dt-wrapper't><'dt-row dt-bottom-row'<'row'<'col-sm-6'i><'col-sm-6 text-right'p>>",
-		"sPaginationType": "bootstrap",
-		"oLanguage": {
-			"sLengthMenu": "_MENU_",
-			"sSearch": "_INPUT_"
-		}
-	});
-
-
-	/**
-	 * Default class modification
-	 */
-	$.extend($.fn.dataTableExt.oStdClasses, {
-		"sWrapper": "dataTables_wrapper form-inline"
-	});
-
-
-	/**
-	 * API method to get paging information
-	 */
-	$.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {
-		return {
-			"iStart":         oSettings._iDisplayStart,
-			"iEnd":           oSettings.fnDisplayEnd(),
-			"iLength":        oSettings._iDisplayLength,
-			"iTotal":         oSettings.fnRecordsTotal(),
-			"iFilteredTotal": oSettings.fnRecordsDisplay(),
-			"iPage":          oSettings._iDisplayLength === -1 ? 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
-			"iTotalPages":    oSettings._iDisplayLength === -1 ? 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
-		};
-	};
-
-
-	/**
-	 * Custom sorting plug-in
-	 */
-	$.fn.dataTableExt.aTypes.unshift(
-		function(sData) {
-			if (sData !== null && sData.match(/^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/[0-3][0-9]{3}$/)) {
-				return 'date-euro';
-			}
-			return null;
-		}
-	);
-
-	$.fn.dataTableExt.aTypes.unshift(
-		function(sData) {
-			if (sData !== null && sData.match(/^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/[0-3][0-9]{3} - ([0-1][0-9]|2[0-3]):[0-5][0-9]$/)) {
-				return 'datetime-euro';
-			}
-			return null;
-		}
-	);
-
-	$.extend($.fn.dataTableExt.oSort, {
-
-		// numeric-comma column sorter
-		"numeric-comma-asc": function(a, b) {
-			var x = a.replace(/,/, ".").replace(/ /g, '');
-			var y = b.replace(/,/, ".").replace(/ /g, '');
-			x = parseFloat(x);
-			y = parseFloat(y);
-			return ((x < y) ? -1 : ((x > y) ?  1 : 0));
-		},
-		"numeric-comma-desc": function(a, b) {
-			var x = a.replace(/,/, ".").replace(/ /g, '');
-			var y = b.replace(/,/, ".").replace(/ /g, '');
-			x = parseFloat(x);
-			y = parseFloat(y);
-			return ((x < y) ?  1 : ((x > y) ? -1 : 0));
-		},
-
-		// date-euro column sorter
-		"date-euro-pre": function(a) {
-			var trimmed = $.trim(a);
-			var x;
-			if (trimmed !== '') {
-				var frDate= trimmed.split('/');
-				x = (frDate[2] + frDate[1] + frDate[0]) * 1;
-			} else {
-				x = 10000000; // = l'an 1000 ...
-			}
-			return x;
-		},
-
-		"date-euro-asc": function(a, b) {
-			return a - b;
-		},
-
-		"date-euro-desc": function(a, b) {
-			return b - a;
-		},
-
-		// datetime-euro column sorter
-		"datetime-euro-pre": function(a) {
-			var trimmed = $.trim(a);
-			var x;
-			if (trimmed !== '') {
-				var frDateTime = trimmed.split(' - ');
-				var frDate= frDateTime[0].split('/');
-				var frTime = frDateTime[1].split(':');
-				x = (frDate[2] + frDate[1] + frDate[0] + frTime[0] + frTime[1]) * 1;
-			} else {
-				x = 100000000000; // = l'an 1000 ...
-			}
-			return x;
-		},
-
-		"datetime-euro-asc": function(a, b) {
-			return a - b;
-		},
-
-		"datetime-euro-desc": function(a, b) {
-			return b - a;
-		}
-	});
-
-
-	/**
-	 * Bootstrap style pagination control
-	 */
-	$.extend($.fn.dataTableExt.oPagination, {
-		"bootstrap": {
-			"fnInit": function(oSettings, nPaging, fnDraw) {
-				var oLang = oSettings.oLanguage.oPaginate;
-				var fnClickHandler = function (e) {
-					e.preventDefault();
-					if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
-						fnDraw(oSettings);
-					}
-				};
-
-				$(nPaging).append(
-					'<ul class="pagination">' +
-						'<li class="prev disabled"><a href="#">' + oLang.sPrevious + '</a></li>' +
-						'<li class="next disabled"><a href="#">' + oLang.sNext + '</a></li>' +
-					'</ul>'
-				);
-				var els = $('a', nPaging);
-				$(els[0]).on('click.DT', { action: "previous" }, fnClickHandler);
-				$(els[1]).on('click.DT', { action: "next" }, fnClickHandler);
-			},
-
-			"fnUpdate": function (oSettings, fnDraw) {
-				var iListLength = 5;
-				var oPaging = oSettings.oInstance.fnPagingInfo();
-				var an = oSettings.aanFeatures.p;
-				var i,
-					j,
-					sClass,
-					iStart,
-					iEnd,
-					iLen,
-					iHalf=Math.floor(iListLength/2);
-
-				if (oPaging.iTotalPages < iListLength) {
-					iStart = 1;
-					iEnd = oPaging.iTotalPages;
-				} else if (oPaging.iPage <= iHalf) {
-					iStart = 1;
-					iEnd = iListLength;
-				} else if (oPaging.iPage >= (oPaging.iTotalPages-iHalf)) {
-					iStart = oPaging.iTotalPages - iListLength + 1;
-					iEnd = oPaging.iTotalPages;
-				} else {
-					iStart = oPaging.iPage - iHalf + 1;
-					iEnd = iStart + iListLength - 1;
-				}
-
-				for (i=0, iLen=an.length ; i<iLen ; i++) {
-					// Remove the middle elements
-					$('li:gt(0)', an[i]).filter(':not(:last)').remove();
-
-					// Add the new list items and their event handlers
-					for (j=iStart ; j<=iEnd ; j++) {
-						sClass = (j === oPaging.iPage+1) ? 'class="active"' : '';
-						$('<li '+sClass+'><a href="#">'+j+'</a></li>')
-							.insertBefore( $('li:last', an[i])[0] )
-							.on('click', function (e) {
-								e.preventDefault();
-								oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
-								fnDraw( oSettings );
-							});
-					}
-
-					// Add / remove disabled classes from the static elements
-					if (oPaging.iPage === 0) {
-						$('li:first', an[i]).addClass('disabled');
-					} else {
-						$('li:first', an[i]).removeClass('disabled');
-					}
-
-					if (oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0) {
-						$('li:last', an[i]).addClass('disabled');
-					} else {
-						$('li:last', an[i]).removeClass('disabled');
-					}
-				}
-			}
-		}
-	});
-
-
-	/**
-	 * Bootstrap style full pagination control
-	 */
-	$.extend( $.fn.dataTableExt.oPagination, {
-		"bootstrap_full": {
-			"fnInit": function(oSettings, nPaging, fnDraw) {
-				var oLang = oSettings.oLanguage.oPaginate;
-				var fnClickHandler = function (e) {
-					e.preventDefault();
-					if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
-						fnDraw(oSettings);
-					}
-				};
-
-				$(nPaging).append(
-					'<ul class="pagination">' +
-						'<li class="first disabled"><a href="#">' + oLang.sFirst + '</a></li>' +
-						'<li class="prev disabled"><a href="#">' + oLang.sPrevious + '</a></li>' +
-						'<li class="next disabled"><a href="#">' + oLang.sNext + '</a></li>' +
-						'<li class="last disabled"><a href="#">' + oLang.sLast + '</a></li>' +
-					'</ul>'
-				);
-				var els = $('a', nPaging);
-				$(els[0]).on('click.DT', { action: "first" }, fnClickHandler);
-				$(els[1]).on('click.DT', { action: "previous" }, fnClickHandler);
-				$(els[2]).on('click.DT', { action: "next" }, fnClickHandler);
-				$(els[3]).on('click.DT', { action: "last" }, fnClickHandler);
-			},
-
-			"fnUpdate": function (oSettings, fnDraw) {
-				var iListLength = 5;
-				var oPaging = oSettings.oInstance.fnPagingInfo();
-				var an = oSettings.aanFeatures.p;
-				var i,
-					j,
-					sClass,
-					iStart,
-					iLen,
-					iEnd,
-					iHalf=Math.floor(iListLength/2);
-
-				if (oPaging.iTotalPages < iListLength) {
-					iStart = 1;
-					iEnd = oPaging.iTotalPages;
-				} else if (oPaging.iPage <= iHalf) {
-					iStart = 1;
-					iEnd = iListLength;
-				} else if (oPaging.iPage >= (oPaging.iTotalPages-iHalf)) {
-					iStart = oPaging.iTotalPages - iListLength + 1;
-					iEnd = oPaging.iTotalPages;
-				} else {
-					iStart = oPaging.iPage - iHalf + 1;
-					iEnd = iStart + iListLength - 1;
-				}
-
-				for (i=0, iLen=an.length ; i<iLen ; i++) {
-					// Remove the middle elements
-					$('li', an[i]).filter(":not(.first)").filter(":not(.last)").filter(":not(.prev)").filter(":not(.next)").remove();
-
-					// Add the new list items and their event handlers
-					for (j=iStart ; j<=iEnd ; j++) {
-						sClass = (j === oPaging.iPage+1) ? 'class="active"' : '';
-						$('<li '+sClass+'><a href="#">'+j+'</a></li>')
-							.insertBefore( $('li.next', an[i])[0] )
-							.on('click', function (e) {
-								e.preventDefault();
-								oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
-								fnDraw( oSettings );
-							});
-					}
-
-					// Add / remove disabled classes from the static elements
-					if (oPaging.iPage === 0) {
-						$('li.first', an[i]).addClass('disabled');
-						$('li.prev', an[i]).addClass('disabled');
-					} else {
-						$('li.prev', an[i]).removeClass('disabled');
-						$('li.first', an[i]).removeClass('disabled');
-					}
-
-					if (oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0) {
-						$('li.last', an[i]).addClass('disabled');
-						$('li.next', an[i]).addClass('disabled');
-					} else {
-						$('li.next', an[i]).removeClass('disabled');
-						$('li.last', an[i]).removeClass('disabled');
-					}
-				}
-			}
-		}
-	} );
-
-
-	/**
-	 * Bootstrap style pagination control with only previous/next buttons
-	 */
-	$.extend($.fn.dataTableExt.oPagination, {
-		"bootstrap_prevnext": {
-			"fnInit": function(oSettings, nPaging, fnDraw) {
-				var oLang = oSettings.oLanguage.oPaginate;
-				var fnClickHandler = function (e) {
-					e.preventDefault();
-					if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
-						fnDraw(oSettings);
-					}
-				};
-
-				$(nPaging).append(
-					'<ul class="pagination">' +
-						'<li class="first disabled"><a href="#"><i class="fa fa-fw fa-fast-backward"></i></a></li>' +
-						'<li class="prev disabled"><a href="#"><i class="fa fa-fw fa-step-backward"></i></a></li>' +
-						'<li class="next disabled"><a href="#"><i class="fa fa-fw fa-step-forward"></i></a></li>' +
-						'<li class="last disabled"><a href="#"><i class="fa fa-fw fa-fast-forward"></i></a></li>' +
-					'</ul>'
-				);
-				var els = $('a', nPaging);
-				$(els[0]).on('click.DT', { action: "first" }, fnClickHandler);
-				$(els[1]).on('click.DT', { action: "previous" }, fnClickHandler);
-				$(els[2]).on('click.DT', { action: "next" }, fnClickHandler);
-				$(els[3]).on('click.DT', { action: "last" }, fnClickHandler);
-			},
-
-			"fnUpdate": function (oSettings, fnDraw) {
-				var iListLength = 5;
-				var oPaging = oSettings.oInstance.fnPagingInfo();
-				var an = oSettings.aanFeatures.p;
-				var i,
-					j,
-					sClass,
-					iStart,
-					iEnd,
-					iLen,
-					iHalf=Math.floor(iListLength/2);
-
-				if (oPaging.iTotalPages < iListLength) {
-					iStart = 1;
-					iEnd = oPaging.iTotalPages;
-				} else if (oPaging.iPage <= iHalf) {
-					iStart = 1;
-					iEnd = iListLength;
-				} else if (oPaging.iPage >= (oPaging.iTotalPages-iHalf)) {
-					iStart = oPaging.iTotalPages - iListLength + 1;
-					iEnd = oPaging.iTotalPages;
-				} else {
-					iStart = oPaging.iPage - iHalf + 1;
-					iEnd = iStart + iListLength - 1;
-				}
-
-				for (i=0, iLen=an.length ; i<iLen ; i++) {
-					// Add / remove disabled classes from the static elements
-					if (oPaging.iPage === 0) {
-						$('li.first', an[i]).addClass('disabled');
-						$('li.prev', an[i]).addClass('disabled');
-					} else {
-						$('li.prev', an[i]).removeClass('disabled');
-						$('li.first', an[i]).removeClass('disabled');
-					}
-
-					if (oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0) {
-						$('li.last', an[i]).addClass('disabled');
-						$('li.next', an[i]).addClass('disabled');
-					} else {
-						$('li.next', an[i]).removeClass('disabled');
-						$('li.last', an[i]).removeClass('disabled');
-					}
-				}
-			}
-		}
-	});
-
-
-	/*
-	 * TableTools Bootstrap compatibility
-	 * Required TableTools 2.1+
-	 */
-	if ($.fn.DataTable.TableTools) {
-
-		// Set the classes that TableTools uses to something suitable for Bootstrap
-		$.extend(true, $.fn.DataTable.TableTools.classes, {
-			"container": "DTTT btn-group",
-			"buttons": {
-				"normal": "btn btn-default btn-sm",
-				"disabled": "disabled"
-			},
-			"collection": {
-				"container": "DTTT_dropdown dropdown-menu",
-				"buttons": {
-					"normal": "",
-					"disabled": "disabled"
-				}
-			},
-			"print": {
-				"info": "DTTT_print_info modal"
-			},
-			"select": {
-				"row": "active"
-			}
-		} );
-
-		// Have the collection use a bootstrap compatible dropdown
-		$.extend(true, $.fn.DataTable.TableTools.DEFAULTS.oTags, {
-			"collection": {
-				"container": "ul",
-				"button": "li",
-				"liner": "a"
-			}
-		});
-	}
-
-
-	/**
-	 * Length and filter extensions
-	 * Just replace 'l' and 'f' in sDom property by 'L' and 'F' to use them
-	 */
-
-	/**
-	 * Bootstrap length factory
-	 */
-	var bl_factory = function($, DataTable) {
-
-		var BootstrapLength = function(oSettings, oInit) {
-
-			if (!this.CLASS || this.CLASS !== 'BootstrapLength') {
-				if (globals.alert) {
-					globals.alert("Warning: BootstrapLength must be initialized with the 'new' keyword");
-				}
-			}
-			if (typeof(oInit) === 'undefined') {
-				oInit = {};
-			}
-			if ($.fn.dataTable.camelToHungarian) {
-				$.fn.dataTable.camelToHungarian(BootstrapLength.defaults, oInit);
-			}
-
-			this.s = {
-				dt: null,
-				oInit: oInit,
-				hidden: true,
-				abOriginal: []
-			};
-			this.dom = {
-				wrapper: null,
-				input: null
-			};
-			BootstrapLength.aInstances.push(this);
-
-			this.s.dt = $.fn.dataTable.Api ?
-				new $.fn.dataTable.Api(oSettings).settings()[0]
-				: oSettings;
-
-			this._fnConstruct(oInit);
-			return this;
-		};
-
-		BootstrapLength.prototype = {
-
-			input: function() {
-				return this.dom.wrapper;
-			},
-
-			fnRebuild: function() {
-				return this.rebuild();
-			},
-
-			rebuild: function() {
-			},
-
-			_fnConstruct: function(init) {
-				var self = this;
-				var dt = self.s.dt;
-				if (dt.oScroll.bInfinite) {
-					return;
-				}
-				var sName = dt.sTableId + '_length';
-				var sMenu = $('<select size="1"></select>').attr('name', sName);
-				var i, iLen;
-				var aLengthMenu = dt.aLengthMenu;
-				if (aLengthMenu.length === 2 &&
-					typeof(aLengthMenu[0]) === 'object' &&
-					typeof(aLengthMenu[1]) === 'object') {
-					for (i=0, iLen=aLengthMenu[0].length; i < iLen; i++) {
-						$('<option />').attr('value', aLengthMenu[0][i])
-									   .text(aLengthMenu[1][i])
-									   .appendTo(sMenu);
-					}
-				} else {
-					for (i=0, iLen=aLengthMenu.length; i < iLen; i++) {
-						$('<option />').attr('value', aLengthMenu[i])
-									   .text(aLengthMenu[i])
-									   .appendTo(sMenu);
-					}
-				}
-				var nLength = $('<div>').addClass(dt.oClasses.sLength)
-										.append($('<span></span>').addClass('ams-form')
-																  .append($('<label></label>').addClass('select')
-																							  .css('width', 60)
-																							  .append(sMenu)
-																							  .append($('<i></i>'))));
-				if (!dt.aanFeatures.L) {
-					nLength.attr('id', dt.sTableId + '_length');
-				}
-				this.dom.wrapper = nLength.get(0);
-
-				$('select option[value="' + dt._iDisplayLength + '"]', nLength).attr("selected", true);
-				$("select", nLength).on('change.DT', function(e) {
-					var iVal = $(this).val();
-					var n = dt.aanFeatures.L;
-					for (i = 0, iLen = n.length; i < iLen; i++) {
-						if (n[i] !== this.parentNode) {
-							$("select", n[i]).val(iVal);
-						}
-					}
-					dt._iDisplayLength = parseInt(iVal, 10);
-					dt.oInstance._fnCalculateEnd(dt);
-					if (dt.fnDisplayEnd() === dt.fnRecordsDisplay()) {
-						dt._iDisplayStart = dt.fnDisplayEnd() - dt._iDisplayLength;
-						if (dt._iDisplayStart < 0) {
-							dt._iDisplayStart = 0;
-						}
-					}
-					if (dt._iDisplayLength === -1) {
-						dt._iDisplayStart = 0;
-					}
-					dt.oInstance._fnDraw();
-				});
-				$("select", nLength).attr("aria-controls", dt.sTableId);
-			}
-		};
-
-		BootstrapLength.fnRebuild = function(oTable) {};
-
-		BootstrapLength.defaults = {};
-		BootstrapLength.aInstances = [];
-		BootstrapLength.prototype.CLASS = 'BootstrapLength';
-
-		BootstrapLength.VERSION = '1.0.0';
-		BootstrapLength.prototype.VERSION = BootstrapLength.VERSION;
-
-		if ((typeof($.fn.dataTable) === 'function') &&
-			(typeof($.fn.dataTableExt.fnVersionCheck) === 'function') &&
-			$.fn.dataTableExt.fnVersionCheck('1.7.0')) {
-			$.fn.dataTableExt.aoFeatures.push({
-				fnInit: function(oSettings) {
-					var init = oSettings.oInit;
-					var Length = new BootstrapLength(oSettings, init.bootstrapLength || init.oBootstrapLength || {});
-					return Length.input();
-				},
-				cFeature: 'L',
-				sFeature: "BootstrapLength"
-			});
-		} else {
-			if (globals.alert) {
-				globals.alert("Warning: BootstrapLength required DataTables 1.7 or greater...");
-			}
-		}
-
-		$.fn.dataTable.BootstrapLength = BootstrapLength;
-		return BootstrapLength;
-
-	};
-
-	if (!$.fn.dataTable.BootstrapLength) {
-		bl_factory($, $.fn.dataTable);
-	}
-
-
-	/**
-	 * Bootstrap filter factory
-	 */
-	var bf_factory = function($, DataTable) {
-
-		var BootstrapFilter = function(oSettings, oInit) {
-
-			if (!this.CLASS || this.CLASS !== 'BootstrapFilter') {
-				if (globals.alert) {
-					globals.alert("Warning: BootstrapFilter must be initialized with the 'new' keyword");
-				}
-			}
-			if (typeof(oInit) === 'undefined') {
-				oInit = {};
-			}
-			if ($.fn.dataTable.camelToHungarian) {
-				$.fn.dataTable.camelToHungarian(BootstrapFilter.defaults, oInit);
-			}
-
-			this.s = {
-				dt: null,
-				oInit: oInit,
-				hidden: true,
-				abOriginal: []
-			};
-			this.dom = {
-				wrapper: null,
-				input: null
-			};
-			BootstrapFilter.aInstances.push(this);
-
-			this.s.dt = $.fn.dataTable.Api ?
-				new $.fn.dataTable.Api(oSettings).settings()[0]
-				: oSettings;
-
-			this._fnConstruct(oInit);
-			return this;
-		};
-
-		BootstrapFilter.prototype = {
-
-			input: function() {
-				return this.dom.wrapper;
-			},
-
-			fnRebuild: function() {
-				return this.rebuild();
-			},
-
-			rebuild: function() {
-			},
-
-			_fnConstruct: function(init) {
-				var self = this;
-				var dt = self.s.dt;
-				var oPreviousSearch = dt.oPreviousSearch;
-				var sSearchStr = '<input type="text">';
-				var nFilter = $('<div>').addClass(dt.oClasses.sFilter)
-										.html('<div class="input-group">' +
-													'<span class="input-group-addon"><i class="fa fa-search"></i></span>' +
-													sSearchStr +
-											  '</div>');
-				if (!dt.aanFeatures.F)
-					nFilter.attr('id', dt.sTableId + '_filter');
-				this.dom.wrapper = nFilter.get(0);
-
-				var jqFilter = $('input[type="text"]', nFilter);
-				nFilter.data('DT_Input', jqFilter[0]);
-				jqFilter.val(oPreviousSearch.sSearch.replace('"', "&quot;"))
-						.addClass('form-control')
-						.attr('placeholder', dt.oLanguage.sSearch)
-						.attr('aria-control', dt.sTableId)
-						.on('keyup.DT', function(e) {
-							var n = dt.aanFeatures.F;
-							var val = $(this).val();
-							for (var i = 0, iLen = n.length; i < iLen; i++) {
-								if (n[i] !== $(this).parents("div.dataTables_filter")[0]) {
-									$(n[i]).data('DT_Input').val(val);
-								}
-							}
-							if (val !== oPreviousSearch.sSearch) {
-								dt.oInstance._fnFilterComplete({
-									sSearch: val,
-									bRegex: oPreviousSearch.bRegex,
-									bSmart: oPreviousSearch.bSmart,
-									bCaseInsensitive: oPreviousSearch.bCaseInsensitive
-								});
-							}
-						})
-						.on('keypress.DT', function(e) {
-							if (e.keyCode === 13) {
-								return false;
-							}
-						});
-			}
-		};
-
-		BootstrapFilter.fnRebuild = function(oTable) {};
-
-		BootstrapFilter.defaults = {};
-		BootstrapFilter.aInstances = [];
-		BootstrapFilter.prototype.CLASS = 'BootstrapFilter';
-
-		BootstrapFilter.VERSION = '1.0.0';
-		BootstrapFilter.prototype.VERSION = BootstrapFilter.VERSION;
-
-		if ((typeof($.fn.dataTable) === 'function') &&
-			(typeof($.fn.dataTableExt.fnVersionCheck) === 'function') &&
-			$.fn.dataTableExt.fnVersionCheck('1.7.0')) {
-			$.fn.dataTableExt.aoFeatures.push({
-				fnInit: function(oSettings) {
-					var init = oSettings.oInit;
-					var filter = new BootstrapFilter(oSettings, init.bootstrapFilter || init.oBootstrapFilter || {});
-					return filter.input();
-				},
-				cFeature: 'F',
-				sFeature: "BootstrapFilter"
-			});
-		} else {
-			if (globals.alert) {
-				globals.alert("Warning: BootstrapFilter required DataTables 1.7 or greater...");
-			}
-		}
-
-		$.fn.dataTable.BootstrapFilter = BootstrapFilter;
-		return BootstrapFilter;
-
-	};
-
-	if (!$.fn.dataTable.BootstrapFilter) {
-		bf_factory($, $.fn.dataTable);
-	}
-
-})(jQuery, this);