User:FlightTime/confirm-logout.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 : "#EEE";	var fg = window.us_conlog_color ? window.us_conlog_color : "#000";	var bd = window.us_conlog_border ? window.us_conlog_border : "2px solid #00F";    // Add styling to the page.    document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin", " #use-conlog button { margin: 0 0.2em; border-radius: 9em; padding: 0 0.7em; box-sizing: border-box;" + `font-weight: ${fw}; font-size: ${fs}; background: ${bg}; color: ${fg}; border: ${bd}}` + "#use-conlog button:active { background:rgba(255,255,255,0.6)} ");   // 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",           "<div onclick='this.style.transform = \"translateY(-130%)\";setTimeout(function{this.remove}.bind(this), 500);' style='" +            "position:fixed; top:0; left:0; right:0; margin: 0 0 auto 0; height: auto; line-height: 1.4em; " +            "padding: 0.6em 2em; opacity: 1; text-align: center; z-index: 9999; box-shadow: 0 2px 5px rgba(0,0,0,0.2); " +            "transform: translateY(-130%); transition: all 0.2s;" +            `font-weight: ${fw}; font-size: ${fs}; background: ${bg}; color: ${fg}; border: ${bd}'>` +            " You clicked on a log-out link. Do you want to continue? " +            " No Log out  "        ); // 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; }); }); //