mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-11-15 23:54:22 +00:00
Core: Add option validator. Fixes #1319
This commit is contained in:
parent
4053331c13
commit
4ae7ce24d8
@ -116,7 +116,11 @@
|
|||||||
headerList: [],
|
headerList: [],
|
||||||
empties: {},
|
empties: {},
|
||||||
strings: {},
|
strings: {},
|
||||||
parsers: []
|
parsers: [],
|
||||||
|
|
||||||
|
// *** parser options for validator; values must be falsy!
|
||||||
|
globalize: 0,
|
||||||
|
imgAttr: 0
|
||||||
|
|
||||||
// removed: widgetZebra: { css: ['even', 'odd'] }
|
// removed: widgetZebra: { css: ['even', 'odd'] }
|
||||||
|
|
||||||
@ -290,6 +294,7 @@
|
|||||||
ts.setupParsers( c );
|
ts.setupParsers( c );
|
||||||
// start total row count at zero
|
// start total row count at zero
|
||||||
c.totalRows = 0;
|
c.totalRows = 0;
|
||||||
|
ts.validateOptions( c );
|
||||||
// build the cache for the tbody cells
|
// build the cache for the tbody cells
|
||||||
// delayInit will delay building the cache until the user starts a sort
|
// delayInit will delay building the cache until the user starts a sort
|
||||||
if ( !c.delayInit ) { ts.buildCache( c ); }
|
if ( !c.delayInit ) { ts.buildCache( c ); }
|
||||||
@ -1911,6 +1916,8 @@
|
|||||||
widget = ts.getWidgetById( c.widgets[ indx ] );
|
widget = ts.getWidgetById( c.widgets[ indx ] );
|
||||||
if ( widget && widget.options ) {
|
if ( widget && widget.options ) {
|
||||||
c.widgetOptions = $.extend( true, {}, widget.options, c.widgetOptions );
|
c.widgetOptions = $.extend( true, {}, widget.options, c.widgetOptions );
|
||||||
|
// add widgetOptions to defaults for option validator
|
||||||
|
$.extend( true, ts.defaults.widgetOptions, widget.options );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2396,6 +2403,34 @@
|
|||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
validateOptions : function( c ) {
|
||||||
|
var setting, setting2, typ, timer,
|
||||||
|
// ignore options containing an array
|
||||||
|
ignore = 'sortForce sortList sortAppend widgets'.split( ' ' ),
|
||||||
|
orig = c.originalSettings;
|
||||||
|
if ( orig ) {
|
||||||
|
if ( c.debug ) {
|
||||||
|
timer = new Date();
|
||||||
|
}
|
||||||
|
for ( setting in orig ) {
|
||||||
|
typ = typeof ts.defaults[setting];
|
||||||
|
if ( typ === 'undefined' ) {
|
||||||
|
console.warn( 'Tablesorter Warning! "table.config.' + setting + '" option not recognized' );
|
||||||
|
} else if ( typ === 'object' ) {
|
||||||
|
for ( setting2 in orig[setting] ) {
|
||||||
|
typ = typeof ts.defaults[setting][setting2];
|
||||||
|
if ( $.inArray( setting, ignore ) < 0 && typ === 'undefined' ) {
|
||||||
|
console.warn( 'Tablesorter Warning! "table.config.' + setting + '.' + setting2 + '" option not recognized' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( c.debug ) {
|
||||||
|
console.log( 'validate options time:' + ts.benchmark( timer ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// restore headers
|
// restore headers
|
||||||
restoreHeaders : function( table ) {
|
restoreHeaders : function( table ) {
|
||||||
var index, $cell,
|
var index, $cell,
|
||||||
|
@ -13,6 +13,9 @@
|
|||||||
ts = $.tablesorter,
|
ts = $.tablesorter,
|
||||||
now = new Date().getFullYear();
|
now = new Date().getFullYear();
|
||||||
|
|
||||||
|
// add dateRange to defaults for validator; value must be falsy
|
||||||
|
ts.defaults.dataRange = '';
|
||||||
|
|
||||||
if ( !ts.dates ) { ts.dates = {}; }
|
if ( !ts.dates ) { ts.dates = {}; }
|
||||||
ts.dates.regxxxxyy = /(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{2})/;
|
ts.dates.regxxxxyy = /(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{2})/;
|
||||||
ts.dates.regyyxxxx = /(\d{2})[\/\s](\d{1,2})[\/\s](\d{1,2})/;
|
ts.dates.regyyxxxx = /(\d{2})[\/\s](\d{1,2})[\/\s](\d{1,2})/;
|
||||||
|
@ -110,6 +110,10 @@
|
|||||||
type : 'text'
|
type : 'text'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// update defaults for validator; values must be falsy
|
||||||
|
ts.defaults.checkboxClass = '';
|
||||||
|
ts.defaults.checkboxVisible = '';
|
||||||
|
|
||||||
// update select and all input types in the tablesorter cache when the change event fires.
|
// update select and all input types in the tablesorter cache when the change event fires.
|
||||||
// This method only works with jQuery 1.7+
|
// This method only works with jQuery 1.7+
|
||||||
// you can change it to use delegate (v1.4.3+) or live (v1.3+) as desired
|
// you can change it to use delegate (v1.4.3+) or live (v1.3+) as desired
|
||||||
|
@ -79,6 +79,9 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// add data to defaults for validator; value must be falsy!
|
||||||
|
ts.defaults.data = '';
|
||||||
|
|
||||||
bt.defaults = {
|
bt.defaults = {
|
||||||
// *** build widget core ***
|
// *** build widget core ***
|
||||||
build_type : '', // array, csv, object, json, html
|
build_type : '', // array, csv, object, json, html
|
||||||
|
@ -43,6 +43,17 @@
|
|||||||
url = options && options.url ||
|
url = options && options.url ||
|
||||||
$table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') ||
|
$table.attr(options && options.page || wo && wo.storage_page || 'data-table-page') ||
|
||||||
wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname;
|
wo && wo.storage_fixedUrl || c && c.fixedUrl || window.location.pathname;
|
||||||
|
// update defaults for validator; these values must be falsy!
|
||||||
|
$.extend(true, ts.defaults, {
|
||||||
|
fixedUrl: '',
|
||||||
|
widgetOptions: {
|
||||||
|
storage_fixedUrl: '',
|
||||||
|
storage_group: '',
|
||||||
|
storage_page: '',
|
||||||
|
storage_tableId: '',
|
||||||
|
storage_useSessionStorage: ''
|
||||||
|
}
|
||||||
|
});
|
||||||
// https://gist.github.com/paulirish/5558557
|
// https://gist.github.com/paulirish/5558557
|
||||||
if (storageType in window) {
|
if (storageType in window) {
|
||||||
try {
|
try {
|
||||||
|
Loading…
Reference in New Issue
Block a user