Itilizatè:Mattho69/vector.js

Depi Wikipedya, ansiklopedi lib

Note bagay sa : aprè ou fin pibliye modifikasyon yo, sa ka rive ou oblije fòse chajman total kach navigatè entènèt ou an pou ou kapab wè chanjman yo.

  • Firefox / Safari : kenbe touch Maj pandan w ap klike sou bouton Rafrechi/Aktyalize oswa ou peze Ctrl-F5 oubyen Ctrl-R (⌘-R sou sistèm Apple Mac)
  • Google Chrome : peze Ctrl-Shift-R (⌘-Maj-R sou sistèm Apple Mac)
  • Internet Explorer / Edge : kenbe touch Ctrl pandan w ap klike sou bouton Rafrechi/Aktyalize, oubyen peze Ctrl-F5.
  • Opera: peze Ctrl-F5.
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

var ADBvars_basetemplate = "{{Kolektivite tèritoryal}}\n";
var ADBvars_imagetemplate = "{{Kolektivite tèritoryal\n|imaj = $1\n|lyen_imaj = $2\n}}\n";

var ADBvars_Texts = {
 "nowikidataitem"               : "Pas d'élément lié sur Wikidata",
 "p31notspecified"              : "« Nature de l'élément » non renseignée sur Wikidata",
 "add"                          : "L'ajouter dans l'article",
 "showpreview"                  : "Afficher l'Kolektivite tèritoryal",
 "hidepreview"                  : "Cesser d'afficher l'Kolektivite tèritoryal",
 "confirmmodaltext"             : "Voulez-vous déplacer la première image de l'article dans l'Kolektivite tèritoryal ?",
 "editsummary"                  : "+[[Modèl:Kolektivite tèritoryal|Kolektivite tèritoryal]]",
 "successnotif"                 : "L'Infobox a été ajoutée :)",
};

mw.loader.using(['jquery.client', 'jquery.mwEmbedUtil', 'jquery.ui']);


$(function() {
	if (mw.config.get('wgNamespaceNumber') == 0 && mw.config.get('wgAction') == 'view' && !appenddatabox_justsaved()) {
		if ($("#t-wikibase").length)
			appenddatabox_getwikidataentity();
		else
			$('#firstHeading').before('<div style="float:right;"><small>['+ADBvars_Texts['nowikidataitem']+']</small></div>');
	}
});

function appenddatabox_getwikidataentity() {
	$.ajax({
		'url': 'https://www.wikidata.org/w/api.php',
		'data': {
			'action': 'wbgetclaims',
			'entity': 'Q' + $("#t-wikibase a").attr("href").split("Q")[1],
			'format': 'json',
			'origin': 'https://'+mw.config.get('wgServerName'),
		},
		'xhrFields': {
			'withCredentials': true
		},
		'dataType': 'json',
		'success': function(data) {
				appenddatabox_initialize();
		}
	});
}

function appenddatabox_initialize() {
	if (!$('.infobox_v2').length && !$('.infobox_v3').length)
		$('#firstHeading').before(' <div style="float:right;" id="appenddatabox_link2"><small>[<a href="javascript:appenddatabox_insert();">'+ADBvars_Texts['add']+'</a>]</small></div>');
	$('#firstHeading').before('<div style="float:right;" id="appenddatabox_link1"><small>[<a href="javascript:appenddatabox_showpreview();">'+ADBvars_Texts['showpreview']+'</a>]</small></div>');
}

function appenddatabox_showpreview() {
	$("#appenddatabox_link1").html('<small>[<a href="javascript:appenddatabox_hidepreview();">'+ADBvars_Texts['hidepreview']+'</a>]</small>');
	$.ajax({
		url: mw.util.wikiScript('api'),
		method: 'GET',
		data: {
			action: 'expandtemplates',
			text: ADBvars_basetemplate,
			prop: 'wikitext',
			title: mw.config.get('wgTitle'),
			format: 'json',
		},
	}).then(function(data) {
		$.ajax({
			url: mw.util.wikiScript('api'),
			method: 'POST',
			data: {
				action: 'parse',
				text: '<div id="appenddatabox_preview">' + data.expandtemplates.wikitext + '</div>',
				contentmodel: 'wikitext',
				prop: 'text',
				format: 'json',
			},
			success: function(data) {
				$("#mw-content-text").prepend(data.parse.text["*"]);
				if (typeof databoxeditor_changelinks == 'function')
					databoxeditor_changelinks();
			}
		});
	});
}

function appenddatabox_hidepreview() {
	$("#appenddatabox_preview").remove();
	$("#appenddatabox_link1").html('<small>[<a href="javascript:appenddatabox_showpreview();">'+ADBvars_Texts['showpreview']+'</a>]</small>');
}

function appenddatabox_insert() {
	$("#appenddatabox_link2").html('<small>['+ADBvars_Texts['add']+']</small>');
	$.ajax({
		url: mw.util.wikiScript('api'),
		method: 'GET',
		data: {
			action: 'query',
			prop: 'revisions',
			rvprop: 'timestamp|content',
			titles: mw.config.get('wgTitle'),
			format: 'json',
		},
		success: function(data) {
			revision = [];
			revision.timestamp = data.query.pages[Object.keys(data.query.pages)[0]].revisions[0].timestamp;
			revision.content = data.query.pages[Object.keys(data.query.pages)[0]].revisions[0]["*"];
			var r_pictures = /(\[\[(?:[Ff]ile|[Ii]mage|[Ff]ichier):([^|\]]+)\|*(?:(?:thumb|thumbnail|alt|vignette|framed|cadre|frameless|sans_cadre|left|gauche|right|droite|center|centre|néant|none|upright=*[0-9\.,]*|[0-9]+px)\|*)*((?:\[\[[^\]]*\]\]|[^|\]])*)(?:\|(?:thumb|thumbnail|alt|vignette|framed|cadre|frameless|sans_cadre|left|gauche|right|droite|center|centre|néant|none|upright=*[0-9\.,]*|[0-9]+px))*\|*\]\]\n?)/;
			var match = r_pictures.exec(revision.content);
			if (match) {
				$("body").append('<div id="appenddatabox_confirm">'+ADBvars_Texts['confirmmodaltext']+'</div>');
				$("#appenddatabox_confirm").dialog({
					resizable: false,
					height: 140,
					modal: true,
					autoOpen: true,
					buttons: {
						'Oui': function() {
							$(this).dialog("close");
							revision.content = revision.content.replace(match[1], "");
							appenddatabox_save(revision, ADBvars_imagetemplate.replace("$1", match[2]).replace("$2", match[3]));
						},
						'Non': function() {
							$(this).dialog("close");
							appenddatabox_save(revision, ADBvars_basetemplate);
						}
					}
				});
			} else
				appenddatabox_save(revision, ADBvars_basetemplate);
		}
	});
}

function appenddatabox_save(revision, template) {
	var r_template = /^\s*(\{\{([\n]+|[^\}]+)\}\}\s*)+/;
	var match = r_template.exec(revision.content);
	console.log(match);
	if (match)
		revision.content = revision.content.slice(0, match[0].length) + template + revision.content.slice(match[0].length);
	else
		revision.content = template + revision.content;
	$.ajax({
		url: mw.util.wikiScript('api'),
		data: {
			action: 'query',
			meta: 'tokens',
			format: 'json',
			type: 'csrf',
		},
		dataType: 'json'
	}).then(function(data) {
		$.ajax({
			url: mw.util.wikiScript('api'),
			method: 'POST',
			data: {
				action: 'edit',
				title: mw.config.get('wgTitle'),
				text: revision.content,
				summary: ADBvars_Texts['editsummary'],
				basetimestamp: revision.timestamp,
				format: 'json',
				token: data.query.tokens.csrftoken
			},
			dataType: 'json',
			success: function(data) {
				mw.notify(ADBvars_Texts['successnotif']);
				setTimeout(function() {
					document.location.href = mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace("$1", mw.config.get('wgPageName')) + "?action=purge&appenddatabox=success";
				}, 1500);
			}
		});
	});
}


function appenddatabox_justsaved() {
	var sPageURL = window.location.search.substring(1);
	var sURLVariables = sPageURL.split('&');
	for (var i = 0; i < sURLVariables.length; i++) {
		var sParameterName = sURLVariables[i].split('=');
		if (sParameterName[0] == "appenddatabox")
			return true;
	}
	return false;
}