MediaWiki:Gadget-C helper si.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.// <nowiki>
C.si = {
dialog: null,
config: {
'request-page': 'Wikipédia:Demande de suppression immédiate',
'deletion-template': function (page, code, critere, extra) {
var raison = code + ' - ' + critere + extra;
if (raison.indexOf('=') !== -1) {
raison = '1=' + raison;
}
return '{{Suppression Immédiate|' + raison + '|utilisateur=~'+'~~}}\n';
},
'modal-title': 'C helper - Choix du critère de suppression immédiate',
'avert-label': 'Avertir le créateur de l\'article',
'c-si-extra-class': 'c-si-extra',
'c-si-radio-class': 'c-si-radio',
'submit': 'Valider la requête',
'criteria-general-title': 'Critères généraux',
'criteria-article-title': 'Critères spécifiques aux articles',
'criteria-redirect-title': 'Critères spécifiques aux redirections',
'criteria-file-title': 'Critères spécifiques aux fichiers',
'criteria-category-title': 'Critères spécifiques aux catégories',
'criteria-user-title': 'Critères spécifiques aux pages utilisateurs',
'criteria-template-title': 'Critères spécifiques aux modèles',
'criteria-portal-title': 'Critères spécifiques aux portails',
'notify-success': 'La demande de suppression immédiate a bien été transmise.',
'notify-no-reason': 'Vous n\'avez sélectionné aucun critère de suppression.',
'notify-not-a-page': 'Impossible de demander la suppression immédiate d\'une page inexistante.',
'notify-protected': 'Impossible de demander automatiquement la suppression immédiate de cette page, celle-ci est protégée.',
'request-title': function (page, code, critere, extra) {
if (page.indexOf('=') !== -1) {
page = '1=' + page;
}
return "{{a'|" + page + "}}";
},
'request-content': "* '''Motif''' : $2 - $3$4\n* '''Demandée''' par ~~"+"~~",
'request-summary': 'Suppression immédiate demandée pour [[$1]] en raison du critère [[WP:CSI#$2|$2 ($3)]]$4',
},
criteria: {
G: {
G1: { text: 'Page manifestement aberrante', help: ''},
G2: { text: '« Bac à sable »', help: ''},
G3: { text: 'Vandalisme ou canular manifeste', help: ''},
G4: { text: 'Recréation d\'une page supprimée par décision communautaire', help: '', extra: 'Lien vers le débat', extra_default: '[[Discussion:'+mw.config.get('wgTitle')+'/Admissibilité]]'},
G5: { text: 'Page créée par un contributeur banni ou bloqué', help: '', extra: 'Nom du contributeur problématique', extra_default: ''},
G6: { text: 'Suppression technique (dans le cadre d\'opérations de maintenance)', help: 'Cela englobe par exemple la suppression de pages d\'homonymies non utilisées, de renommages incontestables, de certaines catégories de maintenance obsolètes,...', extra: 'Type de maintenance', extra_default: ''},
G7: { text: 'Suppression à la demande de l\'auteur', help: '', extra: '', extra_default: ''},
G8: { text: 'Page liée à une page inexistante ou supprimée', help: '', extra: '', extra_default: ''},
G10: { text: 'Page dont le seul but est de diffamer, menacer, intimider ou harceler leur sujet, ou une quelconque autre entité', help: '', extra: '', extra_default: ''},
G11: { text: 'Publicité ou promotion manifeste', help: '', extra: '', extra_default: ''},
G12: { text: 'Violation manifeste des droits d\'auteur', help: '', extra: 'Lien vers le document original', extra_default: ''},
},
A: {
A1: { text: 'Article sans sujet clair', help: ''},
A2: { text: 'Article en langue étrangère', help: ''},
A3: { text: 'Article sans contenu', help: ''},
A5: { text: 'Article transféré à un autre wiki', help: ''},
A10: { text: 'Article récemment créé qui doublonne un article existant', help: '', extra: 'Lien vers l\'article antérieur', extra_default: ''},
A11: { text: 'Article ne répondant pas aux critères d\'admissibilité', help: ''},
A12: { text: 'Travail inédit manifeste', help: ''},
},
R: {
R1: { text: 'Redirection inappropriée, peu pertinente, voire incongrue', help: ''},
R2: { text: 'Redirection renvoyant de l\'espace encyclopédique vers un autre espace de nom', help: ''},
R3: { text: 'Graphie improbable', help: ''},
},
F: {
F1: { text: 'Fichier redondant', help: '', extra: 'Lien vers le fichier antérieur', extra_default: ''},
F2: { text: 'Fichier image corrompu ou vide', help: ''},
F3: { text: 'Licence inappropriée', help: ''},
F4: { text: 'Pas d\'information sur la licence', help: ''},
F5: { text: 'Image orpheline non libre de droit', help: ''},
F6: { text: 'Motif justificatif absent, dans le cas d\'une utilisation non libre de droit', help: ''},
F7: { text: 'Revendication injustifiée du fair use', help: ''},
F8: { text: 'Image disponible à l\'identique dans Commons', help: '', extra: 'Lien vers le fichier sur Commons', extra_default: ''},
F9: { text: 'Violation manifeste de copyright', help: '', extra: 'Lien vers le fichier source copié', extra_default: ''},
F10: { text: 'Fichier inutile sans média', help: ''},
F11: { text: 'Aucune preuve d\'autorisation', help: ''},
},
C: {
C1: { text: 'Catégorie vide depuis au moins quatre jours', help: ''},
C2: { text: 'Renommage ou fusion', help: ''},
C7: { text: 'Renommage demandé par le créateur de la catégorie', help: ''},
},
U: {
U1: { text: 'Demande de l\'utilisateur', help: ''},
U2: { text: 'Utilisateur inexistant', help: ''},
},
M: {
M2: { text: 'Modèle donnant une fausse image des règles', help: ''},
M3: { text: 'Modèle sans intérêt ou doublonnant des modèles existants', help: ''},
},
P: {
P1: { text: 'Portail qui serait supprimé s\'il s’agissait d\'un article', help: ''},
P2: { text: 'Portail quasi-vide', help: ''},
},
},
init: function () {
},
launch: function () {
if (mw.config.get('wgArticleId') === 0) {
mw.notify(C.si.config['notify-not-a-page'], {title:'C-helper', type:'error'});
return;
}
if (mw.config.get('wgRestrictionEdit') == ["sysop"]) {
mw.notify(C.si.config['notify-protected'], {title:'C-helper', type:'error'});
return;
}
if (this.dialog === null) {
this['build-dialog']();
}
this.dialog.dialog("open");
},
'build-dialog': function () {
this.dialog = $('<div>', {title:C.si.config['modal-title']});
var form = $('<form>');
this.dialog.append(form);
form.append($('<input>', {type:'checkbox', checked:'checked',id:'C-si-avert'})).append($('<label>', {"for":"C-si-avert"}).html(C.si.config['avert-label']));
var title = [];
var namespace = [];
if ($("#redirectsub").length > 0) {
title.push(this.config['criteria-redirect-title']);
namespace.push(this.criteria.R);
}
switch(mw.config.get('wgNamespaceNumber')) {
case 0:
title.push(this.config['criteria-article-title']);
namespace.push(this.criteria.A);
break;
case 6:
title.push(this.config['criteria-file-title']);
namespace.push(this.criteria.F);
break;
case 14:
title.push(this.config['criteria-category-title']);
namespace.push(this.criteria.C);
break;
case 2:
case 3:
title.push(this.config['criteria-user-title']);
namespace.push(this.criteria.U);
break;
case 10:
title.push(this.config['criteria-template-title']);
namespace.push(this.criteria.M);
break;
case 100:
case 101:
case 102:
case 103:
title.push(this.config['criteria-portal-title']);
namespace.push(this.criteria.P);
break;
}
title.push(this.config['criteria-general-title']);
namespace.push(this.criteria.G);
for (var i = 0; i < namespace.length; ++i) {
form.append($('<hr>'));
form.append($('<h3>').text(title[i]));
for (var code in namespace[i]) {
form.append($('<input>', {type:'radio', id:'C-si-'+code, class:this.config['c-si-radio-class'], name:'C-si-criteria', explanation: namespace[i][code].text, code: code}))
.append($('<label>', {"for":'C-si-'+code}).text(code + ' : ' + namespace[i][code].text));
if (namespace[i][code].help !== '') {
form.append(C.util.construct_help_icon(namespace[i][code].help));
}
form.append($('<br>'));
if (namespace[i][code].hasOwnProperty('extra')) {
var extra_default = '';
if (namespace[i][code].hasOwnProperty('extra_default')) {
extra_default = namespace[i][code].extra_default;
}
form.append($('<span>', {id:'C-si-extra-'+code, class:this.config['c-si-extra-class']}).hide()
.append($('<label>', {"for":'C-si-extra-input-'+code}).html(namespace[i][code].extra))
.append(" ")
.append($('<input>', {type:'text', id:'C-si-extra-input-'+code, value:extra_default}))
.append($('<br>')));
}
}
}
this.dialog.dialog({
autoOpen: false,
height: 400,
width: 600,
modal: true,
buttons: [
{
text: C.si.config.submit,
click: function () {
C.si.dialog.dialog("close");
C.si.validate();
},
},
],
dialogClass: 'c-helper-dialog',
});
$('.'+this.config['c-si-radio-class']).change(function () {
$('.'+C.si.config['c-si-extra-class']).hide();
$('#C-si-extra-'+$(this).attr('code')).show();
});
},
validate: function () {
var selected = $('input[name=C-si-criteria]:checked');
if (selected.length === 0) {
mw.notify(C.si.config['notify-no-reason'], {title:'C-helper', type:'error'});
return;
}
var page = mw.config.get('wgPageName').replace( /_/g, ' ');
var code = selected.attr('code');
var critere = C.si.criteria[ code[ 0 ] ][ code ].text;
var extra = '';
var $inputExtra = $('#C-si-extra-input-'+code);
if ($inputExtra.length > 0) {
if ($inputExtra.val() !== '') {
extra = ' ('+$inputExtra.val()+')';
}
}
C.util.safe_prepend(
null,
C.util.message(C.si.config['deletion-template'], page, code, critere, extra),
C.util.message(C.si.config['request-summary'], page, code, critere, extra),
function () {
C.util.new_section(
C.si.config['request-page'],
C.util.message(C.si.config['request-title'], page, code, critere, extra),
C.util.message(C.si.config['request-content'], page, code, critere, extra),
C.util.message(C.si.config['request-summary'], page, code, critere, extra),
function () {
mw.notify(C.si.config['notify-success'], {title:'C-helper', type:'info'});
C.util.reload();
}
);
}
);
},
};
C.modules.si.callback = C.si;
// </nowiki>