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);
}
}
//if (this.id !== '') {
$('<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));
$('<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));
//}
});
});
});
});

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));
	});
});