scinote-web/vendor/assets/javascripts/dataTables.noSearchHidden.js
2016-07-21 13:11:15 +02:00

48 lines
1.7 KiB
JavaScript

/**
* @summary NoSearchHidden
* @description Prevent searching of cells in hidden columns in DataTables
* @version 1.0.0
* @file dataTables.noSearchHidden.js
* @author Brian White
* @contact github.com/mscdex/dataTables.noSearchHidden
* @copyright Copyright 2014 Brian White
*
* License MIT - http://opensource.org/licenses/MIT
*
* This feature plug-in for DataTables will prevent searching of cells located
* in hidden columns. This behavior is dynamic, so as column visibility
* changes, so does the search cache.
*
* This feature can be enabled by:
*
* * Setting the `noSearchHidden` parameter in the DataTables initialization to
* be true
* * Setting the `noSearchHidden` parameter to be true in the DataTables
* defaults (thus causing all tables to have this feature) - i.e.
* `$.fn.dataTable.defaults.noSearchHidden = true`.
*
*/
(function(window, document, $) {
// Listen for DataTables initializations
$(document).on('init.dt.dth', function(e, settings, json) {
//console.log("out");
if (
settings.oInit.noSearchHidden || // option specified
$.fn.dataTable.defaults.noSearchHidden // default set
) {
//console.log("in");
var table = new $.fn.dataTable.Api(settings),
aoColumns = table.settings()[0].aoColumns;
//console.log(table);
table.on('column-visibility.dt.dth', function(e, settings, column, state) {
var col = aoColumns[column];
col.searchable = col.bSearchable = state;
table.rows().invalidate();
}).on('destroy', function() {
// Remove event handler
table.off('column-visibility.dt.dth');
});
}
});
})(window, document, jQuery);