User:Fumple/common.js

function resolveID(id) { var replaced = id.replaceAll(".26", "&"); replaced = replaced.replaceAll(".21", "!"); replaced = replaced.replaceAll(".28", "(");   replaced = replaced.replaceAll(".29", ")"); replaced = replaced.replaceAll(".CF.89", "ω"); replaced = replaced.replaceAll(".7E", "~"); replaced = replaced.replaceAll(".27", "'"); replaced = replaced.replaceAll(".40", "@"); replaced = replaced.replaceAll(".23", "#"); replaced = replaced.replaceAll(".24", "$"); replaced = replaced.replaceAll(".25", "%"); return replaced; } String.prototype.replaceAll = function (search, replacement) { var target = this; return target.split(search).join(replacement); }; //Had to do a one line string due to MediaWiki JS restrictions var contextmenu = " File not set Open file page Open file page in new tab "; //I know I could avoid some lines but I don't really want to change how it is var el = document.createElement("div"); el.innerHTML = contextmenu; document.body.append(el); $(".load-media").contextmenu(function (e) {   if (e.target.tagName != "DIV") {        return;    }    $(".-context-menu").css("display", "block")        .css("top", e.pageY)        .css("left", e.pageX);    if (e.target.id == "") {        $(".-context-menu-media-load-file").text(resolveID(e.target.parentElement.id.split("|")[0]));    }    else {        $(".-context-menu-media-load-file").text(resolveID(e.target.id.split("|")[0]));    }    e.preventDefault;    return false; }); $(document).click(function (e) {   var t = $(e.target);    if (t.hasClass("-context-menu-text") || t.hasClass("-context-menu-item")) {        return;    }    $(".-context-menu").css("display", "none") }) $(document).contextmenu(function (e) {   $(".-context-menu").css("display", "none") }) $(".-context-menu-media-load-open").click(function (e) { window.location = "/wiki/" + e.target.previousSibling.innerHTML }) $(".-context-menu-media-load-tab").click(function (e) { window.open("/wiki/" + e.target.previousSibling.previousSibling.innerHTML) })

//Page-specific script /* onApiReady(function {    new mw.Api.get({ action: 'parse', page: mw.config.get("wgPageName") + "/page.js", prop: "" }).done(function (data) { }).fail(function (data) { console.log("No page specific JS found.") });   new mw.Api.get({ action: 'parse', page: mw.config.get("wgPageName") + "/page.css", prop: "" }).done(function (data) { }).fail(function (data) { console.log("No page specific CSS found") }); });

function onApiReady(callback) { if (mw.Api != null) { setTimeout(callback, 0); } else { setTimeout(onApiReady.bind(null, callback), 0); } } mw.loader.load('/w/index.php?title='+mw.config.get("wgPageName")+'/page.js&action=raw&ctype=text/javascript') mw.loader.load('/w/index.php?title='+mw.config.get("wgPageName")+'/page.css&action=raw&ctype=text/css', 'text/css')