User:Williek11/global.js

importArticles({   type: 'script',    articles: [        'u:dev:MediaWiki:Rollback/code.js',        'u:dev:MediaWiki:AnchoredRollback/code.js',        'u:dev:MediaWiki:UsefulDropdown/code.js',		'u:dev:MediaWiki:RemoveTracking.js',		'u:dev:MediaWiki:MassProtect/code.js',		'u:dev:MediaWiki:AjaxBatchDelete.js',		'u:dev:MediaWiki:MassRollback.js',        'u:dev:MediaWiki:DisplayTimer/code.js',    ] });

if (location.search.includes("action=edit")) { window.onbeforeunload = function{ return '' }; }

// navbar adjustments

const callWhenNodes = function{ const mainContainer = $(".main-container")[0]; const resizableContainer = $(".resizable-container")[0]; const tabs = $(".fandom-community-header>.fandom-community-header__local-navigation>.wds-tabs")[0]; if (mainContainer === undefined || resizableContainer === undefined || tabs === undefined) {setTimeout(callWhenNodes, 60); return;} const sideContainer = document.createElement("div"); const dualContainer = document.createElement("div"); sideContainer.className = "side-container"; dualContainer.className = "dual-container"; dualContainer.appendChild(sideContainer); dualContainer.appendChild(resizableContainer); mainContainer.insertBefore(dualContainer, $(".global-footer")[0]); function addNodeToSide (title, arrayOfItems) { const node = document.createElement("div"); const titleNode = document.createElement("div"); const ulNode = document.createElement("ul"); node.className = "side_item"; ulNode.className = "side_items-list"; titleNode.className = "side_items-title"; titleNode.innerHTML = title; node.appendChild(titleNode); node.appendChild(ulNode); for (var i = 0, l = arrayOfItems.length; i < l; i++) { const itemLink = arrayOfItems[i].link; const itemHTML = arrayOfItems[i].html; const itemNode = document.createElement("li"); const linkNode = document.createElement("a"); linkNode.href = itemLink; linkNode.innerHTML = itemHTML; itemNode.appendChild(linkNode); ulNode.appendChild(itemNode); }		sideContainer.appendChild(node); }	const pageName = mw.config.get("wgPageName"); addNodeToSide("User tools", [		{link: "/wiki/User:Williek11", html: "My page"},		{link: "/wiki/Message_Wall:Williek11", html: "My talk page"},		{link: "/wiki/Special:Contributions/Williek11", html: "My contributions"},		{link: "/wiki/User:Williek11/Sandbox", html: "My sandbox"},		{link: "/wiki/Special:Preferences", html: "Change preferences"},	]); function objectifyNestedTabs (ul) { const arrayOfTabs = []; for (var i = 0, children = ul.children, l = children.length; i < l; i++) { const currentLi = children[i]; const tabObject = { title: "", link: "", children: undefined, // a list of tabObjects };			tabObject.title = currentLi.firstElementChild.firstElementChild.lastElementChild.textContent; if (tabObject.title === undefined) { console.error("title is undefined"); }			tabObject.link = currentLi.firstElementChild.firstElementChild.href; if (tabObject.link === undefined) { console.error("link is undefined"); }			if (currentLi.lastElementChild.firstElementChild.classList.contains("wds-list")) { tabObject.children = objectifyNestedTabs(currentLi.lastElementChild.firstElementChild); console.log("success, calling nested again - ", i); }			console.log(i, currentLi, ul); }		return arrayOfTabs; }	console.log(tabs); objectifyNestedTabs(tabs); addNodeToSide("Site tools", [		{link: "/wiki/Special:RecentChanges", html: "Recent changes"},		{link: "/wiki/Special:NewFiles", html: "New files"},		{link: "/wiki/Category:Maintenance", html: "Maintenance"},		{link: "/wiki/Category:Templates", html: "Templates"},		{link: "/wiki/Special:SpecialPages", html: "Special pages"},		{link: "/wiki/Special:Preferences", html: "Change preferences"},	]); addNodeToSide("Page tools", [		{link: "/wiki/Special:WhatLinksHere/"+pageName, html: "What links here"},		{link: "/wiki/"+pageName+"?action=info", html: "Information"},	]); };

const callWhenApi = function{ if (mw.Api === undefined || $(".main-container")[0] === undefined) {setTimeout(callWhenApi, 60); return} new mw.Api.get({		action: 'query',		format: 'json',		list: 'backlinks',		bltitle: mw.config.get("wgPageName"),	}).done(function(data) {		var arr = [];		var backlinks = data.query.backlinks;		window.whatlinkshere = [];		for (var i = 0, l = backlinks.length; i < l; i++) {			window.whatlinkshere.push(backlinks[i].title);		}		$(".tools")[0].appendChild((function{			var li = document.createElement("li");			li.textContent = "What links here: "+whatlinkshere.length;			li.title = whatlinkshere.join(", ");			return li;		}));	}); /* THEME SWITCH $(".wiki-tools__theme-switch")[1].addEventListener("click", function {		new mw.Api.get({action:"query", meta:"tokens"}).done(function(e){ var change; if ($("body")[0].classList.contains("theme-fandomdesktop-dark")) { change = 'theme=light'; } else { change = 'theme=dark'; }			new mw.Api.post({		       action: 'options',		        format: 'json',		        change: change,		        token: e.query.tokens.csrftoken		    }).done(function(e){		    	if (e.options === "success") {		    		location.reload;		    	} else {		    		console.error(e);		    	}		    }); });	}); */

};

const callWhenNode = (function{	const node = $("#my-tools-menu")[0];	if (node === undefined) {setTimeout(callWhenNode, 60);return;}	const li = document.createElement("li");	const a = document.createElement("a");	a.href = location.search === "" ? location + "?useuserjs=0&useusercss=0" : location + "&useuserjs=0&useusercss=0";	a.textContent = "Remove Customization";	li.appendChild(a);	node.appendChild(li); });

callWhenNodes; callWhenApi; callWhenNode;