Difference between revisions of "MediaWiki:Common.js"

From The Coppermind
Jump to navigation Jump to search
m (Fixed single quote escape)
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.<em>Rhythm of War</em> is released and this wiki has content from the book. By browsing this wiki, you may be subject to spoilers. However, if you'd like to visit the site as it was prior to release, you can go to <a 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.<em>Rhythm of War</em> is released and this wiki has content from the book. By browsing this wiki, you may be subject to spoilers. However, if you\'d like to visit the site as it was prior to release, you can go to <a 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 10:23, 23 November 2020

/* 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.<em>Rhythm of War</em> is released and this wiki has content from the book. By browsing this wiki, you may be subject to spoilers. However, if you\'d like to visit the site as it was prior to release, you can go to <a href="https://coppermind.net/wiki/Special:TimeMachine">our Time Machine!</a></p>';

  var button = document.createElement('button');
  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);
}

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