MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 59: | Line 59: | ||
} | } | ||
})(); | })(); | ||
document.addEventListener('DOMContentLoaded', function () { | |||
var notice = document.getElementById('siteNotice'); | |||
if (!notice) return; | |||
var closeBtn = document.createElement('button'); | |||
closeBtn.textContent = '×'; | |||
closeBtn.className = 'icelist-notice-close'; | |||
closeBtn.setAttribute('aria-label','Close'); | |||
notice.appendChild(closeBtn); | |||
closeBtn.addEventListener('click', function () { | |||
notice.style.display = 'none'; | |||
localStorage.setItem('icelist_anon_donate_dismiss_until', String(Date.now() + 14*24*60*60*1000)); | |||
}); | |||
}); | |||
Revision as of 22:06, 20 December 2025
/* ICE List – Anon donate banner (safe + scoped)
* - ONLY runs for anonymous users
* - ONLY styles when Anonnotice has content
* - Adds a close (×) button
* - Remembers dismissal in localStorage
*/
(function () {
'use strict';
var KEY = 'icelist_anon_donate_dismiss_until';
var DAYS = 14;
// Only for anonymous users
if (!mw.user.isAnon()) return;
// Respect dismissal window
var until = parseInt(localStorage.getItem(KEY) || '0', 10);
if (Date.now() < until) return;
function mount() {
var siteNotice = document.getElementById('siteNotice');
if (!siteNotice) return;
// If Anonnotice is empty (or only whitespace), do nothing
var txt = (siteNotice.textContent || '').replace(/\s+/g, ' ').trim();
if (!txt) return;
// Add a class so CSS ONLY applies when we explicitly say so
siteNotice.classList.add('icelist-anon-donate');
// Find the Donate link (prefer the span hook)
var donateLink = siteNotice.querySelector('.icelist-donate-cta a');
if (!donateLink) {
// fallback: first link that points to the donate page
donateLink = siteNotice.querySelector('a[href*="ICE_List_Wiki:Donate"]');
}
if (donateLink) donateLink.classList.add('icelist-donate-btn');
// Add close button if it doesn't already exist
if (!siteNotice.querySelector('.icelist-notice-close')) {
var btn = document.createElement('button');
btn.type = 'button';
btn.className = 'icelist-notice-close';
btn.setAttribute('aria-label', 'Close');
btn.textContent = '×';
siteNotice.appendChild(btn);
btn.addEventListener('click', function () {
siteNotice.style.display = 'none';
localStorage.setItem(KEY, String(Date.now() + DAYS * 24 * 60 * 60 * 1000));
});
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', mount);
} else {
mount();
}
})();
document.addEventListener('DOMContentLoaded', function () {
var notice = document.getElementById('siteNotice');
if (!notice) return;
var closeBtn = document.createElement('button');
closeBtn.textContent = '×';
closeBtn.className = 'icelist-notice-close';
closeBtn.setAttribute('aria-label','Close');
notice.appendChild(closeBtn);
closeBtn.addEventListener('click', function () {
notice.style.display = 'none';
localStorage.setItem('icelist_anon_donate_dismiss_until', String(Date.now() + 14*24*60*60*1000));
});
});