MediaWiki:Common.js: Difference between revisions
(Replaced content with "→Any JavaScript here will be loaded for all users on every page load.: // MediaWiki:Common.js") Tag: Replaced |
No edit summary |
||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
// MediaWiki:Common.js | // MediaWiki:Common.js | ||
/* Add spoiler warning popup for first-time visitors */ | |||
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() { | |||
// Check if user has seen the warning before | |||
if (!mw.cookie.get('spoilerWarningShown')) { | |||
// Create popup container | |||
var popup = document.createElement('div'); | |||
popup.style.cssText = ` | |||
position: fixed; | |||
top: 50%; | |||
left: 50%; | |||
transform: translate(-50%, -50%); | |||
background: white; | |||
padding: 20px; | |||
border-radius: 5px; | |||
box-shadow: 0 2px 10px rgba(0,0,0,0.3); | |||
z-index: 10000; | |||
max-width: 400px; | |||
text-align: center; | |||
`; | |||
// Create warning message | |||
var message = document.createElement('p'); | |||
message.textContent = 'This wiki contains the latest manga spoilers'; | |||
message.style.marginBottom = '20px'; | |||
message.style.fontSize = '16px'; | |||
// Create acknowledge button | |||
var button = document.createElement('button'); | |||
button.textContent = 'I Understand'; | |||
button.style.cssText = ` | |||
padding: 8px 16px; | |||
background: #36c; | |||
color: white; | |||
border: none; | |||
border-radius: 3px; | |||
cursor: pointer; | |||
`; | |||
// Create overlay | |||
var overlay = document.createElement('div'); | |||
overlay.style.cssText = ` | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
background: rgba(0,0,0,0.5); | |||
z-index: 9999; | |||
`; | |||
// Add click handler for button | |||
button.onclick = function() { | |||
// Set cookie to expire in 365 days | |||
mw.cookie.set('spoilerWarningShown', '1', { | |||
expires: 365 * 24 * 60 * 60, | |||
path: '/' | |||
}); | |||
// Remove popup and overlay | |||
document.body.removeChild(popup); | |||
document.body.removeChild(overlay); | |||
}; | |||
// Assemble and show popup | |||
popup.appendChild(message); | |||
popup.appendChild(button); | |||
document.body.appendChild(overlay); | |||
document.body.appendChild(popup); | |||
} | |||
}); |
Revision as of 01:16, 8 February 2025
/* Any JavaScript here will be loaded for all users on every page load. */
// MediaWiki:Common.js
/* Add spoiler warning popup for first-time visitors */
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() {
// Check if user has seen the warning before
if (!mw.cookie.get('spoilerWarningShown')) {
// Create popup container
var popup = document.createElement('div');
popup.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0,0,0,0.3);
z-index: 10000;
max-width: 400px;
text-align: center;
`;
// Create warning message
var message = document.createElement('p');
message.textContent = 'This wiki contains the latest manga spoilers';
message.style.marginBottom = '20px';
message.style.fontSize = '16px';
// Create acknowledge button
var button = document.createElement('button');
button.textContent = 'I Understand';
button.style.cssText = `
padding: 8px 16px;
background: #36c;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
`;
// Create overlay
var overlay = document.createElement('div');
overlay.style.cssText = `
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5);
z-index: 9999;
`;
// Add click handler for button
button.onclick = function() {
// Set cookie to expire in 365 days
mw.cookie.set('spoilerWarningShown', '1', {
expires: 365 * 24 * 60 * 60,
path: '/'
});
// Remove popup and overlay
document.body.removeChild(popup);
document.body.removeChild(overlay);
};
// Assemble and show popup
popup.appendChild(message);
popup.appendChild(button);
document.body.appendChild(overlay);
document.body.appendChild(popup);
}
});