Commit 1277b22e authored by Abdullah Almsaeed's avatar Abdullah Almsaeed
Browse files

Updated dataTables plugin and added extensions

parent c546ed70
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1513,8 +1513,8 @@
    <!-- Bootstrap 3.3.2 JS -->
    <!-- Bootstrap 3.3.2 JS -->
    <script src="../../bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="../../bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <!-- DATA TABES SCRIPT -->
    <!-- DATA TABES SCRIPT -->
    <script src="../../plugins/datatables/jquery.dataTables.js" type="text/javascript"></script>
    <script src="../../plugins/datatables/jquery.dataTables.min.js" type="text/javascript"></script>
    <script src="../../plugins/datatables/dataTables.bootstrap.js" type="text/javascript"></script>
    <script src="../../plugins/datatables/dataTables.bootstrap.min.js" type="text/javascript"></script>
    <!-- SlimScroll -->
    <!-- SlimScroll -->
    <script src="../../plugins/slimScroll/jquery.slimscroll.min.js" type="text/javascript"></script>
    <script src="../../plugins/slimScroll/jquery.slimscroll.min.js" type="text/javascript"></script>
    <!-- FastClick -->
    <!-- FastClick -->
+173 −24
Original line number Original line Diff line number Diff line
div.dataTables_length label {
div.dataTables_length label {
	font-weight: normal;
	font-weight: normal;
	float: left;
	text-align: left;
	text-align: left;
	white-space: nowrap;
}
}


div.dataTables_length select {
div.dataTables_length select {
	width: 75px;
	width: 75px;
	display: inline-block;
}

div.dataTables_filter {
	text-align: right;
}
}


div.dataTables_filter label {
div.dataTables_filter label {
	font-weight: normal;
	font-weight: normal;
	float: right;
	white-space: nowrap;
	text-align: left;
}
}


div.dataTables_filter input {
div.dataTables_filter input {
	width: 16em;
	margin-left: 0.5em;
	display: inline-block;
	width: auto;
}
}


div.dataTables_info {
div.dataTables_info {
	padding-top: 8px;
	padding-top: 8px;
	white-space: nowrap;
}
}


div.dataTables_paginate {
div.dataTables_paginate {
	float: right;
	margin: 0;
	margin: 0;
	white-space: nowrap;
	text-align: right;
}
}


div.dataTables_paginate ul.pagination {
div.dataTables_paginate ul.pagination {
@@ -31,7 +41,21 @@ div.dataTables_paginate ul.pagination {
	white-space: nowrap;
	white-space: nowrap;
}
}


table.dataTable,
@media screen and (max-width: 767px) {
	div.dataTables_wrapper > div.row > div,
	div.dataTables_length,
	div.dataTables_filter,
	div.dataTables_info,
	div.dataTables_paginate {
		text-align: center;
	}

	div.DTTT {
		margin-bottom: 0.5em;
	}
}


table.dataTable td,
table.dataTable td,
table.dataTable th {
table.dataTable th {
	-webkit-box-sizing: content-box;
	-webkit-box-sizing: content-box;
@@ -53,19 +77,61 @@ table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
table.dataTable thead .sorting_desc_disabled {
	cursor: pointer;
	cursor: pointer;
	position: relative;
}

table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
	position: absolute;
	top: 8px;
	right: 8px;
	display: block;
	font-family: 'Glyphicons Halflings';
	opacity: 0.5;
}
table.dataTable thead .sorting:after {
	opacity: 0.2;
	content: "\e150"; /* sort */
}
table.dataTable thead .sorting_asc:after {
	content: "\e155"; /* sort-by-attributes */
}
table.dataTable thead .sorting_desc:after {
	content: "\e156"; /* sort-by-attributes-alt */
}
div.dataTables_scrollBody table.dataTable thead .sorting:after,
div.dataTables_scrollBody table.dataTable thead .sorting_asc:after,
div.dataTables_scrollBody table.dataTable thead .sorting_desc:after {
	display: none;
}
}


table.dataTable thead .sorting { background: url('images/sort_both.png') no-repeat center right; }
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; }
table.dataTable thead .sorting_desc_disabled:after {
table.dataTable thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; }
	color: #eee;
}


table.dataTable thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; }
table.dataTable thead > tr > th {
table.dataTable thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; }
	padding-right: 30px;
}


table.dataTable th:active {
table.dataTable th:active {
	outline: none;
	outline: none;
}
}



/* Condensed */
table.dataTable.table-condensed thead > tr > th {
	padding-right: 20px;
}

table.dataTable.table-condensed thead .sorting:after,
table.dataTable.table-condensed thead .sorting_asc:after,
table.dataTable.table-condensed thead .sorting_desc:after {
	top: 6px;
	right: 6px;
}

/* Scrolling */
/* Scrolling */
div.dataTables_scrollHead table {
div.dataTables_scrollHead table {
	margin-bottom: 0 !important;
	margin-bottom: 0 !important;
@@ -95,29 +161,60 @@ div.dataTables_scrollFoot table {
	border-top: none;
	border-top: none;
}
}


/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column
   width calculations when using scrolling impossible to align columns. We have
   to use separate
 */
table.table-bordered.dataTable {
	border-collapse: separate !important;
}
table.table-bordered thead th,
table.table-bordered thead td {
	border-left-width: 0;
	border-top-width: 0;
}
table.table-bordered tbody th,
table.table-bordered tbody td {
	border-left-width: 0;
	border-bottom-width: 0;
}
table.table-bordered tfoot th,
table.table-bordered tfoot td {
    border-left-width: 0;
    border-bottom-width: 0;
}
table.table-bordered th:last-child,
table.table-bordered td:last-child {
	border-right-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
	border-bottom-width: 0;
}







/*
/*
 * TableTools styles
 * TableTools styles
 */
 */
.table tbody tr.active td,
.table.dataTable tbody tr.active td,
.table tbody tr.active th {
.table.dataTable tbody tr.active th {
	background-color: #08C;
	background-color: #08C;
	color: white;
	color: white;
}
}


.table tbody tr.active:hover td,
.table.dataTable tbody tr.active:hover td,
.table tbody tr.active:hover th {
.table.dataTable tbody tr.active:hover th {
	background-color: #0075b0 !important;
	background-color: #0075b0 !important;
}
}


.table tbody tr.active a {
.table.dataTable tbody tr.active th > a,
.table.dataTable tbody tr.active td > a {
	color: white;
	color: white;
}
}


.table-striped tbody tr.active:nth-child(odd) td,
.table-striped.dataTable tbody tr.active:nth-child(odd) td,
.table-striped tbody tr.active:nth-child(odd) th {
.table-striped.dataTable tbody tr.active:nth-child(odd) th {
	background-color: #017ebc;
	background-color: #017ebc;
}
}


@@ -125,11 +222,6 @@ table.DTTT_selectable tbody tr {
	cursor: pointer;
	cursor: pointer;
}
}


div.DTTT .btn {
	color: #333 !important;
	font-size: 12px;
}

div.DTTT .btn:hover {
div.DTTT .btn:hover {
	text-decoration: none !important;
	text-decoration: none !important;
}
}
@@ -156,10 +248,25 @@ div.DTTT_collection_background {
}
}


/* TableTools information display */
/* TableTools information display */
div.DTTT_print_info.modal {
div.DTTT_print_info {
	position: fixed;
	top: 50%;
	left: 50%;
	width: 400px;
	height: 150px;
	height: 150px;
	margin-left: -200px;
	margin-top: -75px;
	margin-top: -75px;
	text-align: center;
	text-align: center;
	color: #333;
	padding: 10px 30px;
	opacity: 0.95;

	background-color: white;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	
	-webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
	        box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
}
}


div.DTTT_print_info h6 {
div.DTTT_print_info h6 {
@@ -174,6 +281,27 @@ div.DTTT_print_info p {
	line-height: 20px;
	line-height: 20px;
}
}


div.dataTables_processing {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 60px;
    margin-left: -50%;
    margin-top: -25px;
    padding-top: 20px;
    padding-bottom: 20px;
    text-align: center;
    font-size: 1.2em;
    background-color: white;
    background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));
    background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
    background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
    background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
    background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
}





/*
/*
@@ -185,10 +313,12 @@ div.DTFC_RightHeadWrapper table,
div.DTFC_RightFootWrapper table,
div.DTFC_RightFootWrapper table,
table.DTFC_Cloned tr.even {
table.DTFC_Cloned tr.even {
    background-color: white;
    background-color: white;
    margin-bottom: 0;
}
}
 
 
div.DTFC_RightHeadWrapper table ,
div.DTFC_RightHeadWrapper table ,
div.DTFC_LeftHeadWrapper table {
div.DTFC_LeftHeadWrapper table {
	border-bottom: none !important;
    margin-bottom: 0 !important;
    margin-bottom: 0 !important;
    border-top-right-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
@@ -206,7 +336,7 @@ div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
div.DTFC_RightBodyWrapper table,
div.DTFC_RightBodyWrapper table,
div.DTFC_LeftBodyWrapper table {
div.DTFC_LeftBodyWrapper table {
    border-top: none;
    border-top: none;
    margin-bottom: 0 !important;
    margin: 0 !important;
}
}
 
 
div.DTFC_RightBodyWrapper tbody tr:first-child th,
div.DTFC_RightBodyWrapper tbody tr:first-child th,
@@ -219,5 +349,24 @@ div.DTFC_LeftBodyWrapper tbody tr:first-child td {
div.DTFC_RightFootWrapper table,
div.DTFC_RightFootWrapper table,
div.DTFC_LeftFootWrapper table {
div.DTFC_LeftFootWrapper table {
    border-top: none;
    border-top: none;
    margin-top: 0 !important;
}


div.DTFC_LeftBodyWrapper table.dataTable thead .sorting:after,
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_asc:after,
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_desc:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_asc:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_desc:after {
	display: none;
}


/*
 * FixedHeader styles
 */
div.FixedHeader_Cloned table {
	margin: 0 !important
}
}
+136 −200
Original line number Original line Diff line number Diff line
/*! DataTables Bootstrap 3 integration
 * ©2011-2014 SpryMedia Ltd - datatables.net/license
 */

/**
 * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
 * DataTables 1.10 or newer.
 *
 * This file sets the defaults and adds options to DataTables to style its
 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
 * for further information.
 */
(function(window, document, undefined){

var factory = function( $, DataTable ) {
"use strict";


/* Set the defaults for DataTables initialisation */
/* Set the defaults for DataTables initialisation */
$.extend( true, $.fn.dataTable.defaults, {
$.extend( true, DataTable.defaults, {
	"sDom":
	dom:
		"<'row'<'col-xs-6'l><'col-xs-6'f>r>"+
		"<'row'<'col-sm-6'l><'col-sm-6'f>>" +
		"t"+
		"<'row'<'col-sm-12'tr>>" +
		"<'row'<'col-xs-6'i><'col-xs-6'p>>",
		"<'row'<'col-sm-5'i><'col-sm-7'p>>",
	"oLanguage": {
	renderer: 'bootstrap'
		"sLengthMenu": "_MENU_ records per page"
	}
} );
} );




/* Default class modification */
/* Default class modification */
$.extend( $.fn.dataTableExt.oStdClasses, {
$.extend( DataTable.ext.classes, {
	"sWrapper": "dataTables_wrapper form-inline",
	sWrapper:      "dataTables_wrapper form-inline dt-bootstrap",
	"sFilterInput": "form-control input-sm",
	sFilterInput:  "form-control input-sm",
	"sLengthSelect": "form-control input-sm"
	sLengthSelect: "form-control input-sm"
} );
} );


// In 1.10 we use the pagination renderers to draw the Bootstrap paging,

// rather than  custom plug-in
/* Bootstrap paging button renderer */
if ( $.fn.dataTable.Api ) {
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
	$.fn.dataTable.defaults.renderer = 'bootstrap';
	var api     = new DataTable.Api( settings );
	$.fn.dataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
		var api = new $.fn.dataTable.Api( settings );
	var classes = settings.oClasses;
	var classes = settings.oClasses;
	var lang    = settings.oLanguage.oPaginate;
	var lang    = settings.oLanguage.oPaginate;
	var btnDisplay, btnClass;
	var btnDisplay, btnClass;
@@ -31,7 +45,7 @@ if ( $.fn.dataTable.Api ) {
		var i, ien, node, button;
		var i, ien, node, button;
		var clickHandler = function ( e ) {
		var clickHandler = function ( e ) {
			e.preventDefault();
			e.preventDefault();
				if ( e.data.action !== 'ellipsis' ) {
			if ( !$(e.currentTarget).hasClass('disabled') ) {
				api.page( e.data.action ).draw( false );
				api.page( e.data.action ).draw( false );
			}
			}
		};
		};
@@ -111,114 +125,16 @@ if ( $.fn.dataTable.Api ) {
		$(host).empty().html('<ul class="pagination"/>').children('ul'),
		$(host).empty().html('<ul class="pagination"/>').children('ul'),
		buttons
		buttons
	);
	);
	}
}
else {
	// Integration for 1.9-
	$.fn.dataTable.defaults.sPaginationType = 'bootstrap';

	/* 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 )
		};
};
};


	/* 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="#">&larr; '+oLang.sPrevious+'</a></li>'+
						'<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+
					'</ul>'
				);
				var els = $('a', nPaging);
				$(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
				$(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
			},

			"fnUpdate": function ( oSettings, fnDraw ) {
				var iListLength = 5;
				var oPaging = oSettings.oInstance.fnPagingInfo();
				var an = oSettings.aanFeatures.p;
				var i, ien, j, sClass, iStart, 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, ien=an.length ; i<ien ; 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] )
							.bind('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');
					}
				}
			}
		}
	} );
}



/*
/*
 * TableTools Bootstrap compatibility
 * TableTools Bootstrap compatibility
 * Required TableTools 2.1+
 * Required TableTools 2.1+
 */
 */
if ( $.fn.DataTable.TableTools ) {
if ( DataTable.TableTools ) {
	// Set the classes that TableTools uses to something suitable for Bootstrap
	// Set the classes that TableTools uses to something suitable for Bootstrap
	$.extend( true, $.fn.DataTable.TableTools.classes, {
	$.extend( true, DataTable.TableTools.classes, {
		"container": "DTTT btn-group",
		"container": "DTTT btn-group",
		"buttons": {
		"buttons": {
			"normal": "btn btn-default",
			"normal": "btn btn-default",
@@ -232,7 +148,7 @@ if ( $.fn.DataTable.TableTools ) {
			}
			}
		},
		},
		"print": {
		"print": {
			"info": "DTTT_print_info modal"
			"info": "DTTT_print_info"
		},
		},
		"select": {
		"select": {
			"row": "active"
			"row": "active"
@@ -240,7 +156,7 @@ if ( $.fn.DataTable.TableTools ) {
	} );
	} );


	// Have the collection use a bootstrap compatible drop down
	// Have the collection use a bootstrap compatible drop down
	$.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, {
	$.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
		"collection": {
		"collection": {
			"container": "ul",
			"container": "ul",
			"button": "li",
			"button": "li",
@@ -248,3 +164,23 @@ if ( $.fn.DataTable.TableTools ) {
		}
		}
	} );
	} );
}
}

}; // /factory


// Define as an AMD module if possible
if ( typeof define === 'function' && define.amd ) {
	define( ['jquery', 'datatables'], factory );
}
else if ( typeof exports === 'object' ) {
    // Node/CommonJS
    factory( require('jquery'), require('datatables') );
}
else if ( jQuery ) {
	// Otherwise simply initialise as normal, stopping multiple evaluation
	factory( jQuery, jQuery.fn.dataTable );
}


})(window, document);
+8 −0
Original line number Original line Diff line number Diff line
/*!
 DataTables Bootstrap 3 integration
 ©2011-2014 SpryMedia Ltd - datatables.net/license
*/
(function(){var f=function(c,b){c.extend(!0,b.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});c.extend(b.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm"});b.ext.renderer.pageButton.bootstrap=function(g,f,p,k,h,l){var q=new b.Api(g),r=g.oClasses,i=g.oLanguage.oPaginate,d,e,o=function(b,f){var j,m,n,a,k=function(a){a.preventDefault();
c(a.currentTarget).hasClass("disabled")||q.page(a.data.action).draw(!1)};j=0;for(m=f.length;j<m;j++)if(a=f[j],c.isArray(a))o(b,a);else{e=d="";switch(a){case "ellipsis":d="&hellip;";e="disabled";break;case "first":d=i.sFirst;e=a+(0<h?"":" disabled");break;case "previous":d=i.sPrevious;e=a+(0<h?"":" disabled");break;case "next":d=i.sNext;e=a+(h<l-1?"":" disabled");break;case "last":d=i.sLast;e=a+(h<l-1?"":" disabled");break;default:d=a+1,e=h===a?"active":""}d&&(n=c("<li>",{"class":r.sPageButton+" "+
e,"aria-controls":g.sTableId,tabindex:g.iTabIndex,id:0===p&&"string"===typeof a?g.sTableId+"_"+a:null}).append(c("<a>",{href:"#"}).html(d)).appendTo(b),g.oApi._fnBindAction(n,{action:a},k))}};o(c(f).empty().html('<ul class="pagination"/>').children("ul"),k)};b.TableTools&&(c.extend(!0,b.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn btn-default",disabled:"disabled"},collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info"},
select:{row:"active"}}),c.extend(!0,b.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}}))};"function"===typeof define&&define.amd?define(["jquery","datatables"],f):"object"===typeof exports?f(require("jquery"),require("datatables")):jQuery&&f(jQuery,jQuery.fn.dataTable)})(window,document);
+38 −0
Original line number Original line Diff line number Diff line
# AutoFill

AutoFill gives an Excel like option to a DataTable to click and drag over multiple cells, filling in information over the selected cells and incrementing numbers as needed. Key features include:

* Click and drag cell content insertion
* Automatic incrementing of numeric information
* Enable and disable on any column
* Detailed callback functions for customisation
* Support for both DataTables and browser window scrolling


# Installation

To use AutoFill, first download DataTables ( http://datatables.net/download ) and place the unzipped AutoFill package into a `extensions` directory in the DataTables package. This will allow the pages in the examples to operate correctly. To see the examples running, open the `examples` directory in your web-browser.


# Basic usage

AutoFill is initialised using the `$.fn.dataTable.AutoFill` constructor. For example:

```js
$(document).ready( function () {
    var table = $('#example').dataTable();
    new $.fn.dataTable.AutoFill( table );
} );
```


# Documentation / support

* Documentation: http://datatables.net/extensions/autofill/
* DataTables support forums: http://datatables.net/forums


# GitHub

If you fancy getting involved with the development of AutoFill and help make it better, please refer to its GitHub repo: https://github.com/DataTables/AutoFill
Loading