MediaWiki:Common.js: Difference between revisions

From bg3.wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 60: Line 60:
observer.observe(body, { childList: true });
observer.observe(body, { childList: true });
})();
})();
/**
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
*
* Maintainers: TheDJ. See https://en.wikipedia.org/wiki/MediaWiki:Common.js for more information.
*/
function mwCollapsibleSetup( $collapsibleContent ) {
var $element,
$toggle,
autoCollapseThreshold = 2;
$.each( $collapsibleContent, function ( index, element ) {
$element = $( element );
if ( $element.hasClass( 'collapsible' ) ) {
$element.find( 'tr:first > th:first' ).prepend( $element.find( 'tr:first > * > .mw-collapsible-toggle' ) );
}
if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
$element.data( 'mw-collapsible' ).collapse();
} else if ( $element.hasClass( 'innercollapse' ) ) {
if ( $element.parents( '.outercollapse' ).length > 0 ) {
$element.data( 'mw-collapsible' ).collapse();
}
}
// because of colored backgrounds, style the link in the text color
// to ensure accessible contrast
$toggle = $element.find( '.mw-collapsible-toggle' );
if ( $toggle.length ) {
// Make the toggle inherit text color (Updated for T333357 2023-04-29)
if ( $toggle.parent()[ 0 ].style.color ) {
$toggle.css( 'color', 'inherit' );
$toggle.find( '.mw-collapsible-text' ).css( 'color', 'inherit' );
}
}
} );
}
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );


/*
/*

Revision as of 08:34, 5 January 2024

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

(function () {
	if (document.getElementById("bg3wiki-legacy-content-notice")) {
		return;
	}
	var siteNotice = document.getElementById("siteNotice");
	if (!siteNotice) {
		return;
	}
    var uptodateNotice = document.getElementById("bg3wiki-uptodate-notice");
    if (uptodateNotice) {
    	siteNotice.style.float = "right";
    	siteNotice.innerHTML = uptodateNotice.innerHTML;
    	uptodateNotice.remove();
    	return;
    }
    
    // The rest is disabled; no need for this notice anymore.
    /*
	var launchDayMaxPageId = 6545;
	if (
		mw.config.get("wgIsMainPage") ||
		mw.config.get("wgNamespaceNumber") !== 0 ||
		mw.config.get("wgArticleId") > launchDayMaxPageId ||
		mw.config.get("wgAction") !== "view"
	) {
		return;
	}
	siteNotice.style.textAlign = "start";
	siteNotice.innerHTML =
	"<p style='font-size: 1rem; color: yellow;'> " +
	"Warning: This page was created during Early Access. " +
	"It may not be up to date with the release version. " +
	"</p> <p> " +
	"To remove this notice, click 'Edit source' and add this to the top: " +
	// <nowiki>
	"<code>{{subst:insert up to date}}</code> " +
	// </nowiki>
	"</p>";
	*/
})();

// Related to centering the content; fix for popups.
(function () {
	var body = document.getElementsByTagName("body")[0];
	var callback = function(mutList, _obs) {
		var nodes = mutList[0].addedNodes;
		if (nodes.length == 0 || nodes[0].classList == undefined) {
			return;
		}
		var node = nodes[0];
		if (node.classList.contains("mwe-popups")) {
			var bodyStyle = window.getComputedStyle(body);
			var bodyLeft = bodyStyle.getPropertyValue("margin-left");
			node.style.left = "calc("+ node.style.left + " - "+ bodyLeft + ")";
		}
	};
	var observer = new MutationObserver(callback);
	observer.observe(body, { childList: true });
})();

	/**
	 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
	 *
	 * Maintainers: TheDJ. See https://en.wikipedia.org/wiki/MediaWiki:Common.js for more information.
	 */
	function mwCollapsibleSetup( $collapsibleContent ) {
		var $element,
			$toggle,
			autoCollapseThreshold = 2;
		$.each( $collapsibleContent, function ( index, element ) {
			$element = $( element );
			if ( $element.hasClass( 'collapsible' ) ) {
				$element.find( 'tr:first > th:first' ).prepend( $element.find( 'tr:first > * > .mw-collapsible-toggle' ) );
			}
			if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
				$element.data( 'mw-collapsible' ).collapse();
			} else if ( $element.hasClass( 'innercollapse' ) ) {
				if ( $element.parents( '.outercollapse' ).length > 0 ) {
					$element.data( 'mw-collapsible' ).collapse();
				}
			}
			// because of colored backgrounds, style the link in the text color
			// to ensure accessible contrast
			$toggle = $element.find( '.mw-collapsible-toggle' );
			if ( $toggle.length ) {
				// Make the toggle inherit text color (Updated for T333357 2023-04-29)
				if ( $toggle.parent()[ 0 ].style.color ) {
					$toggle.css( 'color', 'inherit' );
					$toggle.find( '.mw-collapsible-text' ).css( 'color', 'inherit' );
				}
			}
		} );
	}

	mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );


/*
(function () {
	var notice = document.getElementById("bg3wiki-downtime-notice");
	if (notice && new Date().getMonth() + 1 == 9) {
		notice.style.display = 'block';
	}
})();
*/