1.
* ©2011-2014 SpryMedia Ltd - datatables.net/license
3.
*/
4.
5.
/**
6.
* DataTables integration for jQuery UI. This requires jQuery UI and
7.
* DataTables 1.10 or newer.
8.
*
9.
* This file sets the defaults and adds options to DataTables to style its
10.
* controls using jQuery UI. See http://datatables.net/manual/styling/jqueryui
11.
* for further information.
12.
*/
13.
(function( factory ){
14.
if ( typeof define === 'function' && define.amd ) {
15.
// AMD
16.
define( ['jquery', 'datatables.net'], function ( $ ) {
17.
return factory( $, window, document );
18.
} );
19.
}
20.
else if ( typeof exports === 'object' ) {
21.
// CommonJS
22.
module.exports = function (root, $) {
23.
if ( ! root ) {
24.
root = window;
25.
}
26.
27.
if ( ! $ || ! $.fn.dataTable ) {
28.
$ = require('datatables.net')(root, $).$;
29.
}
30.
31.
return factory( $, root, root.document );
32.
};
33.
}
34.
else {
35.
// Browser
36.
factory( jQuery, window, document );
37.
}
38.
}(function( $, window, document, undefined ) {
39.
'use strict';
40.
var DataTable = $.fn.dataTable;
41.
42.
43.
var sort_prefix = 'css_right ui-icon ui-icon-';
44.
var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-';
45.
46.
/* Set the defaults for DataTables initialisation */
47.
$.extend( true, DataTable.defaults, {
48.
dom:
49.
'<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+
50.
't'+
51.
'<"'+toolbar_prefix+'bl ui-corner-br"ip>',
52.
renderer: 'jqueryui'
53.
} );
54.
55.
56.
$.extend( DataTable.ext.classes, {
57.
"sWrapper": "dataTables_wrapper dt-jqueryui",
58.
59.
/* Full numbers paging buttons */
60.
"sPageButton": "fg-button ui-button ui-state-default",
61.
"sPageButtonActive": "ui-state-disabled",
62.
"sPageButtonDisabled": "ui-state-disabled",
63.
64.
/* Features */
65.
"sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+
66.
"ui-buttonset-multi paging_", /* Note that the type is postfixed */
67.
68.
/* Sorting */
69.
"sSortAsc": "ui-state-default sorting_asc",
70.
"sSortDesc": "ui-state-default sorting_desc",
71.
"sSortable": "ui-state-default sorting",
72.
"sSortableAsc": "ui-state-default sorting_asc_disabled",
73.
"sSortableDesc": "ui-state-default sorting_desc_disabled",
74.
"sSortableNone": "ui-state-default sorting_disabled",
75.
"sSortIcon": "DataTables_sort_icon",
76.
77.
/* Scrolling */
78.
"sScrollHead": "dataTables_scrollHead "+"ui-state-default",
79.
"sScrollFoot": "dataTables_scrollFoot "+"ui-state-default",
80.
81.
/* Misc */
82.
"sHeaderTH": "ui-state-default",
83.
"sFooterTH": "ui-state-default"
84.
} );
85.
86.
87.
DataTable.ext.renderer.header.jqueryui = function ( settings, cell, column, classes ) {
88.
// Calculate what the unsorted class should be
89.
var noSortAppliedClass = sort_prefix+'caret-2-n-s';
90.
var asc = $.inArray('asc', column.asSorting) !== -1;
91.
var desc = $.inArray('desc', column.asSorting) !== -1;
92.
93.
if ( !column.bSortable || (!asc && !desc) ) {
94.
noSortAppliedClass = '';
95.
}
96.
else if ( asc && !desc ) {
97.
noSortAppliedClass = sort_prefix+'caret-1-n';
98.
}
99.
else if ( !asc && desc ) {
100.
noSortAppliedClass = sort_prefix+'caret-1-s';
101.
}
102.
103.
// Setup the DOM structure
104.
$('<div/>')
105.
.addClass( 'DataTables_sort_wrapper' )
106.
.append( cell.contents() )
107.
.append( $('<span/>')
108.
.addClass( classes.sSortIcon+' '+noSortAppliedClass )
109.
)
110.
.appendTo( cell );
111.
112.
// Attach a sort listener to update on sort
113.
$(settings.nTable).on( 'order.dt', function ( e, ctx, sorting, columns ) {
114.
if ( settings !== ctx ) {
115.
return;
116.
}
117.
118.
var colIdx = column.idx;
119.
120.
cell
121.
.removeClass( classes.sSortAsc +" "+classes.sSortDesc )
122.
.addClass( columns[ colIdx ] == 'asc' ?
123.
classes.sSortAsc : columns[ colIdx ] == 'desc' ?
124.
classes.sSortDesc :
125.
column.sSortingClass
126.
);
127.
128.
cell
129.
.find( 'span.'+classes.sSortIcon )
130.
.removeClass(
131.
sort_prefix+'triangle-1-n' +" "+
132.
sort_prefix+'triangle-1-s' +" "+
133.
sort_prefix+'caret-2-n-s' +" "+
134.
sort_prefix+'caret-1-n' +" "+
135.
sort_prefix+'caret-1-s'
136.
)
137.
.addClass( columns[ colIdx ] == 'asc' ?
138.
sort_prefix+'triangle-1-n' : columns[ colIdx ] == 'desc' ?
139.
sort_prefix+'triangle-1-s' :
140.
noSortAppliedClass
141.
);
142.
} );
143.
};
144.
145.
146.
/*
147.
* TableTools jQuery UI compatibility
148.
* Required TableTools 2.1+
149.
*/
150.
if ( DataTable.TableTools ) {
151.
$.extend( true, DataTable.TableTools.classes, {
152.
"container": "DTTT_container ui-buttonset ui-buttonset-multi",
153.
"buttons": {
154.
"normal": "DTTT_button ui-button ui-state-default"
155.
},
156.
"collection": {
157.
"container": "DTTT_collection ui-buttonset ui-buttonset-multi"
158.
}
159.
} );
160.
}
161.
162.
163.
return DataTable;
164.
}));
165.