Benutzer:Aka/common.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
mw.loader.load ('//de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/letzteredit.js&action=raw&ctype=text/javascript');
mw.loader.load ('//de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/artikel-statistik.js&action=raw&ctype=text/javascript');
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Wurgl/OhNotAgain.js&action=raw&ctype=text/javascript');
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Wurgl/8Schwestern.js&action=raw&ctype=text/javascript');
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Wurgl/FehlerlisteAbarbeiten.js&action=raw&ctype=text/javascript');
mw.loader.getScript('https://en.wikipedia.org/w/load.php?modules=ext.gadget.libSettings').then(function() {
	mw.loader.load('https://en.wikipedia.org/w/load.php?modules=ext.gadget.Shortdesc-helper');
})

markcomadmins = true;
markwdadmins  = true;
markexadmins  = true;
markexbureaucrats = true;
 
jQuery (document).ready (function ()
{
	mw.loader.using (['mediawiki.util'], function ()
	{
		 addPortletLinks ();
		 addPersonAge ();
	});
});

function addPortletLinks ()
{
	if (mw.config.get ('wgNamespaceNumber') == 4)
	{
		mw.util.addPortletLink ("p-tb", "https://vs.aka-online.de/cgi-bin/abstimmungen.pl?page=" + mw.config.get ("wgPageName"), "Auswertung", "pt-u1stat");
	}
}

// Personendaten-Alter
function addPersonAge ()
{
	var birth = $("td:contains(GEBURTSDATUM)").next ().text ();
	var death = $("td:contains(STERBEDATUM)").next ().text ();
	
	if (birth && death)
	{
	    var birthdt = Date.parse (formatDate (birth));
	    var deathdt = Date.parse (formatDate (death));
	
	    if (birthdt && deathdt)
	    {
	        $("td:contains(GEBURTSDATUM)").parent ().parent ().append ("<tr><td style='color: #aaa;'>ALTER</td><td>" + dateDiff (birthdt, deathdt) + "</td></tr>");
	    }
	}
	
	function formatDate (date)
	{
	   var dateparts = date.match ("([0-9]+)\.[ ]*([a-zA-Zä]+)[ ]*([0-9]+)");
	   var day = dateparts[1];
	   var month = dateparts[2];
	   var year = dateparts[3];
	
	   if (month == "Januar") month = "01";
	   if (month == "Februar") month = "02";
	   if (month == "März") month = "03";
	   if (month == "April") month = "04";
	   if (month == "Mai") month = "05";
	   if (month == "Juni") month = "06";
	   if (month == "Juli") month = "07";
	   if (month == "August") month = "08";
	   if (month == "September") month = "09";
	   if (month == "Oktober") month = "10";
	   if (month == "November") month = "11";
	   if (month == "Dezember") month = "12";
	
	   return year + "-" + month + "-" + day.padStart (2, "0");
	}
	
	function dateDiff (startingDate, endingDate)
	{
	    var startDate = new Date (new Date (startingDate).toISOString ().substr (0, 10));
	    var endDate = new Date (endingDate);
	
	    var startYear = startDate.getFullYear ();
	    var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;
	    var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	
	    var yearDiff = endDate.getFullYear () - startYear;
	
	    var monthDiff = endDate.getMonth () - startDate.getMonth ();
	    if (monthDiff < 0)
	    {
	        yearDiff--;
	        monthDiff += 12;
	    }
	
	    var dayDiff = endDate.getDate () - startDate.getDate () - 1;
	    if (dayDiff < 0)
	    {
	        if (monthDiff > 0)
	        {
	            monthDiff--;
	        }
	        else
	        {
	            yearDiff--;
	            monthDiff = 11;
	        }
	        dayDiff += daysInMonth[startDate.getMonth ()];
	    }
	
	    return yearDiff + ' Jahre ' + monthDiff + ' Monate ' + dayDiff + ' Tage';
	}
}