MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
(function () {
(function () {
   const banner = document.getElementById('icelist-donate-banner');
   'use strict';
  if (!banner) return;


  if (localStorage.getItem('icelistDonateBannerDismissed') === 'true') {
   var KEY = 'icelist_anon_donate_dismiss_until';
    banner.style.display = 'none';
    return;
  }
 
  const dismiss = document.getElementById('icelist-donate-dismiss');
  if (dismiss) {
    dismiss.addEventListener('click', function () {
      banner.style.display = 'none';
      localStorage.setItem('icelistDonateBannerDismissed', 'true');
    });
  }
})();
(function(){
  var KEY = 'donate_notice_dismissed';
 
  if (localStorage.getItem(KEY)) return;
 
  mw.hook('wikipage.content').add(function(){
    var close = document.getElementById('donate-notice-close');
    var notice = document.getElementById('donate-top-notice');
    if (!close || !notice) return;
 
    close.addEventListener('click', function(){
      notice.style.display = 'none';
      localStorage.setItem(KEY, '1');
    });
  });
})();
 
(function () {
   var KEY = 'icelist_donate_notice_until';
   var DAYS = 14;
   var DAYS = 14;


Line 46: Line 14:
     if (!siteNotice) return;
     if (!siteNotice) return;


     // If Anonnotice is empty, don't show anything
     // If empty, do nothing
     var existingText = (siteNotice.textContent || '').trim();
     var txt = (siteNotice.textContent || '').replace(/\s+/g, ' ').trim();
     if (!existingText) return;
     if (!txt) return;
 
    siteNotice.classList.add('icelist-anon-donate');


     siteNotice.innerHTML = '';
     // Add close button once
     siteNotice.insertAdjacentHTML('beforeend',
     if (!siteNotice.querySelector('.icelist-notice-close')) {
      '<div id="donate-top-notice">' +
      var btn = document.createElement('button');
        '<div class="donate-notice-inner">' +
      btn.type = 'button';
          '<span class="donate-title">Support ICE List</span>' +
      btn.className = 'icelist-notice-close';
          '<span class="donate-text">We document federal immigration enforcement, identify agents, and preserve evidence that would otherwise disappear. Donations keep this work public, independent, and alive.</span>' +
      btn.setAttribute('aria-label', 'Close');
          '<a class="donate-btn" href="' + mw.util.getUrl('ICE_List_Wiki:Donate') + '">Donate</a>' +
       btn.textContent = '×';
          '<button id="donate-notice-close" aria-label="Close">×</button>' +
      siteNotice.insertBefore(btn, siteNotice.firstChild);
        '</div>' +
       '</div>'
    );


    document.getElementById('donate-notice-close').addEventListener('click', function () {
      btn.addEventListener('click', function (e) {
      document.getElementById('donate-top-notice').style.display = 'none';
        e.preventDefault();
      localStorage.setItem(KEY, String(Date.now() + DAYS * 24 * 60 * 60 * 1000));
        siteNotice.style.display = 'none';
    });
        localStorage.setItem(KEY, String(Date.now() + DAYS * 24 * 60 * 60 * 1000));
      });
    }
   }
   }