mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-11-15 23:54:22 +00:00
parent
f429b96c6c
commit
4f43c31b7c
@ -393,10 +393,8 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
hideRowsSetup = function(table, p){
|
hideRowsSetup = function(table, p){
|
||||||
var $el = p.$container.find(p.cssPageSize);
|
p.size = parsePageSize( p, p.$container.find(p.cssPageSize).val(), 'get' );
|
||||||
p.size = parsePageSize( p, $el.val(), 'get' );
|
setPageSize( table, p.size, p );
|
||||||
$el.val( p.size );
|
|
||||||
$.data(table, 'pagerLastSize', p.size);
|
|
||||||
pagerArrows( table, p );
|
pagerArrows( table, p );
|
||||||
if ( !p.removeRows ) {
|
if ( !p.removeRows ) {
|
||||||
hideRows(table, p);
|
hideRows(table, p);
|
||||||
@ -689,7 +687,7 @@
|
|||||||
$.data(table, 'pagerLastPage', p.page);
|
$.data(table, 'pagerLastPage', p.page);
|
||||||
$.data(table, 'pagerLastSize', p.size);
|
$.data(table, 'pagerLastSize', p.size);
|
||||||
p.page = 0;
|
p.page = 0;
|
||||||
p.size = 'all';
|
p.size = p.totalPages;
|
||||||
p.totalPages = 1;
|
p.totalPages = 1;
|
||||||
$(table)
|
$(table)
|
||||||
.addClass('pagerDisabled')
|
.addClass('pagerDisabled')
|
||||||
@ -799,15 +797,9 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
getTotalPages = function( table, p ) {
|
getTotalPages = function( table, p ) {
|
||||||
return ts.hasWidget( table, 'filter' ) ? Math.min( p.totalPages, p.filteredPages ) : p.totalPages;
|
return ts.hasWidget( table, 'filter' ) ?
|
||||||
},
|
Math.min( p.totalPages, p.filteredPages ) :
|
||||||
|
p.totalPages;
|
||||||
// set to either set or get value
|
|
||||||
parsePageSize = function( p, size, mode ) {
|
|
||||||
var s = parseInt( size, 10 ) || p.size || p.settings.size || 10;
|
|
||||||
return p.initialized && (/all/i.test( size ) || s === p.totalRows) ?
|
|
||||||
// "get" to get `p.size` or "set" to set `pageSize.val()`
|
|
||||||
'all' : ( mode === 'get' ? s : p.size );
|
|
||||||
},
|
},
|
||||||
|
|
||||||
parsePageNumber = function( table, p ) {
|
parsePageNumber = function( table, p ) {
|
||||||
@ -818,16 +810,26 @@
|
|||||||
return p.page;
|
return p.page;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// set to either set or get value
|
||||||
|
parsePageSize = function( p, size, mode ) {
|
||||||
|
var s = parseInt( size, 10 ) || p.size || p.settings.size || 10;
|
||||||
|
if (p.initialized && (/all/i.test( s + ' ' + size ) || s === p.totalRows)) {
|
||||||
|
// Fixing #1364 & #1366
|
||||||
|
return p.$container.find(p.cssPageSize + ' option[value="all"]').length ?
|
||||||
|
'all' : p.totalRows;
|
||||||
|
}
|
||||||
|
// "get" to get `p.size` or "set" to set `pageSize.val()`
|
||||||
|
return mode === 'get' ? s : p.size;
|
||||||
|
},
|
||||||
|
|
||||||
setPageSize = function(table, size, p) {
|
setPageSize = function(table, size, p) {
|
||||||
|
// "all" size is only returned if an "all" option exists - fixes #1366
|
||||||
p.size = parsePageSize( p, size, 'get' );
|
p.size = parsePageSize( p, size, 'get' );
|
||||||
var updatedPageSize = parsePageSize( p, p.size, 'set' );
|
p.$container.find( p.cssPageSize ).val( p.size );
|
||||||
p.$container.find(p.cssPageSize).val( updatedPageSize !== 'all' ? updatedPageSize :
|
|
||||||
(p.$container.find(p.cssPageSize.concat(' option[value="').concat(size).concat('"]')).length !== 0 ? size : updatedPageSize) );
|
|
||||||
$.data(table, 'pagerLastPage', parsePageNumber( table, p ) );
|
$.data(table, 'pagerLastPage', parsePageNumber( table, p ) );
|
||||||
$.data(table, 'pagerLastSize', p.size);
|
$.data(table, 'pagerLastSize', p.size);
|
||||||
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
||||||
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
||||||
moveToPage(table, p);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
moveToFirstPage = function(table, p) {
|
moveToFirstPage = function(table, p) {
|
||||||
@ -908,8 +910,8 @@
|
|||||||
$el = p.$container.find(p.cssPageSize);
|
$el = p.$container.find(p.cssPageSize);
|
||||||
size = $el.find('option[selected]').val();
|
size = $el.find('option[selected]').val();
|
||||||
p.size = $.data(table, 'pagerLastSize') || parsePageSize( p, size, 'get' );
|
p.size = $.data(table, 'pagerLastSize') || parsePageSize( p, size, 'get' );
|
||||||
$el.val( p.size ); // set page size
|
|
||||||
p.totalPages = p.size === 'all' ? 1 : Math.ceil( getTotalPages( table, p ) / p.size );
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( getTotalPages( table, p ) / p.size );
|
||||||
|
setPageSize(table, p.size, p); // set page size
|
||||||
// if table id exists, include page display with aria info
|
// if table id exists, include page display with aria info
|
||||||
if ( table.id && !c.$table.attr( 'aria-describedby' ) ) {
|
if ( table.id && !c.$table.attr( 'aria-describedby' ) ) {
|
||||||
$el = p.$container.find( p.cssPageDisplay );
|
$el = p.$container.find( p.cssPageDisplay );
|
||||||
@ -926,6 +928,7 @@
|
|||||||
// tablesorter core update table
|
// tablesorter core update table
|
||||||
ts.update( c );
|
ts.update( c );
|
||||||
setPageSize(table, p.size, p);
|
setPageSize(table, p.size, p);
|
||||||
|
moveToPage(table, p);
|
||||||
hideRowsSetup(table, p);
|
hideRowsSetup(table, p);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log('Pager: Enabled');
|
console.log('Pager: Enabled');
|
||||||
@ -954,8 +957,7 @@
|
|||||||
t = ts.storage(table, p.storageKey) || {}; // fixes #387
|
t = ts.storage(table, p.storageKey) || {}; // fixes #387
|
||||||
p.page = isNaN(t.page) ? p.page : t.page;
|
p.page = isNaN(t.page) ? p.page : t.page;
|
||||||
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
||||||
$.data(table, 'pagerLastSize', p.size);
|
setPageSize(table, p.size, p);
|
||||||
pager.find(p.cssPageSize).val(p.size);
|
|
||||||
}
|
}
|
||||||
// skipped rows
|
// skipped rows
|
||||||
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.slice(1) + '|' + c.cssChildRow + ')');
|
p.regexRows = new RegExp('(' + (wo.filter_filteredRow || 'filtered') + '|' + c.selectorRemove.slice(1) + '|' + c.cssChildRow + ')');
|
||||||
@ -1025,6 +1027,7 @@
|
|||||||
.bind('pageSize refreshComplete '.split(' ').join(namespace + ' '), function(e, size){
|
.bind('pageSize refreshComplete '.split(' ').join(namespace + ' '), function(e, size){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setPageSize(table, parsePageSize( p, size, 'get' ), p);
|
setPageSize(table, parsePageSize( p, size, 'get' ), p);
|
||||||
|
moveToPage(table, p);
|
||||||
hideRows(table, p);
|
hideRows(table, p);
|
||||||
updatePageDisplay(table, p, false);
|
updatePageDisplay(table, p, false);
|
||||||
})
|
})
|
||||||
@ -1092,8 +1095,8 @@
|
|||||||
if ( !$(this).hasClass(p.cssDisabled) ) {
|
if ( !$(this).hasClass(p.cssDisabled) ) {
|
||||||
var size = $(this).val();
|
var size = $(this).val();
|
||||||
// in case there are more than one pager
|
// in case there are more than one pager
|
||||||
p.$container.find(p.cssGoto).val( size );
|
|
||||||
setPageSize(table, size, p);
|
setPageSize(table, size, p);
|
||||||
|
moveToPage(table, p);
|
||||||
changeHeight(table, p);
|
changeHeight(table, p);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -1127,6 +1130,8 @@
|
|||||||
if (!p.ajax && !p.initialized) {
|
if (!p.ajax && !p.initialized) {
|
||||||
p.initializing = false;
|
p.initializing = false;
|
||||||
p.initialized = true;
|
p.initialized = true;
|
||||||
|
// update page size on init
|
||||||
|
setPageSize(table, p.size, p);
|
||||||
moveToPage(table, p);
|
moveToPage(table, p);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log('Pager: Triggering pagerInitialized');
|
console.log('Pager: Triggering pagerInitialized');
|
||||||
|
@ -180,8 +180,7 @@
|
|||||||
t = ts.storage( table, wo.pager_storageKey ) || {}; // fixes #387
|
t = ts.storage( table, wo.pager_storageKey ) || {}; // fixes #387
|
||||||
p.page = ( isNaN( t.page ) ? p.page : t.page ) || p.setPage || 0;
|
p.page = ( isNaN( t.page ) ? p.page : t.page ) || p.setPage || 0;
|
||||||
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
p.size = t.size === 'all' ? t.size : ( isNaN( t.size ) ? p.size : t.size ) || p.setSize || 10;
|
||||||
$.data( table, 'pagerLastSize', p.size );
|
tsp.setPageSize( c, p.size );
|
||||||
p.$container.find( s.pageSize ).val( p.size );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// skipped rows
|
// skipped rows
|
||||||
@ -219,7 +218,6 @@
|
|||||||
initComplete: function( c ) {
|
initComplete: function( c ) {
|
||||||
var p = c.pager;
|
var p = c.pager;
|
||||||
tsp.bindEvents( c );
|
tsp.bindEvents( c );
|
||||||
tsp.setPageSize( c, 0 ); // page size 0 is ignored
|
|
||||||
if ( !p.ajax ) {
|
if ( !p.ajax ) {
|
||||||
tsp.hideRowsSetup( c );
|
tsp.hideRowsSetup( c );
|
||||||
}
|
}
|
||||||
@ -228,6 +226,7 @@
|
|||||||
p.initialized = true;
|
p.initialized = true;
|
||||||
p.initializing = false;
|
p.initializing = false;
|
||||||
p.isInitializing = false;
|
p.isInitializing = false;
|
||||||
|
tsp.setPageSize( c, p.size ); // page size 0 is ignored
|
||||||
if ( c.debug ) {
|
if ( c.debug ) {
|
||||||
console.log( 'Pager: Triggering pagerInitialized' );
|
console.log( 'Pager: Triggering pagerInitialized' );
|
||||||
}
|
}
|
||||||
@ -310,6 +309,7 @@
|
|||||||
.on( 'pageSize refreshComplete '.split( ' ' ).join( namespace + ' ' ), function( e, size ) {
|
.on( 'pageSize refreshComplete '.split( ' ' ).join( namespace + ' ' ), function( e, size ) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
tsp.setPageSize( c, tsp.parsePageSize( c, size, 'get' ) );
|
tsp.setPageSize( c, tsp.parsePageSize( c, size, 'get' ) );
|
||||||
|
tsp.moveToPage( c, p, true );
|
||||||
tsp.hideRows( c );
|
tsp.hideRows( c );
|
||||||
tsp.updatePageDisplay( c, false );
|
tsp.updatePageDisplay( c, false );
|
||||||
})
|
})
|
||||||
@ -382,6 +382,7 @@
|
|||||||
// in case there are more than one pager
|
// in case there are more than one pager
|
||||||
p.$container.find( wo.pager_selectors.pageSize ).val( size );
|
p.$container.find( wo.pager_selectors.pageSize ).val( size );
|
||||||
tsp.setPageSize( c, size );
|
tsp.setPageSize( c, size );
|
||||||
|
tsp.moveToPage( c, p, true );
|
||||||
tsp.changeHeight( c );
|
tsp.changeHeight( c );
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -694,8 +695,7 @@
|
|||||||
$el = p.$container.find( c.widgetOptions.pager_selectors.pageSize ),
|
$el = p.$container.find( c.widgetOptions.pager_selectors.pageSize ),
|
||||||
size = $el.val();
|
size = $el.val();
|
||||||
p.size = tsp.parsePageSize( c, size, 'get' );
|
p.size = tsp.parsePageSize( c, size, 'get' );
|
||||||
$el.val( p.size );
|
tsp.setPageSize( c, p.size );
|
||||||
$.data( c.table, 'pagerLastSize', p.size );
|
|
||||||
tsp.pagerArrows( c );
|
tsp.pagerArrows( c );
|
||||||
if ( !c.widgetOptions.pager_removeRows ) {
|
if ( !c.widgetOptions.pager_removeRows ) {
|
||||||
tsp.hideRows( c );
|
tsp.hideRows( c );
|
||||||
@ -1003,7 +1003,7 @@
|
|||||||
$.data( table, 'pagerLastPage', p.page );
|
$.data( table, 'pagerLastPage', p.page );
|
||||||
$.data( table, 'pagerLastSize', p.size );
|
$.data( table, 'pagerLastSize', p.size );
|
||||||
p.page = 0;
|
p.page = 0;
|
||||||
p.size = 'all';
|
p.size = p.totalPages;
|
||||||
p.totalPages = 1;
|
p.totalPages = 1;
|
||||||
c.$table
|
c.$table
|
||||||
.addClass( 'pagerDisabled' )
|
.addClass( 'pagerDisabled' )
|
||||||
@ -1128,16 +1128,9 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
getTotalPages: function( c, p ) {
|
getTotalPages: function( c, p ) {
|
||||||
return ts.hasWidget( c.table, 'filter' ) ? Math.min( p.totalPages, p.filteredPages ) : p.totalPages;
|
return ts.hasWidget( c.table, 'filter' ) ?
|
||||||
},
|
Math.min( p.totalPages, p.filteredPages ) :
|
||||||
|
p.totalPages;
|
||||||
// set to either set or get value
|
|
||||||
parsePageSize: function( c, size, mode ) {
|
|
||||||
var p = c.pager,
|
|
||||||
s = parseInt( size, 10 ) || p.size || c.widgetOptions.pager_size || 10;
|
|
||||||
return p.initialized && (/all/i.test( size ) || s === p.totalRows) ?
|
|
||||||
// "get" to set `p.size` or "set" to set `pageSize.val()`
|
|
||||||
'all' : ( mode === 'get' ? s : p.size );
|
|
||||||
},
|
},
|
||||||
|
|
||||||
parsePageNumber: function( c, p ) {
|
parsePageNumber: function( c, p ) {
|
||||||
@ -1148,18 +1141,32 @@
|
|||||||
return p.page;
|
return p.page;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// set to either set or get value
|
||||||
|
parsePageSize: function( c, size, mode ) {
|
||||||
|
var p = c.pager,
|
||||||
|
wo = c.widgetOptions,
|
||||||
|
s = parseInt( size, 10 ) || p.size || wo.pager_size || 10;
|
||||||
|
if (p.initialized && (/all/i.test( s + ' ' + size ) || s === p.totalRows)) {
|
||||||
|
// Fixing #1364 & #1366
|
||||||
|
return p.$container.find( wo.pager_selectors.pageSize + ' option[value="all"]').length ?
|
||||||
|
'all' : p.totalRows;
|
||||||
|
}
|
||||||
|
// "get" to set `p.size` or "set" to set `pageSize.val()`
|
||||||
|
return mode === 'get' ? s : p.size;
|
||||||
|
},
|
||||||
|
|
||||||
setPageSize: function( c, size ) {
|
setPageSize: function( c, size ) {
|
||||||
var p = c.pager,
|
var p = c.pager,
|
||||||
table = c.table;
|
table = c.table;
|
||||||
|
// "all" size is only returned if an "all" option exists - fixes #1366
|
||||||
p.size = tsp.parsePageSize( c, size, 'get' );
|
p.size = tsp.parsePageSize( c, size, 'get' );
|
||||||
p.$container
|
p.$container
|
||||||
.find( c.widgetOptions.pager_selectors.pageSize )
|
.find( c.widgetOptions.pager_selectors.pageSize )
|
||||||
.val( tsp.parsePageSize( c, p.size, 'set' ) );
|
.val( p.size );
|
||||||
$.data( table, 'pagerLastPage', tsp.parsePageNumber( c, p ) );
|
$.data( table, 'pagerLastPage', tsp.parsePageNumber( c, p ) );
|
||||||
$.data( table, 'pagerLastSize', p.size );
|
$.data( table, 'pagerLastSize', p.size );
|
||||||
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( p.totalRows / p.size );
|
||||||
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
p.filteredPages = p.size === 'all' ? 1 : Math.ceil( p.filteredRows / p.size );
|
||||||
tsp.moveToPage( c, p, true );
|
|
||||||
},
|
},
|
||||||
|
|
||||||
moveToFirstPage: function( c, p ) {
|
moveToFirstPage: function( c, p ) {
|
||||||
@ -1228,7 +1235,7 @@
|
|||||||
p.page = $.data( table, 'pagerLastPage' ) || p.page || 0;
|
p.page = $.data( table, 'pagerLastPage' ) || p.page || 0;
|
||||||
size = $el.find('option[selected]' ).val();
|
size = $el.find('option[selected]' ).val();
|
||||||
p.size = $.data( table, 'pagerLastSize' ) || tsp.parsePageSize( c, size, 'get' );
|
p.size = $.data( table, 'pagerLastSize' ) || tsp.parsePageSize( c, size, 'get' );
|
||||||
$el.val( p.size ); // set page size
|
tsp.setPageSize( c, p.size ); // set page size
|
||||||
p.totalPages = p.size === 'all' ? 1 : Math.ceil( tsp.getTotalPages( c, p ) / p.size );
|
p.totalPages = p.size === 'all' ? 1 : Math.ceil( tsp.getTotalPages( c, p ) / p.size );
|
||||||
c.$table.removeClass( 'pagerDisabled' );
|
c.$table.removeClass( 'pagerDisabled' );
|
||||||
// if table id exists, include page display with aria info
|
// if table id exists, include page display with aria info
|
||||||
@ -1247,6 +1254,7 @@
|
|||||||
// tablesorter core update table
|
// tablesorter core update table
|
||||||
ts.update( c );
|
ts.update( c );
|
||||||
tsp.setPageSize( c, p.size );
|
tsp.setPageSize( c, p.size );
|
||||||
|
tsp.moveToPage( c, p, true );
|
||||||
tsp.hideRowsSetup( c );
|
tsp.hideRowsSetup( c );
|
||||||
if ( c.debug ) {
|
if ( c.debug ) {
|
||||||
console.log( 'Pager: Enabled' );
|
console.log( 'Pager: Enabled' );
|
||||||
|
Loading…
Reference in New Issue
Block a user