MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Westmärker Wiki
Zur Navigation springen Zur Suche springen
Zeile 167: Zeile 167:
 
// Jahr und Monat auch fett wenn nicht automatisch
 
// Jahr und Monat auch fett wenn nicht automatisch
 
kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
 
kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
//alert("Test: "+ kalenderseitenname[4] + " =? "+document.getElementsByClassName(kalenderseitenname[4])[1].className);
+
alert("Test: "+ kalenderseitenname[4] + " =? "+document.getElementsByClassName(kalenderseitenname[4])[1].className);
 
document.getElementsByClassName(kalenderseitenname[4])[0].style.fontWeight = "bold";
 
document.getElementsByClassName(kalenderseitenname[4])[0].style.fontWeight = "bold";
 
if (document.getElementsByClassName(kalenderseitenname[4])[1]) {
 
if (document.getElementsByClassName(kalenderseitenname[4])[1]) {
Zeile 180: Zeile 180:
  
 
// "Nächstes Kalenderblatt"
 
// "Nächstes Kalenderblatt"
// per Vorlage versuchen
+
// per Vorlage zu suchen versuchen
 +
// (derzeit Eingabe in den Aufruf der Vorlage:Kalendernaechste nötig)
  
 
// ───────────────────────────────────────────────
 
// ───────────────────────────────────────────────

Version vom 23. November 2019, 13:26 Uhr

/* ┌────────────────────────────────────────────────────────┐
   │ Das folgende JavaScript wird für alle Benutzer geladen.│
   ├────────────────────────────────────────────────────────┤
   │  Tabstop zum Kopieren: "	"                           │
   └────────────────────────────────────────────────────────┘ */

/* ┌────────────────────────────────────────────────────────┐
   │ Für normale Nutzer Verwirrendes ausblenden:            │
   ├────────────────────────────────────────────────────────┤
   │ a) mangels Diskussion für alle ausblenden:             │
   └────────────────────────────────────────────────────────┘ */
document.getElementById("left-navigation").style.visibility = "hidden";
/* ┌────────────────────────────────────────────────────────┐
   │ b) ausblenden, aber nicht für mich:                    │
   └────────────────────────────────────────────────────────┘ */
if (document.getElementById("p-personal").innerText.indexOf("Ahnenfan") < 0) { 
	var ichbins = false;
	document.getElementById("p-personal").style.visibility = "hidden"; 
	document.getElementById("p-views"   ).style.visibility = "hidden"; 
	document.getElementById("p-cactions").style.visibility = "hidden"; 
} else {
	var ichbins = true;
} 

KTBok             = false;
Artikelkategorien = mw.config.get( 'wgCategories' );
for (i=0; i<Artikelkategorien.length; i++) {
	if (Artikelkategorien[i] == "Tagebuchfragmente") KTBok = true;
}
if (KTBok) { 
/* ╔═════════════════════════════════════════════╗
   ║                                             ║
   ║          HAUPTBEREICH FÜR TAGEBUCH          ║
   ║                                             ║
   ╚═════════════════════════════════════════════╝
<nowiki>
Zum Aktivieren der Tagebuchstyles.css und automatischen Eintrag der Kategorie 
auf jede Seite oben

{{KTB}}

eingeben.
</nowiki>
*/


// ───────────────────────────────────────────────
// xxx shortcut icon/favicon ist im IE nicht dynamisch änderbar,
// vgl. https://github.com/HenrikJoreteg/favicon-setter!
// Deshalb klappten alle diese Methoden nicht:
/* 1. Methode: shortcuticon = document.getElementsByTagName("link");
for (i=0; i<shortcuticon.length; i++)
{
	if (shortcuticon[i].href.indexOf("westlogo.ico") > 0) {
		shortcuticon[i].href = "http://vexilli.net/1HP/Tagebuchfragmente/favicon.ico";
	}
} */
// 2. Methode: $wgFavicon = "http://vexilli.net/1HP/Tagebuchfragmente/favicon.ico";
// 3. Methode: document.body.innerHTML = document.body.innerHTML.replace(/w\/westlogo.ICO/g, "1HP/Tagebuchfragmente/favicon.ico");

// ───────────────────────────────────────────────
// xxx Titel erweitern geht leider auch nicht:
// document.head.title.replace(/–/, "– Tagebuch-Fragmente aus dem zweiten Weltkrieg –";

// ───────────────────────────────────────────────
// Link für Logo oben links (Bild wird in [[Tagebuchstyles.css]] gesetzt):
// KTBLINK zur früheren HTML-Homepage war: "https://vexilli.net/1HP/Tagebuchfragmente/index.html";
KTB     = "Tagebuch-Fragmente<br />aus dem<br />zweiten Weltkrieg";
KTBLINK = "/w/" + KTB.split("<br />").join(" ");
document.getElementById("p-logo").firstChild.href  = KTBLINK;
document.getElementById("p-logo").firstChild.title = KTB.split("<br />").join("\n");
hpdiv = document.createElement("div");
hpdiv.className   = "zurueck_zur_homepage";
hpdiv.style.width = "160px";
hpp = document.createElement("p");
hpp.style.fontSize   = "12pt";
hpp.style.fontWeight = "bold";
hpp.style.fontFamily = "serif";
hpp.style.textAlign  = "center";
hpa = document.createElement("a");
hpa.href      = KTBLINK;
hpa.innerHTML = KTB;
hpp.appendChild(hpa);
hpdiv.appendChild(hpp);
document.getElementById("mw-panel").appendChild(hpdiv);


/* ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
   │ Wichtig: Formulierung der Links im DOCX:                                                      │
   ├───────────────────────────────────────────────────────────────────────────────────────────────┤
   │ 1. Der Hash muss statt mit # mit %23 codiert werden, damit die Ansteuerung der Anker von der  │
   │    PDF im Netz aus funktioniert!                                                              │
   │ 2. Dann folgt eine ID, die mit der im Artikel übereinstimmen muss.                            │
   │ DER FOLGENDE REST HAT SICH LEIDER ERLEDIGT.                                                   │
   │ 2. Dann folgt der Bildname ohne Extension.                                                    │
   │ 3. Das ] hinter einem Datum muss (in den wenigen vorkommenden Fällen) durch - ersetzt werden, │
   │    weil das auch beim Import der Fotos ins Wiki so passiert ist, es aber noch andere Binde-   │
   │    striche gibt,die nicht ersetzt werden dürfen, was eine Automatik unheimlich schwer macht.  │
   └───────────────────────────────────────────────────────────────────────────────────────────────┘ */
/* xxx aus Bildnamen Anker machen GEHT NICHT, DA ERST DER ARTIKEL GELADEN WIRD UND DIESE ANKER, WENN ÜBERHAUPT, ZU SPÄT ERSCHEINEN, ALSO ALLE VON HAND SETZEN; DANN SIND DIE IDs ABER AUCH BELIEBIG
bild = document.getElementsByClassName("gallerybox");
alert(bild.length);
for (i=0; i<bild.length; i++) {
	bh = bild[i].firstChild.firstChild.firstChild.firstChild.href;
	bi = bh.substring(bh.lastIndexOf(":")+1, bh.lastIndexOf("."));
	// beim Import erfolgte Änderungen rückgängig machen:
	// NEIN, weil der URL durch Wiki immer von leer auf _ gesetzt wird: bi = bi.replace(/_/g, " "); 
	bi = bi.replace(/%C3%84/g, "Ä"); // Quelle: https://www.w3schools.com/tags/ref_urlencode.asp
	bi = bi.replace(/%C3%96/g, "Ö"); // nicht mehr geprüft, ob nötig
	bi = bi.replace(/%C3%9C/g, "Ü");  
	bi = bi.replace(/%C3%9F/g, "ß");  
	bi = bi.replace(/%C3%A4/g, "ä");  
	bi = bi.replace(/%C3%B6/g, "ö");  
	bi = bi.replace(/%C3%BC/g, "ü");  
	bc = bild[i].firstChild.lastChild.firstChild;
	anker = document.createElement("span");
	anker.id = bi;
	bc.appendChild(anker);
}
*/

// ───────────────────────────────────────────────
// Weil ein Sprung vom Dokument zu einem Bild im Fotoalbum auf die Caption unter dem Bild führt
// und das Bild oben verschwindet, muss die Seite um die Bildhöhe nach unten geschoben werden:
if(document.title.indexOf("Foto") > 0) window.scrollBy(0, -340);
// Leider empfängt Wiki keinen referrer von der PDF, daher geht diese genauere Formel nicht: 
//if(document.referrer.indexOf("tagebuch") > 0 && document.referrer.indexOf(".pdf") > 0 && document.title.indexOf("Foto") > 0) window.scrollBy(0, -340);

// ───────────────────────────────────────────────
// Farben für die Galeriebilder (??? VERSTEH' ICH SCHON NICHT MEHR ????)
/*   Farben-classes:
TgbT grün solid  Tagebuch
TgbD grün dotted Dokumenten und Objekten
TgbA blau solid  Album des Autors
TgbS blau dotted Sammlung des Autors
TgbZ gelb solid  zusätzliche Erwerbungen des Herausgebers
TgbK gelb dotted Kartenmontagen/-bearbeitungen des Herausgebers */

bild = document.getElementsByClassName("gallerybox");
for (i=0; i<bild.length; i++) {
	bildspan = bild[i].getElementsByTagName("span")
	if (bildspan.length == 1) {
		bild[i].className = bild[i].className + " " + bildspan[0].className;

		// nur für mich: zusätzliche Textzeile mit Link zum Galeriebild mittels ID
		if (ichbins) { 
			link0 = "https://vexilli.net/w/Tagebuch-Fotos%23";
			hashtag0 = bild[i].getElementsByTagName("span")[0].id;
			linkmitid0 = link0 + hashtag0;
			if (hashtag0 == "") linkmitid0 = "noch ohne ID";
			linkmitid1 = document.createElement("p");
			linkmitid1.style.fontSize = "7pt";
			linkmitid2 = document.createTextNode(linkmitid0);
			linkmitid1.appendChild(linkmitid2);
			bildspan[0].appendChild(linkmitid1);
		}
	}
}

// ───────────────────────────────────────────────
if (document.location.href.indexOf("194") > 0) {

/* ┌────────────────────────────────────────────────────────┐
   │ KTB-Kalender-Seiten                                    │
   └────────────────────────────────────────────────────────┘ */

// Jahr und Monat auch fett wenn nicht automatisch
	kalenderseitenname = document.location.href.split("/"); // 4=J,5=M,6=T
alert("Test: "+ kalenderseitenname[4] + " =? "+document.getElementsByClassName(kalenderseitenname[4])[1].className);
	document.getElementsByClassName(kalenderseitenname[4])[0].style.fontWeight = "bold";
	if (document.getElementsByClassName(kalenderseitenname[4])[1]) {
		document.getElementsByClassName(kalenderseitenname[4])[1].style.fontWeight = "bold";
	}
	if (kalenderseitenname[5]) {
		document.getElementsByClassName(kalenderseitenname[5])[0].style.fontWeight = "bold";
		if (document.getElementsByClassName(kalenderseitenname[5])[1]) {
			document.getElementsByClassName(kalenderseitenname[5])[1].style.fontWeight = "bold";
		}
	}

// "Nächstes Kalenderblatt"
// per Vorlage zu suchen versuchen
// (derzeit Eingabe in den Aufruf der Vorlage:Kalendernaechste nötig)

// ───────────────────────────────────────────────
// Weiches Trennzeichen ¬ (U+00AC) aus den Rohtexten entfernen
document.getElementsByTagName("body")[0].innerHTML = document.getElementsByTagName("body")[0].innerHTML.replace(/[¬\u00AC]/g, "");

/* ┌────────────────────────────────────────────────────────┐
   │ Ende KTB-Kalender-Seiten                               │
   └────────────────────────────────────────────────────────┘ */
}

/* ╔═════════════════════════════════════════════╗
   ║       ENDE: HAUPTBEREICH FÜR TAGEBUCH       ║
   ╚═════════════════════════════════════════════╝ */
}

/* ╔═════════════════════════════════════════════╗
   ║          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: '//upload.wikimedia.org/wikipedia/commons/8/86/Wikieditor-template.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{xxx|",
					post: "}}"
				}
			}
		},
		"WPLink": {
			label: 'Link zur Wikipedia',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-template-WP.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{w|",
					post: "}}"
				}
			}
		},
		"KategorieTag": {
			label: '[[Kategorie:]]',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-Kategorie.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "[[Kategorie:",
					post: "]]"
				}
			}
		},
		"KalendernavigationTag": {
			label: '{{Kalendernavigation}}',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/KalNav.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{Kalendernavigation}}"
				}
			}
		},
		"KalendernaechsteTag": {
			label: '{{Kalendernaechste}}',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/KalNext.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "{{Kalendernaechste|}}"
				}
			}
		},
		"refTag": {
			label: '<ref></ref>',
			type: 'button',
 			icon: '/w/images/WikiEditorButtons/Wikieditor-ref.png',
			action: {
				type: 'encapsulate',
				options: {
					pre: "<ref>",
					post: "</ref>"
				}
			}
		},
		"referencesTag": {
			label: '<references />',
			type: 'button',
 			icon: '/w/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        ║
   ╚═════════════════════════════════════════════╝ */

//[[Kategorie:Tagebuchfragmente]]