jquery-datatables 1.10.19.1 → 1.10.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/README.md +28 -1
- data/app/assets/javascripts/datatables/dataTables.uikit.js +2 -2
- data/app/assets/javascripts/datatables/extensions/AutoFill/dataTables.autoFill.js +42 -29
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap4.js +8 -2
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.colVis.js +6 -3
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.foundation.js +5 -4
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.html5.js +58 -6
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.print.js +16 -5
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.semanticui.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/dataTables.buttons.js +267 -152
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/ColReorder/dataTables.colReorder.js +121 -52
- data/app/assets/javascripts/datatables/extensions/FixedColumns/dataTables.fixedColumns.js +32 -5
- data/app/assets/javascripts/datatables/extensions/KeyTable/dataTables.keyTable.js +166 -63
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/dataTables.rowGroup.js +105 -53
- data/app/assets/javascripts/datatables/extensions/RowGroup/rowGroup.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/{rowGroup.semanicui.js → rowGroup.semanticui.js} +0 -0
- data/app/assets/javascripts/datatables/extensions/RowReorder/dataTables.rowReorder.js +10 -9
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Scroller/dataTables.scroller.js +519 -636
- data/app/assets/javascripts/datatables/extensions/Scroller/scroller.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Select/dataTables.select.js +49 -18
- data/app/assets/javascripts/datatables/extensions/Select/select.foundation.js +1 -1
- data/app/assets/javascripts/datatables/jquery.dataTables.js +97 -60
- data/app/assets/javascripts/datatables/plugins/api/average.js +7 -6
- data/app/assets/javascripts/datatables/plugins/api/sum.js +7 -6
- data/app/assets/javascripts/datatables/plugins/pagination/ellipses.js +160 -0
- data/app/assets/javascripts/datatables/plugins/pagination/extjs.js +137 -0
- data/app/assets/javascripts/datatables/plugins/pagination/four_button.js +110 -0
- data/app/assets/javascripts/datatables/plugins/pagination/full_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/pagination/input.js +22 -19
- data/app/assets/javascripts/datatables/plugins/pagination/scrolling.js +130 -0
- data/app/assets/javascripts/datatables/plugins/pagination/select.js +97 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_incremental_bootstrap.js +154 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/search/dataTables.alphabetSearch.js +440 -399
- data/app/assets/javascripts/datatables/plugins/sorting/enum.js +51 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-dd-MMM-yyyy.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-de.js +125 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-eu.js +64 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-euro.js +48 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +35 -12
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-moment.js +74 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-us.js +86 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +37 -13
- data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +113 -11
- data/app/assets/javascripts/datatables/plugins/type-detection/numString.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/percent.js +34 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time-elapsed-dhms.js +42 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time.js +56 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-numeric.js +40 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-string.js +36 -0
- data/app/assets/stylesheets/datatables/extensions/AutoFill/autoFill.dataTables.scss +10 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap.scss +12 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap4.scss +13 -6
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.dataTables.scss +2 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.foundation.scss +5 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.jqueryui.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.semanticui.scss +2 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/common.scss +10 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/mixins.scss +42 -30
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.bootstrap.scss +11 -7
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.foundation.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/KeyTable/keyTable.dataTables.scss +13 -5
- data/app/assets/stylesheets/datatables/extensions/RowGroup/rowGroup.dataTables.scss +20 -2
- data/app/assets/stylesheets/datatables/extensions/Scroller/scroller.dataTables.scss +15 -2
- data/lib/jquery-datatables/version.rb +1 -1
- metadata +26 -12
- data/app/assets/javascripts/datatables/dataTables.bootstrap2.js +0 -162
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedColumns/fixedColumns.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedHeader/fixedHeader.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.semanicui.js +0 -38
- data/app/assets/stylesheets/datatables/dataTables.bootstrap2.scss +0 -178
@@ -1,16 +1,16 @@
|
|
1
|
-
/*! Select for DataTables 1.
|
2
|
-
* 2015-
|
1
|
+
/*! Select for DataTables 1.3.1
|
2
|
+
* 2015-2019 SpryMedia Ltd - datatables.net/license/mit
|
3
3
|
*/
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @summary Select for DataTables
|
7
7
|
* @description A collection of API methods, events and buttons for DataTables
|
8
8
|
* that provides selection options of the items in a DataTable
|
9
|
-
* @version 1.
|
9
|
+
* @version 1.3.1
|
10
10
|
* @file dataTables.select.js
|
11
11
|
* @author SpryMedia Ltd (www.sprymedia.co.uk)
|
12
12
|
* @contact datatables.net/forums
|
13
|
-
* @copyright Copyright 2015-
|
13
|
+
* @copyright Copyright 2015-2019 SpryMedia Ltd.
|
14
14
|
*
|
15
15
|
* This source file is free software, available under the following license:
|
16
16
|
* MIT license - http://datatables.net/license/mit
|
@@ -54,7 +54,7 @@ var DataTable = $.fn.dataTable;
|
|
54
54
|
// Version information for debugger
|
55
55
|
DataTable.select = {};
|
56
56
|
|
57
|
-
DataTable.select.version = '1.
|
57
|
+
DataTable.select.version = '1.3.1';
|
58
58
|
|
59
59
|
DataTable.select.init = function ( dt ) {
|
60
60
|
var ctx = dt.settings()[0];
|
@@ -68,6 +68,7 @@ DataTable.select.init = function ( dt ) {
|
|
68
68
|
var items = 'row';
|
69
69
|
var style = 'api';
|
70
70
|
var blurable = false;
|
71
|
+
var toggleable = true;
|
71
72
|
var info = true;
|
72
73
|
var selector = 'td, th';
|
73
74
|
var className = 'selected';
|
@@ -88,6 +89,10 @@ DataTable.select.init = function ( dt ) {
|
|
88
89
|
if ( opts.blurable !== undefined ) {
|
89
90
|
blurable = opts.blurable;
|
90
91
|
}
|
92
|
+
|
93
|
+
if ( opts.toggleable !== undefined ) {
|
94
|
+
toggleable = opts.toggleable;
|
95
|
+
}
|
91
96
|
|
92
97
|
if ( opts.info !== undefined ) {
|
93
98
|
info = opts.info;
|
@@ -101,6 +106,10 @@ DataTable.select.init = function ( dt ) {
|
|
101
106
|
style = opts.style;
|
102
107
|
setStyle = true;
|
103
108
|
}
|
109
|
+
else {
|
110
|
+
style = 'os';
|
111
|
+
setStyle = true;
|
112
|
+
}
|
104
113
|
|
105
114
|
if ( opts.selector !== undefined ) {
|
106
115
|
selector = opts.selector;
|
@@ -115,6 +124,7 @@ DataTable.select.init = function ( dt ) {
|
|
115
124
|
dt.select.items( items );
|
116
125
|
dt.select.style( style );
|
117
126
|
dt.select.blurable( blurable );
|
127
|
+
dt.select.toggleable( toggleable );
|
118
128
|
dt.select.info( info );
|
119
129
|
ctx._select.className = className;
|
120
130
|
|
@@ -176,15 +186,17 @@ The `_select` object contains the following properties:
|
|
176
186
|
|
177
187
|
```
|
178
188
|
{
|
179
|
-
items:string
|
180
|
-
|
181
|
-
|
182
|
-
style:string
|
183
|
-
|
184
|
-
blurable:boolean
|
185
|
-
|
186
|
-
|
187
|
-
|
189
|
+
items:string - Can be `rows`, `columns` or `cells`. Defines what item
|
190
|
+
will be selected if the user is allowed to activate row
|
191
|
+
selection using the mouse.
|
192
|
+
style:string - Can be `none`, `single`, `multi` or `os`. Defines the
|
193
|
+
interaction style when selecting items
|
194
|
+
blurable:boolean - If row selection can be cleared by clicking outside of
|
195
|
+
the table
|
196
|
+
toggleable:boolean - If row selection can be cancelled by repeated clicking
|
197
|
+
on the row
|
198
|
+
info:boolean - If the selection summary should be shown in the table
|
199
|
+
information elements
|
188
200
|
}
|
189
201
|
```
|
190
202
|
|
@@ -310,7 +322,7 @@ function disableMouseSelection( dt )
|
|
310
322
|
.off( 'mouseup.dtSelect', selector )
|
311
323
|
.off( 'click.dtSelect', selector );
|
312
324
|
|
313
|
-
$('body').off( 'click.dtSelect' + dt.table().node()
|
325
|
+
$('body').off( 'click.dtSelect' + _safeId(dt.table().node()) );
|
314
326
|
}
|
315
327
|
|
316
328
|
/**
|
@@ -353,7 +365,7 @@ function enableMouseSelection ( dt )
|
|
353
365
|
|
354
366
|
// If text was selected (click and drag), then we shouldn't change
|
355
367
|
// the row's selected state
|
356
|
-
if (
|
368
|
+
if ( matchSelection ) {
|
357
369
|
var selection = window.getSelection();
|
358
370
|
|
359
371
|
// If the element that contains the selection is not in the table, we can ignore it
|
@@ -366,7 +378,7 @@ function enableMouseSelection ( dt )
|
|
366
378
|
}
|
367
379
|
|
368
380
|
var ctx = dt.settings()[0];
|
369
|
-
var wrapperClass = dt.settings()[0].oClasses.sWrapper.replace(/
|
381
|
+
var wrapperClass = $.trim(dt.settings()[0].oClasses.sWrapper).replace(/ +/g, '.');
|
370
382
|
|
371
383
|
// Ignore clicks inside a sub-table
|
372
384
|
if ( $(e.target).closest('div.'+wrapperClass)[0] != dt.table().container() ) {
|
@@ -406,7 +418,7 @@ function enableMouseSelection ( dt )
|
|
406
418
|
} );
|
407
419
|
|
408
420
|
// Blurable
|
409
|
-
$('body').on( 'click.dtSelect' + dt.table().node()
|
421
|
+
$('body').on( 'click.dtSelect' + _safeId(dt.table().node()), function ( e ) {
|
410
422
|
if ( ctx._select.blurable ) {
|
411
423
|
// If the click was inside the DataTables container, don't blur
|
412
424
|
if ( $(e.target).parents().filter( dt.table().container() ).length ) {
|
@@ -666,7 +678,12 @@ function clear( ctx, force )
|
|
666
678
|
function typeSelect ( e, dt, ctx, type, idx )
|
667
679
|
{
|
668
680
|
var style = dt.select.style();
|
681
|
+
var toggleable = dt.select.toggleable();
|
669
682
|
var isSelected = dt[type]( idx, { selected: true } ).any();
|
683
|
+
|
684
|
+
if ( isSelected && ! toggleable ) {
|
685
|
+
return;
|
686
|
+
}
|
670
687
|
|
671
688
|
if ( style === 'os' ) {
|
672
689
|
if ( e.ctrlKey || e.metaKey ) {
|
@@ -718,6 +735,10 @@ function typeSelect ( e, dt, ctx, type, idx )
|
|
718
735
|
}
|
719
736
|
}
|
720
737
|
|
738
|
+
function _safeId( node ) {
|
739
|
+
return node.id.replace(/[^a-zA-Z0-9\-\_]/g, '-');
|
740
|
+
}
|
741
|
+
|
721
742
|
|
722
743
|
|
723
744
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
@@ -805,6 +826,16 @@ apiRegister( 'select.blurable()', function ( flag ) {
|
|
805
826
|
} );
|
806
827
|
} );
|
807
828
|
|
829
|
+
apiRegister( 'select.toggleable()', function ( flag ) {
|
830
|
+
if ( flag === undefined ) {
|
831
|
+
return this.context[0]._select.toggleable;
|
832
|
+
}
|
833
|
+
|
834
|
+
return this.iterator( 'table', function ( ctx ) {
|
835
|
+
ctx._select.toggleable = flag;
|
836
|
+
} );
|
837
|
+
} );
|
838
|
+
|
808
839
|
apiRegister( 'select.info()', function ( flag ) {
|
809
840
|
if ( info === undefined ) {
|
810
841
|
return this.context[0]._select.info;
|
@@ -1,15 +1,15 @@
|
|
1
|
-
/*! DataTables 1.10.
|
2
|
-
* ©2008-
|
1
|
+
/*! DataTables 1.10.20
|
2
|
+
* ©2008-2019 SpryMedia Ltd - datatables.net/license
|
3
3
|
*/
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @summary DataTables
|
7
7
|
* @description Paginate, search and order HTML tables
|
8
|
-
* @version 1.10.
|
8
|
+
* @version 1.10.20
|
9
9
|
* @file jquery.dataTables.js
|
10
10
|
* @author SpryMedia Ltd
|
11
11
|
* @contact www.datatables.net
|
12
|
-
* @copyright Copyright 2008-
|
12
|
+
* @copyright Copyright 2008-2019 SpryMedia Ltd.
|
13
13
|
*
|
14
14
|
* This source file is free software, available under the following license:
|
15
15
|
* MIT license - http://datatables.net/license
|
@@ -898,7 +898,7 @@
|
|
898
898
|
_fnCamelToHungarian( defaults.column, defaults.column, true );
|
899
899
|
|
900
900
|
/* Setting up the initialisation object */
|
901
|
-
_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ) );
|
901
|
+
_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true );
|
902
902
|
|
903
903
|
|
904
904
|
|
@@ -1334,7 +1334,7 @@
|
|
1334
1334
|
var _api_registerPlural; // DataTable.Api.registerPlural
|
1335
1335
|
|
1336
1336
|
var _re_dic = {};
|
1337
|
-
var _re_new_lines = /[\r\n]/g;
|
1337
|
+
var _re_new_lines = /[\r\n\u2028]/g;
|
1338
1338
|
var _re_html = /<.*?>/g;
|
1339
1339
|
|
1340
1340
|
// This is not strict ISO8601 - Date.parse() is quite lax, although
|
@@ -2024,7 +2024,7 @@
|
|
2024
2024
|
_fnCompatCols( oOptions );
|
2025
2025
|
|
2026
2026
|
// Map camel case parameters to their Hungarian counterparts
|
2027
|
-
_fnCamelToHungarian( DataTable.defaults.column, oOptions );
|
2027
|
+
_fnCamelToHungarian( DataTable.defaults.column, oOptions, true );
|
2028
2028
|
|
2029
2029
|
/* Backwards compatibility for mDataProp */
|
2030
2030
|
if ( oOptions.mDataProp !== undefined && !oOptions.mData )
|
@@ -3078,7 +3078,7 @@
|
|
3078
3078
|
rowData = row._aData,
|
3079
3079
|
cells = [],
|
3080
3080
|
nTr, nTd, oCol,
|
3081
|
-
i, iLen;
|
3081
|
+
i, iLen, create;
|
3082
3082
|
|
3083
3083
|
if ( row.nTr === null )
|
3084
3084
|
{
|
@@ -3099,8 +3099,9 @@
|
|
3099
3099
|
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
3100
3100
|
{
|
3101
3101
|
oCol = oSettings.aoColumns[i];
|
3102
|
+
create = nTrIn ? false : true;
|
3102
3103
|
|
3103
|
-
nTd =
|
3104
|
+
nTd = create ? document.createElement( oCol.sCellType ) : anTds[i];
|
3104
3105
|
nTd._DT_CellIndex = {
|
3105
3106
|
row: iRow,
|
3106
3107
|
column: i
|
@@ -3109,9 +3110,9 @@
|
|
3109
3110
|
cells.push( nTd );
|
3110
3111
|
|
3111
3112
|
// Need to create the HTML if new, or if a rendering function is defined
|
3112
|
-
if ( (!nTrIn || oCol.mRender || oCol.mData !== i) &&
|
3113
|
+
if ( create || ((!nTrIn || oCol.mRender || oCol.mData !== i) &&
|
3113
3114
|
(!$.isPlainObject(oCol.mData) || oCol.mData._ !== i+'.display')
|
3114
|
-
) {
|
3115
|
+
)) {
|
3115
3116
|
nTd.innerHTML = _fnGetCellData( oSettings, iRow, i, 'display' );
|
3116
3117
|
}
|
3117
3118
|
|
@@ -4406,6 +4407,7 @@
|
|
4406
4407
|
// New search - start from the master array
|
4407
4408
|
if ( invalidated ||
|
4408
4409
|
force ||
|
4410
|
+
regex ||
|
4409
4411
|
prevSearch.length > input.length ||
|
4410
4412
|
input.indexOf(prevSearch) !== 0 ||
|
4411
4413
|
settings.bSorted // On resort, the display master needs to be
|
@@ -4529,7 +4531,7 @@
|
|
4529
4531
|
}
|
4530
4532
|
|
4531
4533
|
if ( cellData.replace ) {
|
4532
|
-
cellData = cellData.replace(/[\r\n]/g, '');
|
4534
|
+
cellData = cellData.replace(/[\r\n\u2028]/g, '');
|
4533
4535
|
}
|
4534
4536
|
|
4535
4537
|
filterData.push( cellData );
|
@@ -5457,7 +5459,7 @@
|
|
5457
5459
|
table.children('colgroup').insertBefore( table.children('thead') );
|
5458
5460
|
|
5459
5461
|
/* Adjust the position of the header in case we loose the y-scrollbar */
|
5460
|
-
divBody.scroll
|
5462
|
+
divBody.trigger('scroll');
|
5461
5463
|
|
5462
5464
|
// If sorting or filtering has occurred, jump the scrolling back to the top
|
5463
5465
|
// only if we aren't holding the position
|
@@ -6410,7 +6412,7 @@
|
|
6410
6412
|
|
6411
6413
|
_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
|
6412
6414
|
callback();
|
6413
|
-
}
|
6415
|
+
};
|
6414
6416
|
|
6415
6417
|
if ( ! settings.oFeatures.bStateSave ) {
|
6416
6418
|
callback();
|
@@ -6890,7 +6892,7 @@
|
|
6890
6892
|
var ctxSettings = function ( o ) {
|
6891
6893
|
var a = _toSettings( o );
|
6892
6894
|
if ( a ) {
|
6893
|
-
settings
|
6895
|
+
settings.push.apply( settings, a );
|
6894
6896
|
}
|
6895
6897
|
};
|
6896
6898
|
|
@@ -7188,8 +7190,7 @@
|
|
7188
7190
|
|
7189
7191
|
var
|
7190
7192
|
i, ien,
|
7191
|
-
|
7192
|
-
struct, inner,
|
7193
|
+
struct,
|
7193
7194
|
methodScoping = function ( scope, fn, struc ) {
|
7194
7195
|
return function () {
|
7195
7196
|
var ret = fn.apply( scope, arguments );
|
@@ -7204,9 +7205,9 @@
|
|
7204
7205
|
struct = ext[i];
|
7205
7206
|
|
7206
7207
|
// Value
|
7207
|
-
obj[ struct.name ] =
|
7208
|
+
obj[ struct.name ] = struct.type === 'function' ?
|
7208
7209
|
methodScoping( scope, struct.val, struct ) :
|
7209
|
-
|
7210
|
+
struct.type === 'object' ?
|
7210
7211
|
{} :
|
7211
7212
|
struct.val;
|
7212
7213
|
|
@@ -7287,13 +7288,19 @@
|
|
7287
7288
|
name: key,
|
7288
7289
|
val: {},
|
7289
7290
|
methodExt: [],
|
7290
|
-
propExt: []
|
7291
|
+
propExt: [],
|
7292
|
+
type: 'object'
|
7291
7293
|
};
|
7292
7294
|
struct.push( src );
|
7293
7295
|
}
|
7294
7296
|
|
7295
7297
|
if ( i === ien-1 ) {
|
7296
7298
|
src.val = val;
|
7299
|
+
src.type = typeof val === 'function' ?
|
7300
|
+
'function' :
|
7301
|
+
$.isPlainObject( val ) ?
|
7302
|
+
'object' :
|
7303
|
+
'other';
|
7297
7304
|
}
|
7298
7305
|
else {
|
7299
7306
|
struct = method ?
|
@@ -7303,7 +7310,6 @@
|
|
7303
7310
|
}
|
7304
7311
|
};
|
7305
7312
|
|
7306
|
-
|
7307
7313
|
_Api.registerPlural = _api_registerPlural = function ( pluralName, singularName, val ) {
|
7308
7314
|
_Api.register( pluralName, val );
|
7309
7315
|
|
@@ -7916,7 +7922,7 @@
|
|
7916
7922
|
[];
|
7917
7923
|
}
|
7918
7924
|
else if ( cellIdx ) {
|
7919
|
-
return aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel ?
|
7925
|
+
return aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel.parentNode ?
|
7920
7926
|
[ cellIdx.row ] :
|
7921
7927
|
[];
|
7922
7928
|
}
|
@@ -8575,16 +8581,6 @@
|
|
8575
8581
|
|
8576
8582
|
// Common actions
|
8577
8583
|
col.bVisible = vis;
|
8578
|
-
_fnDrawHead( settings, settings.aoHeader );
|
8579
|
-
_fnDrawHead( settings, settings.aoFooter );
|
8580
|
-
|
8581
|
-
// Update colspan for no records display. Child rows and extensions will use their own
|
8582
|
-
// listeners to do this - only need to update the empty table item here
|
8583
|
-
if ( ! settings.aiDisplay.length ) {
|
8584
|
-
$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
|
8585
|
-
}
|
8586
|
-
|
8587
|
-
_fnSaveState( settings );
|
8588
8584
|
};
|
8589
8585
|
|
8590
8586
|
|
@@ -8648,6 +8644,7 @@
|
|
8648
8644
|
} );
|
8649
8645
|
|
8650
8646
|
_api_registerPlural( 'columns().visible()', 'column().visible()', function ( vis, calc ) {
|
8647
|
+
var that = this;
|
8651
8648
|
var ret = this.iterator( 'column', function ( settings, column ) {
|
8652
8649
|
if ( vis === undefined ) {
|
8653
8650
|
return settings.aoColumns[ column ].bVisible;
|
@@ -8657,14 +8654,28 @@
|
|
8657
8654
|
|
8658
8655
|
// Group the column visibility changes
|
8659
8656
|
if ( vis !== undefined ) {
|
8660
|
-
|
8661
|
-
|
8662
|
-
|
8663
|
-
|
8657
|
+
this.iterator( 'table', function ( settings ) {
|
8658
|
+
// Redraw the header after changes
|
8659
|
+
_fnDrawHead( settings, settings.aoHeader );
|
8660
|
+
_fnDrawHead( settings, settings.aoFooter );
|
8661
|
+
|
8662
|
+
// Update colspan for no records display. Child rows and extensions will use their own
|
8663
|
+
// listeners to do this - only need to update the empty table item here
|
8664
|
+
if ( ! settings.aiDisplay.length ) {
|
8665
|
+
$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
|
8666
|
+
}
|
8667
|
+
|
8668
|
+
_fnSaveState( settings );
|
8664
8669
|
|
8665
|
-
|
8666
|
-
|
8667
|
-
|
8670
|
+
// Second loop once the first is done for events
|
8671
|
+
that.iterator( 'column', function ( settings, column ) {
|
8672
|
+
_fnCallbackFire( settings, null, 'column-visibility', [settings, column, vis, calc] );
|
8673
|
+
} );
|
8674
|
+
|
8675
|
+
if ( calc === undefined || calc ) {
|
8676
|
+
that.columns.adjust();
|
8677
|
+
}
|
8678
|
+
});
|
8668
8679
|
}
|
8669
8680
|
|
8670
8681
|
return ret;
|
@@ -8815,13 +8826,20 @@
|
|
8815
8826
|
} );
|
8816
8827
|
}
|
8817
8828
|
|
8829
|
+
// The default built in options need to apply to row and columns
|
8830
|
+
var internalOpts = opts ? {
|
8831
|
+
page: opts.page,
|
8832
|
+
order: opts.order,
|
8833
|
+
search: opts.search
|
8834
|
+
} : {};
|
8835
|
+
|
8818
8836
|
// Row + column selector
|
8819
|
-
var columns = this.columns( columnSelector );
|
8820
|
-
var rows = this.rows( rowSelector );
|
8821
|
-
var
|
8837
|
+
var columns = this.columns( columnSelector, internalOpts );
|
8838
|
+
var rows = this.rows( rowSelector, internalOpts );
|
8839
|
+
var i, ien, j, jen;
|
8822
8840
|
|
8823
|
-
this.iterator( 'table', function ( settings, idx ) {
|
8824
|
-
a = [];
|
8841
|
+
var cellsNoOpts = this.iterator( 'table', function ( settings, idx ) {
|
8842
|
+
var a = [];
|
8825
8843
|
|
8826
8844
|
for ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {
|
8827
8845
|
for ( j=0, jen=columns[idx].length ; j<jen ; j++ ) {
|
@@ -8831,10 +8849,16 @@
|
|
8831
8849
|
} );
|
8832
8850
|
}
|
8833
8851
|
}
|
8852
|
+
|
8853
|
+
return a;
|
8834
8854
|
}, 1 );
|
8835
8855
|
|
8836
|
-
|
8837
|
-
|
8856
|
+
// There is currently only one extension which uses a cell selector extension
|
8857
|
+
// It is a _major_ performance drag to run this if it isn't needed, so this is
|
8858
|
+
// an extension specific check at the moment
|
8859
|
+
var cells = opts && opts.selected ?
|
8860
|
+
this.cells( cellsNoOpts, opts ) :
|
8861
|
+
cellsNoOpts;
|
8838
8862
|
|
8839
8863
|
$.extend( cells.selector, {
|
8840
8864
|
cols: columnSelector,
|
@@ -9455,7 +9479,6 @@
|
|
9455
9479
|
|
9456
9480
|
return resolved.replace( '%d', plural ); // nb: plural might be undefined,
|
9457
9481
|
} );
|
9458
|
-
|
9459
9482
|
/**
|
9460
9483
|
* Version string for plug-ins to check compatibility. Allowed format is
|
9461
9484
|
* `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used
|
@@ -9464,7 +9487,7 @@
|
|
9464
9487
|
* @type string
|
9465
9488
|
* @default Version number
|
9466
9489
|
*/
|
9467
|
-
DataTable.version = "1.10.
|
9490
|
+
DataTable.version = "1.10.20";
|
9468
9491
|
|
9469
9492
|
/**
|
9470
9493
|
* Private data store, containing all of the settings objects that are
|
@@ -14527,7 +14550,8 @@
|
|
14527
14550
|
var btnDisplay, btnClass, counter=0;
|
14528
14551
|
|
14529
14552
|
var attach = function( container, buttons ) {
|
14530
|
-
var i, ien, node, button;
|
14553
|
+
var i, ien, node, button, tabIndex;
|
14554
|
+
var disabledClass = classes.sPageButtonDisabled;
|
14531
14555
|
var clickHandler = function ( e ) {
|
14532
14556
|
_fnPageChange( settings, e.data.action, true );
|
14533
14557
|
};
|
@@ -14542,7 +14566,8 @@
|
|
14542
14566
|
}
|
14543
14567
|
else {
|
14544
14568
|
btnDisplay = null;
|
14545
|
-
btnClass =
|
14569
|
+
btnClass = button;
|
14570
|
+
tabIndex = settings.iTabIndex;
|
14546
14571
|
|
14547
14572
|
switch ( button ) {
|
14548
14573
|
case 'ellipsis':
|
@@ -14551,26 +14576,38 @@
|
|
14551
14576
|
|
14552
14577
|
case 'first':
|
14553
14578
|
btnDisplay = lang.sFirst;
|
14554
|
-
|
14555
|
-
|
14579
|
+
|
14580
|
+
if ( page === 0 ) {
|
14581
|
+
tabIndex = -1;
|
14582
|
+
btnClass += ' ' + disabledClass;
|
14583
|
+
}
|
14556
14584
|
break;
|
14557
14585
|
|
14558
14586
|
case 'previous':
|
14559
14587
|
btnDisplay = lang.sPrevious;
|
14560
|
-
|
14561
|
-
|
14588
|
+
|
14589
|
+
if ( page === 0 ) {
|
14590
|
+
tabIndex = -1;
|
14591
|
+
btnClass += ' ' + disabledClass;
|
14592
|
+
}
|
14562
14593
|
break;
|
14563
14594
|
|
14564
14595
|
case 'next':
|
14565
14596
|
btnDisplay = lang.sNext;
|
14566
|
-
|
14567
|
-
|
14597
|
+
|
14598
|
+
if ( page === pages-1 ) {
|
14599
|
+
tabIndex = -1;
|
14600
|
+
btnClass += ' ' + disabledClass;
|
14601
|
+
}
|
14568
14602
|
break;
|
14569
14603
|
|
14570
14604
|
case 'last':
|
14571
14605
|
btnDisplay = lang.sLast;
|
14572
|
-
|
14573
|
-
|
14606
|
+
|
14607
|
+
if ( page === pages-1 ) {
|
14608
|
+
tabIndex = -1;
|
14609
|
+
btnClass += ' ' + disabledClass;
|
14610
|
+
}
|
14574
14611
|
break;
|
14575
14612
|
|
14576
14613
|
default:
|
@@ -14586,7 +14623,7 @@
|
|
14586
14623
|
'aria-controls': settings.sTableId,
|
14587
14624
|
'aria-label': aria[ button ],
|
14588
14625
|
'data-dt-idx': counter,
|
14589
|
-
'tabindex':
|
14626
|
+
'tabindex': tabIndex,
|
14590
14627
|
'id': idx === 0 && typeof button === 'string' ?
|
14591
14628
|
settings.sTableId +'_'+ button :
|
14592
14629
|
null
|
@@ -15214,7 +15251,7 @@
|
|
15214
15251
|
|
15215
15252
|
/**
|
15216
15253
|
* Processing event, fired when DataTables is doing some kind of processing
|
15217
|
-
* (be it, order,
|
15254
|
+
* (be it, order, search or anything else). It can be used to indicate to
|
15218
15255
|
* the end user that there is something happening, or that something has
|
15219
15256
|
* finished.
|
15220
15257
|
* @name DataTable#processing.dt
|