jquery-tablesorter 1.0.2 → 1.0.3
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.
- data/README.markdown +10 -8
- data/lib/jquery-tablesorter/version.rb +1 -1
- data/lib/tasks/jquery-tablesorter_tasks.rake +11 -0
- data/vendor/assets/images/jquery-tablesorter/addons/icons/first.png +0 -0
- data/vendor/assets/images/jquery-tablesorter/addons/icons/last.png +0 -0
- data/vendor/assets/images/jquery-tablesorter/addons/icons/loading.gif +0 -0
- data/vendor/assets/images/jquery-tablesorter/addons/icons/next.png +0 -0
- data/vendor/assets/images/jquery-tablesorter/addons/icons/prev.png +0 -0
- data/vendor/assets/javascripts/jquery-tablesorter/addons/jquery.tablesorter.pager.js +420 -0
- data/vendor/assets/stylesheets/jquery-tablesorter/addons/jquery.tablesorter.pager.css +41 -0
- metadata +11 -4
data/README.markdown
CHANGED
@@ -11,8 +11,7 @@ Any issue associate with the js/css files, please report to [Mottie's fork].
|
|
11
11
|
NOTICE:
|
12
12
|
---
|
13
13
|
|
14
|
-
v0.0.5 users, from v1.0.0,
|
15
|
-
to [Mottie's fork] :smile:.
|
14
|
+
v0.0.5 users, from v1.0.0, this gem will use [Mottie's fork] :smile:.
|
16
15
|
|
17
16
|
Install
|
18
17
|
---
|
@@ -36,22 +35,24 @@ Usage
|
|
36
35
|
require jquery-tablesorter
|
37
36
|
```
|
38
37
|
|
39
|
-
this will require
|
40
|
-
`jquery.tablesorter.widgets`
|
38
|
+
this will require all files.
|
41
39
|
|
42
40
|
Or you can include single file with:
|
43
41
|
|
44
42
|
```
|
45
|
-
require jquery-tablesorter/jquery.metadata
|
46
|
-
require jquery-tablesorter/jquery.tablesorter
|
47
|
-
require jquery-tablesorter/jquery.tablesorter.widgets
|
43
|
+
//= require jquery-tablesorter/jquery.metadata
|
44
|
+
//= require jquery-tablesorter/jquery.tablesorter
|
45
|
+
//= require jquery-tablesorter/jquery.tablesorter.widgets
|
46
|
+
//= require jquery-tablesorter/addons/jquery.tablesorter.pager
|
48
47
|
```
|
49
48
|
|
50
49
|
|
51
50
|
### In your `application.css`
|
52
51
|
|
53
52
|
```
|
54
|
-
|
53
|
+
/*
|
54
|
+
* = require jquery-tablesorter/<theme name>
|
55
|
+
*/
|
55
56
|
```
|
56
57
|
|
57
58
|
Avaliable theme names:
|
@@ -59,6 +60,7 @@ Avaliable theme names:
|
|
59
60
|
* blue
|
60
61
|
* ui
|
61
62
|
|
63
|
+
|
62
64
|
### In CoffeeScript file:
|
63
65
|
|
64
66
|
```
|
@@ -24,5 +24,16 @@ namespace :jquery_tablesorter do
|
|
24
24
|
'vendor/assets/stylesheets/jquery-tablesorter/ui',
|
25
25
|
:verbose => true
|
26
26
|
|
27
|
+
# addons
|
28
|
+
FileUtils.cp 'tablesorter/addons/pager/jquery.tablesorter.pager.css',
|
29
|
+
'vendor/assets/stylesheets/jquery-tablesorter/addons/',
|
30
|
+
:verbose => true
|
31
|
+
FileUtils.cp 'tablesorter/addons/pager/jquery.tablesorter.pager.js',
|
32
|
+
'vendor/assets/javascripts/jquery-tablesorter/addons/',
|
33
|
+
:verbose => true
|
34
|
+
FileUtils.cp_r 'tablesorter/addons/pager/icons',
|
35
|
+
'vendor/assets/images/jquery-tablesorter/addons/icons',
|
36
|
+
:verbose => true
|
37
|
+
|
27
38
|
end
|
28
39
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,420 @@
|
|
1
|
+
/*!
|
2
|
+
* tablesorter pager plugin
|
3
|
+
* updated 5/28/2012
|
4
|
+
*/
|
5
|
+
;(function($) {
|
6
|
+
$.extend({tablesorterPager: new function() {
|
7
|
+
|
8
|
+
this.defaults = {
|
9
|
+
// target the pager markup
|
10
|
+
container: null,
|
11
|
+
|
12
|
+
// use this format: "http:/mydatabase.com?page={page}&size={size}"
|
13
|
+
// where {page} is replaced by the page number and {size} is replaced by the number of records to show
|
14
|
+
ajaxUrl: null,
|
15
|
+
|
16
|
+
// process ajax so that the following information is returned:
|
17
|
+
// [ total_rows (number), rows (array of arrays), headers (array; optional) ]
|
18
|
+
// example:
|
19
|
+
// [
|
20
|
+
// 100, // total rows
|
21
|
+
// [
|
22
|
+
// [ "row1cell1", "row1cell2", ... "row1cellN" ],
|
23
|
+
// [ "row2cell1", "row2cell2", ... "row2cellN" ],
|
24
|
+
// ...
|
25
|
+
// [ "rowNcell1", "rowNcell2", ... "rowNcellN" ]
|
26
|
+
// ],
|
27
|
+
// [ "header1", "header2", ... "headerN" ] // optional
|
28
|
+
// ]
|
29
|
+
ajaxProcessing: function(ajax){ return [ 0, [], null ]; },
|
30
|
+
|
31
|
+
// output default: '{page}/{totalPages}'
|
32
|
+
output: '{startRow} to {endRow} of {totalRows} rows', // '{page}/{totalPages}'
|
33
|
+
|
34
|
+
// apply disabled classname to the pager arrows when the rows at either extreme is visible
|
35
|
+
updateArrows: true,
|
36
|
+
|
37
|
+
// starting page of the pager (zero based index)
|
38
|
+
page: 0,
|
39
|
+
|
40
|
+
// Number of visible rows
|
41
|
+
size: 10,
|
42
|
+
|
43
|
+
// if true, the table will remain the same height no matter how many records are displayed. The space is made up by an empty
|
44
|
+
// table row set to a height to compensate; default is false
|
45
|
+
fixedHeight: false,
|
46
|
+
|
47
|
+
// remove rows from the table to speed up the sort of large tables.
|
48
|
+
// setting this to false, only hides the non-visible rows; needed if you plan to add/remove rows with the pager enabled.
|
49
|
+
removeRows: true, // removing rows in larger tables speeds up the sort
|
50
|
+
|
51
|
+
// css class names of pager arrows
|
52
|
+
cssNext: '.next', // next page arrow
|
53
|
+
cssPrev: '.prev', // previous page arrow
|
54
|
+
cssFirst: '.first', // first page arrow
|
55
|
+
cssLast: '.last', // last page arrow
|
56
|
+
cssPageDisplay: '.pagedisplay', // location of where the "output" is displayed
|
57
|
+
cssPageSize: '.pagesize', // page size selector - select dropdown that sets the "size" option
|
58
|
+
|
59
|
+
// class added to arrows when at the extremes (i.e. prev/first arrows are "disabled" when on the first page)
|
60
|
+
cssDisabled: 'disabled', // Note there is no period "." in front of this class name
|
61
|
+
|
62
|
+
// stuff not set by the user
|
63
|
+
totalRows: 0,
|
64
|
+
totalPages: 0
|
65
|
+
|
66
|
+
};
|
67
|
+
|
68
|
+
var $this = this,
|
69
|
+
|
70
|
+
// hide arrows at extremes
|
71
|
+
pagerArrows = function(c, disable) {
|
72
|
+
var a = 'addClass', r = 'removeClass',
|
73
|
+
d = c.cssDisabled, dis = !!disable;
|
74
|
+
if (c.updateArrows) {
|
75
|
+
c.container[(c.totalRows < c.size) ? a : r](d);
|
76
|
+
$(c.cssFirst + ',' + c.cssPrev, c.container)[(dis || c.page === 0) ? a : r](d);
|
77
|
+
$(c.cssNext + ',' + c.cssLast, c.container)[(dis || c.page === c.totalPages - 1) ? a : r](d);
|
78
|
+
}
|
79
|
+
},
|
80
|
+
|
81
|
+
updatePageDisplay = function(table, c) {
|
82
|
+
if (c.totalPages > 0) {
|
83
|
+
c.startRow = c.size * (c.page) + 1;
|
84
|
+
c.endRow = Math.min(c.totalRows, c.size * (c.page+1));
|
85
|
+
var out = $(c.cssPageDisplay, c.container),
|
86
|
+
// form the output string
|
87
|
+
s = c.output.replace(/\{(page|totalPages|startRow|endRow|totalRows)\}/gi, function(m){
|
88
|
+
return {
|
89
|
+
'{page}' : c.page + 1,
|
90
|
+
'{totalPages}' : c.totalPages,
|
91
|
+
'{startRow}' : c.startRow,
|
92
|
+
'{endRow}' : c.endRow,
|
93
|
+
'{totalRows}' : c.totalRows
|
94
|
+
}[m];
|
95
|
+
});
|
96
|
+
if (out[0]) {
|
97
|
+
out[ (out[0].tagName === 'INPUT') ? 'val' : 'html' ](s);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
pagerArrows(c);
|
101
|
+
$(table).trigger('pagerComplete', c);
|
102
|
+
},
|
103
|
+
|
104
|
+
fixHeight = function(table, c) {
|
105
|
+
var d, h, $b = $(table.tBodies[0]);
|
106
|
+
if (c.fixedHeight) {
|
107
|
+
$b.find('tr.pagerSavedHeightSpacer').remove();
|
108
|
+
h = $.data(table, 'pagerSavedHeight');
|
109
|
+
if (h) {
|
110
|
+
d = h - $b.height();
|
111
|
+
if (d > 5 && $.data(table, 'pagerLastSize') === c.size && $b.find('tr:visible').length < c.size) {
|
112
|
+
$b.append('<tr class="pagerSavedHeightSpacer remove-me" style="height:' + d + 'px;"></tr>');
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
},
|
117
|
+
|
118
|
+
changeHeight = function(table, c) {
|
119
|
+
var $b = $(table.tBodies[0]);
|
120
|
+
$b.find('tr.pagerSavedHeightSpacer').remove();
|
121
|
+
$.data(table, 'pagerSavedHeight', $b.height());
|
122
|
+
fixHeight(table, c);
|
123
|
+
$.data(table, 'pagerLastSize', c.size);
|
124
|
+
},
|
125
|
+
|
126
|
+
hideRows = function(table, c){
|
127
|
+
var i, rows = $('tr:not(.' + table.config.cssChildRow + ')', table.tBodies),
|
128
|
+
l = rows.length,
|
129
|
+
s = (c.page * c.size),
|
130
|
+
e = (s + c.size);
|
131
|
+
if (e > l) { e = l; }
|
132
|
+
for (i = 0; i < l; i++){
|
133
|
+
rows[i].style.display = (i >= s && i < e) ? '' : 'none';
|
134
|
+
}
|
135
|
+
},
|
136
|
+
|
137
|
+
hideRowsSetup = function(table, c){
|
138
|
+
c.size = parseInt($(c.cssPageSize, c.container).val(), 10) || c.size;
|
139
|
+
$.data(table, 'pagerLastSize', c.size);
|
140
|
+
pagerArrows(c);
|
141
|
+
if (!c.removeRows) {
|
142
|
+
hideRows(table, c);
|
143
|
+
$(table).bind('sortEnd.pager', function(){
|
144
|
+
hideRows(table, c);
|
145
|
+
});
|
146
|
+
}
|
147
|
+
},
|
148
|
+
|
149
|
+
renderAjax = function(data, table, c, exception){
|
150
|
+
// process data
|
151
|
+
if (typeof(c.ajaxProcessing) === "function") {
|
152
|
+
// ajaxProcessing result: [ total, rows, headers ]
|
153
|
+
var i, j, k, hsh, $f, $sh, $t = $(table), $b = $(table.tBodies).filter(':not(.' + table.config.cssInfoBlock + ')'),
|
154
|
+
hl = $t.find('thead th').length, tds = '',
|
155
|
+
err = '<tr class="remove-me"><td style="text-align: center;" colspan="' + hl + '">' +
|
156
|
+
(exception ? exception.message + ' (' + exception.name + ')' : 'No rows found') + '</td></tr>',
|
157
|
+
result = c.ajaxProcessing(data) || [ 0, [] ],
|
158
|
+
d = result[1] || [], l = d.length, th = result[2];
|
159
|
+
if (l > 0) {
|
160
|
+
for ( i=0; i < l; i++ ) {
|
161
|
+
tds += '<tr>';
|
162
|
+
for (j=0; j < d[i].length; j++) {
|
163
|
+
// build tbody cells
|
164
|
+
tds += '<td>' + d[i][j] + '</td>';
|
165
|
+
}
|
166
|
+
tds += '</tr>';
|
167
|
+
}
|
168
|
+
}
|
169
|
+
// only add new header text if the length matches
|
170
|
+
if (th && th.length === hl) {
|
171
|
+
hsh = $t.hasClass('hasStickyHeaders');
|
172
|
+
$sh = $t.find('.' + ((c.widgetOptions && c.widgetOptions.stickyHeaders) || 'tablesorter-stickyheader'));
|
173
|
+
$f = $t.find('tfoot tr:first').children();
|
174
|
+
$t.find('thead tr.tablesorter-header th').each(function(j){
|
175
|
+
var $t = $(this),
|
176
|
+
// add new test within the first span it finds, or just in the header
|
177
|
+
tar = ($t.find('span').length) ? $t.find('span:first') : $t;
|
178
|
+
tar.html(th[j]);
|
179
|
+
$f.eq(j).html(th[j]);
|
180
|
+
// update sticky headers
|
181
|
+
if (hsh && $sh.length){
|
182
|
+
tar = $sh.find('th').eq(j);
|
183
|
+
tar = (tar.find('span').length) ? tar.find('span:first') : tar;
|
184
|
+
tar.html(th[j]);
|
185
|
+
}
|
186
|
+
});
|
187
|
+
}
|
188
|
+
if (exception) {
|
189
|
+
// add error row to thead instead of tbody, or clicking on the header will result in a parser error
|
190
|
+
$t.find('thead').append(err);
|
191
|
+
} else {
|
192
|
+
$b.html(tds); // add tbody
|
193
|
+
}
|
194
|
+
c.temp.remove(); // remove loading icon
|
195
|
+
$t.trigger('update');
|
196
|
+
c.totalRows = result[0] || 0;
|
197
|
+
c.totalPages = Math.ceil(c.totalRows / c.size);
|
198
|
+
updatePageDisplay(table, c);
|
199
|
+
fixHeight(table, c);
|
200
|
+
$t.trigger('pagerChange', c);
|
201
|
+
}
|
202
|
+
},
|
203
|
+
|
204
|
+
getAjax = function(table, c){
|
205
|
+
var $t = $(table),
|
206
|
+
url = c.ajaxUrl.replace(/\{page\}/g, c.page).replace(/\{size\}/g, c.size);
|
207
|
+
if (url !== '') {
|
208
|
+
// loading icon
|
209
|
+
c.temp = $('<div/>', {
|
210
|
+
id : 'tablesorterPagerLoading',
|
211
|
+
width : $t.outerWidth(true),
|
212
|
+
height: $t.outerHeight(true)
|
213
|
+
});
|
214
|
+
$t.before(c.temp);
|
215
|
+
$(document).ajaxError(function(e, xhr, settings, exception) {
|
216
|
+
renderAjax(null, table, c, exception);
|
217
|
+
});
|
218
|
+
$.getJSON(url, function(data) {
|
219
|
+
renderAjax(data, table, c);
|
220
|
+
});
|
221
|
+
}
|
222
|
+
},
|
223
|
+
|
224
|
+
renderTable = function(table, rows, c) {
|
225
|
+
var i, j, o,
|
226
|
+
f = document.createDocumentFragment(),
|
227
|
+
l = rows.length,
|
228
|
+
s = (c.page * c.size),
|
229
|
+
e = (s + c.size);
|
230
|
+
if (l < 1) { return; } // empty table, abort!
|
231
|
+
$(table).trigger('pagerChange', c);
|
232
|
+
if (!c.removeRows) {
|
233
|
+
hideRows(table, c);
|
234
|
+
} else {
|
235
|
+
if (e > rows.length ) {
|
236
|
+
e = rows.length;
|
237
|
+
}
|
238
|
+
$(table.tBodies[0]).addClass('tablesorter-hidden');
|
239
|
+
$.tablesorter.clearTableBody(table);
|
240
|
+
for (i = s; i < e; i++) {
|
241
|
+
o = rows[i];
|
242
|
+
l = o.length;
|
243
|
+
for (j = 0; j < l; j++) {
|
244
|
+
f.appendChild(o[j]);
|
245
|
+
}
|
246
|
+
}
|
247
|
+
table.tBodies[0].appendChild(f);
|
248
|
+
$(table.tBodies[0]).removeClass('tablesorter-hidden');
|
249
|
+
}
|
250
|
+
if ( c.page >= c.totalPages ) {
|
251
|
+
moveToLastPage(table, c);
|
252
|
+
}
|
253
|
+
updatePageDisplay(table, c);
|
254
|
+
if (!c.isDisabled) { fixHeight(table, c); }
|
255
|
+
$(table).trigger('applyWidgets');
|
256
|
+
},
|
257
|
+
|
258
|
+
showAllRows = function(table, c){
|
259
|
+
if (c.ajax) {
|
260
|
+
pagerArrows(c, true);
|
261
|
+
} else {
|
262
|
+
c.isDisabled = true;
|
263
|
+
$.data(table, 'pagerLastPage', c.page);
|
264
|
+
$.data(table, 'pagerLastSize', c.size);
|
265
|
+
c.page = 0;
|
266
|
+
c.size = c.totalRows;
|
267
|
+
c.totalPages = 1;
|
268
|
+
$('tr.pagerSavedHeightSpacer', table.tBodies[0]).remove();
|
269
|
+
renderTable(table, table.config.rowsCopy, c);
|
270
|
+
}
|
271
|
+
// disable size selector
|
272
|
+
$(c.cssPageSize, c.container).addClass(c.cssDisabled)[0].disabled = true;
|
273
|
+
},
|
274
|
+
|
275
|
+
moveToPage = function(table, c) {
|
276
|
+
if (c.isDisabled) { return; }
|
277
|
+
if (c.page < 0 || c.page > (c.totalPages-1)) {
|
278
|
+
c.page = 0;
|
279
|
+
}
|
280
|
+
$.data(table, 'pagerLastPage', c.page);
|
281
|
+
if (c.ajax) {
|
282
|
+
getAjax(table, c);
|
283
|
+
} else {
|
284
|
+
renderTable(table, table.config.rowsCopy, c);
|
285
|
+
}
|
286
|
+
},
|
287
|
+
|
288
|
+
setPageSize = function(table, size, c) {
|
289
|
+
c.size = size;
|
290
|
+
$.data(table, 'pagerLastPage', c.page);
|
291
|
+
$.data(table, 'pagerLastSize', c.size);
|
292
|
+
c.totalPages = Math.ceil(c.totalRows / c.size);
|
293
|
+
moveToPage(table, c);
|
294
|
+
},
|
295
|
+
|
296
|
+
moveToFirstPage = function(table, c) {
|
297
|
+
c.page = 0;
|
298
|
+
moveToPage(table, c);
|
299
|
+
},
|
300
|
+
|
301
|
+
moveToLastPage = function(table, c) {
|
302
|
+
c.page = (c.totalPages-1);
|
303
|
+
moveToPage(table, c);
|
304
|
+
},
|
305
|
+
|
306
|
+
moveToNextPage = function(table, c) {
|
307
|
+
c.page++;
|
308
|
+
if (c.page >= (c.totalPages-1)) {
|
309
|
+
c.page = (c.totalPages-1);
|
310
|
+
}
|
311
|
+
moveToPage(table, c);
|
312
|
+
},
|
313
|
+
|
314
|
+
moveToPrevPage = function(table, c) {
|
315
|
+
c.page--;
|
316
|
+
if (c.page <= 0) {
|
317
|
+
c.page = 0;
|
318
|
+
}
|
319
|
+
moveToPage(table, c);
|
320
|
+
},
|
321
|
+
|
322
|
+
destroyPager = function(table, c){
|
323
|
+
showAllRows(table, c);
|
324
|
+
c.container.hide(); // hide pager
|
325
|
+
table.config.appender = null; // remove pager appender function
|
326
|
+
$(table).unbind('destroy.pager sortEnd.pager enable.pager disable.pager');
|
327
|
+
},
|
328
|
+
|
329
|
+
enablePager = function(table, c, triggered){
|
330
|
+
var p = $(c.cssPageSize, c.container).removeClass(c.cssDisabled).removeAttr('disabled');
|
331
|
+
c.isDisabled = false;
|
332
|
+
c.page = $.data(table, 'pagerLastPage') || c.page || 0;
|
333
|
+
c.size = $.data(table, 'pagerLastSize') || parseInt(p.val(), 10) || c.size;
|
334
|
+
c.totalPages = Math.ceil(c.totalRows / c.size);
|
335
|
+
if (triggered) {
|
336
|
+
$(table).trigger('update');
|
337
|
+
setPageSize(table, c.size, c);
|
338
|
+
hideRowsSetup(table, c);
|
339
|
+
fixHeight(table, c);
|
340
|
+
}
|
341
|
+
};
|
342
|
+
|
343
|
+
$this.appender = function(table, rows) {
|
344
|
+
var c = table.config.pager;
|
345
|
+
if (!c.ajax) {
|
346
|
+
table.config.rowsCopy = rows;
|
347
|
+
c.totalRows = rows.length;
|
348
|
+
c.size = $.data(table, 'pagerLastSize') || c.size;
|
349
|
+
c.totalPages = Math.ceil(c.totalRows / c.size);
|
350
|
+
renderTable(table, rows, c);
|
351
|
+
}
|
352
|
+
};
|
353
|
+
|
354
|
+
$this.construct = function(settings) {
|
355
|
+
return this.each(function() {
|
356
|
+
var config = this.config,
|
357
|
+
c = config.pager = $.extend({}, $.tablesorterPager.defaults, settings),
|
358
|
+
table = this,
|
359
|
+
$t = $(table),
|
360
|
+
pager = $(c.container).show(); // added in case the pager is reinitialized after being destroyed.
|
361
|
+
config.appender = $this.appender;
|
362
|
+
enablePager(table, c, false);
|
363
|
+
if (typeof(c.ajaxUrl) === 'string') {
|
364
|
+
// ajax pager; interact with database
|
365
|
+
c.ajax = true;
|
366
|
+
getAjax(table, c);
|
367
|
+
} else {
|
368
|
+
c.ajax = false;
|
369
|
+
// Regular pager; all rows stored in memory
|
370
|
+
$(this).trigger("appendCache", true);
|
371
|
+
hideRowsSetup(table, c);
|
372
|
+
}
|
373
|
+
|
374
|
+
$(c.cssFirst,pager).unbind('click.pager').bind('click.pager', function() {
|
375
|
+
if (!$(this).hasClass(c.cssDisabled)) { moveToFirstPage(table, c); }
|
376
|
+
return false;
|
377
|
+
});
|
378
|
+
$(c.cssNext,pager).unbind('click.pager').bind('click.pager', function() {
|
379
|
+
if (!$(this).hasClass(c.cssDisabled)) { moveToNextPage(table, c); }
|
380
|
+
return false;
|
381
|
+
});
|
382
|
+
$(c.cssPrev,pager).unbind('click.pager').bind('click.pager', function() {
|
383
|
+
if (!$(this).hasClass(c.cssDisabled)) { moveToPrevPage(table, c); }
|
384
|
+
return false;
|
385
|
+
});
|
386
|
+
$(c.cssLast,pager).unbind('click.pager').bind('click.pager', function() {
|
387
|
+
if (!$(this).hasClass(c.cssDisabled)) { moveToLastPage(table, c); }
|
388
|
+
return false;
|
389
|
+
});
|
390
|
+
$(c.cssPageSize,pager).unbind('change.pager').bind('change.pager', function() {
|
391
|
+
$(c.cssPageSize,pager).val( $(this).val() ); // in case there are more than one pagers
|
392
|
+
if (!$(this).hasClass(c.cssDisabled)) {
|
393
|
+
setPageSize(table, parseInt($(this).val(), 10), c);
|
394
|
+
changeHeight(table, c);
|
395
|
+
}
|
396
|
+
return false;
|
397
|
+
});
|
398
|
+
|
399
|
+
$t
|
400
|
+
.unbind('disable.pager enable.pager destroy.pager')
|
401
|
+
.bind('disable.pager', function(){
|
402
|
+
showAllRows(table, c);
|
403
|
+
})
|
404
|
+
.bind('enable.pager', function(){
|
405
|
+
enablePager(table, c, true);
|
406
|
+
})
|
407
|
+
.bind('destroy.pager', function(){
|
408
|
+
destroyPager(table, c);
|
409
|
+
});
|
410
|
+
});
|
411
|
+
};
|
412
|
+
|
413
|
+
}
|
414
|
+
});
|
415
|
+
// extend plugin scope
|
416
|
+
$.fn.extend({
|
417
|
+
tablesorterPager: $.tablesorterPager.construct
|
418
|
+
});
|
419
|
+
|
420
|
+
})(jQuery);
|
@@ -0,0 +1,41 @@
|
|
1
|
+
/* pager wrapper, div */
|
2
|
+
.pager {
|
3
|
+
padding: 5px;
|
4
|
+
}
|
5
|
+
/* pager wrapper, in thead/tfoot */
|
6
|
+
td.pager {
|
7
|
+
background-color: #e6eeee;
|
8
|
+
}
|
9
|
+
/* pager navigation arrows */
|
10
|
+
.pager img {
|
11
|
+
vertical-align: middle;
|
12
|
+
margin-right: 2px;
|
13
|
+
cursor: pointer;
|
14
|
+
}
|
15
|
+
/* pager output text */
|
16
|
+
.pager .pagedisplay {
|
17
|
+
font-size: 11px;
|
18
|
+
padding: 0 5px 0 5px;
|
19
|
+
width: 50px;
|
20
|
+
text-align: center;
|
21
|
+
}
|
22
|
+
|
23
|
+
/*** loading ajax indeterminate progress indicator ***/
|
24
|
+
#tablesorterPagerLoading {
|
25
|
+
background: rgba(255,255,255,0.8) url(/assets/jquery-tablesorter/addons/icons/loading.gif) center center no-repeat;
|
26
|
+
position: absolute;
|
27
|
+
z-index: 1000;
|
28
|
+
}
|
29
|
+
|
30
|
+
/*** css used when "updateArrows" option is true ***/
|
31
|
+
/* the pager itself gets a disabled class when the number of rows is less than the size */
|
32
|
+
.pager.disabled {
|
33
|
+
display: none;
|
34
|
+
}
|
35
|
+
/* hide or fade out pager arrows when the first or last row is visible */
|
36
|
+
.pager img.disabled {
|
37
|
+
/* visibility: hidden */
|
38
|
+
opacity: 0.5;
|
39
|
+
filter: alpha(opacity=50);
|
40
|
+
cursor: default;
|
41
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jquery-tablesorter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -34,10 +34,17 @@ executables: []
|
|
34
34
|
extensions: []
|
35
35
|
extra_rdoc_files: []
|
36
36
|
files:
|
37
|
+
- vendor/assets/images/jquery-tablesorter/addons/icons/first.png
|
38
|
+
- vendor/assets/images/jquery-tablesorter/addons/icons/last.png
|
39
|
+
- vendor/assets/images/jquery-tablesorter/addons/icons/loading.gif
|
40
|
+
- vendor/assets/images/jquery-tablesorter/addons/icons/next.png
|
41
|
+
- vendor/assets/images/jquery-tablesorter/addons/icons/prev.png
|
42
|
+
- vendor/assets/javascripts/jquery-tablesorter/addons/jquery.tablesorter.pager.js
|
37
43
|
- vendor/assets/javascripts/jquery-tablesorter/jquery.metadata.js
|
38
44
|
- vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js
|
39
45
|
- vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js
|
40
46
|
- vendor/assets/javascripts/jquery-tablesorter.js
|
47
|
+
- vendor/assets/stylesheets/jquery-tablesorter/addons/jquery.tablesorter.pager.css
|
41
48
|
- vendor/assets/stylesheets/jquery-tablesorter/blue/style.css
|
42
49
|
- vendor/assets/stylesheets/jquery-tablesorter/blue.css
|
43
50
|
- vendor/assets/stylesheets/jquery-tablesorter/ui/style.css
|
@@ -63,7 +70,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
63
70
|
version: '0'
|
64
71
|
segments:
|
65
72
|
- 0
|
66
|
-
hash:
|
73
|
+
hash: -1326086202805563987
|
67
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
75
|
none: false
|
69
76
|
requirements:
|
@@ -72,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
79
|
version: '0'
|
73
80
|
segments:
|
74
81
|
- 0
|
75
|
-
hash:
|
82
|
+
hash: -1326086202805563987
|
76
83
|
requirements: []
|
77
84
|
rubyforge_project:
|
78
85
|
rubygems_version: 1.8.23
|