Utilisateur:Aristoi/indexForm.js
Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
- Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
- Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
- Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
//<source lang="javascript">
if($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mw.config.get('wgNamespaceNumber') == 0) {
$(document).ready(function() {
var transcForm = {
name: "pages", //le nom du modèle
params: ["index", "from", "fromsection", "to", "tosection", "onlysection", "header", "header_type", "step", "include", "exclude", "titre", "volume", "auteur", "traducteur", "illustrateur", "editeur", "school", "lieu", "annee", "prev", "current", "next"], //les paramètres du modèle dans l'ordre où ils sont appelé si on ne les précise pas
init: function() {
if(mw.user.options.get('usebetatoolbar')) {
mw.loader.using('ext.wikiEditor', function() {
$('#wpTextbox1').wikiEditor('addToToolbar', {
section: 'main',
groups: {
'nav':{
tools: {
'transc': {
label: "Formulaire d'aide à la transclusion",
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/d/df/Transclusion-icon.svg'
}
}
}
}
});
$('img[rel="transc"]').mouseup(function() {
if($("#transc-form").length == 1) {
transcForm.submit();
} else {
transcForm.create();
}
});
});
} else {
$("#toolbar").append('<img id="transc-button" width="23" height="22" border="0" src="//upload.wikimedia.org/wikipedia/commons/d/df/Transclusion-icon.svg" alt="Formulaire d\'aide à la transclusion" title="Formulaire d\'aide à la transclusion" style="cursor: pointer;">');
$('#transc-button').mouseup(function() {
if($("#transc-form").html()) {
transcForm.submit();
} else {
transcForm.create();
}
});
}
$('#editform').submit(function() {
if($("#transc-form").length == 1) {
if(transcForm.validation()) {
transcForm.submit();
return true;
} else {
return false;
}
}
});
},
create: function() {
var values = this.get();
$("#editform").before(this.print_form(values));
$( '.mw-help-field-data' )
.hide()
.closest( '.mw-help-field-container' ).find( '.mw-help-field-hint' )
.show()
.click( function() {
$(this).closest( '.mw-help-field-container' ).find('.mw-help-field-data' ).slideToggle( 'fast' );
});
},
print_form: function(values) {
var form = '<fieldset id="transc-form" style="display: block; background-color: wheat">';
form += '<div style="padding-left: 2em"><span style="font-style: italic; font-weight: bold; font-size:large;">Formulaire d’aide à la transclusion</span><span class="mw-help-field-container"><span class="mw-help-field-hint" style="display: inline;"></span><span class="mw-help-field-data" style="display: none;">Ce formulaire simplifie l’utilisation de la balise <nowiki><</nowiki>pages/>, utilisée pour afficher les textes sur Wikisource.</span></span></div>';
form += '<div><label for="transc-index">Livre source : </label><input type="text" id="transc-index" size="120" value="' + values["index"] + '" /></div>';
form += '<div style="padding-left : 3em;">';
form += '<label for="transc-from">Page de début : </label><input type="text" id="transc-from" size="4" maxlength="4" value="' + values["from"] + '" /> ';
form += '<label for="transc-fromsection">à partir de la section : </label><input type="text" id="transc-fromsection" size="50" value="' + values["fromsection"] + '" /><br/>';
form += '<label for="transc-to">Page de fin : </label><input type="text" id="transc-to" size="4" maxlength="4" value="' + values["to"] + '" /> ';
form += '<label for="transc-tosection">jusqu’à la section : </label><input type="text" id="transc-tosection" size="50" value="' + values["tosection"] + '" /></div>';
form += '<div><label for="transc-header">Type de boîte-titre : </label><select id="transc-header">' + this.header(values["header"]) + '</select></div>';
form += '<div id="NavFrame1" class="NavFrame" style="clear:both; margin-bottom:1em; width:99%; border-style:solid; -moz-border-radius:0; border-color:#AAAAAA; background-color:wheat;" title="[Dérouler]"><a href="javascript:toggleNavigationBar(1);" id="NavToggle1" class="NavToggle">[Dérouler]</a>';
form += '<div class="NavHead" align="left">Paramètres supplémentaires pour forcer l’affichage : </div>';
form += '<div class="NavContent" style="margin: 0px; background: none repeat scroll 0% 0% wheat; display: none; " align="left"><label for="transc-titre">Titre : </label><input type="text" id="transc-titre" size="60" value="' + values["titre"] + '" />';
form += '<label for="transc-volume">Volume : </label><input type="text" id="transc-volume" size="60" value="' + values["volume"] + '" /><br/>';
form += '<label for="transc-auteur">Auteur : </label><input type="text" id="transc-auteur" size="60" value="' + values["auteur"] + '" />';
form += '<label for="transc-traducteur">Traducteur : </label><input type="text" id="transc-traducteur" size="60" value="' + values["traducteur"] + '" /><br/>';
form += '<label for="transc-illustrateur">Illustrateur : </label><input type="text" id="transc-illustrateur" size="60" value="' + values["illustrateur"] + '" />';
form += '<label for="transc-editeur">Maison d’édition : </label><input type="text" id="transc-editeur" size="60" value="' + values["editeur"] + '" /><br/>';
form += '<label for="transc-school">École : </label><input type="text" id="transc-school" size="60" value="' + values["school"] + '" />';
form += '<label for="transc-lieu">Lieu d’édition : </label><input type="text" id="transc-lieu" size="60" value="' + values["lieu"] + '" /><br/>';
form += '<label for="transc-annee">Année de publication : </label><input type="text" id="transc-annee" size="60" value="' + values["annee"] + '" />';
form += '<label for="transc-prev">Chapitre précédent : </label><input type="text" id="transc-prev" size="60" value="' + values["prev"] + '" /><br/>';
form += '<label for="transc-current">Chapitre en cours : </label><input type="text" id="transc-current" size="60" value="' + values["current"] + '" />';
form += '<label for="transc-next">Chapitre suivant : </label><input type="text" id="transc-next" size="60" value="' + values["next"] + '" /><div class="NavEnd"> </div></div>';
form += '</fieldset>';
return form;
},
header: function(value) {
var list = {"":"", "1":"Classique", "Sommaire":"Sans navigateur (sommaire)", "empty":"Aucune"};
var header = "";
for(var i in list) {
header += '<option value="' + i + '"';
if(value == i)
header += ' selected="selected"';
header += '>' + list[i] + '</option>';
}
return header;
},
get: function() {
var textbox = $("#wpTextbox1");
var params = {};
for(var param_number in transcForm.params) {
params[transcForm.params[param_number]] = "";
}
if(textbox.text() != '') {
var reg = new RegExp("<pages [^\/]*\/>[ \n]*", "m");
var match = textbox.text().match(reg);
var template = null;
if (match)
template = match[0];
if(template == null) {
return params;
}
textbox.text(textbox.text().replace(reg, ""));
var pages = $(template);
for(var key in params) {
if(pages.attr(key)) {
params[key] = pages.attr(key);
}
}
}
return params;
},
validation: function() {
var valid = true;
if( !$("#transc-index").val() ) {
alert("Vous n’avez pas renseigné de livre source !");
valid = false;
} else if($("#transc-index").val().substring($("#transc-index").val().lastIndexOf('.')) != ".djvu" && $("#transc-index").val().substring($("#transc-index").val().lastIndexOf('.')) != ".pdf" ) {
alert("Le livre source doit être un djvu ou un pdf !");
valid = false;
}
if( $("#transc-from").val() > $("#transc-to").val() ) {
alert("La page de fin est avant la page de début !");
valid = false;
}
return valid;
},
submit: function() {
var textbox = $("#wpTextbox1");
var date = new Date();
template = "<pages ";
for(var param_number in transcForm.params) {
var param = transcForm.params[param_number];
if($("#transc-" + param).val())
template += param + "=\"" + $("#transc-" + param).val() + "\" ";
}
template += "/>\n\n";
textbox.val(template + $("#wpTextbox1").val());
$("#transc-form").remove();
}
};
transcForm.init();
});
}
//</source>