Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:18PlusDisclaimer: Difference between revisions

Template page
No edit summary
No edit summary
Line 15: Line 15:


<script>
<script>
// Load the MediaWiki user module so we can tell if someone is logged in
  (function($, mw) {
mw.loader.using(['mediawiki.user', 'mediawiki.util']).then(function () {
    console.log('18+ disclaimer script starting…');
  const overlay = document.getElementById("ageDisclaimerOverlay");
    mw.loader.using(['mediawiki.user', 'mediawiki.util']).done(function () {
   const body    = document.body;
      console.log('MediaWiki modules loaded; user anon? →', mw.user.isAnon());
  const isLoggedIn = !mw.user.isAnon();
      const overlay = $('#ageDisclaimerOverlay');
  const cookieConfirmed = document.cookie
      const popup   = overlay.find('.age-popup');
    .split('; ')
      const isAnon  = mw.user.isAnon();
    .some(part => part.trim() === 'ageConfirmed=true');
      const cookieConfirmed = document.cookie
        .split('; ')
        .some(c => c.trim() === 'ageConfirmed=true');


  function showOverlay() {
      // decide whether to show
    overlay.style.display = 'flex';
      if (!cookieConfirmed || !isAnon) {
    body.style.overflow = 'hidden';
        console.log('Showing overlay (cookieConfirmed:', cookieConfirmed, 'isAnon:', isAnon, ')');
    requestAnimationFrame(()=>{
        overlay.css('display', 'flex');
      overlay.querySelector(".age-popup").classList.add("slide-active");
        $('body').css('overflow', 'hidden');
    });
        // trigger animation
  }
        setTimeout(()=> popup.addClass('slide-active'), 10);
  function hideOverlay() {
      } else {
    overlay.style.display = 'none';
        console.log('Not showing overlay (cookieConfirmed && anon)');
    body.style.overflow = '';
      }
  }


  // Show to everyone on first visit (no cookie),
      $('#acceptDisclaimer').on('click', function() {
  // and even if they have a cookie, force-show again for logged-in users
        console.log('User accepted disclaimer');
  if (!cookieConfirmed || isLoggedIn) {
        document.cookie = "ageConfirmed=true; max-age=" + (30*24*60*60) + "; path=/";
    showOverlay();
        overlay.hide();
  }
        $('body').css('overflow', '');
      });


  document.getElementById("acceptDisclaimer").addEventListener("click", function () {
      $('#declineDisclaimer').on('click', function() {
    // set 30‑day cookie
        console.log('User declined; redirecting');
    document.cookie = "ageConfirmed=true;max-age=" + (30*24*60*60) + ";path=/";
        window.location.href = mw.util.getUrl('Main_Page');
    hideOverlay();
      });
  });
    });
 
  })(jQuery, mw);
  document.getElementById("declineDisclaimer").addEventListener("click", function () {
    // send them back to Main Page; you can change this target
    window.location.href = mw.util.getUrl('Main_Page');
  });
});
</script>
</script>
}}
}}

Revision as of 11:01, 19 April 2025

Advertising: