/*
* Grabs text from a Template documentation page that is wrapped in
* <pre id="autoload_template"></pre> 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 [[m: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('<pre id="[Aa]utoload">([\\s\\S]*?)</pre>');
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);
}