MediaWiki:Common.js: Difference between revisions
mNo edit summary |
mNo edit summary Tag: Reverted |
||
| Line 29: | Line 29: | ||
mw.loader.using('mediawiki.user', function () { | mw.loader.using('mediawiki.user', function () { | ||
if (mw.user.isAnon()) { | $(document).ready(function () { | ||
if (mw.user.isAnon()) { | |||
// Hide dismiss buttons for anonymous users | |||
$('.dismiss-button').hide(); | |||
return; | |||
} | |||
// Enable dismissible behavior for logged-in users | |||
$('.maybe-dismissible').addClass('dismissible-notice'); | |||
$('.dismissible-notice').each(function () { | |||
let $notice = $(this); | |||
let dataId = $notice.data('id'); | |||
// Generate fallback ID based on page and content if not provided | |||
if (!dataId) { | |||
const page = mw.config.get('wgPageName'); | |||
const content = $notice.text().trim().replace(/\s+/g, ' ').slice(0, 100); | |||
dataId = page + '-' + content; | |||
$notice.attr('data-id', dataId); | |||
} | |||
// Check localStorage for dismissal | |||
if (localStorage.getItem('dismissed-' + dataId)) { | |||
$notice.hide(); | |||
} | |||
// Set up dismiss button | |||
$notice.find('.dismiss-button').click(function () { | |||
localStorage.setItem('dismissed-' + dataId, '1'); | |||
$notice.hide(); | |||
}); | |||
}); | |||
}); | }); | ||
}); | }); | ||
Revision as of 21:35, 13 April 2025
/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.load( 'ext.cite.styles' );
/* Allows Template:Notice to be dismissable. */
$(document).ready(function() {
$('.dismissible-notice .dismiss-button').click(function() {
$(this).closest('.dismissible-notice').hide();
});
});
/* Allows bullet points in to-do list in Template:User to toggle on and off. */
$(function() {
const bullets = document.querySelectorAll('.toggle-bullet');
const bulletChars = ['<span style="color: green">●</span>', '◦'];
const localStorageKey = 'userInfoboxBulletState';
bullets.forEach((bullet, index) => {
let currentIndex = localStorage.getItem(localStorageKey + index) === '0' ? 0 : 1; // Default to black if no stored state
bullet.innerHTML = bulletChars[currentIndex];
bullet.addEventListener('click', function() {
currentIndex = (currentIndex + 1) % bulletChars.length;
this.innerHTML = bulletChars[currentIndex];
localStorage.setItem(localStorageKey + index, currentIndex.toString());
});
});
});
mw.loader.using('mediawiki.user', function () {
$(document).ready(function () {
if (mw.user.isAnon()) {
// Hide dismiss buttons for anonymous users
$('.dismiss-button').hide();
return;
}
// Enable dismissible behavior for logged-in users
$('.maybe-dismissible').addClass('dismissible-notice');
$('.dismissible-notice').each(function () {
let $notice = $(this);
let dataId = $notice.data('id');
// Generate fallback ID based on page and content if not provided
if (!dataId) {
const page = mw.config.get('wgPageName');
const content = $notice.text().trim().replace(/\s+/g, ' ').slice(0, 100);
dataId = page + '-' + content;
$notice.attr('data-id', dataId);
}
// Check localStorage for dismissal
if (localStorage.getItem('dismissed-' + dataId)) {
$notice.hide();
}
// Set up dismiss button
$notice.find('.dismiss-button').click(function () {
localStorage.setItem('dismissed-' + dataId, '1');
$notice.hide();
});
});
});
});