User:Inductiveload/Template autoloader.js

/* * Grabs text from a Template documentation page that is wrapped in *  tags and inserts it into the document * * The aim of this is to allow users to easily insert blank templates into * pages and save thm looking up the parameters names and/or orders * * There is two way to use it, for both add * importScript('User:Inductiveload/Autoload template.js'); * to your javascript. * * then add a link in the left regex menu, add TemplateScript to your * .js with this template: * { name: 'Autoload template', script:autoloadTemplate } */

function get_autoload_data(data) {   try { //the textbox to insert the text into var textbox = document.getElementsByName('wpTextbox1')[0];

if (textbox && !data.query.pages["-1"]) { for (var id in data.query.pages) { var content = data.query.pages[id].revisions[0]['*']; var r = new RegExp('([\\s\\S]*?) '); var match = r.exec(content);

if (match) { var template_text = match[1];

// prepend the autoloaded text to the editbox content // TODO: insert at cursor (possible?) textbox.value = template_text + "\n" + textbox.value; } else {                  alert ("No preloadable text found"); }               break; }

}   }    catch (err) { } }

function create_script_obj(url) {   var scriptObj = document.createElement("script"); scriptObj.setAttribute("type", "text/javascript"); scriptObj.setAttribute("src", url); document.body.appendChild(scriptObj); }

function getTemplateName {   var template_name = window.prompt("Template to autoload",""); return template_name;

}

function autoloadTemplate {   var name = getTemplateName; var template_pagename = "Template:" + name + "/doc";

var url = wgServer + wgScriptPath + "/api.php" + "?action=query" + "&prop=revisions" + "&callback=get_autoload_data" + "&rvprop=content" + "&format=json"+ "&titles=" + encodeURIComponent(template_pagename);

create_script_obj(url); }