MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus LuftGeo
Zur Navigation springen Zur Suche springen
 
Zeile 227: Zeile 227:
 
document.getElementById("mw-head").insertBefore(titelzeile, document.getElementById("mw-head").firstChild);
 
document.getElementById("mw-head").insertBefore(titelzeile, document.getElementById("mw-head").firstChild);
 
}
 
}
z1 = Titeltext ("LUFTGEOGRAPHIE, BILDMESS-, KARTEN- UND VERMESSUNGSWESEN IN DEN DEUTSCHEN LUFTSTREITKRÄFTEN 1888-2002", "studientitel1");
+
z1 = Titeltext ("LUFTGEOGRAPHIE, BILDMESS-, KARTEN- UND VERMESSUNGSWESEN IN DEN DEUTSCHEN LUFTSTREITKRÄFTEN 1888–2002", "studientitel1");
z2 = Titeltext ("AIR GEOGRAPHY, PHOTOGRAMMETRY, CHARTING AND SURVEYING IN THE GERMAN AIR FORCES 1888-2002", "studientitel2");
+
z2 = Titeltext ("AIR GEOGRAPHY, PHOTOGRAMMETRY, CHARTING AND SURVEYING IN THE GERMAN AIR FORCES 1888–2002", "studientitel2");
 
z3 = Titeltext ("von Oberregierungsrat a. D. Vermessungsassessor Dipl.-Ing. Winfried Schrödter", "studientitel3");
 
z3 = Titeltext ("von Oberregierungsrat a. D. Vermessungsassessor Dipl.-Ing. Winfried Schrödter", "studientitel3");
  

Aktuelle Version vom 4. Mai 2021, 15:45 Uhr

/* ┌────────────────────────────────────────────────────────┐
   │ Das folgende JavaScript wird für alle Benutzer geladen.│
   ├────────────────────────────────────────────────────────┤
   │  Tabstop zum Kopieren: "	"                           │
   │  Javascript-Loader zum Kopieren (z.B.f.Chronik):       │
   │  mw.loader.load( '/w/index.php?title=MediaWiki:Chronik.js&action=raw&ctype=text/javascript' );
   └────────────────────────────────────────────────────────┘ */

/* ╔════════════════════════════════════════════════════════╗
   ║                         HAUPTTEIL                      ║
   ╚════════════════════════════════════════════════════════╝ */
/* ┌────────────────────────────────────────────────────────┐
   │ vorläufig ausblenden, bis alle Bilder beschriftet sind │
   └────────────────────────────────────────────────────────┘ */
if (window.document.title.indexOf("Common") < 0) { /* sonst wird sogar hier gelöscht!? */
	document.body.innerHTML = document.body.innerHTML.replace(/Datei hochgeladen mit MsUpload/gi, "");
}

/* ╔═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╗ */
if (document.body.className.indexOf("Biographien") > 0) {
/* ┌────────────────────────────────────────────────────────┐
   │ Icons für Fachrichtung, Grad, Status und Rang          │
   │ für Liste in [[Namen und Biographien]]                 │
   ├────────────────────────────────────────────────────────┤
   │       class="Fachm Fach Status [Rang] [Wiss.Grad]", z. B.
   │ <span class="Fachm Phot Ing            Dr        "  id="Aschenbrenner">
   │ 	<img class="Fachr FachStat" src="/LuftGeo/images/Fachr/Fachr_StatusIng.GIF">
   │ 	<img class="Fachr FachRang" src="/LuftGeo/images/Fachr/Fachr_Rang.GIF">
   │ 	<img class="Fachr FachGrad" src="/LuftGeo/images/Fachr/FachrPhotDr.GIF">
   │ </span>
   │ wobei                                                  │
   │ Fach:      Phot, Verm, Kart, Geog, Sonst, Geol, PflSoz │
   │ Status:    Mil  (Soldaten, Sonderführer)               │
   │            Ziv  (Bea, Ang)                             │
   │            Ing  (Ing-Korps)                            │
   │ Rang:      Spit (Gen, MinR)                            │
   │            Unt  (Uffz, Mannsch/mittl., einf. Bea/Ang)  │
   │ Grad:      Dr                                          │
   │            ProfDr                                      │
   └────────────────────────────────────────────────────────┘ */
	indiv  = document.getElementsByClassName("Fachm");
	/* h3 geht nicht mehr, weil unterhalb von h3 viele geschachtelte spans liegen! */
	srcPfad = "/LuftGeo/images/Fachr/";
	for (ii=0; ii<indiv.length; ii++) {
		// <span class="Fachm Fach Status [Rang] [Wiss.Grad]">
		iFSRG = indiv[ii].className.split(" ");
		iFach =              iFSRG[1]     ; // 7 Fachrichtungen...
		iStat =              iFSRG[2]     ; // 3 Status
		i_R_G = (iFSRG[3]) ? iFSRG[3] : ""; // 2 Ränge ODER 2  Grade
		iGrad = (iFSRG[4]) ? iFSRG[4] : ""; // EVTL (ohne + 2) Grade * 7 Fachr. = 21 Icons
	/* Status: das unterste Icon: 3 Hintergründe */
		imgStat           = document.createElement("img");
		imgStat.className = "Fachr FachStat";
		imgStat.src       = srcPfad + "Fachr_Status" + iStat + ".GIF";
		indiv[ii].appendChild(imgStat);
	/* Rang oder Grad: das mittlere Icon: 3 Ränder */
		imgRang           = document.createElement("img");
		imgRang.className = "Fachr FachRang";
		if (i_R_G.indexOf("t") > 0) { // t nur in Unt + Spit, nicht in Dr + ProfDr
			iRang     = i_R_G;
		} else {
			iRang     = "";
			iGrad     = i_R_G;
		}
		imgRang.src       = srcPfad + "Fachr_Rang" + iRang + ".GIF";
		indiv[ii].appendChild(imgRang);
	/* Fach und Grad: das oberste Icon: 7 Symbole in 3 Farben */
		imgGrad           = document.createElement("img");
		imgGrad.className = "Fachr FachGrad";
		imgGrad.src       = srcPfad + "Fachr" + iFach + iGrad + ".GIF";
		indiv[ii].appendChild(imgGrad);
	}

/* ┌────────────────────────────────────────────────────────┐
   │ Statistik mit Icons                                    │
   │ in [[Namen und Biographien]]                           │
   └────────────────────────────────────────────────────────┘ */
/* ╠ noch Biographien, nur nicht ordentlich eingerückt ═ ═ ═╣ */
// Bilden des 4D-Arrays:
ANZ = new Object();
ANZ['Phot']   = 0;
ANZ['Verm']   = 0;
ANZ['Kart']   = 0;
ANZ['Geog']   = 0;
ANZ['Sonst']  = 0;
ANZ['Geol']   = 0;
ANZ['PflSoz'] = 0;
ANZ['SumFachr']	= 0;
for (i in ANZ) { 
	ANZ[i] = new Object();
	ANZ[i]['Mil'] = 0;
	ANZ[i]['Ziv'] = 0;
	ANZ[i]['Ing'] = 0;
	ANZ[i]['SumStat'] = 0;
	for (j in ANZ[i]) { 
		ANZ[i][j] = new Object();
		ANZ[i][j]['Spit']     = 0;
		ANZ[i][j]['ohneRang'] = 0;
		ANZ[i][j]['Unt']      = 0;
		ANZ[i][j]['SumRang'] = 0;
		for (k in ANZ[i][j]) { 
			ANZ[i][j][k] = new Object();
			ANZ[i][j][k]['ProfDr']   = 0;
			ANZ[i][j][k]['Dr']       = 0;
			ANZ[i][j][k]['ohneGrad'] = 0;
			ANZ[i][j][k]['SumGrad'] = 0;
			for (l in ANZ[i][j][k]) { // ob nötig oder nicht
				ANZ[i][j][k][l] = 0;
			}
		}
	}
}

/* ╠ noch Biographien, nur nicht ordentlich eingerückt ═ ═ ═╣ */
// Schleife für Summenbildung
// evtl. schon vorhandene Schleife für Logos verwenden!
indiv  = document.getElementsByClassName("Fachm");
for (ii=0; ii<indiv.length; ii++) {
	FSRG = indiv[ii].className.split(" ");
	ifach =  FSRG[1];                // 7 + 1 Fachrichtungen
	istat =  FSRG[2];                // 3     Status ----- WERT UND SPALTE "WECHSELND" EINRICHTEN?
	igrad = (FSRG[4]) ? FSRG[4] : "ohneGrad";
	if      (FSRG[3]) {
		if (FSRG[3].indexOf("t") > 0) {
			irang = FSRG[3]; // 2 + 1 Ränge, da t nur in Unt, Spit
		} else {
			irang = "ohneRang";
			igrad = FSRG[3]; // 2 + 1 Grade
		}
	} else {
		irang = "ohneRang";
	}
	ANZ[ifach][istat][irang][igrad]++;

	// Summen der Summen:
	ANZ['SumFachr'][istat][irang][igrad]++;
	ANZ[ifach]['SumStat'][irang][igrad]++;
	ANZ[ifach][istat]['SumRang'][igrad]++;
	ANZ[ifach][istat][irang]['SumGrad']++;

	ANZ['SumFachr']['SumStat'][irang][igrad]++;
	ANZ['SumFachr'][istat]['SumRang'][igrad]++;
	ANZ['SumFachr'][istat][irang]['SumGrad']++;
	ANZ[ifach]['SumStat']['SumRang'][igrad]++;
	ANZ[ifach]['SumStat'][irang]['SumGrad']++;
	ANZ[ifach][istat]['SumRang']['SumGrad']++;

	ANZ['SumFachr']['SumStat']['SumRang'][igrad]++;
	ANZ['SumFachr']['SumStat'][irang]['SumGrad']++;
	ANZ['SumFachr'][istat]['SumRang']['SumGrad']++;
	ANZ[ifach]['SumStat']['SumRang']['SumGrad']++;

	ANZ['SumFachr']['SumStat']['SumRang']['SumGrad']++;
}

/* ╠ noch Biographien, nur nicht ordentlich eingerückt ═ ═ ═╣ */
// Schleife für Zellen-Eintrag und Logo [[File:FachrPhotProfDr.GIF]]
indiv  = document.getElementsByClassName("Anzahl");
for (ii=0; ii<indiv.length; ii++) {
	aa = indiv[ii].className.split(" "); // aa[0] = class "Anzahl"
	if (aa[1] != "SumFachr" && aa[2] == "SumStat" && aa[3] == "SumRang" && aa[4] != "SumGrad") {
		bb = document.createElement("img");
		bb.src = "/LuftGeo/images/Fachr/Fachr" + aa[1] + ((aa[4]=="ohneGrad")?"":aa[4]) + ".GIF";
		indiv[ii].insertBefore(bb, indiv[ii].firstChild);
	}
	zz = ANZ[aa[1]][aa[2]][aa[3]][aa[4]];
	zelleneintrag = (zz == 0) ? "-" : zz;
	indiv[ii].insertBefore(document.createTextNode(zelleneintrag), indiv[ii].firstChild);
}

/* ┌────────────────────────────────────────────────────────┐
   │ Namen und Biographien + Vorlage:Erika_b                │
   │ Suche nach Erwähnungen bei Namen ohne Einzelseite      │
   └────────────────────────────────────────────────────────┘ */
/* ╠ noch Biographien ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╣ */
	linkCalledErika = document.getElementsByTagName("a");
	for (i=0; i<linkCalledErika.length; i++) {
		if (linkCalledErika[i].href.indexOf("Platzhalter") > 0) {
			nameForLinkCalledErika = linkCalledErika[i].parentNode.parentNode.getElementsByTagName("td")[0].textContent.split(",")[0]; // firstChild =/= erstes TD!? 
			linkCalledErika[i].href = linkCalledErika[i].href.replace(/Platzhalter/, nameForLinkCalledErika);
		}
	}
} /* ENDE Biographien
   ╚═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ╝ */

/* ┌────────────────────────────────────────────────────────┐
   │ Chronik auswählen für Fachthemen im Zusammenhang mit   │
   │ Luftgeographische Bearbeitungen                        │
   └────────────────────────────────────────────────────────┘ */
/* kein js, sondern je 1 eigener Artikel, Transklusion der zentralen Chronik, Kategorie als class und Auswahl durch artikeleigenes {{#css: td.class display: none */

/* ┌────────────────────────────────────────────────────────┐
   │ Montage 1:1 Mill. - Klick zum Umschalten               │
   └────────────────────────────────────────────────────────┘ */
if (document.getElementById("buttonMaszstabswechsel")) {
	buttonMW = document.getElementById("buttonMaszstabswechsel");
	window.addEventListener('loadeddata', Maszstabswechselanzeige); 
	// Was nirgendwo steht: 
	// Wenn mit diesem Funktionsaufruf ein Argument übergeben wird, löst das Ereignis automatisch aus!
	function Maszstabswechselanzeige() { 
		buttonMW.innerHTML = "Vergrößern (2°×2° = 1000×770 Pixel)";
	}
	buttonMW.addEventListener('click', Maszstabswechsel);
	function Maszstabswechsel() { 
		if (document.getElementById("Montage1zu1Million").className == "b0200") {
			document.getElementById("Montage1zu1Million").className = "b1000";
			buttonMW.innerHTML = "Verkleinern (2°×2° = 200×154 Pixel)";
		} else {
			document.getElementById("Montage1zu1Million").className = "b0200";
			buttonMW.innerHTML = "Vergrößern (2°×2° = 1000×770 Pixel)";
		}
	}
}

/* ╔════════════════════════════════════════════════════════╗
   ║                    ENDE: HAUPTTEIL                     ║
   ╚════════════════════════════════════════════════════════╝ */
/* ╔════════════════════════════════════════════════════════╗
   ║              THEMA IM SEITENKOPF ANZEIGEN              ║
   ╚════════════════════════════════════════════════════════╝ */
function Titeltext (tt,ttid) {
	titelzeilett = document.createTextNode(tt);
	titelzeile = document.createElement("p");
	titelzeile.className = "studientitel";
	titelzeile.id = ttid;
	titelzeile.appendChild(titelzeilett);
	document.getElementById("mw-head").insertBefore(titelzeile, document.getElementById("mw-head").firstChild);
}
z1 = Titeltext ("LUFTGEOGRAPHIE, BILDMESS-, KARTEN- UND VERMESSUNGSWESEN IN DEN DEUTSCHEN LUFTSTREITKRÄFTEN 1888–2002", "studientitel1");
z2 = Titeltext ("AIR GEOGRAPHY, PHOTOGRAMMETRY, CHARTING AND SURVEYING IN THE GERMAN AIR FORCES 1888–2002", "studientitel2");
z3 = Titeltext ("von Oberregierungsrat a. D. Vermessungsassessor Dipl.-Ing. Winfried Schrödter", "studientitel3");

/* ╔════════════════════════════════════════════════════════╗
   ║                         SIDEBAR                        ║
   ╚════════════════════════════════════════════════════════╝ */
// Button zum Volksbund
	vbdiv			= document.createElement("div");
	vbdiv.className		= "seitenleistenbutton";
	vbdiv.title		= "Der Volksbund deutsche Kriegsgräberfürsorge\nerfasst, erhält und pflegt die Gräber\nder deutschen Kriegstoten im Ausland";
		vba			= document.createElement("a");
		vba.href		= "https://www.volksbund.de/";
			vbimg			= document.createElement("img");
			vbimg.src		= "/w/images/logo/sidebar_Volksbund.jpg";
		vba.appendChild(vbimg);
	vbdiv.appendChild(vba);
document.getElementById("mw-panel").insertBefore(vbdiv, document.getElementById("p-tb"));

/* ╔════════════════════════════════════════════════════════╗
   ║                        FOOTER                          ║
   ╚════════════════════════════════════════════════════════╝ */
/* ┌────────────────────────────────────────────────────────┐
   │      ZÄHLER-Startdatum April 2020 setzen               │
   └────────────────────────────────────────────────────────┘ */
zaehlerTXT  = document.getElementById("footer-info-viewcount").innerText.split("bisher");
zaehlerTXT1 = zaehlerTXT[1].split("mal");
zaehlerTXTn = zaehlerTXT[0] + "seit April 2020 " + zaehlerTXT1[0].trim() + "-mal" + zaehlerTXT1[1];
document.getElementById("footer-info-viewcount").innerText = zaehlerTXTn;

/* ┌────────────────────────────────────────────────────────┐
   │  Impressum so beschriften, Duplikat löschen            │
   └────────────────────────────────────────────────────────┘ */
ueberwestwiki = document.getElementById("footer-places-about");
ueberwestwiki.parentNode.removeChild(ueberwestwiki);

impressum = document.createTextNode("Impressum");
haftungsa = document.getElementById("footer-places-disclaimer");
// 1 Kind: <a>, 1 Enkel: Beschriftung "Haftungsausschluss"
haftungsa.firstChild.replaceChild(impressum, haftungsa.firstChild.firstChild);

/* ╔════════════════════════════════════════════════════════╗
   ║                 TOOLBAR CUSTOMIZATION                  ║
   ║ www.mediawiki.org/wiki/Extension:WikiEditor            ║
   ╚════════════════════════════════════════════════════════╝ */
var customizeToolbar = function () {
	/* Your code goes here */
$('#wpTextbox1').wikiEditor('addToToolbar', {
	section: 'main',
	group: 'insert',
	tools: {
		"vorlageklammern": {
			label: 'Vorlage',
			type: 'button',
 			icon: '/LuftGeo/images/WikiEditorButtons/Wikieditor-Vorlage.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{xxx|",
					post: "}}"
				}
			}
		},
		"WPLink": {
			label: 'Link zur Wikipedia',
			type: 'button',
 			icon: '/LuftGeo/images/WikiEditorButtons/Wikieditor-Wikipedia.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{w|",
					post: "}}"
				}
			}
		},
		"KategorieTag": {
			label: '[[Kategorie:]]',
			type: 'button',
 			icon: '/LuftGeo/images/WikiEditorButtons/Wikieditor-Kategorie.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "[[Kategorie:",
					post: "]]"
				}
			}
		},
		"refTag": {
			label: '<ref></ref>',
			type: 'button',
 			icon: '/LuftGeo/images/WikiEditorButtons/Wikieditor-ref.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "<ref>",
					post: "</ref>"
				}
			}
		},
		"referencesTag": {
			label: '<references />',
			type: 'button',
 			icon: '/LuftGeo/images/WikiEditorButtons/Wikieditor-references.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "<references />"
				}
			}
		}
	}
});
	/* My code goes up to here */
};

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
	mw.loader.using( 'user.options' ).then( function () {
		// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
		if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'ext.wikiEditor' ), $.ready
			).then( customizeToolbar );
		}
	} );
/* ╔════════════════════════════════════════════════════════╗
   ║               Ende: Toolbar Customization              ║
   ╚════════════════════════════════════════════════════════╝ */
}