Difference between revisions of "MediaWiki:Common.js"

m (Don't replace title on subpages of Coppermind:Welcome)
 
(26 intermediate revisions by 3 users not shown)
Line 2: Line 2:
   
 
/* replace "Coppermind:Welcome" with "Welcome to the Coppermind" */
 
/* replace "Coppermind:Welcome" with "Welcome to the Coppermind" */
$('h1:contains("Coppermind:Welcome")').text("Welcome to the Coppermind");
+
if (mw.config.get('wgPageName') == 'Coppermind:Welcome') {
  +
$('h1:contains("Coppermind:Welcome")').text("Welcome to the Coppermind");
  +
}
   
 
/* 2014-04
 
/* 2014-04
Line 38: Line 40:
 
container.style.top = '0';
 
container.style.top = '0';
 
container.style.bottom = '0';
 
container.style.bottom = '0';
container.style.zIndex = '1000';
+
container.style.zIndex = '10000';
 
container.style.background = 'rgba(0, 0, 0, 0.5)';
 
container.style.background = 'rgba(0, 0, 0, 0.5)';
 
container.style.filter = 'initial';
 
container.style.filter = 'initial';
   
 
var window = document.createElement('div');
 
var window = document.createElement('div');
  +
window.className = 'coppermind-spoiler-warning';
 
window.style.boxShadow = '0 4px 30px 0 rgba(0, 0, 0, 0.2)';
 
window.style.boxShadow = '0 4px 30px 0 rgba(0, 0, 0, 0.2)';
 
window.style.width = '90%';
 
window.style.width = '90%';
Line 53: Line 56:
 
window.style.padding = '16px';
 
window.style.padding = '16px';
 
window.style.fontSize = '1.5em';
 
window.style.fontSize = '1.5em';
  +
window.style.maxHeight = '90%';
 
container.appendChild(window);
 
container.appendChild(window);
   
 
window.innerHTML = '<h2>⚠️ Spoiler Warning</h2>';
 
window.innerHTML = '<h2>⚠️ Spoiler Warning</h2>';
window.innerHTML += '<p style="font-size: 1em;">Welcome to the Coppermind! We are a spoiler-filled wiki. By browsing this wiki, you may be subject to spoilers for the entire Cosmere and other works by Brandon Sanderson. However, if you\'d like to visit the site as it was prior to release, you can go to <a id="spoiler-warning__time-machine-link" href="https://coppermind.net/wiki/Special:TimeMachine">our Time Machine!</a></p>';
+
window.innerHTML += '<p style="font-size: 1em; overflow-y: auto; flex: 1;">Welcome to the Coppermind! Be aware that the wiki may have spoilers for all published works by Brandon Sanderson. By browsing this wiki, you may therefore be subject to spoilers for the entire Cosmere as well as Brandon\'s other works. Additionally, certain pages may contain information about books that have yet to be released. For our full spoiler policy and guidelines, you can visit <a id="spoiler-warning__spoiler-policy-link" href="https://coppermind.net/wiki/Help:Spoilers">our help page on spoilers</a>! If you\'d like to visit the site as it was prior to any book release, you can go to <a id="spoiler-warning__time-machine-link" href="https://coppermind.net/wiki/Special:TimeMachine">our Time Machine!</a></p>';
   
 
var button = document.createElement('button');
 
var button = document.createElement('button');
button.className = 'mw-ui-button mw-ui-progressive';
+
button.className = 'mw-ui-button mw-ui-destructive';
 
button.style.alignSelf = 'center';
 
button.style.alignSelf = 'center';
 
button.style.fontSize = '1em';
 
button.style.fontSize = '1em';
 
button.innerHTML = 'Proceed';
 
button.innerHTML = 'Proceed';
 
button.onclick = function () {
 
button.onclick = function () {
localStorage.setItem('row-spoiler-warning', 'seen');
+
localStorage.setItem('defiant-spoiler-warning', 'seen');
 
document.body.removeChild(container);
 
document.body.removeChild(container);
 
$(document.body).removeClass('spoiler-warning-blur');
 
$(document.body).removeClass('spoiler-warning-blur');
Line 77: Line 81:
 
$(document.body).addClass('spoiler-warning-blur');
 
$(document.body).addClass('spoiler-warning-blur');
 
document.body.appendChild(container);
 
document.body.appendChild(container);
$('#spoiler-warning__time-machine-link').click(function () { localStorage.setItem('row-spoiler-warning', 'seen'); })
+
$('#spoiler-warning__time-machine-link').click(function () { localStorage.setItem('defiant-spoiler-warning', 'seen'); })
  +
$('#spoiler-warning__spoiler-policy-link').click(function () { localStorage.setItem('defiant-spoiler-warning', 'seen'); })
 
}
 
}
   
if (window.localStorage.getItem('row-spoiler-warning') === null) {
+
if (window.localStorage.getItem('defiant-spoiler-warning') === null && !mw.config.get('wgUserGroups').includes('sysop')) {
 
showDialog();
 
showDialog();
 
}
 
}

Latest revision as of 16:30, 21 June 2024

/* Any JavaScript here will be loaded for all users on every page load. */

/* replace "Coppermind:Welcome" with "Welcome to the Coppermind" */
if (mw.config.get('wgPageName') == 'Coppermind:Welcome') {
  $('h1:contains("Coppermind:Welcome")').text("Welcome to the Coppermind");
}

/* 2014-04
  augment actionpaths edits to LocalSetting.php 
*/
$('[href*="title="]').attr('href', function (i, value) {
  const old_link = value
  //console.debug('was linking to:', value)
  value = value.replace(/\/wiki\/\?title=([^&]+)\&(.+)/, "/wiki/$1?$2")
  value = value.replace(/\/w\/index.php\?title=(.+?)\&(.+?)/, "/wiki/$1?$2")
  if (old_link != value)
    console.debug('now linking to:', value, 'not:', old_link)
  return value
})
$(function() {

document.querySelectorAll('form.mw-search').forEach(function(form) { form.setAttribute('action','/wiki/Special:Search') })
document.querySelectorAll('form#search').forEach(function(form) { form.setAttribute('action', '/wiki/Special:Search') })

document.querySelectorAll('form[action*="/w/index.php"]').forEach(function(form) {
  console.debug('changing form', form, 'with action', form.getAttribute('action'), 'to `?`')
  form.setAttribute('action', '?')
})

});

function showDialog () {
  var container = document.createElement('div');
  container.style.display = 'flex';
  container.style.alignItems = 'center';
  container.style.justifyContent = 'center';
  container.style.position = 'fixed';
  container.style.left = '0';
  container.style.right = '0';
  container.style.top = '0';
  container.style.bottom = '0';
  container.style.zIndex = '10000';
  container.style.background = 'rgba(0, 0, 0, 0.5)';
  container.style.filter = 'initial';

  var window = document.createElement('div');
  window.className = 'coppermind-spoiler-warning';
  window.style.boxShadow = '0 4px 30px 0 rgba(0, 0, 0, 0.2)';
  window.style.width = '90%';
  window.style.maxWidth = '600px';
  window.style.borderRadius = '3px';
  window.style.background = 'white';
  window.style.display = 'flex';
  window.style.flexDirection = 'column';
  window.style.boxSizing = 'border-box';
  window.style.padding = '16px';
  window.style.fontSize = '1.5em';
  window.style.maxHeight = '90%';
  container.appendChild(window);

  window.innerHTML = '<h2>⚠️ Spoiler Warning</h2>';
  window.innerHTML += '<p style="font-size: 1em; overflow-y: auto; flex: 1;">Welcome to the Coppermind! Be aware that the wiki may have spoilers for all published works by Brandon Sanderson. By browsing this wiki, you may therefore be subject to spoilers for the entire Cosmere as well as Brandon\'s other works. Additionally, certain pages may contain information about books that have yet to be released. For our full spoiler policy and guidelines, you can visit <a id="spoiler-warning__spoiler-policy-link" href="https://coppermind.net/wiki/Help:Spoilers">our help page on spoilers</a>! If you\'d like to visit the site as it was prior to any book release, you can go to <a id="spoiler-warning__time-machine-link" href="https://coppermind.net/wiki/Special:TimeMachine">our Time Machine!</a></p>';

  var button = document.createElement('button');
  button.className = 'mw-ui-button mw-ui-destructive';
  button.style.alignSelf = 'center';
  button.style.fontSize = '1em';
  button.innerHTML = 'Proceed';
  button.onclick = function () {
    localStorage.setItem('defiant-spoiler-warning', 'seen');
    document.body.removeChild(container);
    $(document.body).removeClass('spoiler-warning-blur');
  }
  window.appendChild(button);

  var style = document.createElement('style');
  style.type = 'text/css';
  style.innerHTML = '.spoiler-warning-blur > * { filter: blur(50px); }';
  document.getElementsByTagName('head')[0].appendChild(style);

  $(document.body).addClass('spoiler-warning-blur');
  document.body.appendChild(container);
  $('#spoiler-warning__time-machine-link').click(function () { localStorage.setItem('defiant-spoiler-warning', 'seen'); })
  $('#spoiler-warning__spoiler-policy-link').click(function () { localStorage.setItem('defiant-spoiler-warning', 'seen'); })
}

if (window.localStorage.getItem('defiant-spoiler-warning') === null && !mw.config.get('wgUserGroups').includes('sysop')) {
  showDialog();
}