MediaWiki:Common.js: Difference between revisions
From Portal
(Added facility to generate table IDs for searchable tables if not specified.) |
(Added autofocus back to search when clearing table searches) |
||
(One intermediate revision by the same user not shown) | |||
Line 37: | Line 37: | ||
$(this).attr("id", tableID); | $(this).attr("id", tableID); | ||
} | } | ||
$('<input type="text" id="'+tableID+'_'+index+'" onkeyup="search_table(\''+tableID+'\',$(this).val())" placeholder="Search the table..."><input type="button" onclick="$(\'#'+tableID+'_'+index+'\').val(\'\');search_table(\''+tableID+'\',\'\');search_table(\''+tableID+'\',\'\');$(\'#'+tableID+'_'+index+'\').focus();" title="Clear Entry" class="apt-search-clear">').insertBefore($(this)); | |||
}); | }); | ||
}); | }); |
Latest revision as of 10:05, 28 August 2024
/* Any JavaScript here will be loaded for all users on every page load. */
// Javascript/jQuery code for searching tables
function search_table(tableID, value){
$('#'+tableID+' tr').each(function(){
var found = 'false';
if (!$(this).hasClass('non-searchable')) {
$(this).each(function(){
if ($(this).find('td.non-searchable').length > 0) {
found = 'true';
} else if (!$(this).find('th').length > 0) {
if($(this).text().toLowerCase().indexOf(value.toLowerCase()) >= 0)
{
found = 'true';
}
} else {
// Always keep the header row
found = 'true';
}
});
if(found == 'true')
{
$(this).show();
}
else
{
$(this).hide();
}
}
});
}
$(document).ready(function(){
$("table.apt-searchable").each(function(index, element) {
var tableID = this.id;
if (tableID == '') {
tableID = "aptSearchableTable_" + (index + 1);
$(this).attr("id", tableID);
}
$('<input type="text" id="'+tableID+'_'+index+'" onkeyup="search_table(\''+tableID+'\',$(this).val())" placeholder="Search the table..."><input type="button" onclick="$(\'#'+tableID+'_'+index+'\').val(\'\');search_table(\''+tableID+'\',\'\');search_table(\''+tableID+'\',\'\');$(\'#'+tableID+'_'+index+'\').focus();" title="Clear Entry" class="apt-search-clear">').insertBefore($(this));
});
});