Difference between revisions of "MediaWiki:Common.js"

From The Coppermind
Jump to navigation Jump to search
Line 56: Line 56:
   
 
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;">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 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');

Revision as of 19:17, 17 August 2021

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

/* replace "Coppermind:Welcome" with "Welcome to the Coppermind" */
$('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 = '1000';
  container.style.background = 'rgba(0, 0, 0, 0.5)';
  container.style.filter = 'initial';

  var window = document.createElement('div');
  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';
  container.appendChild(window);

  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 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-progressive';
  button.style.alignSelf = 'center';
  button.style.fontSize = '1em';
  button.innerHTML = 'Proceed';
  button.onclick = function () {
    localStorage.setItem('row-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('row-spoiler-warning', 'seen'); })
}

if (window.localStorage.getItem('row-spoiler-warning') === null) {
  showDialog();
}