MediaWiki:Skin/KamelionaryEdit.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) |
J* (Diskussion | Beiträge) |
||
Zeile 3: | Zeile 3: | ||
(typeof(disableKamelionaryPreload) == "undefined" || !disableKamelionaryPreload) ) | (typeof(disableKamelionaryPreload) == "undefined" || !disableKamelionaryPreload) ) | ||
insertPreload(); | insertPreload(); | ||
+ | var kd2 = document.getElementById("kat_div_2"); | ||
+ | var html = "<b>Kamelionary-Tools:</b>"; | ||
+ | html += '<div class="pseudolink" onclick="allKamelionaryParams(false)">Alle Parameter (ohne Kommentar)</div>'; | ||
+ | html += '<div class="pseudolink" onclick="allKamelionaryParams(true)">Alle Parameter (mit Kommentar) </div>'; | ||
+ | k2d.innerHTML += html; | ||
} ); | } ); | ||
Zeile 21: | Zeile 26: | ||
); | ); | ||
}; | }; | ||
+ | |||
+ | 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 falsch geschriebene Parameter gelöscht werden. Bitte überprüfe das Ergebnis mit dem Button 'Änderungen zeigen'.") ) | ||
+ | return; | ||
+ | |||
+ | var findTemplate = /\{\{Kamelionary(\s|\n)*\|[^}]*?\}\}/; | ||
+ | var findParams = /[^|{}]+=[^|{}]*/g; | ||
+ | |||
+ | // used parameters | ||
+ | var usedParams = {}; | ||
+ | |||
+ | // get used params | ||
+ | var template = document.getElementById("wpTextbox1").value.match(findTemplate); | ||
+ | var params = template[0].match(findParams); | ||
+ | |||
+ | for (var i=0; i < params.length; i++) | ||
+ | { | ||
+ | var arr = params[i].split("="); | ||
+ | usedParams[arr[0].removeHTMLComments().strip()] = arr[1].strip(); | ||
+ | } | ||
+ | |||
+ | // 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); | ||
+ | alert(suppTemplate); | ||
+ | var suppParams = suppTemplate[0].match(findParams); | ||
+ | var resulttext = "{{Kamelionary"; | ||
+ | alert("Loop"); | ||
+ | for (var i=0; i < suppParams.length; i++) | ||
+ | { | ||
+ | var arr = suppParams[i].split("="); | ||
+ | var p = arr[0].removeHTMLComments().strip(); | ||
+ | if ( withcomments ) | ||
+ | pn = arr[0].strip(); | ||
+ | else | ||
+ | pn = p; | ||
+ | resulttext += "\n| " + pn + " = "; | ||
+ | if (usedParams[p] != null) | ||
+ | resulttext += usedParams[p]; | ||
+ | } | ||
+ | resulttext += "\n}}"; | ||
+ | alert(resulttext); | ||
+ | document.getElementById("wpTextbox1").value = resulttext; | ||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | } |
Version vom 7. Juni 2009, 18:58 Uhr
addOnloadHook( function () {
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 class="pseudolink" onclick="allKamelionaryParams(false)">Alle Parameter (ohne Kommentar)</div>';
html += '<div class="pseudolink" onclick="allKamelionaryParams(true)">Alle Parameter (mit Kommentar) </div>';
k2d.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)
{
preloadText = trans.responseText.replace(/<[\/]?pre>/g, "");
document.getElementById("wpTextbox1").value = preloadText;
}
}
);
};
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 falsch geschriebene Parameter gelöscht werden. Bitte überprüfe das Ergebnis mit dem Button 'Änderungen zeigen'.") )
return;
var findTemplate = /\{\{Kamelionary(\s|\n)*\|[^}]*?\}\}/;
var findParams = /[^|{}]+=[^|{}]*/g;
// used parameters
var usedParams = {};
// get used params
var template = document.getElementById("wpTextbox1").value.match(findTemplate);
var params = template[0].match(findParams);
for (var i=0; i < params.length; i++)
{
var arr = params[i].split("=");
usedParams[arr[0].removeHTMLComments().strip()] = arr[1].strip();
}
// 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);
alert(suppTemplate);
var suppParams = suppTemplate[0].match(findParams);
var resulttext = "{{Kamelionary";
alert("Loop");
for (var i=0; i < suppParams.length; i++)
{
var arr = suppParams[i].split("=");
var p = arr[0].removeHTMLComments().strip();
if ( withcomments )
pn = arr[0].strip();
else
pn = p;
resulttext += "\n| " + pn + " = ";
if (usedParams[p] != null)
resulttext += usedParams[p];
}
resulttext += "\n}}";
alert(resulttext);
document.getElementById("wpTextbox1").value = resulttext;
}
}
);
}