Added assets + dependencies

This commit is contained in:
Bill Zimmerman
2015-02-25 14:08:14 +01:00
parent cb37f12f56
commit d5678d622e
748 changed files with 154165 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
{
"name": "datatables-plugins",
"homepage": "https://github.com/DataTables/Plugins",
"version": "1.0.1",
"_release": "1.0.1",
"_resolution": {
"type": "version",
"tag": "1.0.1",
"commit": "a94e328df63c79af43123b99ada5ff88d601a31d"
},
"_source": "git://github.com/DataTables/Plugins.git",
"_target": "~1.0.1",
"_originalSource": "datatables-plugins",
"_direct": true
}

21
bower_components/datatables-plugins/README.md vendored Executable file
View File

@@ -0,0 +1,21 @@
DataTables Plugins
==================
This repository contains a collection of plug-ins for the jQuery [DataTables](http://datatables.net) table enhancer. These plug-ins are feature enhancing for the DataTables library, adding extra options to core functionality such as additional sort algorithms, API methods and pagination controls. The plug-ins should not be confused with DataTables "extras" which are more significant software libraries which add additional features to DataTables.
This repository holds the following plug-in types for DataTables:
* Sorting
* Type based
* Custom data source based
* API
* Filtering
* Type based
* Row based
* Internationalisation translations
* Type detection
* Pagination
* Integration scripts
* Twitter Bootstrap
Each directory has an index.html file which is used to generate the plug-ins documentation on [DataTables.net](http://datatables.net/plug-ins) and describes how plug-ins can be used.

View File

@@ -0,0 +1,32 @@
/**
* It can sometimes be useful to get the average of data in an API result set,
* be it from a column, or a collection of cells. This method provides exactly
* that ability.
*
* @name average()
* @summary Average the values in a data set.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @requires DataTables 1.10+
*
* @returns {Number} Calculated average
*
* @example
* // Average a column
* var table = $('#example').DataTable();
* table.column( 3 ).data().average();
*
* @example
* // Average two cells
* var table = $('#example').DataTable();
* table.cells( 0, [3,4] ).data().average();
*/
jQuery.fn.dataTable.Api.register( 'average()', function () {
var data = this.flatten();
var sum = data.reduce( function ( a, b ) {
return (a*1) + (b*1); // cast values in-case they are strings
} );
return sum / data.length;
} );

View File

@@ -0,0 +1,21 @@
/**
* This plug-in will read the text from the header cell of a column, returning
* that value.
*
* @name column().title()
* @summary Get the title of a column
* @author Alejandro Navarro
* @requires DataTables 1.10+
*
* @returns {String} Column title
*
* @example
* // Read the title text of column index 3
* var table = $('#example').DataTable();
* table.column( 3 ).title();
*/
$.fn.dataTable.Api.register( 'column().title()', function () {
var colheader = this.header();
return $(colheader).text().trim();
} );

View File

@@ -0,0 +1,46 @@
/**
* The DataTables core library provides the ability to set the ordering via the
* `dt-api column().order()` method, but there is no plural equivalent. While
* multi-column ordering can be set using `dt-api order()` that method requires
* that column indexes be used.
*
* This plug-in provides the plural `columns().order()` method so you can set
* multi-column ordering, while retaining the benefits of the `dt-api columns()`
* selector options.
*
* @name columns().order()
* @summary Apply multi-column ordering through the columns() API method.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @requires DataTables 1.10+
* @param {string|array} dir The order to apply to the columns selected. This
* can be a string (`asc` or `desc`) which will be applied to all columns,
* or an array (again `asc` or `desc` as the elements in the array) which is
* the same length as the number of columns selected, and will be applied to
* the columns in sequence.
*
* @returns {DataTables.Api} DataTables API instance
*
* @example
* // Apply multi-column sorting with a common direction
* table.columns( [ 1, 2 ] ).order( 'desc' ).draw();
*
* @example
* // Multi-column sorting with individual direction for the columns
* table.columns( [ 1, 2 ] ).order( [ 'desc', 'asc' ] ).draw();
*
* @example
* // Multi-column sorting based on a name selector
* table.columns( [ 'sign_up_date:name', 'user_name:name' ] ).order( 'desc' ).draw();
*/
$.fn.dataTable.Api.register( 'columns().order()', function ( dir ) {
return this.iterator( 'columns', function ( settings, columns ) {
var a = [];
for ( var i=0, ien=columns.length ; i<ien ; i++ ) {
a.push( [ columns[i], $.isArray(dir) ? dir[i] : dir ] );
}
new $.fn.dataTable.Api( settings ).order( a );
} );
} );

View File

@@ -0,0 +1,63 @@
/**
* Add a new row to the table and display it on the screen by jumping the
* pagination to the required location. This function also returns an object
* with the added `dt-tag TR` element and it's index in `aoData` such that you
* could provide an effect (fade for example) to show which row has been added.
*
* This function is a drop in replacement for `fnAddData` with one important
* exception, it will only take a 1D array or an object, and not a 2D array
* (i.e. it will not add multiple rows like `fnAddData`).
*
* @name fnAddDataAndDisplay
* @summary Add data and shift the paging to display it immediately
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @param {data} aData Data to add to the table
* @returns {object} Object with `nTr` and `iPos` parameters, where the former
* is the added `dt-tag tr` element and the latter is the row's index.
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
* table.fnAddDataAndDisplay( [ 1, 2, 3, 4, 5, ... ] );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnAddDataAndDisplay = function ( oSettings, aData )
{
/* Add the data */
var iAdded = this.oApi._fnAddData( oSettings, aData );
var nAdded = oSettings.aoData[ iAdded ].nTr;
/* Need to re-filter and re-sort the table to get positioning correct, not perfect
* as this will actually redraw the table on screen, but the update should be so fast (and
* possibly not alter what is already on display) that the user will not notice
*/
this.oApi._fnReDraw( oSettings );
/* Find it's position in the table */
var iPos = -1;
for( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
{
if( oSettings.aoData[ oSettings.aiDisplay[i] ].nTr == nAdded )
{
iPos = i;
break;
}
}
/* Get starting point, taking account of paging */
if( iPos >= 0 )
{
oSettings._iDisplayStart = ( Math.floor(i / oSettings._iDisplayLength) ) * oSettings._iDisplayLength;
if ( this.oApi._fnCalculateEnd ) {
this.oApi._fnCalculateEnd( oSettings );
}
}
this.oApi._fnDraw( oSettings );
return {
"nTr": nAdded,
"iPos": iAdded
};
};

View File

@@ -0,0 +1,74 @@
/**
* This method will add an existing `dt-tag tr` element to a DataTable. This can
* be useful for maintaining custom classes and other attributes which have
* been explicitly assigned to the row.
*
* DataTables 1.10+ has `dt-api row.add()` and `dt-api rows.add()` which have
* this ability built in, and extend it to be able to use jQuery objects as well
* as plain `dt-tag tr` elements. As such this method is marked deprecated, but
* is available for use with legacy version of DataTables. Please use the
* new API if you are used DataTables 1.10 or newer.
*
* @name fnAddTr
* @summary Add a `dt-tag tr` element to the table
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {node} nTr `dt-tag tr` element to add to the table
* @param {boolean} [bRedraw=false] Indicate if the table should do a redraw or not.
*
* @example
* var table = $('#example').dataTable();
* table.fnAddTr( $('<tr>'+
* '<td>1</td>'+
* '<td>2</td>'+
* '<td>3</td>'+
* '</tr>')[0]
* );
*/
jQuery.fn.dataTableExt.oApi.fnAddTr = function ( oSettings, nTr, bRedraw ) {
if ( typeof bRedraw == 'undefined' )
{
bRedraw = true;
}
var nTds = nTr.getElementsByTagName('td');
if ( nTds.length != oSettings.aoColumns.length )
{
alert( 'Warning: not adding new TR - columns and TD elements must match' );
return;
}
var aData = [];
var aInvisible = [];
var i;
for ( i=0 ; i<nTds.length ; i++ )
{
aData.push( nTds[i].innerHTML );
if (!oSettings.aoColumns[i].bVisible)
{
aInvisible.push( i );
}
}
/* Add the data and then replace DataTable's generated TR with ours */
var iIndex = this.oApi._fnAddData( oSettings, aData );
nTr._DT_RowIndex = iIndex;
oSettings.aoData[ iIndex ].nTr = nTr;
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
// Hidding invisible columns
for ( i = (aInvisible.length - 1) ; i >= 0 ; i-- )
{
oSettings.aoData[iIndex]._anHidden[ i ] = nTds[aInvisible[i]];
nTr.removeChild( nTds[aInvisible[i]] );
}
// Redraw
if ( bRedraw )
{
this.oApi._fnReDraw( oSettings );
}
};

View File

@@ -0,0 +1,33 @@
/**
* When DataTables removes columns from the display (`bVisible` or
* `fnSetColumnVis`) it removes these elements from the DOM, effecting the index
* value for the column positions. This function converts the data column index
* (i.e. all columns regardless of visibility) into a visible column index.
*
* DataTables 1.10+ has this ability built-in through the
* `dt-api column.index()` method. As such this method is marked deprecated, but
* is available for use with legacy version of DataTables.
*
* @name fnColumnIndexToVisible
* @summary Convert a column data index to a visible index.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {integer} iMatch Column data index to convert to visible index
* @returns {integer} Visible column index
*
* @example
* var table = $('#example').dataTable( {
* aoColumnDefs: [
* { bVisible: false, aTargets: [1] }
* ]
* } );
*
* // This will show 1
* alert( 'Column 2 visible index: '+table.fnColumnIndexToVisible(2) );
*/
jQuery.fn.dataTableExt.oApi.fnColumnIndexToVisible = function ( oSettings, iMatch )
{
return oSettings.oApi._fnColumnIndexToVisible( oSettings, iMatch );
};

View File

@@ -0,0 +1,25 @@
/**
* Update the internal data for a `dt-tag tr` element based on what is used in the
* DOM. You will likely want to call fnDraw() after this function.
*
* DataTables 1.10+ has this ability built-in through the
* `dt-api row().invalidate()` method. As such this method is marked deprecated,
* but is available for use with legacy version of DataTables. Please use the
* new API if you are used DataTables 1.10 or newer.
*
* @name fnDataUpdate
* @summary Update DataTables cached data from the DOM
* @author Lior Gerson
* @deprecated
*
* @param {node} nTr `dt-tag tr` element to get the data from
* @param {integer} iRowIndex Row's position in the table (`fnGetPosition`).
*/
jQuery.fn.dataTableExt.oApi.fnDataUpdate = function ( oSettings, nRowObject, iRowIndex )
{
jQuery(nRowObject).find("TD").each( function(i) {
var iColIndex = oSettings.oApi._fnVisibleToColumnIndex( oSettings, i );
oSettings.oApi._fnSetCellData( oSettings, iRowIndex, iColIndex, jQuery(this).html() );
} );
};

View File

@@ -0,0 +1,46 @@
/**
* This plug-in will take a `dt-tag tr` element and alter the table's paging
* to make that `dt-tag tr` element (i.e. that row) visible.
*
* @name fnDisplayRow
* @summary Shift the table's paging to display a given `dt-tag tr` element
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @param {node} nRow Row to display
*
* @example
* // Display the 21st row in the table
* var table = $('#example').dataTable();
* table.fnDisplayRow( table.fnGetNodes()[20] );
*/
jQuery.fn.dataTableExt.oApi.fnDisplayRow = function ( oSettings, nRow )
{
// Account for the "display" all case - row is already displayed
if ( oSettings._iDisplayLength == -1 )
{
return;
}
// Find the node in the table
var iPos = -1;
for( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
{
if( oSettings.aoData[ oSettings.aiDisplay[i] ].nTr == nRow )
{
iPos = i;
break;
}
}
// Alter the start point of the paging display
if( iPos >= 0 )
{
oSettings._iDisplayStart = ( Math.floor(i / oSettings._iDisplayLength) ) * oSettings._iDisplayLength;
if ( this.oApi._fnCalculateEnd ) {
this.oApi._fnCalculateEnd( oSettings );
}
}
this.oApi._fnDraw( oSettings );
};

View File

@@ -0,0 +1,32 @@
/**
* Set the point at which DataTables will start it's display of data in the
* table.
*
* @name fnDisplayStart
* @summary Change the table's paging display start.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {integer} iStart Display start index.
* @param {boolean} [bRedraw=false] Indicate if the table should do a redraw or not.
*
* @example
* var table = $('#example').dataTable();
* table.fnDisplayStart( 21 );
*/
jQuery.fn.dataTableExt.oApi.fnDisplayStart = function ( oSettings, iStart, bRedraw )
{
if ( typeof bRedraw == 'undefined' ) {
bRedraw = true;
}
oSettings._iDisplayStart = iStart;
if ( oSettings.oApi._fnCalculateEnd ) {
oSettings.oApi._fnCalculateEnd( oSettings );
}
if ( bRedraw ) {
oSettings.oApi._fnDraw( oSettings );
}
};

View File

@@ -0,0 +1,66 @@
/**
* Creates `rowspan` cells in a column when there are two or more cells in a
* row with the same content, effectively grouping them together visually.
*
* **Note** - this plug-in currently only operates correctly with
* **server-side processing**.
*
* @name fnFakeRowspan
* @summary Create a rowspan for cells which share data
* @author Fredrik Wendel
*
* @param {interger} iColumn Column index to have row span
* @param {boolean} [bCaseSensitive=true] If the data check should be case
* sensitive or not.
* @returns {jQuery} jQuery instance
*
* @example
* $('#example').dataTable().fnFakeRowspan(3);
*/
jQuery.fn.dataTableExt.oApi.fnFakeRowspan = function ( oSettings, iColumn, bCaseSensitive ) {
/* Fail silently on missing/errorenous parameter data. */
if (isNaN(iColumn)) {
return false;
}
if (iColumn < 0 || iColumn > oSettings.aoColumns.length-1) {
alert ('Invalid column number choosen, must be between 0 and ' + (oSettings.aoColumns.length-1));
return false;
}
bCaseSensitive = (typeof(bCaseSensitive) != 'boolean' ? true : bCaseSensitive);
function fakeRowspan () {
var firstOccurance = null,
value = null,
rowspan = 0;
jQuery.each(oSettings.aoData, function (i, oData) {
var val = oData._aData[iColumn],
cell = oData.nTr.childNodes[iColumn];
/* Use lowercase comparison if not case-sensitive. */
if (!bCaseSensitive) {
val = val.toLowerCase();
}
/* Reset values on new cell data. */
if (val != value) {
value = val;
firstOccurance = cell;
rowspan = 0;
}
if (val == value) {
rowspan++;
}
if (firstOccurance !== null && val == value && rowspan > 1) {
oData.nTr.removeChild(cell);
firstOccurance.rowSpan = rowspan;
}
});
}
oSettings.aoDrawCallback.push({ "fn": fakeRowspan, "sName": "fnFakeRowspan" });
return this;
};

View File

@@ -0,0 +1,39 @@
/**
* Apply the same filter to all DataTable instances on a particular page. The
* function call exactly matches that used by `fnFilter()` so regular expression
* and individual column sorting can be used.
*
* DataTables 1.10+ provides this ability through its new API, which is able to
* to control multiple tables at a time.
* `$('.dataTable').DataTable().search( ... )` for example will apply the same
* filter to all tables on the page. The new API should be used in preference
* to this older method if at all possible.
*
* @name fnFilterAll
* @summary Apply a common filter to all DataTables on a page
* @author [Kristoffer Karlström](http://www.kmmtiming.se/)
* @deprecated
*
* @param {string} sInput Filtering input
* @param {integer} [iColumn=null] Column to apply the filter to
* @param {boolean} [bRegex] Regular expression flag
* @param {boolean} [bSmart] Smart filtering flag
*
* @example
* $(document).ready(function() {
* var table = $(".dataTable").dataTable();
*
* $("#search").keyup( function () {
* // Filter on the column (the index) of this element
* table.fnFilterAll(this.value);
* } );
* });
*/
jQuery.fn.dataTableExt.oApi.fnFilterAll = function(oSettings, sInput, iColumn, bRegex, bSmart) {
var settings = $.fn.dataTableSettings;
for ( var i=0 ; i<settings.length ; i++ ) {
settings[i].oInstance.fnFilter( sInput, iColumn, bRegex, bSmart);
}
};

View File

@@ -0,0 +1,63 @@
/**
* Remove all filtering that has been applied to a DataTable, be it column
* based filtering or global filtering.
*
* DataTables 1.10+ new API can achieve the same effect as this plug-in, without
* the requirement for plug-ins using the following chaining:
*
* ```js
* var table = $('#example').DataTable();
* table
* .search( '' )
* .columns().search( '' )
* .draw();
* ```
*
* Please use the new API in DataTables 1.10+ is you are able to do so.
*
* @name fnFilterClear
* @summary Remove all column and global filters applied to a table
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* // Perform a filter
* table.fnFilter('Win');
* table.fnFilter('Trident', 0);
*
* // Remove all filtering
* table.fnFilterClear();
* } );
*/
jQuery.fn.dataTableExt.oApi.fnFilterClear = function ( oSettings )
{
var i, iLen;
/* Remove global filter */
oSettings.oPreviousSearch.sSearch = "";
/* Remove the text of the global filter in the input boxes */
if ( typeof oSettings.aanFeatures.f != 'undefined' )
{
var n = oSettings.aanFeatures.f;
for ( i=0, iLen=n.length ; i<iLen ; i++ )
{
$('input', n[i]).val( '' );
}
}
/* Remove the search text for the column filters - NOTE - if you have input boxes for these
* filters, these will need to be reset
*/
for ( i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++ )
{
oSettings.aoPreSearchCols[i].sSearch = "";
}
/* Redraw */
oSettings.oApi._fnReDraw( oSettings );
};

View File

@@ -0,0 +1,36 @@
/**
* This plug-in removes the default behaviour of DataTables to filter on each
* keypress, and replaces with it the requirement to press the enter key to
* perform the filter.
*
* @name fnFilterOnReturn
* @summary Require the return key to be pressed to filter a table
* @author [Jon Ranes](http://www.mvccms.com/)
*
* @returns {jQuery} jQuery instance
*
* @example
* $(document).ready(function() {
* $('.dataTable').dataTable().fnFilterOnReturn();
* } );
*/
jQuery.fn.dataTableExt.oApi.fnFilterOnReturn = function (oSettings) {
var _that = this;
this.each(function (i) {
$.fn.dataTableExt.iApiIndex = i;
var $this = this;
var anControl = $('input', _that.fnSettings().aanFeatures.f);
anControl
.unbind('keyup search input')
.bind('keypress', function (e) {
if (e.which == 13) {
$.fn.dataTableExt.iApiIndex = i;
_that.fnFilter(anControl.val());
}
});
return this;
});
return this;
};

View File

@@ -0,0 +1,55 @@
/**
* Search through a table looking for a given string (optionally the search
* can be restricted to a single column). The return value is an array with
* the data indexes (from DataTables' internal data store) for any rows which
* match.
*
* @name fnFindCellRowIndexes
* @summary Search for data, returning row indexes
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @param {string} sSearch Data to search for
* @param {integer} [iColumn=null] Limit search to this column
* @returns {array} Array of row indexes with this data
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* var a = table.fnFindCellRowIndexes( '1.7' ); // Search all columns
*
* var b = table.fnFindCellRowIndexes( '1.7', 3 ); // Search only column 3
* } );
*/
jQuery.fn.dataTableExt.oApi.fnFindCellRowIndexes = function ( oSettings, sSearch, iColumn )
{
var
i,iLen, j, jLen, val,
aOut = [], aData,
columns = oSettings.aoColumns;
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
{
aData = oSettings.aoData[i]._aData;
if ( iColumn === undefined )
{
for ( j=0, jLen=columns.length ; j<jLen ; j++ )
{
val = this.fnGetData(i, j);
if ( val == sSearch )
{
aOut.push( i );
}
}
}
else if (this.fnGetData(i, iColumn) == sSearch )
{
aOut.push( i );
}
}
return aOut;
};

View File

@@ -0,0 +1,55 @@
/**
* Much like `fnFindCellRowIndexes` this plug-in will search a table for
* matching data (optionally the search can be restricted to a single column),
* but in this case the returned array contains `dt-tag tr` nodes of the
* matching rows, rather than data indexes.
*
* @name fnFindCellRowNodes
* @summary Search for data, returning row nodes
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @param {string} sSearch Data to search for
* @param {integer} [iColumn=null] Limit search to this column
* @returns {array} Array of `dt-tag tr` element with this data
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* var a = table.fnFindCellRowNodes( '1.7' ); // Search all columns
*
* var b = table.fnFindCellRowNodes( '1.7', 3 ); // Search only column 3
* } );
*/
jQuery.fn.dataTableExt.oApi.fnFindCellRowNodes = function ( oSettings, sSearch, iColumn )
{
var
i,iLen, j, jLen, val,
aOut = [], aData,
columns = oSettings.aoColumns;
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
{
aData = oSettings.aoData[i]._aData;
if ( iColumn === undefined )
{
for ( j=0, jLen=columns.length ; j<jLen ; j++ )
{
val = this.fnGetData(i, j);
if ( val == sSearch )
{
aOut.push( oSettings.aoData[i].nTr );
}
}
}
else if (this.fnGetData(i, iColumn) == sSearch )
{
aOut.push( oSettings.aoData[i].nTr );
}
}
return aOut;
};

View File

@@ -0,0 +1,55 @@
/**
* Due to the fact that DataTables moves DOM elements around (mainly `dt-tag tr`
* elements for sorting and filtering) it can at times be a little tricky to get
* the next row based on another, while taking into account pagination,
* filtering, sorting etc.
*
* This function is designed to address exactly this situation. It takes two
* parameters, the target node, and a boolean indicating if the adjacent row
* retrieved should be the next (`true`, or no value) or the previous (`false`).
*
* @name fnGetAdjacentTr
* @summary Get the adjacent `dt-tag tr` element for a row.
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @param {node} nTr `dt-tag tr` element to get the adjacent element of
* @param {boolean} [bNext=true] Get the next (`true`), or previous (`false`)
* `dt-tag tr` element.
* @returns {node} `dt-tag tr` element or null if not found.
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* var n1 = $('#example tbody tr').eq(2)[0];
* var next = table.fnGetAdjacentTr( n1 );
* var prev = table.fnGetAdjacentTr( n1, false );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnGetAdjacentTr = function ( oSettings, nTr, bNext )
{
/* Find the node's position in the aoData store */
var iCurrent = oSettings.oApi._fnNodeToDataIndex( oSettings, nTr );
/* Convert that to a position in the display array */
var iDisplayIndex = $.inArray( iCurrent, oSettings.aiDisplay );
if ( iDisplayIndex == -1 )
{
/* Not in the current display */
return null;
}
/* Move along the display array as needed */
iDisplayIndex += (typeof bNext=='undefined' || bNext) ? 1 : -1;
/* Check that it within bounds */
if ( iDisplayIndex < 0 || iDisplayIndex >= oSettings.aiDisplay.length )
{
/* There is no next/previous element */
return null;
}
/* Return the target node from the aoData store */
return oSettings.aoData[ oSettings.aiDisplay[ iDisplayIndex ] ].nTr;
};

View File

@@ -0,0 +1,83 @@
/**
* Return an array of table values from a particular column, with various
* filtering options.
*
* DataTables 1.10+ provides the `dt-api column().data()` method, built-in to
* the core, to provide this ability. As such, this method is marked deprecated,
* but is available for use with legacy version of DataTables. Please use the
* new API if you are used DataTables 1.10 or newer.
*
* @name fnGetColumnData
* @summary Get the data from a column
* @author [Benedikt Forchhammer](http://mind2.de)
* @deprecated
*
* @param {integer} iColumn Column to get data from
* @param {boolean} [bFiltered=true] Reduce the data set to only unique values
* @param {boolean} [bUnique=true] Get data from filter results only
* @param {boolean} [bIgnoreEmpty=true] Remove data elements which are empty
* @returns {array} Array of data from the column
*
* @example
* var table = $('#example').dataTable();
* table.fnGetColumnData( 3 );
*/
jQuery.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
// check that we have a column id
if ( typeof iColumn == "undefined" ) {
return [];
}
// by default we only wany unique data
if ( typeof bUnique == "undefined" ) {
bUnique = true;
}
// by default we do want to only look at filtered data
if ( typeof bFiltered == "undefined" ) {
bFiltered = true;
}
// by default we do not wany to include empty values
if ( typeof bIgnoreEmpty == "undefined" ) {
bIgnoreEmpty = true;
}
// list of rows which we're going to loop through
var aiRows;
// use only filtered rows
if (bFiltered === true) {
aiRows = oSettings.aiDisplay;
}
// use all rows
else {
aiRows = oSettings.aiDisplayMaster; // all row numbers
}
// set up data array
var asResultData = [];
for (var i=0,c=aiRows.length; i<c; i++) {
var iRow = aiRows[i];
var sValue = this.fnGetData(iRow, iColumn);
// ignore empty values?
if (bIgnoreEmpty === true && sValue.length === 0) {
continue;
}
// ignore unique values?
else if (bUnique === true && jQuery.inArray(sValue, asResultData) > -1) {
continue;
}
// else push the value onto the result data array
else {
asResultData.push(sValue);
}
}
return asResultData;
};

View File

@@ -0,0 +1,31 @@
/**
* Maintenance of web-sites can often cause unexpected headaches, particularly
* if the hardcoded index of an array (the columns in a DataTables instance)
* needs to change due to an added or removed column. This plug-in function
* will match a given string to the title of a column in the table and return
* the column index, helping to overcome this problem.
*
* @name fnGetColumnIndex
* @summary Get the column index by searching the column titles
* @author [Michael Ross](http://www.rosstechassociates.com/)
*
* @param {string} sCol Column title to search for
* @returns {integer} Column index, or -1 if not found
*
* @example
* var table = $('#example').dataTable();
* table.fnGetColumnIndex( 'Browser' );
*/
jQuery.fn.dataTableExt.oApi.fnGetColumnIndex = function ( oSettings, sCol )
{
var cols = oSettings.aoColumns;
for ( var x=0, xLen=cols.length ; x<xLen ; x++ )
{
if ( cols[x].sTitle.toLowerCase() == sCol.toLowerCase() )
{
return x;
}
}
return -1;
};

View File

@@ -0,0 +1,43 @@
/**
* Get a list of all `dt-tag tr` nodes in the table which are not currently
* visible (useful for building forms).
*
* This function is marked as deprecated as using the `dt-api rows()` method in
* DataTables 1.10+ is preferred to this approach.
*
* @name fnGetHiddenNodes
* @summary Get the `dt-tag tr` elements which are not in the DOM
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @example
* var table = $('#example').dataTable();
* var nodes = table.fnGetHiddenNodes();
*/
jQuery.fn.dataTableExt.oApi.fnGetHiddenNodes = function ( settings )
{
var nodes;
var display = jQuery('tbody tr', settings.nTable);
if ( jQuery.fn.dataTable.versionCheck ) {
// DataTables 1.10
var api = new jQuery.fn.dataTable.Api( settings );
nodes = api.rows().nodes().toArray();
}
else {
// 1.9-
nodes = this.oApi._fnGetTrNodes( settings );
}
/* Remove nodes which are being displayed */
for ( var i=0 ; i<display.length ; i++ ) {
var iIndex = jQuery.inArray( display[i], nodes );
if ( iIndex != -1 ) {
nodes.splice( iIndex, 1 );
}
}
return nodes;
};

View File

@@ -0,0 +1,59 @@
/**
* Get a `dt-tag td` node from a row, taking into account column visibility.
* While getting a `dt-tag td` node is easy when it is visible on the page by
* using normal DOM methods, jQuery or whatever, it becomes a lot more
* complicated when taking into account hidden rows and columns. This function
* can be used to overcome these difficulties.
*
* DataTables 1.10+'s new API provides the `dt-api cell()` and `dt-api cells()`
* methods which are preferable for use over this method. As such this method is
* marked deprecated, but is available for use with legacy version of
* DataTables. Please use the new API if you are used DataTables 1.10 or newer.
*
* @name fnGetTd
* @summary Get the `dt-tag td` element for a cell.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {node} mTr `dt-tag tr` element to get the `dt-tag td` of
* @param {integer} iTd Column index to get the node of
* @param {boolean} bVisOnly Consider visible columns only
* @returns {node} `dt-tag td` element in question
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* // Sort in the order that was origially in the HTML
* var nTd = table.fnGetTd( $('#example tbody tr:eq(1)')[0], 1 );
* console.log( nTd );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnGetTd = function ( oSettings, mTr, iTd, bVisOnly )
{
/* Take either a TR node or aoData index as the mTr property */
var iRow = (typeof mTr == 'object') ?
oSettings.oApi._fnNodeToDataIndex(oSettings, mTr) : mTr;
if ( typeof bVisOnly == 'undefined' && !bVisOnly )
{
/* Looking at both visible and hidden TD elements - convert to visible index, if not present
* then it must be hidden. Return as appropriate
*/
var iCalcVis = oSettings.oApi._fnColumnIndexToVisible( oSettings, iTd );
if ( iCalcVis !== null )
{
return oSettings.aoData[ iRow ].nTr.getElementsByTagName('td')[ iCalcVis ];
}
else
{
return oSettings.aoData[ iRow ]._anHidden[ iTd ];
}
}
else
{
/* Only looking at visible TD elements, so just use getElements... */
return oSettings.aoData[ iRow ].nTr.getElementsByTagName('td')[ iTd ];
}
};

View File

@@ -0,0 +1,65 @@
/**
* Get an array of `dt-tag td` nodes from DataTables for a given row, including
* any column elements which are hidden.
*
* DataTables 1.10 has the `dt-api cells().nodes()` method, built-in, to provide
* this functionality. As such this method is marked deprecated, but is
* available for use with legacy version of DataTables. Please use the new API
* if you are used DataTables 1.10 or newer.
*
* @name fnGetTds
* @summary Get the `dt-tag td` elements for a row
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {node} mTr `dt-tag tr` element to get the `dt-tag td` of
* @returns {array} Array of `dt-tag td` elements
*
* @example
* $(document).ready(function() {
* var oTable = $('#example').dataTable();
*
* // Sort in the order that was origially in the HTML
* var anTds = oTable.fnGetTds( $('#example tbody tr:eq(1)')[0] );
* console.log( anTds );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnGetTds = function ( oSettings, mTr )
{
var anTds = [];
var anVisibleTds = [];
var iCorrector = 0;
var nTd, iColumn, iColumns;
/* Take either a TR node or aoData index as the mTr property */
var iRow = (typeof mTr == 'object') ?
oSettings.oApi._fnNodeToDataIndex(oSettings, mTr) : mTr;
var nTr = oSettings.aoData[iRow].nTr;
/* Get an array of the visible TD elements */
for ( iColumn=0, iColumns=nTr.childNodes.length ; iColumn<iColumns ; iColumn++ )
{
nTd = nTr.childNodes[iColumn];
if ( nTd.nodeName.toUpperCase() == "TD" )
{
anVisibleTds.push( nTd );
}
}
/* Construct and array of the combined elements */
for ( iColumn=0, iColumns=oSettings.aoColumns.length ; iColumn<iColumns ; iColumn++ )
{
if ( oSettings.aoColumns[iColumn].bVisible )
{
anTds.push( anVisibleTds[iColumn-iCorrector] );
}
else
{
anTds.push( oSettings.aoData[iRow]._anHidden[iColumn] );
iCorrector++;
}
}
return anTds;
};

View File

@@ -0,0 +1,48 @@
/**
* Change the number of records that can be viewed on a single page in
* DataTables.
*
* DataTables 1.10 provides the `dt-api page.len()` method to get and set the
* page length using the built-in API. As such this method is marked deprecated,
* but is available for use with legacy version of DataTables. Please use the
* new API if you are used DataTables 1.10 or newer.
*
* @name fnLengthChange
* @summary Change the paging display length
* @author [Pedro Alves](http://www.webdetails.pt/)
* @deprecated
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
* table.fnLengthChange( 100 );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnLengthChange = function ( oSettings, iDisplay )
{
oSettings._iDisplayLength = iDisplay;
oSettings.oApi._fnCalculateEnd( oSettings );
/* If we have space to show extra rows (backing up from the end point - then do so */
if ( oSettings._iDisplayEnd == oSettings.aiDisplay.length )
{
oSettings._iDisplayStart = oSettings._iDisplayEnd - oSettings._iDisplayLength;
if ( oSettings._iDisplayStart < 0 )
{
oSettings._iDisplayStart = 0;
}
}
if ( oSettings._iDisplayLength == -1 )
{
oSettings._iDisplayStart = 0;
}
oSettings.oApi._fnDraw( oSettings );
if ( oSettings.aanFeatures.l )
{
$('select', oSettings.aanFeatures.l).val( iDisplay );
}
};

View File

@@ -0,0 +1,63 @@
/**
* This plug-in adds to DataTables the ability to set multiple column filtering
* terms in a single call (particularly useful if using server-side processing).
* Used in combination with the column sName parameter, simply pass in an object
* with the key/value pair being the column you wish to search on, and the value
* you wish to search for.
*
* DataTables 1.10's API provides a easy built-in way to apply multiple filters
* to the table without redrawing until required. For example, the example below
* with the DataTables 1.10 API could be written as:
*
* ```js
* var table = $('#example').DataTable();
* table
* .column( 0 ).search( 'Gecko' )
* .column( 1 ).search( 'Cam' )
* .draw();
* ```
*
* As such this method is marked deprecated, but is available for use with
* legacy version of DataTables. Please use the new API if you are used
* DataTables 1.10 or newer.
*
* @name fnMultiFilter
* @summary Apply multiple column filters together
* @author _mrkevans_
* @deprecated
*
* @param {object} oData Data to search for
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable( {
* "aoColumns": [
* { "sName": "engine" },
* { "sName": "browser" },
* { "sName": "platform" },
* { "sName": "version" },
* { "sName": "grade" }
* ]
* } );
* table.fnMultiFilter( { "engine": "Gecko", "browser": "Cam" } );
* } );
*/
jQuery.fn.dataTableExt.oApi.fnMultiFilter = function( oSettings, oData ) {
for ( var key in oData )
{
if ( oData.hasOwnProperty(key) )
{
for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
{
if( oSettings.aoColumns[i].sName == key )
{
/* Add single column filter */
oSettings.aoPreSearchCols[ i ].sSearch = oData[key];
break;
}
}
}
}
this.oApi._fnReDraw( oSettings );
};

View File

@@ -0,0 +1,39 @@
/**
* Get information about the paging settings that DataTables is currently
* using to display each page, including the number of records shown, start
* and end points in the data set etc.
*
* DataTables 1.10+ provides the `dt-api page.info()` method, built-in, provide
* the same information as this method. As such this method is marked
* deprecated, but is available for use with legacy version of DataTables.
* Please use the new API if you are used DataTables 1.10 or newer.
*
* @name fnPagingInfo
* @summary Get information about the paging state of the table
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @example
* $(document).ready(function() {
* $('#example').dataTable( {
* "fnDrawCallback": function () {
* alert( 'Now on page'+ this.fnPagingInfo().iPage );
* }
* } );
* } );
*/
jQuery.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 )
};
};

View File

@@ -0,0 +1,26 @@
/**
* When doing some heavy processing of your own (for example using fnOpen with
* data loading from the server) it can be useful to make use of the
* 'processing' indicator built-into DataTables. This plug-in function exposes
* the internal DataTables function so it can be used for exactly this.
*
* @name fnProcessingIndicator
* @summary Show and hide the DataTables processing element through the API.
* @author Allan Chappell
*
* @param {boolean} [onoff=true] Show (`true`) or hide (`false`) the processing
* element.
*
* @example
* var table = $('#example').dataTable();
* table.fnProcessingIndicator(); // On
* table.fnProcessingIndicator(false); // Off
*/
jQuery.fn.dataTableExt.oApi.fnProcessingIndicator = function ( oSettings, onoff )
{
if ( onoff === undefined ) {
onoff = true;
}
this.oApi._fnProcessingDisplay( oSettings, onoff );
};

View File

@@ -0,0 +1,102 @@
/**
* By default DataTables only uses the sAjaxSource variable at initialisation
* time, however it can be useful to re-read an Ajax source and have the table
* update. Typically you would need to use the `fnClearTable()` and
* `fnAddData()` functions, however this wraps it all up in a single function
* call.
*
* DataTables 1.10 provides the `dt-api ajax.url()` and `dt-api ajax.reload()`
* methods, built-in, to give the same functionality as this plug-in. As such
* this method is marked deprecated, but is available for use with legacy
* version of DataTables. Please use the new API if you are used DataTables 1.10
* or newer.
*
* @name fnReloadAjax
* @summary Reload the table's data from the Ajax source
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {string} [sNewSource] URL to get the data from. If not give, the
* previously used URL is used.
* @param {function} [fnCallback] Callback that is executed when the table has
* redrawn with the new data
* @param {boolean} [bStandingRedraw=false] Standing redraw (don't changing the
* paging)
*
* @example
* var table = $('#example').dataTable();
*
* // Example call to load a new file
* table.fnReloadAjax( 'media/examples_support/json_source2.txt' );
*
* // Example call to reload from original file
* table.fnReloadAjax();
*/
jQuery.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
{
// DataTables 1.10 compatibility - if 1.10 then `versionCheck` exists.
// 1.10's API has ajax reloading built in, so we use those abilities
// directly.
if ( jQuery.fn.dataTable.versionCheck ) {
var api = new jQuery.fn.dataTable.Api( oSettings );
if ( sNewSource ) {
api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw );
}
else {
api.ajax.reload( fnCallback, !bStandingRedraw );
}
return;
}
if ( sNewSource !== undefined && sNewSource !== null ) {
oSettings.sAjaxSource = sNewSource;
}
// Server-side processing should just call fnDraw
if ( oSettings.oFeatures.bServerSide ) {
this.fnDraw();
return;
}
this.oApi._fnProcessingDisplay( oSettings, true );
var that = this;
var iStart = oSettings._iDisplayStart;
var aData = [];
this.oApi._fnServerParams( oSettings, aData );
oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) {
/* Clear the old information from the table */
that.oApi._fnClearTable( oSettings );
/* Got the data - add it to the table */
var aData = (oSettings.sAjaxDataProp !== "") ?
that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;
for ( var i=0 ; i<aData.length ; i++ )
{
that.oApi._fnAddData( oSettings, aData[i] );
}
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
that.fnDraw();
if ( bStandingRedraw === true )
{
oSettings._iDisplayStart = iStart;
that.oApi._fnCalculateEnd( oSettings );
that.fnDraw( false );
}
that.oApi._fnProcessingDisplay( oSettings, false );
/* Callback user function - for event handlers etc */
if ( typeof fnCallback == 'function' && fnCallback !== null )
{
fnCallback( oSettings );
}
}, oSettings );
};

View File

@@ -0,0 +1,51 @@
/**
* Enables filtration delay for keeping the browser more responsive while
* searching for a longer keyword.
*
* This can be particularly useful when working with server-side processing,
* where you wouldn't typically want an Ajax request to be made with every key
* press the user makes when searching the table.
*
* @name fnSetFilteringDelay
* @summary Add a key debouce delay to the global filtering input of a table
* @author [Zygimantas Berziunas](http://www.zygimantas.com/),
* [Allan Jardine](http://www.sprymedia.co.uk/) and _vex_
*
* @example
* $(document).ready(function() {
* $('.dataTable').dataTable().fnSetFilteringDelay();
* } );
*/
jQuery.fn.dataTableExt.oApi.fnSetFilteringDelay = function ( oSettings, iDelay ) {
var _that = this;
if ( iDelay === undefined ) {
iDelay = 250;
}
this.each( function ( i ) {
$.fn.dataTableExt.iApiIndex = i;
var
$this = this,
oTimerId = null,
sPreviousSearch = null,
anControl = $( 'input', _that.fnSettings().aanFeatures.f );
anControl.unbind( 'keyup search input' ).bind( 'keyup search input', function() {
var $$this = $this;
if (sPreviousSearch === null || sPreviousSearch != anControl.val()) {
window.clearTimeout(oTimerId);
sPreviousSearch = anControl.val();
oTimerId = window.setTimeout(function() {
$.fn.dataTableExt.iApiIndex = i;
_that.fnFilter( anControl.val() );
}, iDelay);
}
});
return this;
} );
return this;
};

View File

@@ -0,0 +1,36 @@
/**
* This function will restore the order in which data was read into a DataTable
* (for example from an HTML source). Although you can set aaSorting to be an
* empty array (`[ ]`) in order to prevent sorting during initialisation, it can
* sometimes be useful to restore the original order after sorting has already
* occurred - which is exactly what this function does.
*
* @name fnSortNeutral
* @summary Change ordering of the table to its data load order
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* // Sort in the order that was originally in the HTML
* table.fnSortNeutral();
* } );
*/
jQuery.fn.dataTableExt.oApi.fnSortNeutral = function ( oSettings )
{
/* Remove any current sorting */
oSettings.aaSorting = [];
/* Sort display arrays so we get them in numerical order */
oSettings.aiDisplay.sort( function (x,y) {
return x-y;
} );
oSettings.aiDisplayMaster.sort( function (x,y) {
return x-y;
} );
/* Redraw */
oSettings.oApi._fnReDraw( oSettings );
};

View File

@@ -0,0 +1,35 @@
/**
* Redraw the table (i.e. `fnDraw`) to take account of sorting and filtering,
* but retain the current pagination settings.
*
* DataTables 1.10+ provide the `dt-api draw()` method which has this ability
* built-in (pass the first parameter to the function as `false`). As such this
* method is marked deprecated, but is available for use with legacy version of
* DataTables. Please use the new API if you are used DataTables 1.10 or newer.
*
* @name fnStandingRedraw
* @summary Redraw the table without altering the paging
* @author Jonathan Hoguet
* @deprecated
*
* @example
* $(document).ready(function() {
* var table = $('.dataTable').dataTable()
* table.fnStandingRedraw();
* } );
*/
jQuery.fn.dataTableExt.oApi.fnStandingRedraw = function(oSettings) {
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);
};

View File

@@ -0,0 +1,33 @@
/**
* When DataTables removes columns from the display (bVisible or fnSetColumnVis)
* it removes these elements from the DOM, effecting the index value for the
* column positions. This function converts the visible column index into a data
* column index (i.e. all columns regardless of visibility).
*
* DataTables 1.10+ has this ability built-in through the
* `dt-api column.index()` method. As such this method is marked deprecated, but
* is available for use with legacy version of DataTables.
*
* @name fnVisibleToColumnIndex
* @summary Convert a column visible index to a data index.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @deprecated
*
* @param {integer} iMatch Column data index to convert to data index
* @returns {integer} Visible column index
*
* @example
* var table = $('#example').dataTable( {
* aoColumnDefs: [
* { bVisible: false, aTargets: [1] }
* ]
* } );
*
* // This will show 2
* alert( 'Visible Column 1 data index: '+table.fnVisibleToColumnIndex(1) );
*/
jQuery.fn.dataTableExt.oApi.fnVisibleToColumnIndex = function ( oSettings, iMatch )
{
return oSettings.oApi._fnVisibleToColumnIndex( oSettings, iMatch );
};

View File

@@ -0,0 +1,36 @@
<h2>Custom API functions</h2>
<p>One of the most common interactions with DataTables for a developer (other than initialisation of the table of course!) is to make use of the <a href="/api">API functions</a> provided by DataTables. While allowing for a fairly extensive range of code interactions, the default API set can be greatly enhanced by making use of the functions provided below, as suitable for your application.</p>
<ul>
<li><a href="#how_to">How to use DataTables plug-in API functions</a></li>
<li><a href="#functions">Plug-in API functions</a></li>
</ul>
<a name="how_to"></a>
<h3>How to use DataTables plug-in API functions</h3>
<p>To make use of one of the plug-in API functions below, you simply need to include it in the Javascript available for your page, after you load the DataTables library, but before you initialise the DataTable. After that, you will be able to initialise the table, and call the function on the resulting object. As an example the code below makes use of <a href="#fnGetHiddenNodes">fnGetHiddenNodes</a> saved into a file (<a href="/examples/plug-ins/plugin_api.html">live example</a>):</p>
<pre class="brush: html">&lt;script type="text/javascript" src="jquery.dataTables.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="dataTables.fnGetHiddenNodes.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
var oTable = $('#example').dataTable();
$('#button').click( function () {
var nHidden = oTable.fnGetHiddenNodes();
alert( nHidden.length +' nodes were returned' );
} );
} );
&lt;/script&gt;
</pre>
<p>Please note that DataTables will automatically pass the settings object as the first parameter. As such, you do not need to pass the settings object, which you will see if you look at the plug-in API's code.</p>
<a name="functions"></a>
<h3>Plug-in API functions</h3>
include(`build.1.inc')

View File

@@ -0,0 +1,38 @@
/**
* It can be quite useful to jump straight to a page which contains a certain
* piece of data (a user name for example). This plug-in provides exactly that
* ability, searching for a given data parameter from a given column and
* immediately shifting the paging of the table to jump to that point.
*
* If multiple data points match the requested data, the paging will be shifted
* to show the first instance. If there are no matches, the paging will not
* change.
*
* Note that unlike the core DataTables API methods, this plug-in will
* automatically call `dt-api draw()` to redraw the table with the current page
* shown.
*
* @name page.JumpToData()
* @summary Jump to a page by searching for data from a column
* @author [Allan Jardine](http://sprymedia.co.uk)
* @requires DataTables 1.10+
*
* @param {*} data Data to search for
* @param {integer} column Column index
* @returns {Api} DataTables API instance
*
* @example
* var table = $('#example').DataTable();
* table.page.jumpToData( "Allan Jardine", 0 );
*/
jQuery.fn.dataTable.Api.register( 'page.jumpToData()', function ( data, column ) {
var pos = this.column(column, {order:'current'}).data().indexOf( data );
if ( pos >= 0 ) {
var page = Math.floor( pos / this.page.info().length );
this.page( page ).draw( false );
}
return this;
} );

View File

@@ -0,0 +1,36 @@
/**
* Fairly simply, this plug-in will take the data from an API result set
* and sum it, returning the summed value. The data can come from any data
* source, including column data, cells or rows.
*
* @name sum()
* @summary Sum the values in a data set.
* @author [Allan Jardine](http://sprymedia.co.uk)
* @requires DataTables 1.10+
*
* @returns {Number} Summed value
*
* @example
* // Simply get the sum of a column
* var table = $('#example').DataTable();
* table.column( 3 ).data().sum();
*
* @example
* // Insert the sum of a column into the columns footer, for the visible
* // data on each draw
* $('#example').DataTable( {
* drawCallback: function () {
* var api = this.api();
* api.table().footer().to$().html(
* api.column( 4, {page:'current'} ).data().sum()
* );
* }
* } );
*/
jQuery.fn.dataTable.Api.register( 'sum()', function () {
return this.flatten().reduce( function ( a, b ) {
return (a*1) + (b*1); // cast values in-case they are strings
} );
} );

View File

@@ -0,0 +1,39 @@
div.alphabet {
position: relative;
display: table;
width: 100%;
margin-bottom: 1em;
}
div.alphabet span {
display: table-cell;
color: #3174c7;
cursor: pointer;
text-align: center;
width: 3.5%
}
div.alphabet span:hover {
text-decoration: underline;
}
div.alphabet span.active {
color: black;
}
div.alphabet span.empty {
color: red;
}
div.alphabetInfo {
display: block;
position: absolute;
background-color: #111;
border-radius: 3px;
color: white;
top: 2em;
height: 1.8em;
padding-top: 0.4em;
text-align: center;
z-index: 1;
}

View File

@@ -0,0 +1,162 @@
/*! AlphabetSearch for DataTables v1.0.0
* 2014 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary AlphabetSearch
* @description Show an set of alphabet buttons alongside a table providing
* search input options
* @version 1.0.0
* @file dataTables.alphabetSearch.js
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
* @copyright Copyright 2014 SpryMedia Ltd.
*
* License MIT - http://datatables.net/license/mit
*
* For more detailed information please see:
* http://datatables.net/blog/2014-09-22
*/
(function(){
// Search function
$.fn.dataTable.Api.register( 'alphabetSearch()', function ( searchTerm ) {
this.iterator( 'table', function ( context ) {
context.alphabetSearch = searchTerm;
} );
return this;
} );
// Recalculate the alphabet display for updated data
$.fn.dataTable.Api.register( 'alphabetSearch.recalc()', function ( searchTerm ) {
this.iterator( 'table', function ( context ) {
draw(
new $.fn.dataTable.Api( context ),
$('div.alphabet', this.table().container())
);
} );
return this;
} );
// Search plug-in
$.fn.dataTable.ext.search.push( function ( context, searchData ) {
// Ensure that there is a search applied to this table before running it
if ( ! context.alphabetSearch ) {
return true;
}
if ( searchData[0].charAt(0) === context.alphabetSearch ) {
return true;
}
return false;
} );
// Private support methods
function bin ( data ) {
var letter, bins = {};
for ( var i=0, ien=data.length ; i<ien ; i++ ) {
letter = data[i].charAt(0).toUpperCase();
if ( bins[letter] ) {
bins[letter]++;
}
else {
bins[letter] = 1;
}
}
return bins;
}
function draw ( table, alphabet )
{
alphabet.empty();
alphabet.append( 'Search: ' );
var columnData = table.column(0).data();
var bins = bin( columnData );
$('<span class="clear active"/>')
.data( 'letter', '' )
.data( 'match-count', columnData.length )
.html( 'None' )
.appendTo( alphabet );
for ( var i=0 ; i<26 ; i++ ) {
var letter = String.fromCharCode( 65 + i );
$('<span/>')
.data( 'letter', letter )
.data( 'match-count', bins[letter] || 0 )
.addClass( ! bins[letter] ? 'empty' : '' )
.html( letter )
.appendTo( alphabet );
}
$('<div class="alphabetInfo"></div>')
.appendTo( alphabet );
}
$.fn.dataTable.AlphabetSearch = function ( context ) {
var table = new $.fn.dataTable.Api( context );
var alphabet = $('<div class="alphabet"/>');
draw( table, alphabet );
// Trigger a search
alphabet.on( 'click', 'span', function () {
alphabet.find( '.active' ).removeClass( 'active' );
$(this).addClass( 'active' );
table
.alphabetSearch( $(this).data('letter') )
.draw();
} );
// Mouse events to show helper information
alphabet
.on( 'mouseenter', 'span', function () {
alphabet
.find('div.alphabetInfo')
.css( {
opacity: 1,
left: $(this).position().left,
width: $(this).width()
} )
.html( $(this).data('match-count') );
} )
.on( 'mouseleave', 'span', function () {
alphabet
.find('div.alphabetInfo')
.css('opacity', 0);
} );
// API method to get the alphabet container node
this.node = function () {
return alphabet;
};
};
$.fn.DataTable.AlphabetSearch = $.fn.dataTable.AlphabetSearch;
// Register a search plug-in
$.fn.dataTable.ext.feature.push( {
fnInit: function ( settings ) {
var search = new $.fn.dataTable.AlphabetSearch( settings );
return search.node();
},
cFeature: 'A'
} );
}());

View File

@@ -0,0 +1,8 @@
/*!
AlphabetSearch for DataTables v1.0.0
2014 SpryMedia Ltd - datatables.net/license
*/
(function(){function f(b,c){c.empty();c.append("Search: ");for(var a=b.column(0).data(),d,e={},g=0,f=a.length;g<f;g++)d=a[g].charAt(0).toUpperCase(),e[d]?e[d]++:e[d]=1;$('<span class="clear active"/>').data("letter","").data("match-count",a.length).html("None").appendTo(c);for(a=0;26>a;a++)d=String.fromCharCode(65+a),$("<span/>").data("letter",d).data("match-count",e[d]||0).addClass(!e[d]?"empty":"").html(d).appendTo(c);$('<div class="alphabetInfo"></div>').appendTo(c)}$.fn.dataTable.Api.register("alphabetSearch()",
function(b){this.iterator("table",function(c){c.alphabetSearch=b});return this});$.fn.dataTable.Api.register("alphabetSearch.recalc()",function(){this.iterator("table",function(b){f(new $.fn.dataTable.Api(b),$("div.alphabet",this.table().container()))});return this});$.fn.dataTable.ext.search.push(function(b,c){return!b.alphabetSearch||c[0].charAt(0)===b.alphabetSearch?!0:!1});$.fn.dataTable.AlphabetSearch=function(b){var c=new $.fn.dataTable.Api(b),a=$('<div class="alphabet"/>');f(c,a);a.on("click",
"span",function(){a.find(".active").removeClass("active");$(this).addClass("active");c.alphabetSearch($(this).data("letter")).draw()});a.on("mouseenter","span",function(){a.find("div.alphabetInfo").css({opacity:1,left:$(this).position().left,width:$(this).width()}).html($(this).data("match-count"))}).on("mouseleave","span",function(){a.find("div.alphabetInfo").css("opacity",0)});this.node=function(){return a}};$.fn.DataTable.AlphabetSearch=$.fn.dataTable.AlphabetSearch;$.fn.dataTable.ext.feature.push({fnInit:function(b){return(new $.fn.dataTable.AlphabetSearch(b)).node()},
cFeature:"A"})})();

View File

@@ -0,0 +1,4 @@
div.dataTables_length a.active {
color: black;
}

View File

@@ -0,0 +1,90 @@
/*! Page length control via links for DataTables
* 2014 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary LengthLinks
* @description Page length control via links for DataTables
* @version 1.1.0
* @file dataTables.searchHighlight.js
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
* @copyright Copyright 2014 SpryMedia Ltd.
*
* License MIT - http://datatables.net/license/mit
*
* This feature plug-in for DataTables adds page length control links to the
* DataTable. The `dom` option can be used to insert the control using the `L`
* character option and it uses the `lengthMenu` options of DataTables to
* determine what to display.
*
* @example
* $('#myTable').DataTable( {
* dom: 'Lfrtip'
* } );
*
* @example
* $('#myTable').DataTable( {
* lengthMenu: [ [10, 25, 50, -1], [10, 25, 50, "All"] ]
* dom: 'Lfrtip'
* } );
*/
(function(window, document, $, undefined) {
$.fn.dataTable.LengthLinks = function ( inst ) {
var api = new $.fn.dataTable.Api( inst );
var settings = api.settings()[0];
var container = $('<div></div>').addClass( settings.oClasses.sLength );
var lastLength = -1;
// API so the feature wrapper can return the node to insert
this.container = function () {
return container[0];
};
// Listen for events to change the page length
container.on( 'click.dtll', 'a', function (e) {
e.preventDefault();
api.page.len( $(this).data('length')*1 ).draw( false );
} );
// Update on each draw
api.on( 'draw', function () {
// No point in updating - nothing has changed
if ( api.page.len() === lastLength ) {
return;
}
var menu = settings.aLengthMenu;
var lang = menu.length===2 && $.isArray(menu[0]) ? menu[1] : menu;
var lens = menu.length===2 && $.isArray(menu[0]) ? menu[0] : menu;
var out = $.map( lens, function (el, i) {
return el == api.page.len() ?
'<a class="active" data-length="'+lens[i]+'">'+lang[i]+'</a>' :
'<a data-length="'+lens[i]+'">'+lang[i]+'</a>';
} );
container.html( settings.oLanguage.sLengthMenu.replace( '_MENU_', out.join(' | ') ) );
lastLength = api.page.len();
} );
api.on( 'destroy', function () {
container.off( 'click.dtll', 'a' );
} );
};
// Subscribe the feature plug-in to DataTables, ready for use
$.fn.dataTable.ext.feature.push( {
"fnInit": function( settings ) {
var l = new $.fn.dataTable.LengthLinks( settings );
return l.container();
},
"cFeature": "L",
"sFeature": "LengthLinks"
} );
})(window, document, jQuery);

View File

@@ -0,0 +1,6 @@
/*!
Page length control via links for DataTables
2014 SpryMedia Ltd - datatables.net/license
*/
(function(i,j,a){a.fn.dataTable.LengthLinks=function(d){var c=new a.fn.dataTable.Api(d),f=c.settings()[0],e=a("<div></div>").addClass(f.oClasses.sLength),h=-1;this.container=function(){return e[0]};e.on("click.dtll","a",function(b){b.preventDefault();c.page.len(1*a(this).data("length")).draw(!1)});c.on("draw",function(){if(c.page.len()!==h){var b=f.aLengthMenu,d=2===b.length&&a.isArray(b[0])?b[1]:b,g=2===b.length&&a.isArray(b[0])?b[0]:b,b=a.map(g,function(b,a){return b==c.page.len()?'<a class="active" data-length="'+
g[a]+'">'+d[a]+"</a>":'<a data-length="'+g[a]+'">'+d[a]+"</a>"});e.html(f.oLanguage.sLengthMenu.replace("_MENU_",b.join(" | ")));h=c.page.len()}});c.on("destroy",function(){e.off("click.dtll","a")})};a.fn.dataTable.ext.feature.push({fnInit:function(d){return(new a.fn.dataTable.LengthLinks(d)).container()},cFeature:"L",sFeature:"LengthLinks"})})(window,document,jQuery);

View File

@@ -0,0 +1,6 @@
table.dataTable span.highlight {
background-color: #FFFF88;
}

View File

@@ -0,0 +1,67 @@
/*! SearchHighlight for DataTables v1.0.1
* 2014 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary SearchHighlight
* @description Search term highlighter for DataTables
* @version 1.0.1
* @file dataTables.searchHighlight.js
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
* @copyright Copyright 2014 SpryMedia Ltd.
*
* License MIT - http://datatables.net/license/mit
*
* This feature plug-in for DataTables will highlight search terms in the
* DataTable as they are entered into the main search input element, or via the
* `search()` API method.
*
* It depends upon the jQuery Highlight plug-in by Bartek Szopka:
* http://bartaz.github.io/sandbox.js/jquery.highlight.js
*
* Search highlighting in DataTables can be enabled by:
*
* * Adding the class `searchHighlight` to the HTML table
* * Setting the `searchHighlight` parameter in the DataTables initialisation to
* be true
* * Setting the `searchHighlight` parameter to be true in the DataTables
* defaults (thus causing all tables to have this feature) - i.e.
* `$.fn.dataTable.defaults.searchHighlight = true`.
*
* For more detailed information please see:
* http://datatables.net/blog/2014-10-22
*/
(function(window, document, $){
// Listen for DataTables initialisations
$(document).on( 'init.dt.dth', function (e, settings, json) {
var table = new $.fn.dataTable.Api( settings );
var body = $( table.table().body() );
if (
$( table.table().node() ).hasClass( 'searchHighlight' ) || // table has class
settings.oInit.searchHighlight || // option specified
$.fn.dataTable.defaults.searchHighlight // default set
) {
table
.on( 'draw.dt.dth column-visibility.dt.dth', function () {
// On each draw highlight search results, removing the old ones
body.unhighlight();
// Don't highlight the "not found" row
if ( table.rows( { filter: 'applied' } ).data().length ) {
body.highlight( table.search().split(' ') );
}
} )
.on( 'destroy', function () {
// Remove event handler
table.off( 'draw.dt.dth column-visibility.dt.dth' );
} );
}
} );
})(window, document, jQuery);

View File

@@ -0,0 +1,5 @@
/*!
SearchHighlight for DataTables v1.0.1
2014 SpryMedia Ltd - datatables.net/license
*/
(function(f,c,b){b(c).on("init.dt.dth",function(c,d){var a=new b.fn.dataTable.Api(d),e=b(a.table().body());if(b(a.table().node()).hasClass("searchHighlight")||d.oInit.searchHighlight||b.fn.dataTable.defaults.searchHighlight)a.on("draw.dt.dth column-visibility.dt.dth",function(){e.unhighlight();a.rows({filter:"applied"}).data().length&&e.highlight(a.search().split(" "))}).on("destroy",function(){a.off("draw.dt.dth column-visibility.dt.dth")})})})(window,document,jQuery);

View File

@@ -0,0 +1,77 @@
<h2>Filtering plug-in functions</h2>
<p>The filtering plug-in options that DataTables provides are remarkably powerful, and and let you set almost any filtering criterion you wish for user based input. A couple of things to note for filtering, firstly you will likely need to customise the filtering presented on this page to match your specific needs. Secondly, if you are using server-side processing, DataTables doesn't do any client-side filtering, so these plug-ins will not have any effect (with server-side processing, all data manipulation is done by the server - so you would need to implement these filters there).</p>
<p>DataTables supports two different kinds of plug-in filtering methods:</p>
<ul>
<li>Type based column filtering - filtering based on the sType of the column.
<ul style="font-size:1em;">
<li><a href="#how_to_type_based">How to use DataTables plug-in column type based filtering</a></li>
<li><a href="#functions_type_based">Plug-in column type based filtering</a></li>
</ul>
</li>
<li>Row based filtering - filtering applied to the data from the whole row.
<ul style="font-size:1em;">
<li><a href="#how_to">How to use DataTables plug-in row filtering functions</a></li>
<li><a href="#functions">Plug-in row filtering functions</a></li>
</ul>
</li>
</ul>
<a name="how_to"></a>
<h3>How to use DataTables plug-in column type based filtering</h3>
<p>To make use of the column (type) based filtering plug-in functions below, you need to include it in the Javascript available for your page, after you load the DataTables library, but before you initialise the DataTable. You must also set the column type for the column(s) that you wish to apply the filter to using <a href="/usage/columns#sType">sType</a>.</p>
<pre class="brush: html">&lt;script type="text/javascript" src="jquery.dataTables.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="dataTables.htmlColumnFilter.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
var oTable = $('#example').dataTable({
"aoColumns": [
"sType": "html",
null
]
});
} );
&lt;/script&gt;
</pre>
<a name="functions"></a>
<h3>Plug-in column type filtering functions</h3>
include(`build.1.inc')
<a name="how_to"></a>
<h3>How to use DataTables plug-in row filtering functions</h3>
<p>To add the functionality provided by the filtering functions below, you simply need to include it in the Javascript available for your page, after you load the DataTables library, but before you initialise the DataTable. These filters are global and will be applied whenever DataTables applies it's own filtering (for details please see the <a href="/development/filtering#global_filters">filters development page</a>).</p>
<p>In the following example the <a href="#range_numbers">range filtering (numbers)</a> plug-in is saved to a file, and used in the DataTable which is initialised. Note also that event listeners are applied to the two inputs, which will cause the table to redraw, and thus filter the new data (<a href="/examples/plug-ins/range_filtering.html">live example</a>):</p>
<pre class="brush: html">&lt;script type="text/javascript" src="jquery.dataTables.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="dataTables.rangeFilter.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function() {
var oTable = $('#example').dataTable();
/* Add event listeners to the two range filtering inputs */
$('#min').keyup( function() { oTable.fnDraw(); } );
$('#max').keyup( function() { oTable.fnDraw(); } );
} );
&lt;/script&gt;
</pre>
<a name="functions"></a>
<h3>Plug-in row filtering functions</h3>
include(`build.2.inc')

View File

@@ -0,0 +1,168 @@
/**
* Used in combination with TableTools and selectable rows, this will allow you
* to switch between showing all rows and just the selected ones.
*
* @name Show selected only
* @summary Show only selected rows, or all rows, through filtering
* @requires TableTools
* @author [Caleb Harrelson](http://stackoverflow.com/users/8507/phloopy)
*
* @example
* $('#example').dataTable({
* "sDom": 'T<"clear">Sfrtip',
* "oTableTools": {
* "sRowSelect": "multi",
* },
* "oLanguage": {
* "oFilterSelectedOptions": {
* AllText: "All Widgets",
* SelectedText: "Selected Widgets"
* }
* }
* });
*/
(function (window, document, $, undefined) {
$.fn.dataTable.SelectedLengthMenu = function(oSettings) {
if (oSettings.oScroll.bInfinite) {
return null;
}
/* This can be overruled by not using the _MENU_ var/macro in the language variable */
var sName = 'name="' + oSettings.sTableId + '_length"';
var sStdMenu = '<select size="1" ' + sName + '>';
var i, iLen;
var aLengthMenu = oSettings.aLengthMenu;
if (aLengthMenu.length == 2 && typeof aLengthMenu[0] === 'object' &&
typeof aLengthMenu[1] === 'object') {
for (i = 0, iLen = aLengthMenu[0].length; i < iLen; i++) {
sStdMenu += '<option value="' + aLengthMenu[0][i] + '">' + aLengthMenu[1][i] + '</option>';
}
} else {
for (i = 0, iLen = aLengthMenu.length; i < iLen; i++) {
sStdMenu += '<option value="' + aLengthMenu[i] + '">' + aLengthMenu[i] + '</option>';
}
}
sStdMenu += '</select>';
// select box to show all or only selected items
var oFilterSelectedOptions = oSettings.oLanguage.oFilterSelectedOptions;
if (!oFilterSelectedOptions)
oFilterSelectedOptions = { "AllText": "All Items", "SelectedText": "Selected Items" };
var sSelectedMenu = '<select name="' + oSettings.sTableId + '_selectedFilter">';
if (typeof oFilterSelectedOptions === 'object') {
sSelectedMenu += '<option value="All">' + oFilterSelectedOptions.AllText + '</option>';
sSelectedMenu += '<option value="Selected">' + oFilterSelectedOptions.SelectedText + '</option>';
} else {
sSelectedMenu += '<option value="All">' + oFilterSelectedOptions[0] + '</option>';
sSelectedMenu += '<option value="Selected">' + oFilterSelectedOptions[1] + '</option>';
}
sSelectedMenu += '</select>';
var nLength = document.createElement('div');
if (!oSettings.aanFeatures.l) {
nLength.id = oSettings.sTableId + '_length';
}
nLength.className = oSettings.oClasses.sLength;
var sLengthMenu = oSettings.oLanguage.sLengthMenu;
if (sLengthMenu == 'Show _MENU_ entries')
sLengthMenu = 'Show _MENU_ of _SELECTEDMENU_';
nLength.innerHTML = '<span>' + sLengthMenu.replace('_MENU_', sStdMenu).replace('_SELECTEDMENU_', sSelectedMenu) + '</span>';
var $lengthSelect = $('select[name="' + oSettings.sTableId + '_length"]', nLength);
if ($lengthSelect.length == 0)
$lengthSelect = $('select :eq(0)', nLength);
/*
* Set the length to the current display length - thanks to Andrea Pavlovic for this fix,
* and Stefan Skopnik for fixing the fix!
*/
$lengthSelect.find('option[value="' + oSettings._iDisplayLength + '"]', nLength).attr("selected", true);
$lengthSelect.bind('change.DT', function(e) {
var iVal = $(this).val();
/* Update all other length options for the new display */
var n = oSettings.aanFeatures.S;
for (i = 0, iLen = n.length; i < iLen; i++) {
if (n[i] != this.parentNode) {
$('select', n[i]).val(iVal);
}
}
/* Redraw the table */
oSettings._iDisplayLength = parseInt(iVal, 10);
oSettings.oApi._fnCalculateEnd(oSettings);
/* If we have space to show extra rows (backing up from the end point - then do so */
if (oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay()) {
oSettings._iDisplayStart = oSettings.fnDisplayEnd() - oSettings._iDisplayLength;
if (oSettings._iDisplayStart < 0) {
oSettings._iDisplayStart = 0;
}
}
if (oSettings._iDisplayLength == -1) {
oSettings._iDisplayStart = 0;
}
oSettings.oApi._fnDraw(oSettings);
});
var $filterSelectedSelect = $('select[name="' + oSettings.sTableId + '_selectedFilter"]', nLength);
if ($filterSelectedSelect.length == 0)
$filterSelectedSelect = $('select :eq(1)', nLength);
$filterSelectedSelect.find('option[value="' + oSettings._sFilterSelected + '"]', nLength).attr('selected', true);
$filterSelectedSelect.on('change', function () {
oSettings._sFilterSelected = $(this).val();
$('#' + oSettings.sTableId).dataTable().fnDraw();
});
$('select', nLength).attr('aria-controls', oSettings.sTableId);
return nLength;
};
$.fn.dataTableExt.afnFiltering.push(
function (oSettings, aData, iDataIndex) {
var $filterSelectedSelect = $('select[name="' + oSettings.sTableId + '_selectedFilter"]');
if ($filterSelectedSelect.length == 0)
return true; // feature not enabled
if ($filterSelectedSelect.val() == 'All')
return true; // all items selected
var oTable = $('#' + oSettings.sTableId).dataTable();
var row = oTable.fnGetNodes(iDataIndex);
var oTableTools = TableTools.fnGetInstance(oSettings.sTableId);
var isSelected = oTableTools.fnIsSelected(row);
return isSelected;
}
);
// Subscribe the feature plug-in to DataTables, ready for use
$.fn.dataTableExt.aoFeatures.push({
"fnInit": function (oSettings) {
return new $.fn.dataTable.SelectedLengthMenu(oSettings);
},
"cFeature": "O",
"sFeature": "SelectedLengthMenu"
});
})(window, document, jQuery);

View File

@@ -0,0 +1,51 @@
/**
* Filter a column on a specific date range. Note that you will likely need
* to change the id's on the inputs and the columns in which the start and
* end date exist.
*
* @name Date range filter
* @summary Filter the table based on two dates in different columns
* @author _guillimon_
*
* @example
* $(document).ready(function() {
* var table = $('#example').DataTable();
*
* // Add event listeners to the two range filtering inputs
* $('#min').keyup( function() { table.draw(); } );
* $('#max').keyup( function() { table.draw(); } );
* } );
*/
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var iFini = document.getElementById('fini').value;
var iFfin = document.getElementById('ffin').value;
var iStartDateCol = 6;
var iEndDateCol = 7;
iFini=iFini.substring(6,10) + iFini.substring(3,5)+ iFini.substring(0,2);
iFfin=iFfin.substring(6,10) + iFfin.substring(3,5)+ iFfin.substring(0,2);
var datofini=aData[iStartDateCol].substring(6,10) + aData[iStartDateCol].substring(3,5)+ aData[iStartDateCol].substring(0,2);
var datoffin=aData[iEndDateCol].substring(6,10) + aData[iEndDateCol].substring(3,5)+ aData[iEndDateCol].substring(0,2);
if ( iFini === "" && iFfin === "" )
{
return true;
}
else if ( iFini <= datofini && iFfin === "")
{
return true;
}
else if ( iFfin >= datoffin && iFini === "")
{
return true;
}
else if (iFini <= datofini && iFfin >= datoffin)
{
return true;
}
return false;
}
);

View File

@@ -0,0 +1,46 @@
/**
* Filter a specific numeric column on the value being between two given
* numbers. Note that you will likely need to change the id's on the inputs
* and the column in which the numeric value is given.
*
* @summary Filter the data between two numbers (inclusive)
* @name Range filtering (numbers)
* @author [Allan Jardine](http://sprymedia.co.uk)
*
* @example
* $(document).ready(function() {
* // Initialise datatables
* var table = $('#example').DataTable();
*
* // Add event listeners to the two range filtering inputs
* $('#min').keyup( function() { table.draw(); } );
* $('#max').keyup( function() { table.draw(); } );
* } );
*/
jQuery.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var iColumn = 3;
var iMin = document.getElementById('min').value * 1;
var iMax = document.getElementById('max').value * 1;
var iVersion = aData[iColumn] == "-" ? 0 : aData[iColumn]*1;
if ( iMin === "" && iMax === "" )
{
return true;
}
else if ( iMin === "" && iVersion < iMax )
{
return true;
}
else if ( iMin < iVersion && "" === iMax )
{
return true;
}
else if ( iMin < iVersion && iVersion < iMax )
{
return true;
}
return false;
}
);

View File

@@ -0,0 +1,64 @@
/**
* When search a table with accented characters, it can be frustrating to have
* an input such as _Zurich_ not match _Zürich_ in the table (`u !== ü`). This
* type based search plug-in replaces the built-in string formatter in
* DataTables with a function that will remove replace the accented characters
* with their unaccented counterparts for fast and easy filtering.
*
* Note that with the accented characters being replaced, a search input using
* accented characters will no longer match. The second example below shows
* how the function can be used to remove accents from the search input as well,
* to mitigate this problem.
*
* @summary Replace accented characters with unaccented counterparts
* @name Accent neutralise
* @author Allan Jardine
*
* @example
* $(document).ready(function() {
* $('#example').dataTable();
* } );
*
* @example
* $(document).ready(function() {
* var table = $('#example').dataTable();
*
* // Remove accented character from search input as well
* $('#myInput').keyup( function () {
* table
* .search(
* jQuery.fn.DataTable.ext.type.search.string( this )
* )
* .draw()
* } );
* } );
*/
jQuery.fn.DataTable.ext.type.search.string = function ( data ) {
return ! data ?
'' :
typeof data === 'string' ?
data
.replace( /έ/g, 'ε')
.replace( /ύ/g, 'υ')
.replace( /ό/g, 'ο')
.replace( /ώ/g, 'ω')
.replace( /ά/g, 'α')
.replace( /ί/g, 'ι')
.replace( /ή/g, 'η')
.replace( /\n/g, ' ' )
.replace( /á/g, 'a' )
.replace( /é/g, 'e' )
.replace( /í/g, 'i' )
.replace( /ó/g, 'o' )
.replace( /ú/g, 'u' )
.replace( /ê/g, 'e' )
.replace( /î/g, 'i' )
.replace( /ô/g, 'o' )
.replace( /è/g, 'e' )
.replace( /ï/g, 'i' )
.replace( /ü/g, 'u' )
.replace( /ç/g, 'c' )
.replace( /ì/g, 'i' ) :
data;
};

View File

@@ -0,0 +1,38 @@
/**
* DataTables has a built in type called `html` which will strip HTML tags
* from a search string, but it doesn't cope with nested HTML inside another
* element's attributes (for example DOM0 events with have HTML in them). This
* plug-in function overrules the built-in method and provides complete HTML
* tag removal.
*
* Note that this function is not included in DataTables by
* default because it is slightly slower than the built-in method, which is
* good enough for by far the majority of use cases.
*
* @summary Strip HTML using DOM methods
* @name html
* @author _guillimon_
*
* @example
* $(document).ready(function() {
* $('#example').dataTable({
* "columnDefs": [
* { type: "html", target: 0 }
* ]
* });
* } );
*/
(function () {
var _div = document.createElement('div');
jQuery.fn.dataTable.ext.type.search.html = function ( data ) {
_div.innerHTML = data;
return _div.textContent ?
_div.textContent.replace(/\n/g," ") :
_div.innerText.replace(/\n/g," ");
};
})();

View File

@@ -0,0 +1,31 @@
/**
* Telephone numbers are a common data point to display in HTML tables, and are
* often formatted (e.g. `dt-string 555-1234`). Typically, when searching a
* table a user would need to enter the number in exactly the same format it is
* displayed in, but this is not always convenient (e.g. you might search for
* `dt-string 5551`).
*
* This filtering plug-in will allow both forms to be matched be providing both
* the formatted and de-formatted data to the table's search.
*
* @summary Make phone numbers searchable formatted or unformatted
* @name Phone number
* @author Allan Jardine
*
* @example
* $(document).ready(function() {
* $('#example').dataTable( {
* columnDefs: [
* { type: 'phoneNumber', target: 4 }
* ]
* } );
* } );
*/
jQuery.fn.DataTable.ext.type.search.phoneNumber = function ( data ) {
return ! data ?
'' :
typeof data === 'string' ?
data + data.replace(/[ \-]/g, '') :
data;
};

View File

@@ -0,0 +1,30 @@
/**
* Afrikaans translation
* @name Afrikaans
* @anchor Afrikaans
* @author <a href="http://www.ajoft.com">Ajoft Software</a>
*/
{
"sEmptyTable": "Geen data beskikbaar in tabel",
"sInfo": "uitstalling _START_ to _END_ of _TOTAL_ inskrywings",
"sInfoEmpty": "uitstalling 0 to 0 of 0 inskrywings",
"sInfoFiltered": "(gefiltreer uit _MAX_ totaal inskrywings)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "uitstal _MENU_ inskrywings",
"sLoadingRecords": "laai...",
"sProcessing": "verwerking...",
"sSearch": "soektog:",
"sZeroRecords": "Geen treffers gevind",
"oPaginate": {
"sFirst": "eerste",
"sLast": "laaste",
"sNext": "volgende",
"sPrevious": "vorige"
},
"oAria": {
"sSortAscending": ": aktiveer kolom stygende te sorteer",
"sSortDescending": ": aktiveer kolom orde te sorteer"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Albanian translation
* @name Albanian
* @anchor Albanian
* @author Besnik Belegu
*/
{
"sEmptyTable": "Nuk ka asnjë të dhënë në tabele",
"sInfo": "Duke treguar _START_ deri _END_ prej _TOTAL_ reshtave",
"sInfoEmpty": "Duke treguar 0 deri 0 prej 0 reshtave",
"sInfoFiltered": "(të filtruara nga gjithësej _MAX_ reshtave)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Shiko _MENU_ reshta",
"sLoadingRecords": "Duke punuar...",
"sProcessing": "Duke procesuar...",
"sSearch": "Kërkoni:",
"sZeroRecords": "Asnjë e dhënë nuk u gjet",
"oPaginate": {
"sFirst": "E para",
"sLast": "E Fundit",
"sNext": "Tjetra",
"sPrevious": "E Kaluara"
},
"oAria": {
"sSortAscending": ": aktivizo për të sortuar kolumnin me vlera në ngritje",
"sSortDescending": ": aktivizo për të sortuar kolumnin me vlera në zbritje"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Arabic translation
* @name Arabic
* @anchor Arabic
* @author Ossama Khayat
*/
{
"sProcessing": "جاري التحميل...",
"sLengthMenu": "أظهر مُدخلات _MENU_",
"sZeroRecords": "لم يُعثر على أية سجلات",
"sInfo": "إظهار _START_ إلى _END_ من أصل _TOTAL_ مُدخل",
"sInfoEmpty": "يعرض 0 إلى 0 من أصل 0 سجلّ",
"sInfoFiltered": "(منتقاة من مجموع _MAX_ مُدخل)",
"sInfoPostFix": "",
"sSearch": "ابحث:",
"sUrl": "",
"oPaginate": {
"sFirst": "الأول",
"sPrevious": "السابق",
"sNext": "التالي",
"sLast": "الأخير"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Azerbaijan translation
* @name Azerbaijan
* @anchor Azerbaijan
* @author H.Huseyn
*/
{
"sEmptyTable": "Cədvəldə heç bir məlumat yoxdur",
"sInfo": " _TOTAL_ Nəticədən _START_ - _END_ Arası Nəticələr",
"sInfoEmpty": "Nəticə Yoxdur",
"sInfoFiltered": "( _MAX_ Nəticə İçindən Tapılanlar)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Səhifədə _MENU_ Nəticə Göstər",
"sLoadingRecords": "Yüklənir...",
"sProcessing": "Gözləyin...",
"sSearch": "Axtarış:",
"sZeroRecords": "Nəticə Tapılmadı.",
"oPaginate": {
"sFirst": "İlk",
"sLast": "Axırıncı",
"sNext": "Sonraki",
"sPrevious": "Öncəki"
},
"oAria": {
"sSortAscending": ": sütunu artma sırası üzərə aktiv etmək",
"sSortDescending": ": sütunu azalma sırası üzərə aktiv etmək"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Bangla translation
* @name Bangla
* @anchor Bangla
* @author <a href="http://khaledcse06.wordpress.com">Md. Khaled Ben Islam</a>
*/
{
"sProcessing": "প্রসেসিং হচ্ছে...",
"sLengthMenu": "_MENU_ টা এন্ট্রি দেখাও",
"sZeroRecords": "আপনি যা অনুসন্ধান করেছেন তার সাথে মিলে যাওয়া কোন রেকর্ড খুঁজে পাওয়া যায় নাই",
"sInfo": "_TOTAL_ টা এন্ট্রির মধ্যে _START_ থেকে _END_ পর্যন্ত দেখানো হচ্ছে",
"sInfoEmpty": "কোন এন্ট্রি খুঁজে পাওয়া যায় নাই",
"sInfoFiltered": "(মোট _MAX_ টা এন্ট্রির মধ্যে থেকে বাছাইকৃত)",
"sInfoPostFix": "",
"sSearch": "অনুসন্ধান:",
"sUrl": "",
"oPaginate": {
"sFirst": "প্রথমটা",
"sPrevious": "আগেরটা",
"sNext": "পরবর্তীটা",
"sLast": "শেষেরটা"
}
}

View File

@@ -0,0 +1,27 @@
/**
* Belarusian translation
* @name Belarusian
* @anchor Belarusian
* @author vkachurka
*/
{
"sProcessing": "Пачакайце...",
"sLengthMenu": "Паказваць _MENU_ запісаў",
"sZeroRecords": "Запісы адсутнічаюць.",
"sInfo": "Запісы з _START_ па _END_ з _TOTAL_ запісаў",
"sInfoEmpty": "Запісы з 0 па 0 з 0 запісаў",
"sInfoFiltered": "(адфільтравана з _MAX_ запісаў)",
"sInfoPostFix": "",
"sSearch": "Пошук:",
"sUrl": "",
"oPaginate": {
"sFirst": "Першая",
"sPrevious": "Папярэдняя",
"sNext": "Наступная",
"sLast": "Апошняя"
},
"oAria": {
"sSortAscending": ": актываваць для сартавання слупка па ўзрастанні",
"sSortDescending": ": актываваць для сартавання слупка па змяншэнні"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Bulgarian translation
* @name Bulgarian
* @anchor Bulgarian
* @author Rostislav Stoyanov
*/
{
"sProcessing": "Обработка на резултатите...",
"sLengthMenu": "Показване на _MENU_ резултата",
"sZeroRecords": "Няма намерени резултати",
"sInfo": "Показване на резултати от _START_ до _END_ от общо _TOTAL_",
"sInfoEmpty": "Показване на резултати от 0 до 0 от общо 0",
"sInfoFiltered": "(филтрирани от общо _MAX_ резултата)",
"sInfoPostFix": "",
"sSearch": "Търсене във всички колони:",
"sUrl": "",
"oPaginate": {
"sFirst": "Първа",
"sPrevious": "Предишна",
"sNext": "Следваща",
"sLast": "Последна"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Catalan translation
* @name Catalan
* @anchor Catalan
* @author Sergi
*/
{
"sProcessing": "Processant...",
"sLengthMenu": "Mostra _MENU_ registres",
"sZeroRecords": "No s'han trobat registres.",
"sInfo": "Mostrant de _START_ a _END_ de _TOTAL_ registres",
"sInfoEmpty": "Mostrant de 0 a 0 de 0 registres",
"sInfoFiltered": "(filtrat de _MAX_ total registres)",
"sInfoPostFix": "",
"sSearch": "Filtrar:",
"sUrl": "",
"oPaginate": {
"sFirst": "Primer",
"sPrevious": "Anterior",
"sNext": "Següent",
"sLast": "Últim"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Chinese (traditional) translation
* @name Chinese (traditional)
* @anchor Chinese (traditional)
* @author <a href="https://gimmerank.com/">GimmeRank Affiliate</a>
*/
{
"sProcessing":   "處理中...",
"sLengthMenu":   "顯示 _MENU_ 項結果",
"sZeroRecords":  "沒有匹配結果",
"sInfo":         "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
"sInfoEmpty":    "顯示第 0 至 0 項結果,共 0 項",
"sInfoFiltered": "(從 _MAX_ 項結果過濾)",
"sInfoPostFix":  "",
"sSearch":       "搜索:",
"sUrl":          "",
"oPaginate": {
"sFirst":    "首頁",
"sPrevious": "上頁",
"sNext":     "下頁",
"sLast":     "尾頁"
}
}

View File

@@ -0,0 +1,31 @@
/**
* Chinese translation
* @name Chinese
* @anchor Chinese
* @author <a href="http://docs.jquery.com/UI">Chi Cheng</a>
*/
{
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Croatian translation
* @name Croatian
* @anchor Croatian
* @author Predrag Mušić and _hrvoj3e_
*/
{
"sEmptyTable": "Nema podataka u tablici",
"sInfo": "Prikazano _START_ do _END_ od _TOTAL_ rezultata",
"sInfoEmpty": "Prikazano 0 do 0 od 0 rezultata",
"sInfoFiltered": "(filtrirano iz _MAX_ ukupnih rezultata)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Prikaži _MENU_ rezultata po stranici",
"sLoadingRecords": "Dohvaćam...",
"sProcessing": "Obrađujem...",
"sSearch": "Pretraži:",
"sZeroRecords": "Ništa nije pronađeno",
"oPaginate": {
"sFirst": "Prva",
"sPrevious": "Nazad",
"sNext": "Naprijed",
"sLast": "Zadnja"
},
"oAria": {
"sSortAscending": ": aktiviraj za rastući poredak",
"sSortDescending": ": aktiviraj za padajući poredak"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Czech translation
* @name Czech
* @anchor Czech
* @author <a href="http://blog.magerio.cz/">Magerio</a>
*/
{
"sProcessing": "Provádím...",
"sLengthMenu": "Zobraz záznamů _MENU_",
"sZeroRecords": "Žádné záznamy nebyly nalezeny",
"sInfo": "Zobrazuji _START_ až _END_ z celkem _TOTAL_ záznamů",
"sInfoEmpty": "Zobrazuji 0 až 0 z 0 záznamů",
"sInfoFiltered": "(filtrováno z celkem _MAX_ záznamů)",
"sInfoPostFix": "",
"sSearch": "Hledat:",
"sUrl": "",
"oPaginate": {
"sFirst": "První",
"sPrevious": "Předchozí",
"sNext": "Další",
"sLast": "Poslední"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Danish translation
* @name Danish
* @anchor Danish
* @author <a href="http://www.kor.dk/">Werner Knudsen</a>
*/
{
"sProcessing": "Henter...",
"sLengthMenu": "Vis _MENU_ linjer",
"sZeroRecords": "Ingen linjer matcher s&oslash;gningen",
"sInfo": "Viser _START_ til _END_ af _TOTAL_ linjer",
"sInfoEmpty": "Viser 0 til 0 af 0 linjer",
"sInfoFiltered": "(filtreret fra _MAX_ linjer)",
"sInfoPostFix": "",
"sSearch": "S&oslash;g:",
"sUrl": "",
"oPaginate": {
"sFirst": "F&oslash;rste",
"sPrevious": "Forrige",
"sNext": "N&aelig;ste",
"sLast": "Sidste"
}
}

View File

@@ -0,0 +1,26 @@
/**
* Dutch translation
* @name Dutch
* @anchor Dutch
* @author <a href="http://www.blikgooien.nl/">Erwin Kerk</a> and <i>ashwin</i>
*/
{
"sProcessing": "Bezig...",
"sLengthMenu": "_MENU_ resultaten weergeven",
"sZeroRecords": "Geen resultaten gevonden",
"sInfo": "_START_ tot _END_ van _TOTAL_ resultaten",
"sInfoEmpty": "Geen resultaten om weer te geven",
"sInfoFiltered": " (gefilterd uit _MAX_ resultaten)",
"sInfoPostFix": "",
"sSearch": "Zoeken:",
"sEmptyTable": "Geen resultaten aanwezig in de tabel",
"sInfoThousands": ".",
"sLoadingRecords": "Een moment geduld aub - bezig met laden...",
"oPaginate": {
"sFirst": "Eerste",
"sLast": "Laatste",
"sNext": "Volgende",
"sPrevious": "Vorige"
}
}

View File

@@ -0,0 +1,30 @@
/**
* English - this is the default DataTables ships with
* @name English
* @anchor English
* @author <a href="http://www.sprymedia.co.uk/">Allan Jardine</a>
*/
{
"sEmptyTable": "No data available in table",
"sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
"sInfoEmpty": "Showing 0 to 0 of 0 entries",
"sInfoFiltered": "(filtered from _MAX_ total entries)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Show _MENU_ entries",
"sLoadingRecords": "Loading...",
"sProcessing": "Processing...",
"sSearch": "Search:",
"sZeroRecords": "No matching records found",
"oPaginate": {
"sFirst": "First",
"sLast": "Last",
"sNext": "Next",
"sPrevious": "Previous"
},
"oAria": {
"sSortAscending": ": activate to sort column ascending",
"sSortDescending": ": activate to sort column descending"
}
}

View File

@@ -0,0 +1,23 @@
/**
* Estonian translation
* @name Estonian
* @anchor Estonian
* @author <a href="http://www.arts9.com/">Janek Todoruk</a>
*/
{
"sProcessing": "Palun oodake, koostan kuvamiseks nimekirja!",
"sLengthMenu": "N&auml;ita kirjeid _MENU_ kaupa",
"sZeroRecords": "Otsitavat vastet ei leitud.",
"sInfo": "Kuvatud: _TOTAL_ kirjet (_START_-_END_)",
"sInfoEmpty": "Otsinguvasteid ei leitud",
"sInfoFiltered": " - filteeritud _MAX_ kirje seast.",
"sInfoPostFix": "K&otilde;ik kuvatud kirjed p&otilde;hinevad reaalsetel tulemustel.",
"sSearch": "Otsi k&otilde;ikide tulemuste seast:",
"oPaginate": {
"sFirst": "Algus",
"sPrevious": "Eelmine",
"sNext": "J&auml;rgmine",
"sLast": "Viimane"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Filipino translation
* @name Filipino
* @anchor Filipino
* @author <a href="http://citi360.com/">Citi360</a>
*/
{
"sProcessing": "Pagproseso...",
"sLengthMenu": "Ipakita _MENU_ entries",
"sZeroRecords": "Walang katugmang mga talaan na natagpuan",
"sInfo": "Ipinapakita ang _START_ sa _END_ ng _TOTAL_ entries",
"sInfoEmpty": "Ipinapakita ang 0-0 ng 0 entries",
"sInfoFiltered": "(na-filter mula _MAX_ kabuuang entries)",
"sInfoPostFix": "",
"sSearch": "Paghahanap:",
"sUrl": "",
"oPaginate": {
"sFirst": "Unang",
"sPrevious": "Nakaraan",
"sNext": "Susunod",
"sLast": "Huli"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Finnish translation
* @name Finnish
* @anchor Finnish
* @author Seppo Äyräväinen
*/
{
"sProcessing": "Hetkinen...",
"sLengthMenu": "Näytä kerralla _MENU_ riviä",
"sZeroRecords": "Tietoja ei löytynyt",
"sInfo": "Näytetään rivit _START_ - _END_ (yhteensä _TOTAL_ )",
"sInfoEmpty": "Näytetään 0 - 0 (yhteensä 0)",
"sInfoFiltered": "(suodatettu _MAX_ tuloksen joukosta)",
"sInfoPostFix": "",
"sSearch": "Etsi:",
"sUrl": "",
"oPaginate": {
"sFirst": "Ensimmäinen",
"sPrevious": "Edellinen",
"sNext": "Seuraava",
"sLast": "Viimeinen"
}
}

View File

@@ -0,0 +1,29 @@
/**
* French translation
* @name French
* @anchor French
* @author
*/
{
"sProcessing": "Traitement en cours...",
"sSearch": "Rechercher&nbsp;:",
"sLengthMenu": "Afficher _MENU_ &eacute;l&eacute;ments",
"sInfo": "Affichage de l'&eacute;lement _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments",
"sInfoEmpty": "Affichage de l'&eacute;lement 0 &agrave; 0 sur 0 &eacute;l&eacute;ments",
"sInfoFiltered": "(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)",
"sInfoPostFix": "",
"sLoadingRecords": "Chargement en cours...",
"sZeroRecords": "Aucun &eacute;l&eacute;ment &agrave; afficher",
"sEmptyTable": "Aucune donn&eacute;e disponible dans le tableau",
"oPaginate": {
"sFirst": "Premier",
"sPrevious": "Pr&eacute;c&eacute;dent",
"sNext": "Suivant",
"sLast": "Dernier"
},
"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
"sSortDescending": ": activer pour trier la colonne par ordre d&eacute;croissant"
}
}

View File

@@ -0,0 +1,31 @@
/**
* Galician translation
* @name Galician
* @anchor Galician
* @author <i>Emilio</i>
*/
{
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ rexistros",
"sZeroRecords": "Non se atoparon resultados",
"sEmptyTable": "Ningún dato dispoñible nesta táboa",
"sInfo": "Mostrando rexistros do _START_ ó _END_ dun total de _TOTAL_ rexistros",
"sInfoEmpty": "Mostrando rexistros do 0 ó 0 dun total de 0 rexistros",
"sInfoFiltered": "(filtrado dun total de _MAX_ rexistros)",
"sInfoPostFix": "",
"sSearch": "Buscar:",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Cargando...",
"oPaginate": {
"sFirst": "Primeiro",
"sLast": "Último",
"sNext": "Seguinte",
"sPrevious": "Anterior"
},
"oAria": {
"sSortAscending": ": Activar para ordear a columna de maneira ascendente",
"sSortDescending": ": Activar para ordear a columna de maneira descendente"
}
}

View File

@@ -0,0 +1,23 @@
/**
* Georgian translation
* @name Georgian
* @anchor Georgian
* @author Mikheil Nadareishvili
*/
{
"sProcessing": "მიმდინარეობს დამუშავება...",
"sLengthMenu": "აჩვენე _MENU_ ჩანაწერი",
"sZeroRecords": "არაფერი მოიძებნა",
"sInfo": "ნაჩვენებია ჩანაწერები _START_დან _END_მდე, სულ _TOTAL_ ჩანაწერია",
"sInfoEmpty": "ნაჩვენებია ჩანაწერები 0დან 0მდე, სულ 0 ჩანაწერია",
"sInfoFiltered": "(გაფილტრული შედეგი _MAX_ ჩანაწერიდან)",
"sInfoPostFix": "",
"sSearch": "ძიება:",
"sUrl": "",
"oPaginate": {
"sFirst": "პირველი",
"sPrevious": "წინა",
"sNext": "შემდეგი",
"sLast": "ბოლო"
}

View File

@@ -0,0 +1,30 @@
/**
* German translation
* @name German
* @anchor German
* @author Joerg Holz
*/
{
"sEmptyTable": "Keine Daten in der Tabelle vorhanden",
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "_MENU_ Einträge anzeigen",
"sLoadingRecords": "Wird geladen...",
"sProcessing": "Bitte warten...",
"sSearch": "Suchen",
"sZeroRecords": "Keine Einträge vorhanden.",
"oPaginate": {
"sFirst": "Erste",
"sPrevious": "Zurück",
"sNext": "Nächste",
"sLast": "Letzte"
},
"oAria": {
"sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
"sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Greek translation
* @name Greek
* @anchor Greek
* @author Abraam Ziogas
*/
{
"sProcessing": "Επεξεργασία...",
"sLengthMenu": "Δείξε _MENU_ εγγραφές",
"sZeroRecords": "Δεν βρέθηκαν εγγραφές που να ταιριάζουν",
"sInfo": "Δείχνοντας _START_ εως _END_ από _TOTAL_ εγγραφές",
"sInfoEmpty": "Δείχνοντας 0 εως 0 από 0 εγγραφές",
"sInfoFiltered": "(φιλτραρισμένες από _MAX_ συνολικά εγγραφές)",
"sInfoPostFix": "",
"sSearch": "Αναζήτηση:",
"sUrl": "",
"oPaginate": {
"sFirst": "Πρώτη",
"sPrevious": "Προηγούμενη",
"sNext": "Επόμενη",
"sLast": "Τελευταία"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Gujarati translation
* @name Gujarati
* @anchor Gujarati
* @author <a href="http://www.apoto.com/">Apoto</a>
*/
{
"sEmptyTable": "કોષ્ટકમાં કોઈ ડેટા ઉપલબ્ધ નથી",
"sInfo": "કુલ_પ્રવેશો_અંત_પ્રારંભ_દર્શાવે_છે",
"sInfoEmpty": "0 પ્રવેશો 0 0 બતાવી રહ્યું છે",
"sInfoFiltered": "(_MAX_ કુલ પ્રવેશો માંથી ફિલ્ટર)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "બતાવો _MENU_ પ્રવેશો",
"sLoadingRecords": "લોડ કરી રહ્યું છે ...",
"sProcessing": "પ્રક્રિયા ...",
"sSearch": "શોધો:",
"sZeroRecords": "કોઈ મેળ ખાતા રેકોર્ડ મળી",
"oPaginate": {
"sFirst": "પ્રથમ",
"sLast": "અંતિમ",
"sNext": "આગામી",
"sPrevious": "ગત"
},
"oAria": {
"sSortAscending": ": સ્તંભ ચડતા ક્રમમાં ગોઠવવા માટે સક્રિય",
"sSortDescending": ": કૉલમ ઉતરતા ક્રમમાં ગોઠવવા માટે સક્રિય"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Hebrew translation
* @name Hebrew
* @anchor Hebrew
* @author <a href="http://ww3.co.il/">Neil Osman (WW3)</a>
*/
{
"sProcessing": "מעבד...",
"sLengthMenu": "הצג _MENU_ פריטים",
"sZeroRecords": "לא נמצאו רשומות מתאימות",
"sInfo": "_START_ עד _END_ מתוך _TOTAL_ רשומות" ,
"sInfoEmpty": "0 עד 0 מתוך 0 רשומות",
"sInfoFiltered": "(מסונן מסך _MAX_ רשומות)",
"sInfoPostFix": "",
"sSearch": "חפש:",
"sUrl": "",
"oPaginate": {
"sFirst": "ראשון",
"sPrevious": "קודם",
"sNext": "הבא",
"sLast": "אחרון"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Hindi translation
* @name Hindi
* @anchor Hindi
* @author <a href="http://outshinesolutions.com">Outshine Solutions</a>
*/
{
"sProcessing": "प्रगति पे हैं ...",
"sLengthMenu": " _MENU_ प्रविष्टियां दिखाएं ",
"sZeroRecords": "रिकॉर्ड्स का मेल नहीं मिला",
"sInfo": "_START_ to _END_ of _TOTAL_ प्रविष्टियां दिखा रहे हैं",
"sInfoEmpty": "0 में से 0 से 0 प्रविष्टियां दिखा रहे हैं",
"sInfoFiltered": "(_MAX_ कुल प्रविष्टियों में से छठा हुआ)",
"sInfoPostFix": "",
"sSearch": "खोजें:",
"sUrl": "",
"oPaginate": {
"sFirst": "प्रथम",
"sPrevious": "पिछला",
"sNext": "अगला",
"sLast": "अंतिम"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Hungarian translation
* @name Hungarian
* @anchor Hungarian
* @author <a href="http://www.maschek.hu">Adam Maschek</a> and Lajos Cseppentő
*/
{
"sEmptyTable": "Nincs rendelkezésre álló adat",
"sInfo": "Találatok: _START_ - _END_ Összesen: _TOTAL_",
"sInfoEmpty": "Nulla találat",
"sInfoFiltered": "(_MAX_ összes rekord közül szűrve)",
"sInfoPostFix": "",
"sInfoThousands": " ",
"sLengthMenu": "_MENU_ találat oldalanként",
"sLoadingRecords": "Betöltés...",
"sProcessing": "Feldolgozás...",
"sSearch": "Keresés:",
"sZeroRecords": "Nincs a keresésnek megfelelő találat",
"oPaginate": {
"sFirst": "Első",
"sPrevious": "Előző",
"sNext": "Következő",
"sLast": "Utolsó"
},
"oAria": {
"sSortAscending": ": aktiválja a növekvő rendezéshez",
"sSortDescending": ": aktiválja a csökkenő rendezéshez"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Icelandic translation
* @name Icelandic
* @anchor Icelandic
* @author Finnur Kolbeinsson
*/
{
"sEmptyTable": "Engin gögn eru í þessari töflu",
"sInfo": "Sýni _START_ til _END_ af _TOTAL_ færslum",
"sInfoEmpty": "Sýni 0 til 0 af 0 færslum",
"sInfoFiltered": "(síað út frá _MAX_ færslum)",
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "Sýna _MENU_ færslur",
"sLoadingRecords": "Hleð...",
"sProcessing": "Úrvinnsla...",
"sSearch": "Leita:",
"sZeroRecords": "Engar færslur fundust",
"oPaginate": {
"sFirst": "Fyrsta",
"sLast": "Síðasta",
"sNext": "Næsta",
"sPrevious": "Fyrri"
},
"oAria": {
"sSortAscending": ": virkja til að raða dálki í hækkandi röð",
"sSortDescending": ": virkja til að raða dálki lækkandi í röð"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Indonesian translation
* @name Indonesian
* @anchor Indonesian
* @author Landung Wahana
*/
{
"sProcessing": "Sedang proses...",
"sLengthMenu": "Tampilan _MENU_ entri",
"sZeroRecords": "Tidak ditemukan data yang sesuai",
"sInfo": "Tampilan _START_ sampai _END_ dari _TOTAL_ entri",
"sInfoEmpty": "Tampilan 0 hingga 0 dari 0 entri",
"sInfoFiltered": "(disaring dari _MAX_ entri keseluruhan)",
"sInfoPostFix": "",
"sSearch": "Cari:",
"sUrl": "",
"oPaginate": {
"sFirst": "Awal",
"sPrevious": "Balik",
"sNext": "Lanjut",
"sLast": "Akhir"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Indonesian translation
* @name Indonesian
* @anchor Indonesian
* @author Cipto Hadi
*/
{
"sProcessing": "Sedang memproses...",
"sLengthMenu": "Tampilkan _MENU_ entri",
"sZeroRecords": "Tidak ditemukan data yang sesuai",
"sInfo": "Menampilkan _START_ sampai _END_ dari _TOTAL_ entri",
"sInfoEmpty": "Menampilkan 0 sampai 0 dari 0 entri",
"sInfoFiltered": "(disaring dari _MAX_ entri keseluruhan)",
"sInfoPostFix": "",
"sSearch": "Cari:",
"sUrl": "",
"oPaginate": {
"sFirst": "Pertama",
"sPrevious": "Sebelumnya",
"sNext": "Selanjutnya",
"sLast": "Terakhir"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Irish translation
* @name Irish
* @anchor Irish
* @author <a href="http://letsbefamous.com">Lets Be Famous Journal</a>
*/
{
"sProcessing": "Próiseáil...",
"sLengthMenu": "Taispeáin iontrálacha _MENU_",
"sZeroRecords": "Gan aon taifead meaitseáil aimsithe",
"sInfo": "_START_ Showing a _END_ na n-iontrálacha _TOTAL_",
"sInfoEmpty": "Showing 0-0 na n-iontrálacha 0",
"sInfoFiltered": "(scagtha ó _MAX_ iontrálacha iomlán)",
"sInfoPostFix": "",
"sSearch": "Cuardaigh:",
"sUrl": "",
"oPaginate": {
"sFirst": "An Chéad",
"sPrevious": "Roimhe Seo",
"sNext": "Ar Aghaidh",
"sLast": "Last"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Italian translation
* @name Italian
* @anchor Italian
* @author Nicola Zecchin & Giulio Quaresima
*/
{
"sEmptyTable": "Nessun dato presente nella tabella",
"sInfo": "Vista da _START_ a _END_ di _TOTAL_ elementi",
"sInfoEmpty": "Vista da 0 a 0 di 0 elementi",
"sInfoFiltered": "(filtrati da _MAX_ elementi totali)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Visualizza _MENU_ elementi",
"sLoadingRecords": "Caricamento...",
"sProcessing": "Elaborazione...",
"sSearch": "Cerca:",
"sZeroRecords": "La ricerca non ha portato alcun risultato.",
"oPaginate": {
"sFirst": "Inizio",
"sPrevious": "Precedente",
"sNext": "Successivo",
"sLast": "Fine"
},
"oAria": {
"sSortAscending": ": attiva per ordinare la colonna in ordine crescente",
"sSortDescending": ": attiva per ordinare la colonna in ordine decrescente"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Japanese translation
* @name Japanese
* @anchor Japanese
* @author <i>yusuke</i>
*/
{
"sProcessing": "処理中...",
"sLengthMenu": "_MENU_ 件表示",
"sZeroRecords": "データはありません。",
"sInfo": " _TOTAL_ 件中 _START_ から _END_ まで表示",
"sInfoEmpty": " 0 件中 0 から 0 まで表示",
"sInfoFiltered": "(全 _MAX_ 件より抽出)",
"sInfoPostFix": "",
"sSearch": "検索:",
"sUrl": "",
"oPaginate": {
"sFirst": "先頭",
"sPrevious": "前",
"sNext": "次",
"sLast": "最終"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Korean translation
* @name Korean
* @anchor Korean
* @author WonGoo Lee
*/
{
"sEmptyTable": "데이터가 없습니다",
"sInfo": "_START_ - _END_ / _TOTAL_",
"sInfoEmpty": "0 - 0 / 0",
"sInfoFiltered": "(총 _MAX_ 개)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "페이지당 줄수 _MENU_",
"sLoadingRecords": "읽는중...",
"sProcessing": "처리중...",
"sSearch": "검색:",
"sZeroRecords": "검색 결과가 없습니다",
"oPaginate": {
"sFirst": "처음",
"sLast": "마지막",
"sNext": "다음",
"sPrevious": "이전"
},
"oAria": {
"sSortAscending": ": 오름차순 정렬",
"sSortDescending": ": 내림차순 정렬"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Latvian translation
* @name Latvian
* @anchor Latvian
* @author Oskars Podans
*/
{
"sProcessing": "Uzgaidiet...",
"sLengthMenu": "Rādīt _MENU_ ierakstus",
"sZeroRecords": "Nav atrasti vaicājumam atbilstoši ieraksti",
"sInfo": "Parādīti _START_. līdz _END_. no _TOTAL_ ierakstiem",
"sInfoEmpty": "Nav ierakstu",
"sInfoFiltered": "(atlasīts no pavisam _MAX_ ierakstiem)",
"sInfoPostFix": "",
"sSearch": "Meklēt:",
"sUrl": "",
"oPaginate": {
"sFirst": "Pirmā",
"sPrevious": "Iepriekšējā",
"sNext": "Nākošā",
"sLast": "Pēdējā"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Lithuanian translation
* @name Lithuanian
* @anchor Lithuanian
* @author <a href="http://www.kurdingopinigai.lt">Kęstutis Morkūnas</a>
*/
{
"sProcessing": "Apdorojama...",
"sLengthMenu": "Rodyti _MENU_ įrašus",
"sZeroRecords": "Įrašų nerasta",
"sInfo": "Rodomi įrašai nuo _START_ iki _END_ iš _TOTAL_ įrašų",
"sInfoEmpty": "Rodomi įrašai nuo 0 iki 0 iš 0",
"sInfoFiltered": "(atrinkta iš _MAX_ įrašų)",
"sInfoPostFix": "",
"sSearch": "Ieškoti:",
"sUrl": "",
"oPaginate": {
"sFirst": "Pirmas",
"sPrevious": "Ankstesnis",
"sNext": "Tolimesnis",
"sLast": "Paskutinis"
}
}

View File

@@ -0,0 +1,26 @@
/**
* Macedonian translation
* @name Macedonian
* @anchor Macedonian
* @author Bojan Petkovski
*/
{
"sProcessing": "Процесирање...",
"sLengthMenu": "Прикажи _MENU_ записи",
"sZeroRecords": "Не се пронајдени записи",
"sEmptyTable": "Нема податоци во табелата",
"sLoadingRecords": "Вчитување...",
"sInfo": "Прикажани _START_ до _END_ од _TOTAL_ записи",
"sInfoEmpty": "Прикажани 0 до 0 од 0 записи",
"sInfoFiltered": "(филтрирано од вкупно _MAX_ записи)",
"sInfoPostFix": "",
"sSearch": "Барај",
"sUrl": "",
"oPaginate": {
"sFirst": "Почетна",
"sPrevious": "Претходна",
"sNext": "Следна",
"sLast": "Последна"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Malay translation
* @name Malay
* @anchor Malay
* @author Mohamad Zharif
*/
{
"sEmptyTable": "Tiada data",
"sInfo": "Paparan dari _START_ hingga _END_ dari _TOTAL_ rekod",
"sInfoEmpty": "Paparan 0 hingga 0 dari 0 rekod",
"sInfoFiltered": "(Ditapis dari jumlah _MAX_ rekod)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Papar _MENU_ rekod",
"sLoadingRecords": "Diproses...",
"sProcessing": "Sedang diproses...",
"sSearch": "Carian:",
"sZeroRecords": "Tiada padanan rekod yang dijumpai.",
"oPaginate": {
"sFirst": "Pertama",
"sPrevious": "Sebelum",
"sNext": "Kemudian",
"sLast": "Akhir"
},
"oAria": {
"sSortAscending": ": diaktifkan kepada susunan lajur menaik",
"sSortDescending": ": diaktifkan kepada susunan lajur menurun"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Norwegian translation
* @name Norwegian
* @anchor Norwegian
* @author Petter Ekrann
*/
{
"sProcessing": "Laster...",
"sLengthMenu": "Vis _MENU_ linjer",
"sZeroRecords": "Ingen linjer matcher s&oslash;ket",
"sInfo": "Viser _START_ til _END_ av _TOTAL_ linjer",
"sInfoEmpty": "Viser 0 til 0 av 0 linjer",
"sInfoFiltered": "(filtrert fra _MAX_ totalt antall linjer)",
"sInfoPostFix": "",
"sSearch": "S&oslash;k:",
"sUrl": "",
"oPaginate": {
"sFirst": "F&oslash;rste",
"sPrevious": "Forrige",
"sNext": "Neste",
"sLast": "Siste"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Persian translation
* @name Persian
* @anchor Persian
* @author <a href="http://www.chavoshi.com/">Ehsan Chavoshi</a>
*/
{
"sProcessing": "درحال پردازش...",
"sLengthMenu": "نمایش محتویات _MENU_",
"sZeroRecords": "موردی یافت نشد",
"sInfo": "نمایش _START_ تا _END_ از مجموع _TOTAL_ مورد",
"sInfoEmpty": "تهی",
"sInfoFiltered": "(فیلتر شده از مجموع _MAX_ مورد)",
"sInfoPostFix": "",
"sSearch": "جستجو:",
"sUrl": "",
"oPaginate": {
"sFirst": "ابتدا",
"sPrevious": "قبلی",
"sNext": "بعدی",
"sLast": "انتها"
}
}

View File

@@ -0,0 +1,31 @@
/**
* Polish translation
* @name Polish
* @anchor Polish
* @author Tomasz Kowalski
*/
{
"sProcessing": "Przetwarzanie...",
"sLengthMenu": "Pokaż _MENU_ pozycji",
"sZeroRecords": "Nie znaleziono pasujących pozycji",
"sInfoThousands": " ",
"sInfo": "Pozycje od _START_ do _END_ z _TOTAL_ łącznie",
"sInfoEmpty": "Pozycji 0 z 0 dostępnych",
"sInfoFiltered": "(filtrowanie spośród _MAX_ dostępnych pozycji)",
"sInfoPostFix": "",
"sSearch": "Szukaj:",
"sUrl": "",
"oPaginate": {
"sFirst": "Pierwsza",
"sPrevious": "Poprzednia",
"sNext": "Następna",
"sLast": "Ostatnia"
},
"sEmptyTable": "Brak danych",
"sLoadingRecords": "Wczytywanie...",
"oAria": {
"sSortAscending": ": aktywuj, by posortować kolumnę rosnąco",
"sSortDescending": ": aktywuj, by posortować kolumnę malejąco"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Portuguese Brasil translation
* @name Portuguese Brasil
* @anchor Portuguese Brasil
* @author Julio Cesar Viana Palma
*/
{
"sEmptyTable": "Nenhum registro encontrado",
"sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros",
"sInfoEmpty": "Mostrando 0 até 0 de 0 registros",
"sInfoFiltered": "(Filtrados de _MAX_ registros)",
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "_MENU_ resultados por página",
"sLoadingRecords": "Carregando...",
"sProcessing": "Processando...",
"sZeroRecords": "Nenhum registro encontrado",
"sSearch": "Pesquisar",
"oPaginate": {
"sNext": "Próximo",
"sPrevious": "Anterior",
"sFirst": "Primeiro",
"sLast": "Último"
},
"oAria": {
"sSortAscending": ": Ordenar colunas de forma ascendente",
"sSortDescending": ": Ordenar colunas de forma descendente"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Portuguese translation
* @name Portuguese
* @anchor Portuguese
* @author Nuno Felicio
*/
{
"sProcessing": "A processar...",
"sLengthMenu": "Mostrar _MENU_ registos",
"sZeroRecords": "Não foram encontrados resultados",
"sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registos",
"sInfoEmpty": "Mostrando de 0 até 0 de 0 registos",
"sInfoFiltered": "(filtrado de _MAX_ registos no total)",
"sInfoPostFix": "",
"sSearch": "Procurar:",
"sUrl": "",
"oPaginate": {
"sFirst": "Primeiro",
"sPrevious": "Anterior",
"sNext": "Seguinte",
"sLast": "Último"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Romanian translation
* @name Romanian
* @anchor Romanian
* @author <a href="http://www.jurubita.ro/">Alexandru Jurubita</a>
*/
{
"sProcessing": "Proceseaza...",
"sLengthMenu": "Afiseaza _MENU_ inregistrari pe pagina",
"sZeroRecords": "Nu am gasit nimic - ne pare rau",
"sInfo": "Afisate de la _START_ la _END_ din _TOTAL_ inregistrari",
"sInfoEmpty": "Afisate de la 0 la 0 din 0 inregistrari",
"sInfoFiltered": "(filtrate dintr-un total de _MAX_ inregistrari)",
"sInfoPostFix": "",
"sSearch": "Cauta:",
"sUrl": "",
"oPaginate": {
"sFirst": "Prima",
"sPrevious": "Precedenta",
"sNext": "Urmatoarea",
"sLast": "Ultima"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Russian translation
* @name Russian
* @anchor Russian
* @author Tjoma
* @autor aspyatkin
*/
{
"processing": "Подождите...",
"search": "Поиск:",
"lengthMenu": "Показать _MENU_ записей",
"info": "Записи с _START_ до _END_ из _TOTAL_ записей",
"infoEmpty": "Записи с 0 до 0 из 0 записей",
"infoFiltered": "(отфильтровано из _MAX_ записей)",
"infoPostFix": "",
"loadingRecords": "Загрузка записей...",
"zeroRecords": "Записи отсутствуют.",
"emptyTable:": "В таблице отсутствуют данные",
"paginate": {
"first": "Первая",
"previous": "Предыдущая",
"next": "Следующая",
"last": "Последняя"
},
"aria": {
"sortAscending": ": активировать для сортировки столбца по возрастанию",
"sortDescending": ": активировать для сортировки столбца по убыванию"
}
}

View File

@@ -0,0 +1,24 @@
/**
* Serbian translation (Latin alphabet)
* @name Serbian (Latin)
* @anchor Serbian (Latin)
* @author <a href="http://mnovakovic.byteout.com">Marko Novakovic</a>
*/
{
"sProcessing": "Procesiranje u toku...",
"sLengthMenu": "Prikaži _MENU_ elemenata",
"sZeroRecords": "Nije pronađen nijedan rezultat",
"sInfo": "Prikaz _START_ do _END_ od ukupno _TOTAL_ elemenata",
"sInfoEmpty": "Prikaz 0 do 0 od ukupno 0 elemenata",
"sInfoFiltered": "(filtrirano od ukupno _MAX_ elemenata)",
"sInfoPostFix": "",
"sSearch": "Pretraga:",
"sUrl": "",
"oPaginate": {
"sFirst": "Početna",
"sPrevious": "Prethodna",
"sNext": "Sledeća",
"sLast": "Poslednja"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Slovak translation
* @name Slovak
* @anchor Slovak
* @author <a href="https://github.com/dlugos">Ivan Dlugoš</a>
* @author (original translation) <a href="http://miskerik.com/">Maroš Miškerik</a>
*/
{
"sEmptyTable": "Nie sú k dispozícii žiadne dáta",
"sInfo": "Záznamy _START_ až _END_ z celkom _TOTAL_",
"sInfoEmpty": "Záznamy 0 až 0 z celkom 0 ",
"sInfoFiltered": "(vyfiltrované spomedzi _MAX_ záznamov)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Zobraz _MENU_ záznamov",
"sLoadingRecords": "Načítavam...",
"sProcessing": "Spracúvam...",
"sSearch": "Hľadať:",
"sZeroRecords": "Nenašli sa žiadne vyhovujúce záznamy",
"oPaginate": {
"sFirst": "Prvá",
"sLast": "Posledná",
"sNext": "Nasledujúca",
"sPrevious": "Predchádzajúca"
},
"oAria": {
"sSortAscending": ": aktivujte na zoradenie stĺpca vzostupne",
"sSortDescending": ": aktivujte na zoradenie stĺpca zostupne"
}
}

View File

@@ -0,0 +1,30 @@
/**
* Slovenian translation
* @name Slovenian
* @anchor Slovenian
* @author Marko Kroflic, Blaž Brenčič and Andrej Florjančič
*/
{
"sEmptyTable": "Nobenih podatkov ni na voljo",
"sInfo": "Prikazujem _START_ do _END_ od _TOTAL_ zapisov",
"sInfoEmpty": "Prikazujem 0 do 0 od 0 zapisov",
"sInfoFiltered": "(filtrirano od _MAX_ vseh zapisov)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Prikaži _MENU_ zapisov",
"sLoadingRecords": "Nalagam...",
"sProcessing": "Obdelujem...",
"sSearch": "Išči:",
"sZeroRecords": "Nobeden zapis ne ustreza",
"oPaginate": {
"sFirst": "Prvi",
"sLast": "Zadnji",
"sNext": "Nasl.",
"sPrevious": "Pred."
},
"oAria": {
"sSortAscending": ": vključite za naraščujoči sort",
"sSortDescending": ": vključite za padajoči sort"
}
}

View File

@@ -0,0 +1,31 @@
/**
* Spanish translation
* @name Spanish
* @anchor Spanish
* @author Giovanni Ariza, Aristobulo Gomez and Roberto Poo
*/
{
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ registros",
"sZeroRecords": "No se encontraron resultados",
"sEmptyTable": "Ningún dato disponible en esta tabla",
"sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
"sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
"sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
"sInfoPostFix": "",
"sSearch": "Buscar:",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Cargando...",
"oPaginate": {
"sFirst": "Primero",
"sLast": "Último",
"sNext": "Siguiente",
"sPrevious": "Anterior"
},
"oAria": {
"sSortAscending": ": Activar para ordenar la columna de manera ascendente",
"sSortDescending": ": Activar para ordenar la columna de manera descendente"
}
}

Some files were not shown because too many files have changed in this diff Show More