Jump to content

MediaWiki:Common.js

An idea by Jeff Lawlor
Created on 2025-04-25
Revision as of 17:17, 13 November 2025 by Admin (talk | contribs) (Default dark mode to OS preference)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

// Click event for About Idea infobox
$('.infobox-tab').click(function(e)	{
		var tab = $(e.target).attr('data-tab');
		$('.infobox-panel').hide();
		$('.infobox-panel.' + tab).show();
		$('.infobox-tab').removeClass('active');
		$(e.target).addClass('active');
	});

// Move infoboxes to the bottom of the article in mobile
$(document).ready(function() {
	if ($('body').hasClass('skin-minerva')) {
		var infoboxes = $('#mf-section-0 .infobox-idea');
	
		// Move them to the end of the section
		$('#mf-section-0').append(infoboxes);
	}
});

defaultDarkModeToOs();

function defaultDarkModeToOs() {
    // Name of the cookie
    var cookieName = "IdeaSuprememwclientpreferences";
    // Desired value if not already set
    var cookieValue = "skin-theme-clientpref-os";

    // If the cookie doesn’t exist, create it
    if (!getCookie(cookieName)) {
        // Set cookie to expire in 1 year
        var expires = new Date();
        expires.setFullYear(expires.getFullYear() + 1);
        document.cookie = cookieName + "=" + encodeURIComponent(cookieValue) +
            "; path=/; expires=" + expires.toUTCString();
    }
}
// Helper function to get a cookie by name
function getCookie(name) {
    var match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
    return match ? decodeURIComponent(match[2]) : null;
}