MediaWiki:Skin/KamelionaryEdit.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
(tippfeeler)
Zeile 35: Zeile 35:
 
{
 
{
  
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'.") )
+
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;
 
     return;
  
Zeile 65: Zeile 65:
 
    var suppText = trans.responseText.replace(/<[\/]?pre>/g, "");
 
    var suppText = trans.responseText.replace(/<[\/]?pre>/g, "");
 
    var suppTemplate = suppText.match(findTemplate);
 
    var suppTemplate = suppText.match(findTemplate);
            alert(suppTemplate);
 
 
             var suppParams = suppTemplate[0].match(findParams);
 
             var suppParams = suppTemplate[0].match(findParams);
 
             var resulttext = "{{Kamelionary";
 
             var resulttext = "{{Kamelionary";
            alert("Loop");
 
 
             for (var i=0; i < suppParams.length; i++)
 
             for (var i=0; i < suppParams.length; i++)
 
             {
 
             {
Zeile 82: Zeile 80:
 
             }
 
             }
 
             resulttext += "\n}}";
 
             resulttext += "\n}}";
            alert(resulttext);
 
 
             document.getElementById("wpTextbox1").value = resulttext;
 
             document.getElementById("wpTextbox1").value = resulttext;
 
}
 
}

Version vom 7. Juni 2009, 19:09 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>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) 
			{
			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 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)*\|[^}]*?\}\}/;
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);
            var suppParams = suppTemplate[0].match(findParams);
            var resulttext = "{{Kamelionary";
            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}}";
            document.getElementById("wpTextbox1").value = resulttext;
	}
    }
);
}