MediaWiki:Gadget-Correlatos.js: diferenças entre revisões

Origem: Wikilivros, livros abertos por um mundo aberto.
Conteúdo apagado Conteúdo adicionado
Migration: $.escapeRE → mw.RegExp.escape
m Migração: mw.RegExp.escape → mw.util.escapeRegExp
 
Linha 34: Linha 34:
'en.wikibooks': 'en.Wikibooks'
'en.wikibooks': 'en.Wikibooks'
};
};
var sRegExp = new RegExp('^.+' + mw.RegExp.escape( mw.config.get('wgServer') ) );
var sRegExp = new RegExp('^.+' + mw.util.escapeRegExp( mw.config.get('wgServer') ) );
var pageURLend = decodeURI(document.URL.replace(sRegExp, '.org'));
var pageURLend = decodeURI(document.URL.replace(sRegExp, '.org'));
var enRegExp = new RegExp(mw.config.get('wgPageName'));
var enRegExp = new RegExp(mw.config.get('wgPageName'));

Edição atual desde as 13h28min de 6 de abril de 2020

/** Adiciona ligações para os correlatos na barra lateral ([[MediaZilla:708]])
 * Adiciona links para os correlatos informados com [[Template:Correlatos]],
 * nas páginas especiais e nas mensagens do MediaWiki
 * @see [[wikt:de:MediaWiki:Onlyifsystem.js]]
 * @see [[commons:MediaWiki:InterProject.js]]
 * @author [[wikt:de:Melancholie]]
 * @author [[wikt:de:Pill]]
 * @author [[wikt:de:Spacebirdy]]
 * @author [[wikt:de:Balû]]
 * @author [[commons:User:Ilmari Karonen]]
 * @author [[commons:User:DieBuche]]
 * @author [[commons:User:Krinkle]]
 */
function getProjectListHTML() {
	var interPr = document.getElementById('interProject');
	var url;
	if (interPr) {
		return interPr.innerHTML;
	}
	if ($.inArray(mw.config.get('wgNamespaceNumber'), [-1, 8, 9]) === -1) {
		return null;
	}

	var proj = {
		'commons.wikimedia': 'Wikimedia Commons',
		'pt.wikipedia': 'Wikipédia',
		'pt.wiktionary': 'Wikcionário',
		'pt.wikisource': 'Wikisource',
		'pt.wikiversity': 'Wikiversidade',
		'pt.wikinews': 'Wikinotícias',
		'pt.wikiquote': 'Wikiquote',
		'meta.wikimedia': 'Meta-Wiki',
		'species.wikimedia': 'Wikispecies',
		'en.wikibooks': 'en.Wikibooks'
	};
	var sRegExp = new RegExp('^.+' + mw.util.escapeRegExp( mw.config.get('wgServer') ) );
	var pageURLend = decodeURI(document.URL.replace(sRegExp, '.org'));
	var enRegExp = new RegExp(mw.config.get('wgPageName'));
	pageURLend = pageURLend.replace(enRegExp, mw.config.get('wgCanonicalNamespace') + ':' + (mw.config.get('wgCanonicalSpecialPageName') || mw.config.get('wgTitle').replace(' ', '_')));

	// var iProjectSys = document.createElement('div');
	// iProjectSys.style.marginTop = '0.7em';
	var list = '';
	for (url in proj) {
		if (proj.hasOwnProperty(url)) {
			list += '<li><a href="//' + url + pageURLend + '">' + proj[url] + '<\/a><\/li>';
		}
	}
	// list = '<h3>Correlatos<\/h3><div class="pBody"><ul>' + list + '<\/ul><\/div>';
	list = '<ul>' + list + '<\/ul>';
	return list;
	// iProjectSys.innerHTML = list;
	// document.getElementById( 'p-tb' ).appendChild( iProjectSys );
}
// TODO: Remover parte deste código quando o [[bugzilla:23515]] for resolvido
function renderProjectsPortlet() {
	var idNum;
	if (document.getElementById('p-interproject')) {
		return;  // avoid double inclusion
	}
	var listHTML = getProjectListHTML();
	if (!listHTML) {
		return;
	}

	var toolBox = document.getElementById('p-tb');
	var panel;
	if (toolBox) {
		panel = toolBox.parentNode;
	} else {
		// stupid incompatible skins...
		var panelIds = ['panel', 'column-one', 'mw_portlets', 'mw-panel'];
		for (idNum = 0; !panel && idNum < panelIds.length; idNum++) {
			panel = document.getElementById(panelIds[idNum]);
		}
		// can't find a place for the portlet, try to undo hiding
		if (!panel) {
			mw.util.addCSS('#interProject, #sisterProjects { display: block; }');
			return;
		}
	}

	var interProject = document.createElement('div');
	interProject.id = 'p-interproject';
	interProject.className = (mw.config.get('skin') === 'vector' ? 'portal' : 'portlet') + ' collapsed';

	interProject.innerHTML =
		'<h3>Correlatos<\/h3><div class="' + (mw.config.get('skin') === 'vector' ? 'body' : 'pBody') + '">' +
		listHTML + '<\/div>';

	if (toolBox && toolBox.nextSibling) {
		panel.insertBefore(interProject, toolBox.nextSibling);
	} else {
		panel.appendChild(interProject);
	}
}
$(renderProjectsPortlet);

// [[Categoria:Gadgets|Correlatos.js]]
// [[Categoria:Scripts do Wikilivros|Correlatos.js]]