MediaWiki:Gadget-0xBlockMessage.js
Apparence
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'] + ' :</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'] + ' :</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'] + ' :</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> </label>\
</td>\
<td class="mw-input">\
<input name="blockmessage-subst" checked="checked" id="blockmessage-subst" type="checkbox"> <label for="blockmessage-subst">' + bm_texts['subst-label'] + '</label>\
</td>\
</tr>\
<tr class="mw-htmlform-field-HTMLCheckField">\
<td class="mw-label">\
<label> </label>\
</td>\
<td class="mw-input">\
<input name="blockmessage-clean" id="blockmessage-clean" type="checkbox"> <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()) + "}} — [[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']);
}
});
});
}