You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
/*! © SpryMedia Ltd - datatables.net/license */
|
|
|
|
import jQuery from 'jquery';
|
|
import DataTable from 'datatables.net';
|
|
|
|
// Allow reassignment of the $ variable
|
|
let $ = jQuery;
|
|
|
|
/**
|
|
* 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();
|
|
*/
|
|
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], Array.isArray(dir) ? dir[i] : dir]);
|
|
}
|
|
new DataTable.Api(settings).order(a);
|
|
});
|
|
});
|
|
|
|
|
|
export default DataTable;
|