Terraria Wiki
Terraria Wiki
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
 
//Automatically expand pages to full-width on FandomDesktop for unregistered users.
// Disable triggering of new browser tab when clicking URL links that point to internal wiki addresses (purge, edit, etc)
 
  +
//common.js is loaded BEFORE fandomdesktop-expand module, so we attach it to window.load to make sure it works.
$('a[href^="//terraria-fr.gamepedia.com"]').removeAttr('target');
 
 
$(window).on('load', function(){
 
  +
if( (wgUserName === null) && (!$('html').hasClass('is-content-expanded')) ){
// Select links to new tabs for Template:ilnt and Template:elnt
 
 
$("button.content-size-toggle").click();
$('.linkNewTab a').each(function(){
 
 
}
$(this).attr('target','_blank');
 
 
});
 
});
   
 
$.when( $.ready ).then(function() {
// Implement border-collapse + border-radius workaround for "terraria"-class tables
 
 
/* Document is ready. */
/* (temporarily?) disabled, broke display for tables with percentage widths
 
$('.terraria:not(.outer)')
 
.removeClass('terraria')
 
.addClass('inner')
 
.wrap('<table class="terraria outer"></table>');
 
*/
 
   
 
// Disable triggering of new browser tab when clicking URL links that point to internal wiki addresses (purge, edit, etc)
// Removes the two hyphens and add an extra space before the signature
 
 
$('a[href^="//terraria.fandom.com/"]').removeAttr('target');
$( function(){
 
if (mw.config.get('wgAction').match(/edit|submit/)) {
 
mw.config.set('mw.msg.wikieditor', ' ~~\~~');
 
}
 
});
 
   
 
// Select links to new tabs for Template:ilnt and Template:elnt
// Disable creation of non-talk pages by anonymous IP editors and link to registration (also disabled by abuse filter but this provides warning before attempting edit)
 
 
$('.linkNewTab a').attr('target','_blank');
const wgPageName = mw.config.get( 'wgPageName' );
 
const wgUserName = mw.config.get( 'wgUserName' );
 
   
 
// desktop view for mobile screen.
var isTalk = false, isAnon = false;
 
 
$('#mw-panel').append('<div id="menu-toggle-button"></div>');
if (wgPageName.indexOf('talk:') > -1 || wgPageName.indexOf('Talk:') > -1) isTalk = true;
 
 
$('#menu-toggle-button').on('click', function(){
if (wgUserName === null) isAnon = true;
 
 
$('#mw-panel').toggleClass('on');
 
  +
});
if (isAnon === true){
 
 
});
$('a.new').each(function(){
 
var href = $(this).attr('href');
 
$(this).attr('href', href.replace(/&action=edit/g, '') );
 
});
 
}
 
 
if (isAnon === true && isTalk === false) {
 
var anonWarnText = 'La création de page par des éditeurs anonymes est actuellement désactivée. <br/> Pour créer cette page, veuillez d\'abord vous <a href="https://terraria-fr.gamepedia.com/Special:CreateAccount">créer un compte</a>.';
 
$('body').append('<div class="anonWarnOverlay" style="display:none; background-color: #000; opacity: 0.4; position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 500;"></div>');
 
$('body').prepend('<div class="anonWarnBox" style="display:none; text-align:center; font-weight: bold; box-shadow: 7px 7px 5px #000; font-size: 0.9em; line-height: 1.5em; z-index: 501; opacity: 1; position: fixed; width: 50%; left: 25%; top: 30%; background: #F7F7F7; border: #222 ridge 1px; padding: 20px;">' + anonWarnText + '</div>');
 
 
var newSelect = 'a.new, #ca-edit a:contains(Create), #ca-ve-edit a:contains(Create), a.external.text:contains(edit this page)';
 
$(newSelect).each(function(){
 
if ($(this).attr('title').search(/talk\:/gi) < 0) {
 
$(this).attr('href', '#').click(function(){
 
$('.anonWarnBox').show();
 
$('.anonWarnOverlay').show();
 
});
 
}
 
});
 
 
$('.anonWarnOverlay').click(function(){
 
$('.anonWarnBox').hide();
 
$(this).hide();
 
});
 
}
 
   
 
// AJAX tables
 
// AJAX tables
 
$.when( $.ready ).then(function() {
function addAjaxDisplayLink() {
 
  +
var l10n = (function($lang, $data){
 
return function($key){
  +
return ($data[$lang] || $data['en'])[$key] || $data['en'][$key];
  +
}
  +
})(mw.config.get( 'wgPageContentLanguage' ),{
  +
en: {
  +
showData: 'show data',
  +
wait: 'Please wait, the content is being loaded...',
  +
edit: 'edit',
  +
hide: 'hide',
  +
show: 'show',
  +
error: 'Unable to load table; the source article for it might not exist.'
  +
},
  +
de: {
  +
showData: 'Daten anzeigen',
  +
wait: 'Bitte warten, der Inhalt wird geladen...',
  +
edit: 'bearbeiten',
  +
hide: 'verbergen',
  +
show: 'anzeigen',
  +
error: 'Kann Tabelle nicht laden; möglicherweise existiert der Quellartikel nicht.'
  +
},
  +
fr: {
  +
showData: 'affiche les données',
  +
wait: 'Veuillez patienter pendant le chargement du contenu...',
  +
edit: 'modifier',
  +
hide: 'masquer',
  +
show: 'afficher',
 
error: 'Impossible de charger cette table; l\'article originel ne semble pas exister.'
  +
},
  +
pt: {
  +
wait: 'Por favor espere, o conteúdo está sendo carregado...',
  +
edit: 'Editar',
  +
hide: 'Esconder',
  +
show: 'Mostrar',
  +
error: 'Não é possível a carregar tabela; o artigo fonte pode não existir.'
  +
},
  +
zh: {
  +
showData: '显示数据',
  +
wait: '请稍候,正在加载内容……',
  +
edit: '编辑',
  +
hide: '隐藏',
  +
show: '显示',
  +
error: '无法加载表格,其源文章可能不存在。'
  +
}
 
});
  +
 
$("table.ajax").each(function (i) {
 
$("table.ajax").each(function (i) {
 
var table = $(this).attr("id", "ajaxTable" + i);
 
var table = $(this).attr("id", "ajaxTable" + i);
 
table.find(".nojs-message").remove();
 
table.find(".nojs-message").remove();
 
var headerLinks = $('<span style="float: right;">').appendTo(table.find('th').first());
 
var headerLinks = $('<span style="float: right;">').appendTo(table.find('th').first());
var cell = table.find("td").first(), needLink = true;
+
var cell = table.find("td").first();
  +
var needLink = true;
 
cell.parent().show();
 
cell.parent().show();
 
if (cell.hasClass("showLinkHere")) {
 
if (cell.hasClass("showLinkHere")) {
  +
var old = cell.html();
var old = cell.html(), rep = old.replace(/\[link\](.*?)\[\/link\]/, '<a href="javascript:;" class="ajax-load-link">$1</a>');
+
var rep = old.replace(/\[link\](.*?)\[\/link\]/, '<a href="javascript:;" class="ajax-load-link">$1</a>');
 
if (rep != old) {
 
if (rep != old) {
 
cell.html(rep);
 
cell.html(rep);
Ligne 73 : Ligne 86 :
 
}
 
}
 
}
 
}
  +
if (needLink){
if (needLink) headerLinks.html('[<a href="javascript:;" class="ajax-load-link">show data</a>]');
+
headerLinks.html('[<a href="javascript:;" class="ajax-load-link">'+l10n('showData')+'</a>]');
  +
}
 
table.find(".ajax-load-link").parent().andSelf().filter('a').click(function(event) {
 
table.find(".ajax-load-link").parent().andSelf().filter('a').click(function(event) {
 
event.preventDefault();
 
event.preventDefault();
 
var sourceTitle = table.data('ajax-source-page'), baseLink = mw.config.get('wgScript') + '?';
 
var sourceTitle = table.data('ajax-source-page'), baseLink = mw.config.get('wgScript') + '?';
cell.text('Veuillez patienter pendant le chargement du contenu...');
+
cell.text(l10n('wait'));
 
$.get(baseLink + $.param({ action: 'render', title: sourceTitle }), function (data) {
 
$.get(baseLink + $.param({ action: 'render', title: sourceTitle }), function (data) {
 
if (data) {
 
if (data) {
Ligne 89 : Ligne 104 :
 
}
 
}
 
headerLinks.text('[');
 
headerLinks.text('[');
headerLinks.append($('<a>modifier</a>').attr('href', baseLink + $.param({ action: 'edit', title: sourceTitle })));
+
headerLinks.append($('<a>'+l10n('edit')+'</a>').attr('href', baseLink + $.param({ action: 'edit', title: sourceTitle })));
 
headerLinks.append(document.createTextNode(']\u00A0['));
 
headerLinks.append(document.createTextNode(']\u00A0['));
 
var shown = true;
 
var shown = true;
$("<a href='javascript:;'>masquer</a>").click(function() {
+
$("<a href='javascript:;'>"+l10n('hide')+"</a>").click(function() {
 
shown = !shown;
 
shown = !shown;
 
shown ? cell.show() : cell.hide();
 
shown ? cell.show() : cell.hide();
$(this).text(shown ? "masquer" : "afficher");
+
$(this).text(shown ? l10n('hide') : l10n('show'));
 
}).appendTo(headerLinks);
 
}).appendTo(headerLinks);
 
headerLinks.append(document.createTextNode(']'));
 
headerLinks.append(document.createTextNode(']'));
 
}
 
}
 
}).error(function() {
 
}).error(function() {
  +
cell.text(l10n('error'));
cell.text('Impossible de charger cette table; l\'article originel ne semble pas exister.');
 
 
});
 
});
 
});
 
});
 
});
 
});
}
+
});
  +
  +
   
$(addAjaxDisplayLink);
 
   
$.when( $.ready ).then(function() {
 
// Document is ready.
 
// desktop view for mobile screen.
 
$('#mw-panel').append('<div id="menu-toggle-button"></div>');
 
var $btn = $('#menu-toggle-button');
 
var $menu = $('#mw-panel .portal');
 
$btn.on('click', function(){
 
$('#mw-panel').toggleClass('on');
 
});
 
});
 
   
 
$(window).on('load', function(){
 
$(window).on('load', function(){
 
//main page header.
  +
var $btn = $('#box-wikiheader #box-wikiheader-toggle-link');
  +
if($btn.length){
 
var $box = $('#box-wikiheader');
 
$btn.css('display', 'inline-block');
 
if($box.innerHeight() > 180){
 
$box.addClass('collapsed');
  +
}
  +
$btn.on('click', function(){
 
$box.toggleClass('collapsed');
 
});
 
}
   
  +
// translation project banner
//main page header.
 
var $btn = $('#box-wikiheader #box-wikiheader-toggle-link');
+
$btn = $('#indic-project #indic-project-flag');
if($btn.length){
+
if($btn.length){
var $box = $('#box-wikiheader');
+
var $text = $('#indic-project');
  +
var $indic = $('#mw-indicator-translation-project');
$btn.css('display', 'inline-block');
 
  +
$btn.css('display', 'inline');
if($box.innerHeight() > 180){
 
  +
$btn.on('click', function(){
$box.addClass('collapsed');
 
  +
$text.toggleClass('collapsed');
}
 
  +
$indic.toggleClass('expanded');
$btn.on('click', function(){
 
 
});
$box.toggleClass('collapsed');
 
 
}
});
 
}
 
   
//sidebar height fix.
+
//sidebar height fix.
//override left-sidebar resize handle.
+
//override left-sidebar resize handle.
 
var $sidebar = $('#mw-panel');
 
var $sidebar = $('#mw-panel');
 
var $wrapper = $('#global-wrapper');
 
var $wrapper = $('#global-wrapper');
Ligne 175 : Ligne 192 :
 
$(document).ready(function (){
 
$(document).ready(function (){
 
$('.infobox .modetabs .tab, .infotable.npc .modetabs .tab').on('click', function(){
 
$('.infobox .modetabs .tab, .infotable.npc .modetabs .tab').on('click', function(){
var $this = $(this);
+
var $this = $(this);
if($this.hasClass('current')){
+
if($this.hasClass('current')){
return;
+
return;
}
+
}
$this.parent().children().removeClass('current');
+
$this.parent().children().removeClass('current');
$this.addClass('current');
+
$this.addClass('current');
$this.closest('.infobox, .infotable').removeClass('c-expert c-master c-normal').addClass($this.hasClass('normal')?'c-normal':($this.hasClass('expert')?'c-expert':'c-master'));
+
$this.closest('.infobox, .infotable').removeClass('c-expert c-master c-normal').addClass($this.hasClass('normal')?'c-normal':($this.hasClass('expert')?'c-expert':'c-master'));
});
+
});
 
});
 
});
   
Ligne 188 : Ligne 205 :
 
$(document).ready(function (){
 
$(document).ready(function (){
 
$('.spoiler-content').on('click', function(){
 
$('.spoiler-content').on('click', function(){
$(this).toggleClass('show');
+
$(this).toggleClass('show');
});
+
});
 
});
 
});
   
Ligne 195 : Ligne 212 :
 
$(document).ready(function (){
 
$(document).ready(function (){
 
$('.l10n-data-table th.lang').on('click', function(){
 
$('.l10n-data-table th.lang').on('click', function(){
var $this = $(this);
+
var $this = $(this);
var lang = $this.attr('lang');
+
var lang = $this.attr('lang');
if(lang=='en'){
+
if(lang=='en'){
return;
+
return;
}
+
}
$this.closest('table.l10n-data-table').find('td.'+lang).toggleClass('shrinked');
+
$this.closest('table.l10n-data-table').find('td.'+lang).toggleClass('shrinked');
$this.toggleClass('shrinked');
+
$this.toggleClass('shrinked');
});
+
});
 
$('.l10n-data-table th.all-lang').on('click', function(){
 
$('.l10n-data-table th.all-lang').on('click', function(){
var $this = $(this);
+
var $this = $(this);
$this.toggleClass('shrinked');
+
$this.toggleClass('shrinked');
if($this.hasClass('shrinked')){
+
if($this.hasClass('shrinked')){
$this.closest('table.l10n-data-table').find('td.l, th.lang').addClass('shrinked');
+
$this.closest('table.l10n-data-table').find('td.l, th.lang').addClass('shrinked');
$this.closest('table.l10n-data-table').find('td.en, th.en').removeClass('shrinked');
+
$this.closest('table.l10n-data-table').find('td.en, th.en').removeClass('shrinked');
}else{
+
}else{
$this.closest('table.l10n-data-table').find('td.l, th.lang').removeClass('shrinked');
+
$this.closest('table.l10n-data-table').find('td.l, th.lang').removeClass('shrinked');
}
+
}
});
+
});
//only expand current language
+
//only expand current language
 
$('.l10n-data-table').each(function(){
 
$('.l10n-data-table').each(function(){
 
var $this = $(this);
 
var $this = $(this);
Ligne 225 : Ligne 242 :
 
th.trigger('click');
 
th.trigger('click');
 
}
 
}
});
+
});
 
});
 
});
   
//Automatically expand pages to full-width on FandomDesktop for unregistered users
 
if($("button.content-size-toggle").attr("data-wds-tooltip") == "Expand" && isAnon === true){
 
$("button.content-size-toggle").click();
 
}
 
   
  +
mw.loader.load('https://terraria.gamepedia.com/index.php?title=MediaWiki:HairDyeSliders.js&action=raw&ctype=text/javascript');
+
mw.loader.load('/index.php?title=MediaWiki:HairDyeSliders.js&action=raw&ctype=text/javascript');

Version du 1 juillet 2021 à 19:17

//Automatically expand pages to full-width on FandomDesktop for unregistered users.
//common.js is loaded BEFORE fandomdesktop-expand module, so we attach it to window.load to make sure it works.
$(window).on('load', function(){
	if( (wgUserName === null) && (!$('html').hasClass('is-content-expanded')) ){
		$("button.content-size-toggle").click();
	}
});

$.when( $.ready ).then(function() {
	/* Document is ready. */

	// Disable triggering of new browser tab when clicking URL links that point to internal wiki addresses (purge, edit, etc)
	$('a[href^="//terraria.fandom.com/"]').removeAttr('target');

	// Select links to new tabs for Template:ilnt and Template:elnt
	$('.linkNewTab a').attr('target','_blank');

	// desktop view for mobile screen.
	$('#mw-panel').append('<div id="menu-toggle-button"></div>');
	$('#menu-toggle-button').on('click', function(){
		$('#mw-panel').toggleClass('on');
	});
});

// AJAX tables
$.when( $.ready ).then(function() {
	var l10n = (function($lang, $data){
		return function($key){
			return ($data[$lang] || $data['en'])[$key] || $data['en'][$key];
		}
	})(mw.config.get( 'wgPageContentLanguage' ),{
		en: {
			showData: 'show data',
			wait: 'Please wait, the content is being loaded...',
			edit: 'edit',
			hide: 'hide',
			show: 'show',
			error: 'Unable to load table; the source article for it might not exist.'
		},
		de: {
			showData: 'Daten anzeigen',
			wait: 'Bitte warten, der Inhalt wird geladen...',
			edit: 'bearbeiten',
			hide: 'verbergen',
			show: 'anzeigen',
			error: 'Kann Tabelle nicht laden; möglicherweise existiert der Quellartikel nicht.'
		},
		fr: {
			showData: 'affiche les données',
			wait: 'Veuillez patienter pendant le chargement du contenu...',
			edit: 'modifier',
			hide: 'masquer',
			show: 'afficher',
			error: 'Impossible de charger cette table; l\'article originel ne semble pas exister.'
		},
		pt: {
			wait: 'Por favor espere, o conteúdo está sendo carregado...',
			edit: 'Editar',
			hide: 'Esconder',
			show: 'Mostrar',
			error: 'Não é possível a carregar tabela; o artigo fonte pode não existir.'
		},
		zh: {
			showData: '显示数据',
			wait: '请稍候,正在加载内容……',
			edit: '编辑',
			hide: '隐藏',
			show: '显示',
			error: '无法加载表格,其源文章可能不存在。'
		}
	});

	$("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().andSelf().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) {
					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;
						shown ? cell.show() : cell.hide();
						$(this).text(shown ? l10n('hide') : l10n('show'));
					}).appendTo(headerLinks);
					headerLinks.append(document.createTextNode(']'));
				}
			}).error(function() {
				cell.text(l10n('error'));
			});
		});
	});
});





$(window).on('load', function(){
	//main page header.
	var $btn = $('#box-wikiheader #box-wikiheader-toggle-link');
	if($btn.length){
		var $box = $('#box-wikiheader');
		$btn.css('display', 'inline-block');
		if($box.innerHeight() > 180){
			$box.addClass('collapsed');
		}
		$btn.on('click', function(){
			$box.toggleClass('collapsed');
		});
	}

	// translation project banner
	$btn = $('#indic-project #indic-project-flag');
	if($btn.length){
		var $text = $('#indic-project');
		var $indic = $('#mw-indicator-translation-project');
		$btn.css('display', 'inline');
		$btn.on('click', function(){
			$text.toggleClass('collapsed');
			$indic.toggleClass('expanded');
		});
	}

	//sidebar height fix.
	//override left-sidebar resize handle.
	var $sidebar = $('#mw-panel');
	var $wrapper = $('#global-wrapper');
	var $footer = $('#curse-footer');
	$footer.css('margin-top', '0');
	var $top = 0;
	window.handleResizeEvents = function() {
		var $sidebar_bottom = $sidebar.offset().top + $sidebar.outerHeight(true);
		var $footer_top = $footer.offset().top;
		if ($sidebar_bottom > $footer_top - $top){
			$top = $sidebar_bottom - $wrapper.offset().top;
			$wrapper.css('min-height', $top+'px');
		}
	};
	window.handleResizeEvents();
});

// Hyperlink required modules in Module namespace
// Author: RheingoldRiver
$(function() {
	if (mw.config.get('wgCanonicalNamespace') != 'Module') return;
	$('.s1, .s2').each(function() {
		var html = $(this).html();
		// the module name is surrounded by quotes, so we have to remove them
		var quote = html[0];
		var quoteRE = new RegExp('^' + quote + '|' + quote + '$', 'g');
		var name = html.replace(quoteRE, ""); // remove quotes
		// link the module name
		if (name.startsWith("Module:")) {
			var target = encodeURIComponent(name);
			var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + target;
			var str = quote + '<a href="' + url + '">' + name + '</a>' + quote;
			$(this).html(str);
		}
	});
});

//npcinfobox
$(document).ready(function (){
	$('.infobox .modetabs .tab, .infotable.npc .modetabs .tab').on('click', function(){
		var $this = $(this);
		if($this.hasClass('current')){
			return;
		}
		$this.parent().children().removeClass('current');
		$this.addClass('current');
		$this.closest('.infobox, .infotable').removeClass('c-expert c-master c-normal').addClass($this.hasClass('normal')?'c-normal':($this.hasClass('expert')?'c-expert':'c-master'));
	});
});

//spoiler
$(document).ready(function (){
	$('.spoiler-content').on('click', function(){
		$(this).toggleClass('show');
	});
});

//l10n_data_table(template:l10n_subtemplate)
$(document).ready(function (){
	$('.l10n-data-table th.lang').on('click', function(){
		var $this = $(this);
		var lang = $this.attr('lang');
		if(lang=='en'){
			return;
		}
		$this.closest('table.l10n-data-table').find('td.'+lang).toggleClass('shrinked');
		$this.toggleClass('shrinked');
	});
	$('.l10n-data-table th.all-lang').on('click', function(){
		var $this = $(this);
		$this.toggleClass('shrinked');
		if($this.hasClass('shrinked')){
			$this.closest('table.l10n-data-table').find('td.l, th.lang').addClass('shrinked');
			$this.closest('table.l10n-data-table').find('td.en, th.en').removeClass('shrinked');
		}else{
			$this.closest('table.l10n-data-table').find('td.l, th.lang').removeClass('shrinked');
		}
	});
	//only expand current language
	$('.l10n-data-table').each(function(){
		var $this = $(this);
		var lang = $this.attr('lang');
		if(lang == 'en'){
			return;
		}
		var th = $this.find('th.lang.'+lang);
		if (th.length){
			$this.find('th.all-lang').trigger('click');
			th.trigger('click');
		}
	});
});



mw.loader.load('/index.php?title=MediaWiki:HairDyeSliders.js&action=raw&ctype=text/javascript');