mirror of
https://github.com/DataTables/DataTables.git
synced 2025-03-15 16:29:16 +01:00
Dev: Refactor the filtering HTML creation function - save 138 bytes on
file size
This commit is contained in:
parent
3795134856
commit
c31d3a1447
@ -1 +1 @@
|
|||||||
9fd084bdae8fa642638c88f15592e3322548c328
|
2e8c9ddd5aaf32c42462cef8cdb620654d186068
|
||||||
|
@ -226,6 +226,9 @@ table.dataTable.sort-column.hover tbody tr.even:hover.selected > .sorting_3 {
|
|||||||
float: right;
|
float: right;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
.dataTables_wrapper .dataTables_info {
|
.dataTables_wrapper .dataTables_info {
|
||||||
clear: both;
|
clear: both;
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -219,6 +219,9 @@ table.dataTable.sort-column.hover tbody tr.even:hover.selected > .sorting_3 {
|
|||||||
float: right;
|
float: right;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
.dataTables_wrapper .dataTables_info {
|
.dataTables_wrapper .dataTables_info {
|
||||||
clear: both;
|
clear: both;
|
||||||
float: left;
|
float: left;
|
||||||
|
101
media/js/jquery.dataTables.js
vendored
101
media/js/jquery.dataTables.js
vendored
@ -2187,81 +2187,66 @@
|
|||||||
* @param {object} oSettings dataTables settings object
|
* @param {object} oSettings dataTables settings object
|
||||||
* @memberof DataTable#oApi
|
* @memberof DataTable#oApi
|
||||||
*/
|
*/
|
||||||
function _fnFeatureHtmlFilter ( oSettings )
|
function _fnFeatureHtmlFilter ( settings )
|
||||||
{
|
{
|
||||||
var oPreviousSearch = oSettings.oPreviousSearch;
|
var classes = settings.oClasses;
|
||||||
|
var tableId = settings.sTableId;
|
||||||
|
var previousSearch = settings.oPreviousSearch;
|
||||||
|
var features = settings.aanFeatures;
|
||||||
|
|
||||||
// @todo Surely this can be cleaned up!?!
|
var str = settings.oLanguage.sSearch;
|
||||||
var klass = 'class="'+oSettings.oClasses.sFilterInput+'"';
|
str = str.match(/_INPUT_/) ?
|
||||||
var sSearchStr = oSettings.oLanguage.sSearch;
|
str.replace('_INPUT_', '<input type="search" />') :
|
||||||
sSearchStr = (sSearchStr.indexOf('_INPUT_') !== -1) ?
|
str+'<input type="search" class="'+classes.sFilterInput+'"/>';
|
||||||
sSearchStr.replace('_INPUT_', '<input type="search" />') :
|
|
||||||
sSearchStr==="" ?
|
|
||||||
'<input type="search" '+klass+' />' :
|
|
||||||
sSearchStr+' <input type="search" '+klass+'/>';
|
|
||||||
|
|
||||||
var nFilter = document.createElement( 'div' );
|
var filter = $('<div/>', {
|
||||||
nFilter.className = oSettings.oClasses.sFilter;
|
'id': ! features.f ? tableId+'_filter' : null,
|
||||||
nFilter.innerHTML = '<label>'+sSearchStr+'</label>';
|
'class': classes.sFilter
|
||||||
if ( !oSettings.aanFeatures.f )
|
} )
|
||||||
{
|
.append( $('<label/>' ).append( str ) );
|
||||||
nFilter.id = oSettings.sTableId+'_filter';
|
|
||||||
}
|
|
||||||
|
|
||||||
var jqFilter = $('input[type="search"]', nFilter);
|
var jqFilter = $('input[type="search"]', filter)
|
||||||
|
.val( previousSearch.sSearch.replace('"','"') )
|
||||||
|
.bind( 'keyup.DT search.DT input.DT paste.DT cut.DT', function(e) {
|
||||||
|
/* Update all other filter input elements for the new display */
|
||||||
|
var n = features.f;
|
||||||
|
var val = !this.value ? "" : this.value; // mental IE8 fix :-(
|
||||||
|
|
||||||
// Store a reference to the input element, so other input elements could be
|
/* Now do the filter */
|
||||||
// added to the filter wrapper if needed (submit button for example)
|
if ( val != previousSearch.sSearch ) {
|
||||||
nFilter._DT_Input = jqFilter[0];
|
_fnFilterComplete( settings, {
|
||||||
|
"sSearch": val,
|
||||||
|
"bRegex": previousSearch.bRegex,
|
||||||
|
"bSmart": previousSearch.bSmart ,
|
||||||
|
"bCaseInsensitive": previousSearch.bCaseInsensitive
|
||||||
|
} );
|
||||||
|
|
||||||
jqFilter.val( oPreviousSearch.sSearch.replace('"','"') );
|
// Need to redraw, without resorting
|
||||||
jqFilter.bind( 'keyup.DT search.DT input.DT paste.DT cut.DT', function(e) {
|
settings._iDisplayStart = 0;
|
||||||
/* Update all other filter input elements for the new display */
|
_fnDraw( settings );
|
||||||
var n = oSettings.aanFeatures.f;
|
}
|
||||||
var val = this.value==="" ? "" : this.value; // mental IE8 fix :-(
|
} )
|
||||||
|
|
||||||
/* Now do the filter */
|
|
||||||
if ( val != oPreviousSearch.sSearch )
|
|
||||||
{
|
|
||||||
_fnFilterComplete( oSettings, {
|
|
||||||
"sSearch": val,
|
|
||||||
"bRegex": oPreviousSearch.bRegex,
|
|
||||||
"bSmart": oPreviousSearch.bSmart ,
|
|
||||||
"bCaseInsensitive": oPreviousSearch.bCaseInsensitive
|
|
||||||
} );
|
|
||||||
|
|
||||||
// Need to redraw, without resorting
|
|
||||||
oSettings._iDisplayStart = 0;
|
|
||||||
_fnDraw( oSettings );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
|
|
||||||
jqFilter
|
|
||||||
.attr('aria-controls', oSettings.sTableId)
|
|
||||||
.bind( 'keypress.DT', function(e) {
|
.bind( 'keypress.DT', function(e) {
|
||||||
/* Prevent form submission */
|
/* Prevent form submission */
|
||||||
if ( e.keyCode == 13 )
|
if ( e.keyCode == 13 ) {
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} )
|
||||||
);
|
.attr('aria-controls', tableId);
|
||||||
|
|
||||||
// Update the input elements whenever the table is filtered
|
// Update the input elements whenever the table is filtered
|
||||||
$(oSettings.nTable).on( 'filter.DT', function () {
|
$(settings.nTable).on( 'filter.DT', function () {
|
||||||
|
// IE9 throws an 'unknown error' if document.activeElement is used
|
||||||
|
// inside an iframe or frame...
|
||||||
try {
|
try {
|
||||||
// IE9 throws an 'unknown error' if document.activeElement is used
|
if ( jqFilter[0] !== document.activeElement ) {
|
||||||
// inside an iframe or frame...
|
jqFilter.val( previousSearch.sSearch );
|
||||||
if ( this._DT_Input !== document.activeElement ) {
|
|
||||||
jqFilter.val( oPreviousSearch.sSearch );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( e ) {
|
catch ( e ) {}
|
||||||
jqFilter.val( oPreviousSearch.sSearch );
|
|
||||||
}
|
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return nFilter;
|
return filter[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user