User:Nattern/vector.js: Difference between revisions

From bg3.wiki
Jump to navigation Jump to search
(Changed some variable names. added mwPanel, leftNavigation and rightNavigation variables. Added acessKey support for createListItem(). Added link to templates,)
(Added more elements to the "Custom" portlet in mw-panel. Fixed accessKey not working.)
Line 51: Line 51:




function createListItem(end, contentList, listItemName, onClick, title, acessKey) {
function createListItem(end, contentList, listItemName, onClick, title, accessKey) {
var li = document.createElement('li');
var li = document.createElement('li');
var a = document.createElement('a');
var a = document.createElement('a');
Line 65: Line 65:
a.setAttribute('onclick', onClick);
a.setAttribute('onclick', onClick);
if (title) {a.title = title;}
if (title) {a.title = title;}
if (acessKey) {a.acessKey;}
if (accessKey) {a.accessKey = accessKey;}
a.appendChild(span);
a.appendChild(span);
span.innerText = listItemName;
span.innerText = listItemName;
Line 91: Line 91:
createListItem(5, pPersonal, "CSS", "https://bg3.wiki/wiki/User:Nattern/vector.css", "User:Nattern/vector.css");
createListItem(5, pPersonal, "CSS", "https://bg3.wiki/wiki/User:Nattern/vector.css", "User:Nattern/vector.css");


createListItem("a", pCustom, "Templates", "/wiki/Category:Templates", "List of templates [alt-shift-t]", "w");
createListItem("a", pCustom, "Templates", "/wiki/Category:Templates", "List of templates");
createListItem("a", pCustom, "Wiki Maintenance", "/wiki/Category:Wiki_Maintenance", "Wiki maintenance pages");
createListItem("a", pCustom, "All Pages", "/wiki/Special:AllPages", "A list of all pages on the wiki");

Revision as of 14:20, 16 November 2023

var mwPanel = document.getElementById('mw-panel');
var leftNavigation = document.getElementById('left-navigation');
var rightNavigation = document.getElementById('right-navigation');



function newMwPanelPortlet(id) {
	var nav = document.createElement("nav");
	nav.id = "p-" + id;
	nav.className = "vector-menu mw-portlet mw-portlet-" + id + " vector-menu-portal portal";
	nav.setAttribute("aria-labelledby", "p-" + id + "-label");
	nav.setAttribute("role", "navigation");
	
	var h3 = document.createElement("h3");
	h3.id = "p-" + id + "-label";
	h3.className = "vector-menu-heading";
	
	var span = document.createElement("span");
	span.className = "vector-menu-heading-label";
	span.textContent = id;
	
	h3.appendChild(span);
	nav.appendChild(h3);
	
	var div = document.createElement("div");
	div.className = "vector-menu-content";
	
	var ul = document.createElement("ul");
	ul.className = "vector-menu-content-list";
	
	div.appendChild(ul);
	nav.appendChild(div);
	mwPanel.appendChild(nav);
}
newMwPanelPortlet("Custom");



var contentLists = document.querySelectorAll('.vector-menu-content-list');
var pPersonal = contentLists[0];
var pNamespaces = contentLists[1];
var pVariants = contentLists[2];
var pViews = contentLists[3];
var pCactions = contentLists[4];
var pNavigation = contentLists[5];
var pSpecial = contentLists[6];
var pTb = contentLists[7];

var pCustom = contentLists[8];



function createListItem(end, contentList, listItemName, onClick, title, accessKey) {
	var li = document.createElement('li');
	var a = document.createElement('a');
	var span = document.createElement('span');
	if (end == "p" || end == "pre") {contentList.prepend(li);}
	else if (Number.isInteger(end)) {contentList.insertBefore(li, contentList.children[end-1]);}
	else {contentList.append(li);}
	// li.id = "pt/t/ca-" + listItemName;
	li.appendChild(a);
	if (onClick.includes('/')){
		a.href = onClick;
	}
	a.setAttribute('onclick', onClick);
	if (title) {a.title = title;}
	if (accessKey) {a.accessKey = accessKey;}
	a.appendChild(span);
	span.innerText = listItemName;
	li.classList.add("mw-list-item");
}



function openPage(pageType) {
	if (pageType == undefined) {
		pageType = " ";
	} else {
		pageType = " " + pageType + " ";
	}
		
    var pageName = prompt("Type" + pageType + "here:");
    if (pageName) {
        window.open('https://bg3.wiki/wiki/'+ pageType + ':' + pageName, '_blank');
    }
}

createListItem("a", pViews, "Image Search", "/w/index.php?title=Special:Search&profile=images&search=&fulltext=1", "Open wiki search page on Multimedia");

createListItem(4, pPersonal, "JS", "https://bg3.wiki/wiki/User:Nattern/vector.js", "User:Nattern/vector.js");
createListItem(5, pPersonal, "CSS", "https://bg3.wiki/wiki/User:Nattern/vector.css", "User:Nattern/vector.css");

createListItem("a", pCustom, "Templates", "/wiki/Category:Templates", "List of templates");
createListItem("a", pCustom, "Wiki Maintenance", "/wiki/Category:Wiki_Maintenance", "Wiki maintenance pages");
createListItem("a", pCustom, "All Pages", "/wiki/Special:AllPages", "A list of all pages on the wiki");