MediaWiki

Common.js

From Dogcraft Wiki

No edit summary
mNo edit summary
 
(77 intermediate revisions by 2 users not shown)
Line 2: Line 2:


/* Navigation Popups */
/* Navigation Popups */
/* Currently Disabled
/* Currently Disabled ü
mw.loader.load('/load.php?modules=ext.gadget.Navigation_popups');
mw.loader.load('/load.php?modules=ext.gadget.Navigation_popups');*/
window.popupAdminLinks = false;
window.popupAdminLinks = false;
window.popupActionsMenu = false;
window.popupActionsMenu = false;
Line 9: Line 9:
window.popupSubpopups = false;
window.popupSubpopups = false;
window.popupSummaryData = false;
window.popupSummaryData = false;
*/
 
function randomPageImage( category ) {
params = {
        action: 'query',
        list: 'categorymembers',
        cmtitle: 'Category:' + category,
        cmprop: 'ids',
        cmtype: 'page',
        cmlimit: '5000',
        format: 'json'
    },
    api = new mw.Api();
return new Promise(function(resolve,reject) {
api.get( params ).done( function ( data ) {
    var pages = data.query.categorymembers,
        page,
        cat_random = Math.floor(Math.random() * pages.length),
        id_random = pages[cat_random].pageid;
    var paramsPI = {
        action: 'query',
        prop: 'pageimages',
        pageids: id_random,
        piprop: 'original',
        format: 'json'
    };
    api.get( paramsPI ).done( function (data ) {
        resolve(data.query.pages[id_random].original);
    });
} );
});
}


$(document).ready(function() {
$(document).ready(function() {
/*var goToDogcraft = document.querySelectorAll("#p-Go_to_Dogcraft > a");
var pagename = mw.config.get('wgPageName'),
goToDogcraft[0].setAttribute("href", "//dogcraft.net");*/
namespace = mw.config.get('wgNamespaceNumber');
$("#p-Go_to_Dogcraft > a").attr("href", "http://dogcraft.net");
$("#p-Go_to_Dogcraft").removeClass("not-click has-dropdown");
/* Pride Month topbar logo*/
$("#navwrapper .top-bar-logo").attr("src", "https://dogcraft.net/wiki/images/7/7a/Wiki_logo_pride.png");
// var indicator = document.querySelectorAll(".mw-indicators");
// var indicator = document.querySelectorAll(".mw-indicators");
// var indicator1 = indicator[0];
// var indicator1 = indicator[0];
Line 25: Line 51:
// if (indicator1.childNodes.length !== 1) {document.getElementById("tagline").innerHTML = indicator1.innerHTML;}
// if (indicator1.childNodes.length !== 1) {document.getElementById("tagline").innerHTML = indicator1.innerHTML;}
//$(".mw-dismissable-notice-close a").text('X');
/*== Shows hidden categories when users select that option in their User Preferences (this is technically a bugfix) ==*/
if ( mw.user.options.get( 'showhiddencats' ) == 1 ) {
var dismissableNoticeClose = $(".mw-dismissable-notice-close");
document.getElementById('mw-hidden-catlinks').style.display = 'block';
if (dismissableNoticeClose !== null) {
$(".dismissable-notice-close-message-container").append(dismissableNoticeClose);
}
}
/* FontAwesome v6. */
/*== Hides the actions button and indicators while in the Visual editor ==*/
/* $("head").append('<script src="https://kit.fontawesome.com/4b7e90e654.js" crossorigin="anonymous"></script>'); */
/* Slick (license information and setup is included at https://dogcraft.net/wiki/MediaWiki:Gadget-slick.js)*/
/*$("head").append('<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css"/>');
$("head").append('<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick-theme.css"/>');*/
/*$("body").append('<script type="text/javascript" src="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js"></script>');*/
/*testing*/
mw.hook( 've.activationComplete' ).add( function () {
mw.hook( 've.activationComplete' ).add( function () {
$('.content .top').hide();
$('.content .top').hide();
}).done( function() {
});
mw.hook( 'wikipage.content' ).add( function () {
$('.content .top').show();
mw.hook( 've.deactivationComplete' ).add( function () {
$('.content .top').show();
});
/*== Dogcraft.net topbar: Automatically enabled to display the Dogcraft.net topbar on the Help Resources(WIP) and Rules pages. (moved from gadget) ==*/
$(document).ready(function() {
if (mw.config.get('wgPageName') === "Rules" || mw.config.get('wgPageName') === "Help_Resources")
{
$('.nav .nav-title a span').text('Dogcraft');
$('#wikiNav').removeClass('expanded');
}
});
/*== Shows edit button on Rules and Help Resources for those who can edit it ==*/
if (pagename === 'Rules' || pagename === 'Help_Resources') {
if (mw.config.get('wgIsProbablyEditable')) {
$('#wikiActions').show();
}
}
/* pagecount */
var pagecount = document.createElement('div'),
link = document.createElement('a'),
pages = document.createElement('span'),
text = document.createElement('span'),
indicators = document.querySelector('#main > main:first-of-type > div.content:first-child > div.top:first-child > .indicators'),
api = new mw.Api(),
num = api.get( {
action:"query",
meta:"siteinfo",
siprop:"statistics",
formatversion:"2"
});
});
pagecount.id = 'pagecount';
link.href = "/wiki/Special:AllPages?namespace=0&hideredirects=1";
text.textContent = 'pages';
$.when( num ).then( function ( data ) {
pages.textContent = data.query.statistics.articles;
link.append(pages, text);
pagecount.append(link);
indicators.after(pagecount);
mw.hook( 'userjs.pagecount.done' ).fire();
});
});
/*= Top header banner =*/
if (namespace === 14 || namespace === 3004 || namespace == 2 || namespace == 0) {
var headbanner = document.getElementById("headbanner");
if (headbanner) {
var firstHeading = document.querySelectorAll("#content h1:first-of-type")[0];//document.getElementById("firstHeading");
if (headbanner.hasAttribute("title")) {
if (headbanner.title == "auto") {
randomPageImage(pagename.split(":")[1].split("/")[0]).then(function(result) {
firstHeading.style.setProperty('--banner-padding', "300px");
firstHeading.style.setProperty('--banner-image', 'url(' + result.source + ')');
});
} else {
firstHeading.style.setProperty('--banner-padding', headbanner.title);
firstHeading.style.setProperty('--banner-image', 'url(' + headbanner.textContent + ')');
}
}
firstHeading.classList.add('banner');
$("#contentSub").prepend($("main > .content > .top"));
}
/** custom category page marker class
* added to firstHeading because requesting the page <body> (which normally has marker classes) on every category page load is
* not a good idea - its the parent for the whole page. The firstHeading is siblings with every other 1st child of the page content,
* which includes the div.top on pages with a top banner image set. (But this can be used on non-bannered cat pages as well)
*/
if ( mw.config.get('wgCategories').includes('Custom category pages') ) {
var title = document.querySelectorAll("#content h1:first-of-type")[0];
title.classList.add("category-custom");
/* remove /Portal from the displayed title (This could also be achieved with enabling {{DISPLAYTITLE}} */
if (title.textContent.includes("/Portal")) {
    title.textContent = title.textContent.substr(0, title.textContent.indexOf("/"));
}
}
}
 
//temp: move news-info indicator into pagecount's place
if ((mw.config.get('wgNamespaceNumber') === 3004) && (mw.config.get('wgUserName') == null)) {
$('#siteSub > .top')[0].classList.add('indicator-right');
}
 
});
 
//temp: move news-info indicator into pagecount's place
mw.hook( 'userjs.pagecount.done' ).add( function() {
if ((mw.config.get('wgNamespaceNumber') === 3004) && ($(window).width() > 700) && (mw.config.get('wgUserName') != null)) {
$("#pagecount").append($(".mw-indicators.mw-body-content"));
}
});
});

Latest revision as of 00:46, 6 September 2024

/* Any JavaScript here will be loaded for all users on every page load. */

/* Navigation Popups */
/* Currently Disabled ü
mw.loader.load('/load.php?modules=ext.gadget.Navigation_popups');*/
window.popupAdminLinks = false;
window.popupActionsMenu = false;
window.popupStructure = 'lite';
window.popupSubpopups = false;
window.popupSummaryData = false;

function randomPageImage( category ) {
	params = {
	        action: 'query',
	        list: 'categorymembers',
	        cmtitle: 'Category:' + category,
	        cmprop: 'ids',
	        cmtype: 'page',
	        cmlimit: '5000',
	        format: 'json'
    },
    api = new mw.Api();
	
	return new Promise(function(resolve,reject) { 
		api.get( params ).done( function ( data ) {
		    var pages = data.query.categorymembers,
		        page,
		        cat_random = Math.floor(Math.random() * pages.length),
		        id_random = pages[cat_random].pageid;
		
		    var paramsPI = {
		        action: 'query',
		        prop: 'pageimages',
		        pageids: id_random,
		        piprop: 'original',
		        format: 'json'
		    };
		    api.get( paramsPI ).done( function (data ) {
		        resolve(data.query.pages[id_random].original);
		    });
		} );
	});
}

$(document).ready(function() {
	var pagename = mw.config.get('wgPageName'),
		namespace = mw.config.get('wgNamespaceNumber');
	// var indicator = document.querySelectorAll(".mw-indicators");
	// var indicator1 = indicator[0];
	
	// if (indicator1.childNodes.length !== 1) {document.getElementById("tagline").innerHTML = indicator1.innerHTML;}
	
	/*== Shows hidden categories when users select that option in their User Preferences (this is technically a bugfix) ==*/
	if ( mw.user.options.get( 'showhiddencats' ) == 1 ) {
		document.getElementById('mw-hidden-catlinks').style.display = 'block';
	}
	
	/*== Hides the actions button and indicators while in the Visual editor ==*/
	
	mw.hook( 've.activationComplete' ).add( function () {
		$('.content .top').hide();
	});
	
	mw.hook( 've.deactivationComplete' ).add( function () {
			$('.content .top').show();
	});
	
	/*== Dogcraft.net topbar: Automatically enabled to display the Dogcraft.net topbar on the Help Resources(WIP) and Rules pages. (moved from gadget) ==*/
	$(document).ready(function() {
		if (mw.config.get('wgPageName') === "Rules" || mw.config.get('wgPageName') === "Help_Resources")
		{
			$('.nav .nav-title a span').text('Dogcraft');
			$('#wikiNav').removeClass('expanded');
		}
	});
	
	/*== Shows edit button on Rules and Help Resources for those who can edit it ==*/
	if (pagename === 'Rules' || pagename === 'Help_Resources') {
		if (mw.config.get('wgIsProbablyEditable')) {
			$('#wikiActions').show();
		}
	}
	
	/* pagecount */
	var pagecount = document.createElement('div'),
		link = document.createElement('a'),
		pages = document.createElement('span'),
		text = document.createElement('span'),
		indicators = document.querySelector('#main > main:first-of-type > div.content:first-child > div.top:first-child > .indicators'),
		api = new mw.Api(),
		num = api.get( {
			action:"query",
			meta:"siteinfo",
			siprop:"statistics",
			formatversion:"2"
		});
	
	pagecount.id = 'pagecount';
	link.href = "/wiki/Special:AllPages?namespace=0&hideredirects=1";
	text.textContent = 'pages';
	
	$.when( num ).then( function ( data ) {
		pages.textContent = data.query.statistics.articles;
		link.append(pages, text);
		pagecount.append(link);
	
		indicators.after(pagecount);
		mw.hook( 'userjs.pagecount.done' ).fire();
	});
	
	/*= Top header banner =*/
	if (namespace === 14 || namespace === 3004 || namespace == 2 || namespace == 0) {
		var headbanner = document.getElementById("headbanner");
		if (headbanner) {
			var firstHeading = document.querySelectorAll("#content h1:first-of-type")[0];//document.getElementById("firstHeading");
			if (headbanner.hasAttribute("title")) { 
				if (headbanner.title == "auto") {
					randomPageImage(pagename.split(":")[1].split("/")[0]).then(function(result) {
						firstHeading.style.setProperty('--banner-padding', "300px");
						firstHeading.style.setProperty('--banner-image', 'url(' + result.source + ')');
					});
				} else {
					firstHeading.style.setProperty('--banner-padding', headbanner.title);
					firstHeading.style.setProperty('--banner-image', 'url(' + headbanner.textContent + ')');
				}
			}
			firstHeading.classList.add('banner');
			$("#contentSub").prepend($("main > .content > .top"));
		}
		
		/** custom category page marker class 
		* added to firstHeading because requesting the page <body> (which normally has marker classes) on every category page load is 
		* not a good idea - its the parent for the whole page. The firstHeading is siblings with every other 1st child of the page content,
		* which includes the div.top on pages with a top banner image set. (But this can be used on non-bannered cat pages as well)
		*/
		if ( mw.config.get('wgCategories').includes('Custom category pages') ) {
			var title = document.querySelectorAll("#content h1:first-of-type")[0];
			title.classList.add("category-custom");
			
			/* remove /Portal from the displayed title (This could also be achieved with enabling {{DISPLAYTITLE}} */
			if (title.textContent.includes("/Portal")) {
			    title.textContent = title.textContent.substr(0, title.textContent.indexOf("/"));
			} 
		}
	}

	//temp: move news-info indicator into pagecount's place
	if ((mw.config.get('wgNamespaceNumber') === 3004) && (mw.config.get('wgUserName') == null)) {
		$('#siteSub > .top')[0].classList.add('indicator-right');
	}

});

//temp: move news-info indicator into pagecount's place
mw.hook( 'userjs.pagecount.done' ).add( function() {
	if ((mw.config.get('wgNamespaceNumber') === 3004) && ($(window).width() > 700) && (mw.config.get('wgUserName') != null)) {
		$("#pagecount").append($(".mw-indicators.mw-body-content")); 
	}
});