MediaWiki:Common.js
From Futuro De La Humanidad
Revision as of 08:47, 26 April 2019 by Daniel Leech (talk | contribs)
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* Any JavaScript here will be loaded for all users on every page load. */
/*
== Collapsible columns custom code ==
<source lang="javascript">
*/
function collapseTable( tableIndex ) {
var Button = document.getElementById( 'collapseButton' + tableIndex );
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table || !Button ) {
return false;
}
var collapseColsOptin = hasCollapsibleCol( tableIndex ); // new
var collapseColsOptout = hasNoncollapsibleCol( tableIndex ); // new
var Cols = Table.rows[0].cells; // new
var CollapseCols = new Array(Cols.length); // new; has to be larger if there are colspans
if ( collapseColsOptin || collapseColsOptout ) {// new
// @colspan currently not handled
// the following two if-for-if constructs could be combined
if ( collapseColsOptin ) {
for ( var i = 0; i < Cols.length; i++ ) {
if ( CollapseCols[i] == null || !hasClass( Cols[i], 'collapsible' ) ) {
CollapseCols[i] = !collapseColsOptin;
} else {
CollapseCols[i] = collapseColsOptin;
}
}
}
// 'nocollapse' takes precedence over 'collapsible', i.e.
// default columns are not collapsible when both types exist
if ( collapseColsOptout ) {
for ( var i = 0; i < Cols.length; i++ ) {
if ( CollapseCols[i] == null || !hasClass( Cols[i], 'nocollapse' ) ) {
CollapseCols[i] = collapseColsOptout;
} else {
CollapseCols[i] = !collapseColsOptout;
}
}
}
// column with first |th| should be excluded, because it holds the show/hide button
var Header = Table.rows[0].getElementsByTagName( 'th' )[0];
CollapseCols[Header.cellIndex] = false;// cellIndex doesn’t handle @colspan
}
var Rows = Table.rows;
// insert check for @colspan here, change CollapseCols accordingly
if ( Button.firstChild.data == collapseCaption ) {// hide
if ( collapseColsOptin || collapseColsOptout ) {// new
for ( var i = 0; i < Rows.length; i++ ) {
var Cells = Rows[i].cells;
for ( var j = 0; j < CollapseCols.length; j++) {
// if we used Cells.length the handling of rows with empty cells at the end should improve
// this would be a problem if the header row had empty cells at the end
// we could also do CollapseCols.length-Cells.length times Rows[i].insertCell(-1)
if ( CollapseCols[j] ) {
Cells[j].style.display = 'none';// needs to take @colspan into account
}
}
}
}
var collapseRowsOptin = hasCollapsibleRow( tableIndex );// new
// @rowspan currently not handled
for ( var i = 1; i < Rows.length; i++ ) {
if ( collapseRowsOptin ) {// new
if ( hasClass( Rows[i], 'collapsible' ) ) {
Rows[i].style.display = 'none';
}
} else if ( !collapseColsOptin && !collapseColsOptout ) {
if ( !hasClass( Rows[i], 'nocollapse' ) &&
!( hasClass( Rows[i], 'sortbottom' ) && !hasClass( Rows[i], 'collapsible' ) )
) { // new condition to exclude certain rows from collapsing
Rows[i].style.display = 'none';
}
}
}
Button.firstChild.data = expandCaption;
} else {// show
for ( var i = 0; i < Rows.length; i++ ) {
if ( collapseColsOptin || collapseColsOptout ) {// new
var Cells = Rows[i].cells;
for ( var j = 0; j < CollapseCols.length; j++) {
if ( CollapseCols[j] ) {
Cells[j].style.display = Rows[0].style.display;
}
}
}
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
/* new function to check whether the collapsible table has
* any column with the class 'collapsible'
*/
function hasCollapsibleCol( tableIndex ) {
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table ) {
return false;
}
var Cols = Table.rows[0].cells;
for ( var i = 0; i < Cols.length; i++ ) {
if ( hasClass( Cols[i], 'collapsible' ) ) {
return true;
}
}
return false;
}
/* new function to check whether the collapsible table has
* any column with the class 'nocollapse'
*/
function hasNoncollapsibleCol( tableIndex ) {
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table ) {
return false;
}
var Cols = Table.rows[0].cells;
for ( var i = 0; i < Cols.length; i++ ) {
if ( hasClass( Cols[i], 'nocollapse' ) ) {
return true;
}
}
return false;
}
/* new function to check whether the collapsible table has
* any row (except the header) with the class 'collapsible'
*/
function hasCollapsibleRow( tableIndex ) {
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table ) {
return false;
}
var Rows = Table.rows;
for ( var i = 1; i < Rows.length; i++ ) {
if ( hasClass( Rows[i], 'collapsible' ) ) {
return true;
}
}
return false;
}
// </source>
/* Below was a test to show news on certain days of the year. */
$( document ).ready(function() {
console.log( "document loaded" );
var monthNames = [ "January (Januar)", "February (Februar)", "March (März)", "April", "May (Mai)", "June (Juni)", "July (Juli)", "August", "September", "October (Oktober)", "November", "December (Dezember)" ];
var dayNames= ["Sunday (Sonntag)","Monday (Montag)","Tuesday (Dienstag)","Wednesday (Mittwoch)","Thursday (Donnerstag)","Friday (Freitag)","Saturday (Samstag)"]
function nth(n){return["st","nd","rd"][((n+90)%100-10)%10-1]||"th"}
var newDate = new Date();
newDate.setDate(newDate.getDate());
$('#FOMdate').html(dayNames[newDate.getDay()] + " the " + newDate.getUTCDate()+nth() + " of " + monthNames[newDate.getUTCMonth()] + ' ' + newDate.getUTCFullYear());
setInterval( function() {
var seconds = new Date().getSeconds();
$("#sec").html(( seconds < 10 ? "0" : "" ) + seconds);
},1000);
setInterval( function() {
var minutes = new Date().getMinutes();
$("#min").html(( minutes < 10 ? "0" : "" ) + minutes);
},1000);
setInterval( function() {
var hours = new Date().getHours();
$("#hours").html(( hours < 10 ? "0" : "" ) + hours);
}, 1000)
});
$(function() {
$(".DateDiv").each(function(index) {
var sRange = $(this).find(".DateRange").html();
var arrTemp = sRange.split(" to ");
var dtFrom = new Date(arrTemp[0]);
var dtTo = new Date(arrTemp[1]);
var dtNow = new Date();
if (dtNow >= dtFrom && dtNow <= dtTo)
$(this).show();
});
var dob = $('#agedate').val();
if(dob != ''){
var str=dob.split('-');
var firstdate=new Date(str[0],str[1],str[2]);
var today = new Date();
var dayDiff = Math.ceil(today.getTime() - firstdate.getTime()) / (1000 * 60 * 60 * 24 * 365);
var age = parseInt(dayDiff);
$('#age').html(age+' ');
}
});