Benutzer:Schnark/js/deprecated.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
/* Zeigt Warnungen, wenn ein veraltetes Skript verwendet wird. Benutzung mit: <nowiki>
mw.libs.deprecated = $.extend(mw.libs.deprecated, {skriptname: '<blink>Hör’ sofort auf, das Skript [[Benutzer:Name/veraltet.js]] zu verwenden!</blink>'});
importScript('Benutzer:Schnark/js/deprecated.js');
*/
/*global mediaWiki*/
(function ($, mw, libs) {
"use strict";
var cookieName = 'SchnarkDeprecated';

function parse (text) {
	return text.replace(/\[\[(.*?)\]\]/g, function (all, title) {
		return mw.html.element('a', {href: mw.util.getUrl(title).replace('%23', '#')}, title);
	});
}

function getUnreadDeprecations () {
	var	read = (mw.cookie.get(cookieName) || '').split('|'),
		unread = [], key;
	for (key in libs.deprecated) {
		if ($.inArray(key, read) === -1) {
			unread.push(key);
		}
	}
	return unread;
}

function setRead (read) {
	mw.cookie.set(cookieName, (mw.cookie.get(cookieName) || '') + read.join('|'));
}

function getNotice (unread) {
	var	msg = '<b>Achtung!</b> Du verwendest Skripte, die nicht mehr gepflegt werden. Es handelt sich um die folgenden Skripte (und eventuell weitere, die auf dieser Seite aber nicht geladen wurden):',
		list = $.map(unread, function (key) {
			return mw.html.element('li', {}, new mw.html.Raw(parse(libs.deprecated[key])));
		}).join(''),
		link = '[Meldung ausblenden]',
		html = mw.html.element('p', {}, new mw.html.Raw(msg)) +
			mw.html.element('ul', {}, new mw.html.Raw(list)) +
			mw.html.element('p', {}, new mw.html.Raw(
				mw.html.element('a', {id: 'schnark-deprecated', style: 'float: right', href: '#'}, link)
			)),
		$div = $(mw.html.element('div', {}, new mw.html.Raw(html)));
		$div.find('#schnark-deprecated').click(function () {
			$div.hide();
			setRead(unread);
			return false;
		});
		return $div;
}

function showNotice () {
	var unread = getUnreadDeprecations();
	if (unread.length === 0) {
		return;
	}
	$('#firstHeading').before(getNotice(unread));
}

function init () {
	mw.loader.using(['mediawiki.util', 'mediawiki.cookie'], function () {
		window.setTimeout(function () {
			$(showNotice);
		}, 2000); //2 Sekunden warten, dass alle veralteten Skripte geladen sind
	});
}

init();

})(jQuery, mediaWiki, mediaWiki.libs);
//</nowiki>