Usuario:DarkGames26/common.js
Ir a la navegación
Ir a la búsqueda
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
/**
* Diferentes utilidades
*/
var util = (function(){
var exports = {
/* common l10n factory */
l10nFactory: function($lang, $data) {
return function ($key) {
return $data[$key] && ($data[$key][$lang] || $data[$key]['en']) || '';
};
}
};
function throttle(t, e, o, n) {
var r, i = !1,
u = 0;
function c() {
r && clearTimeout(r)
}
function a() {
for (var a = arguments.length, d = new Array(a), l = 0; l < a; l++) d[l] = arguments[l];
var f = this,
v = Date.now() - u;
function p() {
u = Date.now(), o.apply(f, d)
}
function h() {
r = void 0
}
i || (n && !r && p(), c(), void 0 === n && v > t ? p() : !0 !== e && (r = setTimeout(n ? h : p, void 0 === n ? t - v : t)))
}
return "boolean" != typeof e && (n = o, o = e, e = void 0), a.cancel = function() {
c(), i = !0
}, a
}
function debounce(t, e, o) {
return void 0 === o ? throttle(t, e, !1) : throttle(t, o, !1 !== e)
}
exports.debounce = debounce;
exports.throttle = throttle;
return exports;
})();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Handle wide tables
*
* Display a horizontal floating scroll bar when the table width exceeds the page width.
*/
$(function() {
var TABLE_WIDE_CLASS = "table-wide";
var TABLE_WIDE_INNER_CLASS = "table-wide-inner";
var handleWideTables = function(tables) {
var handler = util.debounce(100, (function() {
if(!tables){
return;
}
tables.forEach(function(table) {
var $table = $(table);
if(!$table.data('container')){
$table.data('container', table.parentNode);
}
var container = $table.data('container');
if(!container){
return;
}
var $innerBox = $table.parent();
var $outerBox = $innerBox.parent();
var overwide = table.getBoundingClientRect().width > container.getBoundingClientRect().width;
if($outerBox.hasClass(TABLE_WIDE_CLASS)){
if(overwide){
$innerBox.floatingScroll("update");
}else{
$outerBox.before($table).remove();
}
}else{
if(overwide) {
$('<div/>').addClass(TABLE_WIDE_INNER_CLASS).appendTo(
$('<div/>').addClass(TABLE_WIDE_CLASS).insertBefore($table)
).append($table).floatingScroll("init").floatingScroll("update");
}
}
});
}));
handler();
window.addEventListener("resize", handler);
};
var isEditorActive = function() {
var e = new URLSearchParams(window.location.search);
return "edit" === e.get("action") || "submit" === e.get("action") || ("edit" === e.get("veaction")
|| "submit" === e.get("veaction") || "editsource" === e.get("veaction"));
}
mw.hook("wikipage.content").add(function() {
if (!isEditorActive()) {
var el = document.querySelector("#bodyContent");
if (el) {
handleWideTables(el.querySelectorAll("table"));
}
}
});
});
/**
* Tablas AJAX
*/
$(function() {
var l10n = util.l10nFactory(mw.config.get('wgUserLanguage'),{
showData: {
'en': 'show data',
'es': 'mostrar datos',
'de': 'Daten anzeigen',
'fr': 'affiche les données',
'zh': '显示数据',
'zh-cn': '显示数据'
},
wait: {
'en': 'Please wait, the content is being loaded...',
'es': 'Por favor espere, el contenido se esta cargando...',
'de': 'Bitte warten, der Inhalt wird geladen...',
'fr': 'Veuillez patienter pendant le chargement du contenu...',
'pt': 'Por favor espere, o conteúdo está sendo carregado...',
'uk': 'Будь ласка, зачекайте вміст завантажиться…',
'zh': '请稍候,正在加载内容……',
'zh-cn': '请稍候,正在加载内容……'
},
edit: {
'en': 'edit',
'es': 'editar',
'de': 'bearbeiten',
'fr': 'modifier',
'pt': 'Editar',
'uk': 'редагувати',
'zh': '编辑',
'zh-cn': '编辑'
},
hide: {
'en': 'hide',
'en': 'ocultar',
'de': 'verbergen',
'fr': 'masquer',
'pt': 'Esconder',
'uk': 'згорнути',
'zh': '隐藏',
'zh-cn': '隐藏'
},
show: {
'en': 'show',
'es': 'mostrar',
'de': 'anzeigen',
'fr': 'afficher',
'pt': 'Mostrar',
'uk': 'розгорнути',
'zh': '显示',
'zh-cn': '显示',
},
error: {
'en': 'Unable to load table; the source article for it might not exist.',
'es': 'Se ha deshabilitado la carga de la tabla, el artículo de destino no existe.',
'de': 'Kann Tabelle nicht laden; möglicherweise existiert der Quellartikel nicht.',
'fr': 'Impossible de charger cette table; l\'article originel ne semble pas exister.',
'pt': 'Não é possível a carregar tabela; o artigo fonte pode não existir.',
'uk': 'Неможливо завантажити вміст; можливо, цільова сторінка не існує.',
'zh': '无法加载表格,其源文章可能不存在。',
'zh-cn': '无法加载表格,其源文章可能不存在。'
}
});
$("table.ajax").each(function (i) {
var table = $(this).attr("id", "ajaxTable" + i);
table.find(".nojs-message").remove();
var headerLinks = $('<span style="float: right;">').appendTo(table.find('th').first());
var cell = table.find("td").first();
var needLink = true;
cell.parent().show();
if (cell.hasClass("showLinkHere")) {
var old = cell.html();
var rep = old.replace(/\[link\](.*?)\[\/link\]/, '<a href="javascript:;" class="ajax-load-link">$1</a>');
if (rep !== old) {
cell.html(rep);
needLink = false;
}
}
if (needLink){
headerLinks.html('[<a href="javascript:;" class="ajax-load-link">'+l10n('showData')+'</a>]');
}
table.find(".ajax-load-link").parent().addBack().filter('a').click(function(event) {
event.preventDefault();
var sourceTitle = table.data('ajax-source-page'), baseLink = mw.config.get('wgScript') + '?';
cell.text(l10n('wait'));
$.get(baseLink + $.param({ action: 'render', title: sourceTitle }), function (data) {
if (!data) {
return;
}
cell.html(data);
cell.find('.ajaxHide').remove();
cell.find('.terraria:not(.ajaxForceTerraria)').removeClass('terraria');
if (cell.find("table.sortable").length) {
mw.loader.using('jquery.tablesorter', function() {
cell.find("table.sortable").tablesorter();
});
}
headerLinks.text('[');
headerLinks.append($('<a>'+l10n('edit')+'</a>').attr('href', baseLink + $.param({ action: 'edit', title: sourceTitle })));
headerLinks.append(document.createTextNode(']\u00A0['));
var shown = true;
$("<a href='javascript:;'>"+l10n('hide')+"</a>").click(function() {
shown = !shown;
cell.toggle(shown);
$(this).text(shown ? l10n('hide') : l10n('show'));
}).appendTo(headerLinks);
headerLinks.append(document.createTextNode(']'));
}).error(function() {
cell.text(l10n('error'));
});
});
});
});