MediaWiki:Common.js

Aus Cryptshare Documentation
Version vom 10. Juli 2023, 08:29 Uhr von Rillingf (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
function markAnonymousUser() {
	if ($("#pt-login").length > 0) {
		$(document.body).addClass("anonymous");
	}
}

$(document).ready(function () {
	PageTitle.showTitle()
	markAnonymousUser()
	SideBar.updateSelectedMenuItem()
});

var SideBar = {
	normalizeName : function(name) {
		var normalizedName = name.replaceAll("_", " ")
		normalizedName = normalizedName.replaceAll("%26", "&")
		normalizedName = normalizedName.replaceAll("%2B", "+")
		return normalizedName
	},
	escapeQuotes : function(value) {
		return value.replaceAll('"', '\"')
	},
	getPageName : function(url) {
		// Only consider the part after the last slash
		var pageName = url.substring(url.indexOf("/") + 1)

		var pos = pageName.indexOf(":")
		var endPositions = ["?", "&", "#"]
		var lastPos
		for (var i = 0;i < endPositions.length;i++) {
			if (lastPos === -1 || lastPos === undefined)
				lastPos = pageName.indexOf(endPositions[i])
		}
		if (lastPos === -1)
			return decodeURI(pageName.substring(pos + 1))
		else
			return decodeURI(pageName.substring(pos + 1, lastPos))
	},
	makeSelection : function(selector) {
		$(selector).toggleClass("selected")
		$('#sidebar-navigation').animate({ scrollTop: ($(selector).offset().top-300)}, 'fast');
	},
	selectMenuItem : function(name) {
		console.log("SideBar Navigation - Selecting ", name)
		var item = $("#sidebar-navigation a:contains('" + SideBar.escapeQuotes(name) + "')")
		if (item.length === 0) // MediaWiki makes an uppercase URL in some cases
			item = $("#sidebar-navigation a:contains('" + SideBar.escapeQuotes(name.toLowerCase()) + "')")

		// console.log("Item: ", item);
		// console.log("Search term: ", SideBar.escapeQuotes(name));

		if (item.length === 0) { // Handling titles containing a minus character
			var splitItems = name.split(" ")
			var selector = '#sidebar-navigation a:contains("'
			for (var i = 0;i < splitItems.length;i++) {
				selector += splitItems[i] + '")'
				if (splitItems[i+1])
					selector += ':contains("'
			}
			// console.log("Selecting: ", selector);
			$(selector).each(function(index, item) {
				var title = item.title.substring(item.title.indexOf(":") + 1)
				if (title === name)
					SideBar.makeSelection(item)
			})
		} else if (item) {
			$(item).each(function(index, element) {
				// console.log(element.innerText + "===" + name + " ?");
				if (element.innerText === name || element.innerText === name.toLowerCase())
					SideBar.makeSelection(element)
			})
		}
	},
	updateSelectedMenuItem : function() {
		SideBar.selectMenuItem(SideBar.normalizeName(SideBar.getPageName(window.location.href)))
	}
}

var PageTitle = {
	showTitle : function() {
		var element = document.getElementById('firstHeading')
		var title = element.innerText.substring(element.innerText.indexOf(':') + 1)
		element.innerText = title
		element.setAttribute("style", "display:inherit")
	}
}