/**
* scriptManager, based on [[:en:User:MusikAnimal/scriptManager.js]] by [[User:MusikAnimal]]
*/
$( document ).ready( function () {
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () {
"use strict";
if (mw.config.get('skin') === 'timeless') {
var portlet = mw.util.addPortlet("p-enable-scripts", "Enable scripts");
$(portlet).insertAfter('#p-tb');
} else {
if ($('#p-coll-print_export').length > 0) {
mw.util.addPortlet("p-enable-scripts", "Enable scripts", "#p-coll-print_export");
} else {
mw.util.addPortlet("p-enable-scripts", "Enable scripts", "#p-lang");
}
}
var loadScript = function(e) {
mw.loader.load(e.data.src); // Load the script
// TODO: implement error handling
mw.notify(`${e.data.script} has been enabled.`, {title: "scriptManager", type: "success"});
if (mw.config.get('skin') == 'vector') {
$(e.target).parent().parent().remove(); // Vector 2010 is stupid
} else {
$(e.target).parent().remove(); // Remove script from list, already enabled
}
};
if (window.scriptsToManage) {
$.each(scriptsToManage, function(script, src) {
var scriptName = script.replace(/ /g,"_");
mw.util.addPortletLink("p-enable-scripts", "javascript:", script, `t-enablescript-${scriptName}`, `Enable ${script} for this page`);
// If a script has been clicked, pipe it to loadScript
$("#t-enablescript-"+scriptName).click({
script: script,
src: src
}, loadScript);
});
} else {
mw.util.addPortletLink("p-enable-scripts", "en.wikipedia.org/wiki/User:MaterialWorks/Scripts/scriptManager", "No scripts registered!");
}
});
}());