MediaWiki:Common.js: Difference between revisions
mNo edit summary Tag: Reverted |
mNo edit summary Tag: Reverted |
||
| Line 71: | Line 71: | ||
localStorage.setItem(localStorageKey + index, currentIndex.toString()); | localStorage.setItem(localStorageKey + index, currentIndex.toString()); | ||
}); | }); | ||
}); | |||
}); | |||
/* Allows Template:Notice to be dismissable. */ | |||
$(document).ready(function() { | |||
$('.dismissible-notice .dismiss-button').click(function() { | |||
$(this).closest('.dismissible-notice').hide(); | |||
}); | }); | ||
}); | }); | ||
Revision as of 20:47, 14 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. */
mw.loader.using(['mediawiki.user', 'jquery'], function () {
$(function () {
if (mw.user.isAnon()) {
$('.user-only-dismiss').hide();
return;
}
$('.maybe-dismissible').each(function () {
var notice = $(this);
var noticeId = notice.attr('id');
if (!noticeId) return;
var storageKey = 'dismissed-notice-' + noticeId;
if (localStorage.getItem(storageKey) === '1') {
notice.hide();
} else {
notice.addClass('dismissible-notice');
notice.find('.dismiss-button').on('click', function () {
notice.hide();
localStorage.setItem(storageKey, '1');
});
}
});
});
});
mw.loader.using('mediawiki.util').then(function () {
// Add "Reset Notices" to the Actions menu
mw.util.addPortletLink(
'p-cactions', // Add to the Actions menu
'#',
'Reset Notices',
'ca-reset-notices',
'Reset all dismissed notices stored in your browser'
);
// Handle click to directly reset notices without confirmation
document.getElementById('ca-reset-notices').addEventListener('click', function (e) {
e.preventDefault();
// Clear all dismissed notices from localStorage
Object.keys(localStorage).forEach(function (key) {
if (key.startsWith('dismissed-notice-')) {
localStorage.removeItem(key);
}
});
// Refresh the page to reflect the reset
location.reload();
});
});
/* 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());
});
});
});
/* Allows Template:Notice to be dismissable. */
$(document).ready(function() {
$('.dismissible-notice .dismiss-button').click(function() {
$(this).closest('.dismissible-notice').hide();
});
});