Aller au contenu

MediaWiki:Gadget-0xBlockMessage.js

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 13 novembre 2015 à 02:49 et modifiée en dernier par 0x010C (discuter | contributions) (Nouvelle page : var bm_texts = { "form-legend": "Avertir \'$1\' de son blocage", "template-label": "Modèle", "subst-label": "Subster le modèle", "clean-label": "Effacer la PdD avant de mett...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
var bm_texts = {
	"form-legend": "Avertir \'$1\' de son blocage",
	"template-label": "Modèle",
	"subst-label": "Subster le modèle",
	"clean-label": "Effacer la PdD avant de mettre le modèle",
	"submit-label": "Avertir",
	"message-summary": "Blocage",
	"section-title": "Blocage",
	"successnotif": "La pose du message a réussi",
	"time-label": "Durée",
	"unit-label": "Unité",
};


var items = [{
	"separator": "Durée limitée",
}, {
	"name": "Bloqué",
	"template": "Bloqué|$1|$2",
}, {
	"name": "Bloqué sans avertissement",
	"template": "Bloqué sans avertissement|$1|$2",
}, {
	"name": "Insultes",
	"template": "Insultes|$1|$2",
}, {
	"name": "IP partagée bloquée",
	"template": "IP partagée bloquée|$1|$2",
}, {
	"name": "Vandale scolaire bloqué",
	"template": "Vandale scolaire bloqué",
}, {
	"separator": "Durée indéfini",
}, {
	"name": "Vandale banni",
	"template": "Vandale banni",
}, {
	"name": "Vandale banni sans avertissement",
	"template": "Vandale banni sans avertissement",
}, {
	"name": "Bot banni",
	"template": "Bot banni",
}, ];


$(function() {
	if (window.location.pathname.indexOf(encodeURI("Spécial:Bloquer/")) == 6) {
		if ($("#firstHeading").html() == "Bloquer l’utilisateur") {
			$(".visualClear .mw-htmlform-submit").click(function(event) {
				event.preventDefault();
				$.cookie("blockmessages-ip", $("#mw-bi-target").val());
				$.cookie("blockmessages-duree", $("#mw-input-wpExpiry").val());
				$.cookie("blockmessages-raison", $("#mw-input-wpReason").val());

				console.log($.cookie("blockmessages-ip"));
				console.log($.cookie("blockmessages-duree"));
				console.log($.cookie("blockmessages-raison"));
			});
		} else if ($("#firstHeading").html() == "Bloquer l’utilisateur" && $.cookie("blockmessages-user") != null) {
			bm_add_form();
			bm_parse_time();
			bm_populate_select();

			$("#blockmessage-submit").click(function(event) {
				event.preventDefault();
				bm_send_message();
			});
		}
	}
});


function bm_add_form() {
	$('#bodyContent').append('\
    <form class="visualClear">\
     <fieldset>\
      <legend>' + bm_texts['form-legend'].replace("$1", $.cookie("blockmessages-user")) + '</legend>\
      <table>\
       <tbody>\
        <tr class="mw-htmlform-field-HTMLSelectOrOtherField">\
         <td class="mw-label">\
          <label for="blockmessage-select">' + bm_texts['template-label'] + '&nbsp;:</label>\
         </td>\
         <td class="mw-input">\
          <select id="blockmessage-select" class="mw-htmlform-select-or-other">\
          </select>\
         </td>\
        </tr>\
        <tr class="mw-htmlform-field-HTMLSelectOrOtherField blockmessage-hidden" style="display:none;">\
         <td class="mw-label">\
          <label for="blockmessage-time">' + bm_texts['time-label'] + '&nbsp;:</label>\
         </td>\
         <td class="mw-input">\
          <input id="blockmessage-time" size="45" />\
         </td>\
        </tr>\
        <tr class="mw-htmlform-field-HTMLSelectOrOtherField blockmessage-hidden" style="display:none;">\
         <td class="mw-label">\
          <label for="blockmessage-unit">' + bm_texts['unit-label'] + '&nbsp;:</label>\
         </td>\
         <td class="mw-input">\
          <input id="blockmessage-unit" size="45" />\
         </td>\
        </tr>\
        <tr class="mw-htmlform-field-HTMLCheckField">\
         <td class="mw-label">\
          <label>&nbsp;</label>\
         </td>\
         <td class="mw-input">\
          <input name="blockmessage-subst" checked="checked" id="blockmessage-subst" type="checkbox">&nbsp;<label for="blockmessage-subst">' + bm_texts['subst-label'] + '</label>\
         </td>\
        </tr>\
        <tr class="mw-htmlform-field-HTMLCheckField">\
         <td class="mw-label">\
          <label>&nbsp;</label>\
         </td>\
         <td class="mw-input">\
          <input name="blockmessage-clean" id="blockmessage-clean" type="checkbox">&nbsp;<label for="blockmessage-clean">' + bm_texts['clean-label'] + '</label>\
         </td>\
        </tr>\
       </tbody>\
      </table>\
     <input id="blockmessage-submit" class="mw-htmlform-submit" value="' + bm_texts['submit-label'] + '" type="submit">\
    </fieldset>\
   </form>\
  ');
}


function bm_populate_select() {
	var root = $("#blockmessage-select");
	var current_node = root;
	var optgroup_open = null;
	$(items).each(function() {
		if (this.hasOwnProperty("separator")) {
			current_node = $('<optgroup label="' + this.separator + '">');
			root.append(current_node);
		} else {
			current_node.append($("<option>").attr('value', this.template).text(this.name));
		}
	});
}


function bm_parse_time() {
	time_set = true;
	if ($.cookie("blockmessages-duree") != null) {
		var tmp = $.cookie("blockmessages-duree").split(" ");
		if (tmp.length == 2 && !isNaN(tmp[0])) {
			switch (tmp[1]) {
				case "hour":
					$("#blockmessage-unit").attr("value", "heure");
					break;
				case "hours":
					$("#blockmessage-unit").attr("value", "heures");
					break;
				case "day":
					$("#blockmessage-unit").attr("value", "jour");
					break;
				case "days":
					$("#blockmessage-unit").attr("value", "jours");
					break;
				case "week":
					$("#blockmessage-unit").attr("value", "semaine");
					break;
				case "weeks":
					$("#blockmessage-unit").attr("value", "semaines");
					break;
				case "month":
					$("#blockmessage-unit").attr("value", "mois");
					break;
				case "months":
					$("#blockmessage-unit").attr("value", "mois");
					break;
				case "year":
					$("#blockmessage-unit").attr("value", "année");
					break;
				case "years":
					$("#blockmessage-unit").attr("value", "années");
					break;
				default:
					time_set = false;
			}
			if (time_set) {
				$("#blockmessage-time").attr("value", tmp[0]);
			}
		} else {
			time_set = false;
		}
	} else {
		time_set = false;
	}


	if (!time_set) {
		$(".blockmessage-hidden").show();
	}
}


function bm_send_message() {
	var subst = '';
	if ($("#blockmessage-subst").is(":checked")) {
		subst = 'subst:'
	}

	$.ajax({
		url: mw.util.wikiScript('api'),
		data: {
			action: 'query',
			meta: 'tokens',
			format: 'json',
			type: 'csrf',
		},
		dataType: 'json'
	}).then(function(data) {
		var d = {
			action: 'edit',
			title: 'User talk:' + $.cookie("blockmessages-user"),
			summary: bm_texts['message-summary'],
			format: 'json',
			token: data.query.tokens.csrftoken,
			text: "{{" + subst + $("#blockmessage-select").val().replace("$1", $("#blockmessage-time").val()).replace("$2", $("#blockmessage-unit").val()) + "}} —&nbsp;[[Utilisateur:0x010C|'''0'''x'''010<span style="color: #00C41C;">C</span>''']] <sup>[[Discussion utilisateur:0x010C|~discuter~]]</sup> 13 novembre 2015 à 01:49 (CET)",
		};
		if (!$("#blockmessage-clean").is(":checked")) {
			d['section'] = "new";
			d['sectiontitle'] = bm_texts['section-title'];
		}
		$.ajax({
			url: mw.util.wikiScript('api'),
			method: 'POST',
			data: d,
			dataType: 'json',
			success: function(data) {
				mw.notify(bm_texts['successnotif']);
			}
		});
	});
}