MediaWiki:Skin/Spezial:Hochladen.js

function einaus2 (inhalt, einblenden, ausblenden) { var thisLevel = document.getElementById(inhalt); var otherLevel = document.getElementById(einblenden); var linkLevel = document.getElementById(ausblenden); if (thisLevel.style.display == 'none') { thisLevel.style.display = 'block'; otherLevel.style.display = 'none'; linkLevel.style.display = 'block'; } else { thisLevel.style.display = 'none'; otherLevel.style.display = 'block'; linkLevel.style.display = 'none'; } } /* === Hochlade-Seite === */

var box; // Globale Variable var BGcolor = [ "red", "green", "gray" ]; /* * generieren der Datenstruktur aus DPL-Ergebnissen - #1: AJAX-Request */ var imgklick = new Array;

function mk_ajax {

jQuery.ajax( {		url: wgScript,		context: document.body,		dataType: "text", 		data: 'title=Kamelopedia:Bildsuche/Klick-Tpl&action=raw&templates=expand',		success: function( data, textStatus ) { gen_imgklick( data ); mkALL; }	} ); } jQuery(document).ready(function {

if (window.location.href.indexOf("wpForReUpload=1") == -1){  //nicht beim Re-Upload mk_ajax; } else { out = "Geänderten Lizenz-Kram bitte nach dem Hochladen der neuen Version durch Bearbeiten der Datei-Seite anpassen. "; jQuery('#klicktag').html(out); } });

/* * generieren der Datenstruktur aus DPL-Ergebnissen - #2: Parser */ function gen_imgklick( txt ) {

txt = txt.replace(/ *[|¦] */g, "|"); txt = txt.replace(/[\n\r]+/g, "\n" );

/* Sicherheits-Feature: HTML-Tags weg (bis auf ) */ txt = txt.replace(/[<]/g, "&lt;" ); txt = txt.replace(/[>]/g, "&gt;" ); txt = txt.replace( /&lt;br *\/? *&gt;/g, " " ); lines = txt.split( "\n" ); //alert(txt); for( i=0; i<lines.length; i++ ) {               //zeile auslesen type = lines[i].substring(0,1); lines[i] = lines[i].substring(1); elements = lines[i].split( "|" ); if( type == ";" ) // Vorlage {               if ( elements[4] == "no" ) // ignorieren-Flag gesetzt continue; if ( elements[2] == "" ) elements[2] = elements[1]; if ( ! imgklick[0] || imgklick[imgklick.length-1].name != elements[0] ) imgklick.push( { name: elements[0], arg: elements[0], prefix:elements[0], opts: [ ] } ); imgklick[imgklick.length-1].opts.push( { name: elements[2], info: elements[3], vorlage: elements[1], args: [ ], selected: elements[4] } ); }               else if( type == "*" ) // Argument {               opts = imgklick[imgklick.length-1].opts; opts[opts.length-1].args.push( { arg: elements[0], type: elements[1], info: elements[2], pre: elements[3], options: elements.slice(4) } ); }       } }

/* * Benutzer-Rückmeldungen: */ msg_OK = [	"In Ordnung.", "Aber gerne.", "Bitteschön.", "Klar doch!", "Kein Problem.", "Jawohl.", "Gerne doch." ];

// name: Wie heißt die Grundvorlage? // einfg: Wie soll sie am Anfang eingefügt werden? grundvorlage = { 	name: "Bild", einfg: "Bild\n" };

// Welches Argument ("|xxxx=") soll für die Tags verwendet werden? tag_arg = "Motiv";

// globales Prefix für Vorlagen (Grundvorlage ausgenommen) globalPrefix = "Bild/"; // globaler Separator globalSep = ": ";

/* Programmablauf */

/* * Den Nachrichtenzähler auf irgendwas setzen */ msg_OK_counter = Math.floor( Math.random * msg_OK.length );

function add_msg( obj ) {	if( obj.innerHTML == msg_OK[msg_OK_counter] ) msg_counter_up; //wirft Fehler im IE7 & 8 //obj.innerHTML = msg_OK[msg_OK_counter]; jqobj = obj; jQuery(jqobj).html(msg_OK[msg_OK_counter]); msg_counter_up; }

function msg_counter_up {	msg_OK_counter++; if ( msg_OK_counter >= msg_OK.length ) msg_OK_counter = 0; } /* * fügt zu einer Auswahl die Optionsbeschreibung und die Argumente ein. * element: nummer des Arrayelementes ( imgklick[?] ) * t: das Auswahlelement (select) */ function mk_opts( element, t ) {	out = create_opts( element, t.value ); jout = document.getElementById(imgklick[element].name+"_opt"); jQuery(jout).html(out); return true; };

/* * gibt zu einer Auswahl die Optionsbeschreibung zurück. * element: nummer des Arrayelementes imgklick[?] * val: nummer des Arrayelements imgklick[].opts[?] bzw. Nummer der Auswahl */ function create_opts( element, val ) {	var out = imgklick[element].opts[val].info + " "; var wdt;// optionale Variable für die Breite eines Eingabefeldes for ( i = 0; i"+arg.pre+" "; else if ( arg.type == "select" && imgklick[element].opts[val].args[i].options != null && imgklick[element].opts[val].args[i].options[0] != null) {

out += " " + arg.info + " "; for ( opt=0; opt<imgklick[element].opts[val].args[i].options.length; opt++ ) {

pos = imgklick[element].opts[val].args[i].options[opt].indexOf("="); var optkey; var optval;

if ( pos == -1 ) {                                        optkey = imgklick[element].opts[val].args[i].options[opt]; optval = imgklick[element].opts[val].args[i].options[opt]; }                               else {                                        optval = imgklick[element].opts[val].args[i].options[opt].substring(0,pos); optkey = imgklick[element].opts[val].args[i].options[opt].substring(pos+1); }                               var sel = ""; if ( optkey == imgklick[element].opts[val].args[i].pre ) sel = "select='selected'"; out += ""+optkey+" "; }                       out += " "; }		else {			if (imgklick[element].opts[val].args[i].options[0]) {				wdt=imgklick[element].opts[val].args[i].options[0]; }			else {				wdt="150px"; }			out += arg.info + "  "; }	}	return out; }

/* * fügt Text in die Textbox ein (eigentliches Klicktag) */ function mk_add( element ) {	obj = imgklick[element].opts[document.getElementById(imgklick[element].name+"_select").value]; var args = ""; for( i=0; i<obj.args.length; i++ ) {		args += "|" + obj.args[i].arg + "=" + document.getElementById(imgklick[element].name+"_arg_"+i).value; }	var val = "";

var arg = imgklick[element].arg; var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]"); var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n]*"+arg+"=)((.|\n|\r)*}})"); var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])"); if ( -1 == box.value.search(reg) ) { // kein Grundvorlage mk_add_g; }		document.getElementById(imgklick[element].name+"_button").style.color=BGcolor[1]; if ( -1 != box.value.search(reg_has_arg)) box.value = box.value.replace( reg_has_arg, "$1\n"+val+"$4" ); else box.value = box.value.replace( reg_hasnt_arg, "$1|"+arg+"=\n"+val+"\n$2");

add_msg( document.getElementById(imgklick[element].name+"_msg") ); }

/* * returnt eine Box zum Einfügen der übergeordneten Vorlage */ function mk_g_box {	var out = ""; out += " "; out += " "; out += " "; out += " "; out += " "; return out; }

function mk_tag_box {	var out = ""; out += " "; out += "Beschreibende Markierungen "; out += " "; out += " "; out += " "; out += " "; return out; }

function mk_add_tags {	var val = document.getElementById("tag_box").value;

var reg = new RegExp("[{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[}][}]"); var reg_has_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*([|](.|\n|\r)*)?[|][\s\n\r]*"+tag_arg+"=[\s\n\r]*)((.|\n|\r)*[}][}])"); var reg_hasnt_arg = new RegExp("([{][{]"+grundvorlage.name+"[\s\n\r]*)(([|](.|\n|\r)*)?[}][}])");

if ( -1 == box.value.search(reg) ) { // kein Grundvorlage mk_add_g; }		document.getElementById("tag_box_button").style.color=BGcolor[1]; if ( -1 != box.value.search(reg_has_arg)) box.value = box.value.replace( reg_has_arg, "$1"+val+", $4" ); else box.value = box.value.replace( reg_hasnt_arg, "$1|"+tag_arg+"=\n"+val+"\n$2"); add_msg(document.getElementById("tag_msg")); }

/* * fügt die Grundvorlage ein */ function mk_add_g {	if ( -1 == box.value.search(new RegExp("[{][{]"+grundvorlage.name+"(\s|\n|\r)*([|](.|\n|\r)*)?[}][}]")) ) {		box.value += ""; //add_msg(document.getElementById("g_msg")); //document.getElementById("text_box_button").style.color=BGcolor[2]; }	else { alert("Wiki sagt: Ich glaube, da gibt es schon eine Grundvorlage."); }		return; }

/* * am Anfang alles reinladen */

function mkALL {	box = document.getElementById("wpUploadDescription"); var klapp1 = ""; var klapp2 = "";

if ( ! box || box == null ) { // Bild wird nicht hochgeladen, sondern bearbeitet! klapp1 = " [Bild-Lizenz-Box anzeigen] [Bild-Lizenz-Box verbergen] (Hinweis: Grundvorlage muss nicht mehr per Huf eingefügt werden) "; klapp2 = " "; box = document.getElementById("wpTextbox1"); var ibox = document.createElement("div"); ibox.id = "klicktag"; tb = document.getElementById("wpTextbox1"); if ( tb ) tb.parentNode.insertBefore(ibox, tb); else box.parentNode.insertBefore(ibox, box); }	if ( ! box || box == null ) {		return; }

var out = ""; //out += mk_g_box; //---	for ( e=0; eAngaben zur "+ imgklick[e].name + " "; out += " "; out += " "; out += " "; out += " "; }

//---	out += mk_tag_box; jout = klapp1 + " " + out + " " + klapp2; jQuery('#klicktag').html(jout); };