MediaWiki:Disclaimer.js
From WikiLectures
Note: After publishing, 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: Press Ctrl-F5.
/* <pre> */
/* ============== DISCLAIMER =================================
author: [[User:Slepi]]
date: 04/2011, last update 03/2012
documentation: [[MediaWiki:Disclaimer.js/documentation]]
description: disclaimer in WL
==========================================================
*/
var disclaimerCreator = {
xmlhttpDiscText : "",
urlText : wgServer + wgScript + "/MediaWiki:Disclaimer-text?action=raw",
discText : "",
agreeText : "<b>I accept</b>",
disagreeText : "Back",
urlLogin : "http://www.wikilectures.eu/index.php/Special:UserLogin",
urlPrefs : "http://www.wikilectures.eu/index.php/Special:Preferences",
disclaimerGadget : "Do not display the disclaimer",
install : function () {
// test cookies
var cookiePos = document.cookie.indexOf("wl_disc=1");
if (cookiePos > -1) return false;
// add CSS style
importStylesheet("MediaWiki:Disclaimer.css");
// create div for overlay
overlayDiv = document.createElement("div");
overlayDiv.className = "overlay_div";
overlayDiv.id = "overlay_div";
// add div to the page
document.body.appendChild(overlayDiv);
// block with text
contentDiv = document.createElement("div");
contentDiv.className = "content_div";
contentDiv.id = "content_div";
// add block to the page
document.body.appendChild(contentDiv);
// text of the disclaimer
getXMLHttpRequest("disclaimerCreator.xmlhttpDiscText", disclaimerCreator.urlText, "disclaimerCreator.getText");
},
getText : function() {
if (disclaimerCreator.xmlhttpDiscText.readyState==4) {// 4 = "loaded"
if (disclaimerCreator.xmlhttpDiscText.status==200) {// 200 = OK
disclaimerCreator.discText = disclaimerCreator.xmlhttpDiscText.responseText; // server response
disclaimerCreator.showText();
}
}
},
showText : function() {
// add text
contentDiv.innerHTML = "<h2>Notice</h2>"
+ "<p>"
+ disclaimerCreator.discText
+ "<br /></p>";
// add buttons
contentDiv.innerHTML += '<form action="">'
+ '<button onclick="return disclaimerCreator.closeDisclaimer(1);">'
+ disclaimerCreator.agreeText
+ '</button>'
+ '<button onclick="return disclaimerCreator.closeDisclaimer(0);">'
+ disclaimerCreator.disagreeText
+ '</button></form>';
// info about switching off he disclaimer
contentDiv.innerHTML += '<p><br /><br /><small>'
+ '<a href="' + disclaimerCreator.urlLogin + '">Logged in users</a> '
+ 'can permanently switch off this notice in their '
+ '<a href="' + disclaimerCreator.urlPrefs + '">preferences</a>: tab <b>Gadgets</b>, tool '
+ '<b>' + disclaimerCreator.disclaimerGadget + '</b>.</small><p>';
// show disclaimer
overlayDiv.style.display = "block";
contentDiv.style.display = "block";
},
writeCookies : function() {
document.cookie = "wl_disc=1";
},
closeDisclaimer : function(a) {
if (a==1) {
document.getElementById('overlay_div').style.display = 'none';
document.getElementById('content_div').style.display = 'none';
disclaimerCreator.writeCookies();
return false;
} else if (a==0) {
history.back();
return false;
}
}
}
if (wgAction == "view" && wgPageName != "Main_Page" && wgNamespaceNumber == 0) {
if (wgUserName== null) {
$(disclaimerCreator.install); // anonymous users: immediately
} else {
setTimeout("disclaimerCreator.install()", 1000); // wait for cookie
}
}