MediaWiki:Common.js

From Another Chance Wiki
Revision as of 11:26, 20 August 2026 by Awsome2464 (talk | contribs)
Jump to navigation Jump to search

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

/* Allows images within galleries to be spoiled if "spoiler:" is put at the start of its caption*/
(function () {
    mw.hook('wikipage.content').add(function ($content) {
        $content.find('ul.gallery li.gallerybox').each(function () {
            var $box = $(this);
            var $caption = $box.find('.gallerytext');
            var captionText = $caption.text().trim().toLowerCase();

            if (captionText.startsWith('spoiler:') {
                $box.addClass('spoiler-image');
            $caption.html($caption.html().replace('spoiler: ', ''));
        }

    function handleSlideshowImage($gallery) {
        var $currentThumb = $gallery.find('.gallerybox.slideshow-current');
        if (!$currentThumb.length) {
            $currentThumb = $gallery.find('.gallerybox').first();
        }

        var $imgContainer = $gallery.find('.mw-gallery-slideshow-img-container, .mw-gallery-slideshow .carousel, .mw-gallery-slideshow-img');
        if (!$imgContainer.length) {
            $imgContainer = $gallery.find('li').has('img').not('.gallerybox').first();
        }

        if ($currentThumb.hasClass('spoiler-image') && !$currentThumb.hasClass('revealed')) {
            $imgContainer.addClass('spoiler-image');
        } else {
            $imgContainer.addClass('spoiler-image.revealed');
        }
    }

    $(document).on('click', '.mw-gallery-slideshow-img-container.spoiler-main, .mw-gallery-slideshow .spoiler-main', function (e) {
        if ($(e.target).closest('a, button, .oo-ui-buttonElement').length) {
            return;
        }
        $(this).addClass('revealed');
        var $gallery = $(this).closest('ul.gallery');
        $gallery.find('.gallerybox.slideshow-current').addClass('revealed');
    });


/* Toggles spoilered images between blurred and not blurred upon clicking */
$(function() {
    $('.spoiler-image').on('click', function() {
        $(this).toggleClass('revealed');
    });
});