jquery-datatables 1.10.17 → 1.10.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +26 -9
- data/app/assets/javascripts/datatables/dataTables.bootstrap4.js +2 -2
- data/app/assets/javascripts/datatables/dataTables.dataTables.js +37 -0
- data/app/assets/javascripts/datatables/dataTables.semanticui.js +7 -3
- data/app/assets/javascripts/datatables/jquery.dataTables.js +3 -3
- data/app/assets/javascripts/datatables/plugins/api/average.js +0 -1
- data/app/assets/javascripts/datatables/plugins/api/sum.js +9 -10
- data/app/assets/javascripts/datatables/plugins/pagination/input.js +203 -203
- data/app/assets/javascripts/datatables/plugins/search/{alphabetSearch.js → dataTables.alphabetSearch.js} +81 -50
- data/app/assets/javascripts/datatables/plugins/sorting/currency.js +36 -0
- data/app/assets/javascripts/datatables/plugins/sorting/date-uk.js +42 -0
- data/app/assets/javascripts/datatables/plugins/sorting/file-size.js +2 -1
- data/app/assets/javascripts/datatables/plugins/sorting/formatted-numbers.js +40 -0
- data/app/assets/javascripts/datatables/plugins/sorting/ip-address.js +74 -73
- data/app/assets/javascripts/datatables/plugins/sorting/num-html.js +38 -0
- data/app/assets/javascripts/datatables/plugins/sorting/numeric-comma.js +37 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/currency.js +40 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +19 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +20 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/formatted-num.js +28 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +18 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/num-html.js +56 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/numeric-comma.js +40 -0
- data/app/assets/stylesheets/datatables/dataTables.bootstrap4.scss +1 -1
- data/app/assets/stylesheets/datatables/dataTables.semanticui.scss +1 -1
- data/app/assets/stylesheets/datatables/plugins/search/dataTables.alphabetSearch.bootstrap.css +53 -0
- data/app/assets/stylesheets/datatables/plugins/search/dataTables.alphabetSearch.css +83 -0
- data/jquery-datatables.gemspec +3 -5
- data/lib/generators/jquery/datatables/templates/javascripts/initializer.js.tt +11 -0
- data/lib/generators/jquery/datatables/templates/views/index.html.erb +1 -1
- data/lib/generators/jquery/datatables/templates/views/index.html.haml +12 -0
- data/lib/jquery-datatables/version.rb +1 -1
- metadata +19 -18
- data/app/assets/stylesheets/datatables/plugins/search/alphabetSearch.css +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b570f797c94b675a1ca66f34cb200644090bd0d97e550461acac0ca697da18c1
|
4
|
+
data.tar.gz: 732f86dcb5f363428d0f811d3b350595219b1c86a46641d8325ae0c68e46ecbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f98304dba880ead665a5c353c41e87bfb274f817eab977ad5f2c8e380348806e835f984dd7ae5efa26e43f7eecd0c6c761c6930849dedfffa2aee7dc41c068fb
|
7
|
+
data.tar.gz: da9cf41ebac6116d1971503c7365daded1a95df4314948f77e99f39ea9a39cd9892d0cb5d37fe278e6b3f59999746c8ad56b1886a09167d9e1c1d47201e32df6
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -31,18 +31,30 @@ rails g jquery:datatables:install
|
|
31
31
|
|
32
32
|
```
|
33
33
|
|
34
|
-
or if you using
|
34
|
+
or if you using css framework
|
35
35
|
|
36
36
|
```
|
37
|
-
rails g jquery:datatables:install
|
37
|
+
rails g jquery:datatables:install bootstrap4
|
38
38
|
|
39
39
|
```
|
40
40
|
|
41
41
|
this generator will:
|
42
42
|
- 1. append ```//= require datatables ``` add `app/assets/javascripts/application.js`
|
43
43
|
- 2. append ```*= require datatables ``` add `app/assets/stylesheets/application.css`
|
44
|
-
- 3. create datatable.js in ```app/assets/javascripts/```
|
44
|
+
- 3. create datatable.js in ```app/assets/javascripts/``` with default init script.
|
45
45
|
- 4. create datatable.scss in ```app/assets/stylesheets/```
|
46
|
+
- 5. create scaffold index template in ```lib/template```
|
47
|
+
|
48
|
+
|
49
|
+
available [styling](https://datatables.net/examples/styling/)
|
50
|
+
- bootstrap
|
51
|
+
- bootstrap4
|
52
|
+
- foundation
|
53
|
+
- jqueryui
|
54
|
+
- sematicui
|
55
|
+
- material (Tech. preview)
|
56
|
+
- uikit (Tech. preview)
|
57
|
+
|
46
58
|
|
47
59
|
## Manual install
|
48
60
|
|
@@ -93,7 +105,7 @@ Create new file `app/assets/stylesheets/datatables.scss`
|
|
93
105
|
@import 'datatables/extensions/Responsive/responsive.dataTables';
|
94
106
|
@import 'datatables/extensions/Buttons/buttons.dataTables';
|
95
107
|
```
|
96
|
-
** if using
|
108
|
+
** if using boostrap4 theme
|
97
109
|
```scss
|
98
110
|
@import 'datatables/dataTables.bootstrap4';
|
99
111
|
@import 'datatables/extensions/Responsive/responsive.bootstrap4';
|
@@ -103,7 +115,7 @@ Create new file `app/assets/stylesheets/datatables.scss`
|
|
103
115
|
*** you may refer other extensions in this directory: [click me](https://github.com/mkhairi/jquery-datatables/tree/master/app/assets/stylesheets/datatables/extensions)
|
104
116
|
|
105
117
|
|
106
|
-
### Initialization
|
118
|
+
### Basic Initialization
|
107
119
|
|
108
120
|
Where needed in your JavaScripts, initialize your DataTables:
|
109
121
|
|
@@ -113,10 +125,15 @@ $(document).ready(function() {
|
|
113
125
|
});
|
114
126
|
```
|
115
127
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
128
|
+
### Server Side processing
|
129
|
+
|
130
|
+
Recommended use this gem
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
gem 'ajax-datatables-rails'
|
134
|
+
```
|
135
|
+
see [docs](https://github.com/jbox-web/ajax-datatables-rails) for details instruction
|
136
|
+
|
120
137
|
|
121
138
|
## Contributing
|
122
139
|
|
@@ -55,9 +55,9 @@ $.extend( true, DataTable.defaults, {
|
|
55
55
|
|
56
56
|
/* Default class modification */
|
57
57
|
$.extend( DataTable.ext.classes, {
|
58
|
-
sWrapper: "dataTables_wrapper
|
58
|
+
sWrapper: "dataTables_wrapper dt-bootstrap4",
|
59
59
|
sFilterInput: "form-control form-control-sm",
|
60
|
-
sLengthSelect: "form-control form-control-sm",
|
60
|
+
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
|
61
61
|
sProcessing: "dataTables_processing card",
|
62
62
|
sPageButton: "paginate_button page-item"
|
63
63
|
} );
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/*! DataTables styling integration
|
2
|
+
* ©2018 SpryMedia Ltd - datatables.net/license
|
3
|
+
*/
|
4
|
+
|
5
|
+
(function( factory ){
|
6
|
+
if ( typeof define === 'function' && define.amd ) {
|
7
|
+
// AMD
|
8
|
+
define( ['jquery', 'datatables.net'], function ( $ ) {
|
9
|
+
return factory( $, window, document );
|
10
|
+
} );
|
11
|
+
}
|
12
|
+
else if ( typeof exports === 'object' ) {
|
13
|
+
// CommonJS
|
14
|
+
module.exports = function (root, $) {
|
15
|
+
if ( ! root ) {
|
16
|
+
root = window;
|
17
|
+
}
|
18
|
+
|
19
|
+
if ( ! $ || ! $.fn.dataTable ) {
|
20
|
+
// Require DataTables, which attaches to jQuery, including
|
21
|
+
// jQuery if needed and have a $ property so we can access the
|
22
|
+
// jQuery object that is used
|
23
|
+
$ = require('datatables.net')(root, $).$;
|
24
|
+
}
|
25
|
+
|
26
|
+
return factory( $, root, root.document );
|
27
|
+
};
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
// Browser
|
31
|
+
factory( jQuery, window, document );
|
32
|
+
}
|
33
|
+
}(function( $, window, document, undefined ) {
|
34
|
+
|
35
|
+
return $.fn.dataTable;
|
36
|
+
|
37
|
+
}));
|
@@ -195,14 +195,18 @@ $(document).on( 'init.dt', function (e, ctx) {
|
|
195
195
|
return;
|
196
196
|
}
|
197
197
|
|
198
|
+
var api = new $.fn.dataTable.Api( ctx );
|
199
|
+
|
198
200
|
// Length menu drop down
|
199
201
|
if ( $.fn.dropdown ) {
|
200
|
-
var api = new $.fn.dataTable.Api( ctx );
|
201
|
-
|
202
202
|
$( 'div.dataTables_length select', api.table().container() ).dropdown();
|
203
203
|
}
|
204
|
+
|
205
|
+
// Filtering input
|
206
|
+
$( 'div.dataTables_filter.ui.input', api.table().container() ).removeClass('input').addClass('form');
|
207
|
+
$( 'div.dataTables_filter input', api.table().container() ).wrap( '<span class="ui input" />' );
|
204
208
|
} );
|
205
209
|
|
206
210
|
|
207
211
|
return DataTable;
|
208
|
-
}));
|
212
|
+
}));
|
@@ -1,11 +1,11 @@
|
|
1
|
-
/*! DataTables 1.10.
|
1
|
+
/*! DataTables 1.10.18
|
2
2
|
* ©2008-2018 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.18
|
9
9
|
* @file jquery.dataTables.js
|
10
10
|
* @author SpryMedia Ltd
|
11
11
|
* @contact www.datatables.net
|
@@ -9464,7 +9464,7 @@
|
|
9464
9464
|
* @type string
|
9465
9465
|
* @default Version number
|
9466
9466
|
*/
|
9467
|
-
DataTable.version = "1.10.
|
9467
|
+
DataTable.version = "1.10.18";
|
9468
9468
|
|
9469
9469
|
/**
|
9470
9470
|
* Private data store, containing all of the settings objects that are
|
@@ -37,15 +37,14 @@
|
|
37
37
|
*/
|
38
38
|
|
39
39
|
jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
40
|
+
return this.flatten().reduce( function ( a, b ) {
|
41
|
+
if ( typeof a === 'string' ) {
|
42
|
+
a = a.replace(/[^\d.-]/g, '') * 1;
|
43
|
+
}
|
44
|
+
if ( typeof b === 'string' ) {
|
45
|
+
b = b.replace(/[^\d.-]/g, '') * 1;
|
46
|
+
}
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
return a + b;
|
49
|
+
}, 0 );
|
50
50
|
} );
|
51
|
-
|
@@ -19,206 +19,206 @@
|
|
19
19
|
*/
|
20
20
|
|
21
21
|
(function ($) {
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
})(jQuery);
|
22
|
+
function calcDisableClasses(oSettings) {
|
23
|
+
var start = oSettings._iDisplayStart;
|
24
|
+
var length = oSettings._iDisplayLength;
|
25
|
+
var visibleRecords = oSettings.fnRecordsDisplay();
|
26
|
+
var all = length === -1;
|
27
|
+
|
28
|
+
// Gordey Doronin: Re-used this code from main jQuery.dataTables source code. To be consistent.
|
29
|
+
var page = all ? 0 : Math.ceil(start / length);
|
30
|
+
var pages = all ? 1 : Math.ceil(visibleRecords / length);
|
31
|
+
|
32
|
+
var disableFirstPrevClass = (page > 0 ? '' : oSettings.oClasses.sPageButtonDisabled);
|
33
|
+
var disableNextLastClass = (page < pages - 1 ? '' : oSettings.oClasses.sPageButtonDisabled);
|
34
|
+
|
35
|
+
return {
|
36
|
+
'first': disableFirstPrevClass,
|
37
|
+
'previous': disableFirstPrevClass,
|
38
|
+
'next': disableNextLastClass,
|
39
|
+
'last': disableNextLastClass
|
40
|
+
};
|
41
|
+
}
|
42
|
+
|
43
|
+
function calcCurrentPage(oSettings) {
|
44
|
+
return Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
|
45
|
+
}
|
46
|
+
|
47
|
+
function calcPages(oSettings) {
|
48
|
+
return Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength);
|
49
|
+
}
|
50
|
+
|
51
|
+
var firstClassName = 'first';
|
52
|
+
var previousClassName = 'previous';
|
53
|
+
var nextClassName = 'next';
|
54
|
+
var lastClassName = 'last';
|
55
|
+
|
56
|
+
var paginateClassName = 'paginate';
|
57
|
+
var paginateOfClassName = 'paginate_of';
|
58
|
+
var paginatePageClassName = 'paginate_page';
|
59
|
+
var paginateInputClassName = 'paginate_input';
|
60
|
+
|
61
|
+
$.fn.dataTableExt.oPagination.input = {
|
62
|
+
'fnInit': function (oSettings, nPaging, fnCallbackDraw) {
|
63
|
+
var nFirst = document.createElement('span');
|
64
|
+
var nPrevious = document.createElement('span');
|
65
|
+
var nNext = document.createElement('span');
|
66
|
+
var nLast = document.createElement('span');
|
67
|
+
var nInput = document.createElement('input');
|
68
|
+
var nPage = document.createElement('span');
|
69
|
+
var nOf = document.createElement('span');
|
70
|
+
|
71
|
+
var language = oSettings.oLanguage.oPaginate;
|
72
|
+
var classes = oSettings.oClasses;
|
73
|
+
|
74
|
+
nFirst.innerHTML = language.sFirst;
|
75
|
+
nPrevious.innerHTML = language.sPrevious;
|
76
|
+
nNext.innerHTML = language.sNext;
|
77
|
+
nLast.innerHTML = language.sLast;
|
78
|
+
|
79
|
+
nFirst.className = firstClassName + ' ' + classes.sPageButton;
|
80
|
+
nPrevious.className = previousClassName + ' ' + classes.sPageButton;
|
81
|
+
nNext.className = nextClassName + ' ' + classes.sPageButton;
|
82
|
+
nLast.className = lastClassName + ' ' + classes.sPageButton;
|
83
|
+
|
84
|
+
nOf.className = paginateOfClassName;
|
85
|
+
nPage.className = paginatePageClassName;
|
86
|
+
nInput.className = paginateInputClassName;
|
87
|
+
|
88
|
+
if (oSettings.sTableId !== '') {
|
89
|
+
nPaging.setAttribute('id', oSettings.sTableId + '_' + paginateClassName);
|
90
|
+
nFirst.setAttribute('id', oSettings.sTableId + '_' + firstClassName);
|
91
|
+
nPrevious.setAttribute('id', oSettings.sTableId + '_' + previousClassName);
|
92
|
+
nNext.setAttribute('id', oSettings.sTableId + '_' + nextClassName);
|
93
|
+
nLast.setAttribute('id', oSettings.sTableId + '_' + lastClassName);
|
94
|
+
}
|
95
|
+
|
96
|
+
nInput.type = 'text';
|
97
|
+
nPage.innerHTML = 'Page ';
|
98
|
+
|
99
|
+
nPaging.appendChild(nFirst);
|
100
|
+
nPaging.appendChild(nPrevious);
|
101
|
+
nPaging.appendChild(nPage);
|
102
|
+
nPaging.appendChild(nInput);
|
103
|
+
nPaging.appendChild(nOf);
|
104
|
+
nPaging.appendChild(nNext);
|
105
|
+
nPaging.appendChild(nLast);
|
106
|
+
|
107
|
+
$(nFirst).click(function() {
|
108
|
+
var iCurrentPage = calcCurrentPage(oSettings);
|
109
|
+
if (iCurrentPage !== 1) {
|
110
|
+
oSettings.oApi._fnPageChange(oSettings, 'first');
|
111
|
+
fnCallbackDraw(oSettings);
|
112
|
+
}
|
113
|
+
});
|
114
|
+
|
115
|
+
$(nPrevious).click(function() {
|
116
|
+
var iCurrentPage = calcCurrentPage(oSettings);
|
117
|
+
if (iCurrentPage !== 1) {
|
118
|
+
oSettings.oApi._fnPageChange(oSettings, 'previous');
|
119
|
+
fnCallbackDraw(oSettings);
|
120
|
+
}
|
121
|
+
});
|
122
|
+
|
123
|
+
$(nNext).click(function() {
|
124
|
+
var iCurrentPage = calcCurrentPage(oSettings);
|
125
|
+
if (iCurrentPage !== calcPages(oSettings)) {
|
126
|
+
oSettings.oApi._fnPageChange(oSettings, 'next');
|
127
|
+
fnCallbackDraw(oSettings);
|
128
|
+
}
|
129
|
+
});
|
130
|
+
|
131
|
+
$(nLast).click(function() {
|
132
|
+
var iCurrentPage = calcCurrentPage(oSettings);
|
133
|
+
if (iCurrentPage !== calcPages(oSettings)) {
|
134
|
+
oSettings.oApi._fnPageChange(oSettings, 'last');
|
135
|
+
fnCallbackDraw(oSettings);
|
136
|
+
}
|
137
|
+
});
|
138
|
+
|
139
|
+
$(nInput).keyup(function (e) {
|
140
|
+
// 38 = up arrow, 39 = right arrow
|
141
|
+
if (e.which === 38 || e.which === 39) {
|
142
|
+
this.value++;
|
143
|
+
}
|
144
|
+
// 37 = left arrow, 40 = down arrow
|
145
|
+
else if ((e.which === 37 || e.which === 40) && this.value > 1) {
|
146
|
+
this.value--;
|
147
|
+
}
|
148
|
+
|
149
|
+
if (this.value === '' || this.value.match(/[^0-9]/)) {
|
150
|
+
/* Nothing entered or non-numeric character */
|
151
|
+
this.value = this.value.replace(/[^\d]/g, ''); // don't even allow anything but digits
|
152
|
+
return;
|
153
|
+
}
|
154
|
+
|
155
|
+
var iNewStart = oSettings._iDisplayLength * (this.value - 1);
|
156
|
+
if (iNewStart < 0) {
|
157
|
+
iNewStart = 0;
|
158
|
+
}
|
159
|
+
if (iNewStart >= oSettings.fnRecordsDisplay()) {
|
160
|
+
iNewStart = (Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;
|
161
|
+
}
|
162
|
+
|
163
|
+
oSettings._iDisplayStart = iNewStart;
|
164
|
+
fnCallbackDraw(oSettings);
|
165
|
+
});
|
166
|
+
|
167
|
+
// Take the brutal approach to cancelling text selection.
|
168
|
+
$('span', nPaging).bind('mousedown', function () { return false; });
|
169
|
+
$('span', nPaging).bind('selectstart', function() { return false; });
|
170
|
+
|
171
|
+
// If we can't page anyway, might as well not show it.
|
172
|
+
var iPages = calcPages(oSettings);
|
173
|
+
if (iPages <= 1) {
|
174
|
+
$(nPaging).hide();
|
175
|
+
}
|
176
|
+
},
|
177
|
+
|
178
|
+
'fnUpdate': function (oSettings) {
|
179
|
+
if (!oSettings.aanFeatures.p) {
|
180
|
+
return;
|
181
|
+
}
|
182
|
+
|
183
|
+
var iPages = calcPages(oSettings);
|
184
|
+
var iCurrentPage = calcCurrentPage(oSettings);
|
185
|
+
|
186
|
+
var an = oSettings.aanFeatures.p;
|
187
|
+
if (iPages <= 1) // hide paging when we can't page
|
188
|
+
{
|
189
|
+
$(an).hide();
|
190
|
+
return;
|
191
|
+
}
|
192
|
+
|
193
|
+
var disableClasses = calcDisableClasses(oSettings);
|
194
|
+
|
195
|
+
$(an).show();
|
196
|
+
|
197
|
+
// Enable/Disable `first` button.
|
198
|
+
$(an).children('.' + firstClassName)
|
199
|
+
.removeClass(oSettings.oClasses.sPageButtonDisabled)
|
200
|
+
.addClass(disableClasses[firstClassName]);
|
201
|
+
|
202
|
+
// Enable/Disable `prev` button.
|
203
|
+
$(an).children('.' + previousClassName)
|
204
|
+
.removeClass(oSettings.oClasses.sPageButtonDisabled)
|
205
|
+
.addClass(disableClasses[previousClassName]);
|
206
|
+
|
207
|
+
// Enable/Disable `next` button.
|
208
|
+
$(an).children('.' + nextClassName)
|
209
|
+
.removeClass(oSettings.oClasses.sPageButtonDisabled)
|
210
|
+
.addClass(disableClasses[nextClassName]);
|
211
|
+
|
212
|
+
// Enable/Disable `last` button.
|
213
|
+
$(an).children('.' + lastClassName)
|
214
|
+
.removeClass(oSettings.oClasses.sPageButtonDisabled)
|
215
|
+
.addClass(disableClasses[lastClassName]);
|
216
|
+
|
217
|
+
// Paginate of N pages text
|
218
|
+
$(an).children('.' + paginateOfClassName).html(' of ' + iPages);
|
219
|
+
|
220
|
+
// Current page numer input value
|
221
|
+
$(an).children('.' + paginateInputClassName).val(iCurrentPage);
|
222
|
+
}
|
223
|
+
};
|
224
|
+
})(jQuery);
|