MediaWiki:Skin/KamelionaryEdit.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Versuch mit <pre>, mal guckä ob das tut) |
K (.replace(/\s*/,"") Identisch mit Edittools.js) |
||
Zeile 25: | Zeile 25: | ||
var x = trans.responseText.split("<pre>"); | var x = trans.responseText.split("<pre>"); | ||
if (x[1]){ | if (x[1]){ | ||
− | var y = x[1].split("</pre>"); | + | var y = x[1].replace(/\s*/,"").split("</pre>"); |
document.getElementById("wpTextbox1").value = y[0]; | document.getElementById("wpTextbox1").value = y[0]; | ||
}else{ | }else{ |
Version vom 28. Juli 2009, 03:53 Uhr
addOnloadHook( function () {
if( ! document.getElementById("wpTextbox1") )
return;
if( document.getElementById("wpTextbox1").value == "" &&
(typeof(disableKamelionaryPreload) == "undefined" || !disableKamelionaryPreload) )
insertPreload();
var kd2 = document.getElementById("kat_div_2");
var html = "<b>Kamelionary-Tools:</b>";
html += '<div>Alle Parameter anzeigen:</div>';
html += '<div class="pseudolink" onclick="allKamelionaryParams(false)">ohne Kommentar</div>';
html += '<div class="pseudolink" onclick="allKamelionaryParams(true)">mit Kommentar</div>';
kd2.innerHTML += html;
} );
function insertPreload()
{
var getPreloadText = new Ajax.Request
(
"http://kamelopedia.mormo.org/index.php",
{
method:"get",
parameters: "title=Vorlage:Kamelionary/preload&action=raw",
onSuccess: function (trans)
{
var x = trans.responseText.split("<pre>");
if (x[1]){
var y = x[1].replace(/\s*/,"").split("</pre>");
document.getElementById("wpTextbox1").value = y[0];
}else{
alert("<pre> im Preload nicht gefunden. Bitte laut um Hilfe rufen!");
}
}
}
);
};
String.prototype.removeHTMLComments = function () {
return this.replace(/<!--.*?-->/,'');
};
function allKamelionaryParams(withcomments)
{
if ( ! confirm("Achtung, experimentelle Funktion!\n\nDiese Javascript-funktion fügt fehlende Parameter für die Kamelionary-Vorlage ins Textfeld ein. Dabei können aber z.B. falsch geschriebene Parameter versehentlich gelöscht werden.\nBitte überprüfe das Ergebnis mit dem Button 'Änderungen zeigen'!\n\nWeitermachen?") )
return;
var findTemplate = /\{\{Kamelionary(\s|\n)*\|[^}]*?\}\}/;
// used parameters
var usedParams = {};
// get used params
var template = document.getElementById("wpTextbox1").value.match(findTemplate);
var params = template[0].slice(0,template[0].length-2).split("\n|");
for (var i=1; i < params.length; i++)
{
// split doesn't work here
var eqpos = pos = params[i].search("=");
if (eqpos == -1)
continue;
var arr = [params[i].slice(0,eqpos), params[i].slice(eqpos+1)];
usedParams[arr[0].removeHTMLComments().strip()] = arr[1].replace(/(^[ \t]+|[\s\n]+$)/g,"");
}
// get supported params
var getPreloadText = new Ajax.Request
(
"http://kamelopedia.mormo.org/index.php",
{
method:"get",
parameters: "title=Vorlage:Kamelionary/preload&action=raw",
onSuccess: function (trans)
{
var suppText = trans.responseText.replace(/<[\/]?pre>/g, "");
var suppTemplate = suppText.match(findTemplate);
var suppParams = suppTemplate[0].split("\n|");
var resulttext = "{{Kamelionary";
for (var i=1; i < suppParams.length; i++)
{
var arr = suppParams[i].split("=");
if (arr.length < 2)
continue;
var p = arr[0].removeHTMLComments().strip();
if ( withcomments )
pn = arr[0];
else
pn = arr[0].removeHTMLComments();
resulttext += "\n|" + pn + "= ";
if (usedParams[p] != null)
resulttext += usedParams[p];
}
resulttext += "\n}}"
var tb = document.getElementById("wpTextbox1");
tb.value = tb.value.replace(findTemplate,resulttext);
//show the ok in the textbox
tb.style.backgroundColor = "#ddffcc";
setTimeout(function () { tb.style.backgroundColor = "white"; }, 1000);
}
}
);
}