Jump to content

MediaWiki:Common.js: Difference between revisions

From Continuum Universes Wiki
No edit summary
No edit summary
Tag: Manual revert
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js');
mw.hook('ext.popups').add(function() {
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.css', 'text/css');
    $('.mwe-popups-extract .portable-infobox').each(function() {
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.css', 'text/css');
        var $infobox = $(this);
        var $firstParagraph = $('.mwe-popups-extract p:first');


mw.hook('wikipage.content').add(function($content) {
        // If there is a paragraph, move the infobox after it
    $content.find('.mw-jsslideshow').each(function() {
        if ($firstParagraph.length) {
         const $slideshowContainer = $(this);
            $infobox.insertAfter($firstParagraph);
        const $slideshow = $('<div class="slideshow"></div>');
        } else {
            // If there's no paragraph, just hide the infobox
            $infobox.hide();
         }
    });
});


        // Find all images inside mw-jsslideshow, including [[File:]] images
$(function() {
        $slideshowContainer.find('img').each(function() {
  fetch('/api.php?action=query&meta=siteinfo&siprop=statistics&format=json')
            const $img = $(this);
    .then(res => res.json())
            const $slide = $('<div></div>').append($img.clone()); // Wrap in slide div
    .then(data => {
            $slideshow.append($slide);
      const current = data.query.statistics.articles;
        });
      const goal = 500;
 
      const left = goal - current;
        // Replace old content with the new slick-ready slideshow
      const el = document.getElementById("article-countdown");
        $slideshowContainer.empty().append($slideshow);
      if (el) {
 
         el.innerHTML = left > 0
         // Initialize slick
          ? `🚧 Only <strong>${left}</strong> articles to go until 500!`
        $slideshow.slick({
          : `🎯 We've reached 500 articles! Celebrate good times, c'mon!`;
            infinite: true,
      }
            slidesToShow: 1,
            slidesToScroll: 1,
            autoplay: true,
            autoplaySpeed: 5000,
            arrows: true,
            dots: true,
            adaptiveHeight: true
        });
 
        // Fix positioning on resize
        $(window).on('resize', function() {
            $slideshow.slick('setPosition');
        });
     });
     });
});
});

Latest revision as of 21:31, 29 June 2025

mw.hook('ext.popups').add(function() {
    $('.mwe-popups-extract .portable-infobox').each(function() {
        var $infobox = $(this);
        var $firstParagraph = $('.mwe-popups-extract p:first');

        // If there is a paragraph, move the infobox after it
        if ($firstParagraph.length) {
            $infobox.insertAfter($firstParagraph);
        } else {
            // If there's no paragraph, just hide the infobox
            $infobox.hide();
        }
    });
});

$(function() {
  fetch('/api.php?action=query&meta=siteinfo&siprop=statistics&format=json')
    .then(res => res.json())
    .then(data => {
      const current = data.query.statistics.articles;
      const goal = 500;
      const left = goal - current;
      const el = document.getElementById("article-countdown");
      if (el) {
        el.innerHTML = left > 0
          ? `🚧 Only <strong>${left}</strong> articles to go until 500!`
          : `🎯 We've reached 500 articles! Celebrate good times, c'mon!`;
      }
    });
});