Diferencia entre revisiones de «MediaWiki:Common.js»

De La Coppermind
Ir a la navegación Ir a la búsqueda
m (+collapse)
 
m
 
(No se muestran 134 ediciones intermedias de 5 usuarios)
Línea 1: Línea 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. */
   
  +
/* replace "Coppermind:Bienvenidos" with "Te damos la bienvenida a la Coppermind" */
/** Collapsible tables
 
  +
$('h1:contains("Coppermind:Bienvenidos")').text("Te damos la bienvenida a la Coppermind");
Description: Allows tables to be collapsed, showing only the header. See http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
 
  +
Maintainers: [[en:User:R. Koot]]
 
  +
/* 2014-04
  +
augment actionpaths edits to LocalSetting.php
 
*/
 
*/
  +
$('[href*="title="]').attr('href', function (i, value) {
 
  +
const old_link = value
var autoCollapse = 2;
 
  +
//console.debug('was linking to:', value)
var collapseCaption = 'hide';
 
  +
value = value.replace(/\/wiki\/\?title=([^&]+)\&(.+)/, "/wiki/$1?$2")
var expandCaption = 'show';
 
  +
value = value.replace(/\/w\/index.php\?title=(.+?)\&(.+?)/, "/wiki/$1?$2")
 
  +
if (old_link != value)
function collapseTable( tableIndex ) {
 
  +
console.debug('now linking to:', value, 'not:', old_link)
var Button = document.getElementById( 'collapseButton' + tableIndex );
 
  +
return value
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 
  +
})
if ( !Table || !Button ) return false;
 
  +
$(function() {
var Rows = Table.rows;
 
  +
 
  +
document.querySelectorAll('form.mw-search').forEach(function(form) { form.setAttribute('action','/wiki/Special:Search') })
if ( Button.firstChild.data == collapseCaption ) {
 
  +
document.querySelectorAll('form#search').forEach(function(form) { form.setAttribute('action', '/wiki/Special:Search') })
for ( var i = 1; i < Rows.length; i++ ) {
 
  +
Rows[i].style.display = 'none';
 
  +
document.querySelectorAll('form[action*="/w/index.php"]').forEach(function(form) {
}
 
  +
console.debug('changing form', form, 'with action', form.getAttribute('action'), 'to `?`')
Button.firstChild.data = expandCaption;
 
  +
form.setAttribute('action', '?')
} else {
 
  +
})
for ( var i = 1; i < Rows.length; i++ ) {
 
  +
Rows[i].style.display = Rows[0].style.display;
 
  +
});
}
 
  +
Button.firstChild.data = collapseCaption;
 
  +
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>⚠️ Aviso de Spoiler</h2>';
  +
window.innerHTML += '<p style="font-size: 1em; overflow-y: auto; flex: 1;">¡Has llegado a la Coppermind en español! Esta wiki tiene spoilers de todos los trabajos publicados de Brandon, incluyendo <b><em>El Hombre Iluminado</b></em>. Por lo tanto, al navegar por esta wiki, puedes sufrir spoilers de todo el Cosmere, así como de otras obras de Brandon. Además, algunas páginas pueden contener información sobre libros que aún no han sido publicados. Si quieres visitar el sitio tal y como era antes de la publicación de algún libro, ¡puedes ir a nuestra <a id="spoiler-warning__time-machine-link" href="https://es.coppermind.net/wiki/Especial:M%C3%A1quinaDelTiempo">Máquina del Tiempo!</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 = 'Acceder';
  +
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('keeper')) {
function createCollapseButtons() {
 
  +
showDialog();
var tableIndex = 0;
 
var NavigationBoxes = new Object();
 
var Tables = document.getElementsByTagName( 'table' );
 
 
for ( var i = 0; i < Tables.length; i++ ) {
 
if ( hasClass( Tables[i], 'collapsible' ) ) {
 
 
/* only add button and increment count if there is a header row to work with */
 
var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
 
if ( !HeaderRow ) {
 
continue;
 
}
 
var Header = HeaderRow.getElementsByTagName( 'th' )[0];
 
if ( !Header ) {
 
continue;
 
}
 
 
NavigationBoxes[tableIndex] = Tables[i];
 
Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 
 
var Button = document.createElement( 'span' );
 
var ButtonLink = document.createElement( 'a' );
 
var ButtonText = document.createTextNode( collapseCaption );
 
 
Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
 
 
ButtonLink.style.color = Header.style.color;
 
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
 
ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
 
ButtonLink.appendChild( ButtonText );
 
 
Button.appendChild( document.createTextNode( '[' ) );
 
Button.appendChild( ButtonLink );
 
Button.appendChild( document.createTextNode( ']' ) );
 
 
Header.insertBefore( Button, Header.childNodes[0] );
 
tableIndex++;
 
}
 
}
 
 
for ( var i = 0; i < tableIndex; i++ ) {
 
if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {
 
collapseTable( i );
 
} else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {
 
var element = NavigationBoxes[i];
 
while ( element = element.parentNode ) {
 
if ( hasClass( element, 'outercollapse' ) ) {
 
collapseTable( i );
 
break;
 
}
 
}
 
}
 
}
 
 
}
 
}
 
addOnloadHook( createCollapseButtons );
 
 
/** Test if an element has a certain class **************************************
 
*
 
* Description: Uses regular expressions and caching for better performance.
 
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 
*/
 
 
var hasClass = ( function() {
 
var reCache = {};
 
return function( element, className ) {
 
return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className );
 
};
 
})();
 

Revisión actual del 09:42 18 mar 2024

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

/* replace "Coppermind:Bienvenidos" with "Te damos la bienvenida a la Coppermind" */
$('h1:contains("Coppermind:Bienvenidos")').text("Te damos la bienvenida a la 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>⚠️ Aviso de Spoiler</h2>';
  window.innerHTML += '<p style="font-size: 1em; overflow-y: auto; flex: 1;">¡Has llegado a la Coppermind en español! Esta wiki tiene spoilers de todos los trabajos publicados de Brandon, incluyendo <b><em>El Hombre Iluminado</b></em>. Por lo tanto, al navegar por esta wiki, puedes sufrir spoilers de todo el Cosmere, así como de otras obras de Brandon. Además, algunas páginas pueden contener información sobre libros que aún no han sido publicados. Si quieres visitar el sitio tal y como era antes de la publicación de algún libro, ¡puedes ir a nuestra  <a id="spoiler-warning__time-machine-link" href="https://es.coppermind.net/wiki/Especial:M%C3%A1quinaDelTiempo">Máquina del Tiempo!</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 = 'Acceder';
  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('keeper')) {
  showDialog();
}