User:Guywan/Scripts/ConfirmLogout.js
//
$(() =>
{
var logout = $("#pt-logout a")[0];
if(!logout) return;
// Create new logout link.
var new_logout = document.createElement("a");
new_logout.innerText = logout.innerText;
// Insert new logout link and remove old.
logout.insertAdjacentElement("afterend", new_logout);
logout.remove();
// Get user-defined styling.
var fw = window.us_conlog_font_weight ? window.us_conlog_font_weight : "bold";
var fs = window.us_conlog_font_size ? window.us_conlog_font_size : "86%";
var bg = window.us_conlog_background ? window.us_conlog_background : "#FFDBDB";
var fg = window.us_conlog_color ? window.us_conlog_color : "#000";
var bd = window.us_conlog_border ? window.us_conlog_border : "2px solid #BB7070";
// Add styling to the page.
document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin",
"");
// Main grouping div for conlog elements.
document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin", "
");new_logout.addEventListener("click", event =>
{
// Create the logout confirmation prompt.
var conlog = document.getElementById("use-conlog");
conlog.insertAdjacentHTML("beforeend",
"
"
"
);
// Logout handler.
document.getElementById("conlog-logout").addEventListener("click", event =>
{
new mw.Api().post(
{
"action": "logout",
"token": mw.user.tokens.get("csrfToken")
})
.fail(result => { mw.notify("Failed to log out: " + result); })
.done(() => { window.location.href = mw.util.getUrl(mw.config.get("wgPageName")); });
});
// The logout confirmation prompt pops down from the top.
setTimeout(() => { conlog.lastChild.style.transform = "translateY(0%)"; }, 10);
event.preventDefault();
event.stopPropagation();
});
});
//