MediaWiki:Common.js: Difference between revisions

From Calidus HUB
(Added facility to generate table IDs for searchable tables if not specified.)
(Added autofocus back to search when clearing table searches)
 
(4 intermediate revisions by 2 users not shown)
Line 31: Line 31:
}   
}   
$(document).ready(function(){
$(document).ready(function(){
// Alternative method - makes all tables with 10 or more rows (including header) searchable automatically
// $("table > tbody > tr:nth-child(10)").closest("table").each(function(index, element) {
$("table.apt-searchable").each(function(index, element) {
$("table.apt-searchable").each(function(index, element) {
var tableID = this.id;
var tableID = this.id;
Line 37: Line 39:
$(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+'\',\'\')" title="Clear Entry" class="apt-search-clear">').insertBefore($(this));
$('<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+'\',\'\');$(\'#'+tableID+'_'+index+'\').focus();" title="Clear Entry" class="apt-search-clear">').insertBefore($(this));
});
});
});
});

Latest revision as of 09:51, 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(){
// Alternative method - makes all tables with 10 or more rows (including header) searchable automatically
//	$("table > tbody > tr:nth-child(10)").closest("table").each(function(index, element) {
	$("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+'\',\'\');$(\'#'+tableID+'_'+index+'\').focus();" title="Clear Entry" class="apt-search-clear">').insertBefore($(this));
	});
});