Benutzer:ElBe/message.js
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
/*Originalskript von [[Benutzer:Schnark/js/deprecated.js]]
Überarbeitet von [[Benutzer:ElBe]]*/
/* Zeigt Nachrichten an: <nowiki>
mw.libs.deprecated = $.extend(mw.libs.deprecated, {'Das ist eine Nachricht!'});
importScript('Benutzer:ElBe/message.js');
*/
/*global mediaWiki*/
(function ($, mw, libs) {
"use strict";
var cookieName = 'ElBe_Message_Show';
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 list = $.map(unread, function (key) {
return mw.html.element('p', {}, new mw.html.Raw(parse(libs.deprecated[key])));
}).join(''),
link = '[Meldung ausblenden]',
html = mw.html.element('p', {}, new mw.html.Raw(list)) +
mw.html.element('p', {}, new mw.html.Raw(
mw.html.element('a', {id: 'elbe-message', style: 'float: right', href: '#'}, link)
)),
$div = $(mw.html.element('div', {}, new mw.html.Raw(html)));
$div.find('#elbe-message').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>