ব্যবহারকারী:খাত্তাব হাসান/প্রস্থান নিশ্চিতকরণ.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
// [[বিষয়শ্রেণী:উইকিপিডিয়া স্ক্রিপ্ট]]
// <nowiki>
$(() =>
{
    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",
    	"<style>#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)}</style>");
    // Main grouping div for conlog elements.
    document.getElementsByTagName("body")[0].insertAdjacentHTML("afterbegin", "<div id='use-conlog'></div>");
    
    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}'>` +
            "<div style='margin-bottom: 0.5em;'>আপনি প্রস্থান বাটনে ক্লিক করেছেন। আপনি কি সত্যিই প্রস্থান করতে চান?</div>" +
            "<div><button>না</button><button id='conlog-logout'>প্রস্থান</button></div></div>"
        );
        
        // 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();
    });
});
// </nowiki>