Utilisateur:Cynddl/Gadget-évaluation.js
Note : après avoir publié 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 appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
- Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
- Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
- Opera : appuyez sur Ctrl + F5.
var api; var dpage;
var result = [];
$(function() //This code runs when body is loaded.
{
if (wgAction = 'view') {
$.getScript('Utilisateur:Cynddl/editor.js', function(){
api = JsMwApi();
dpage = api.page('Discussion:'+wgPageName);
mw.util.addPortletLink('p-tb', 'javascript:addEvaluationBox()', 'Évaluation');
})
}
});
function evaluation(idfaculté, avancement)
{
return "{{" + "Évaluation|idfaculté="+idfaculté+"|avancement="+avancement+"}}\n\n";
}
function addEvaluationBox()
{
$('#bodyContent').prepend('<div id="ev_cadre" style="border: 5px solid #aaa; width:30%; padding: 1em; margin-left:auto; margin-right:auto;" />');
$('#ev_cadre').prepend('<center><img src="http://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" /></center>');
dpage({action: "query", prop: "revisions", rvprop:"content"}, function (res) {
for (var pageid in res.query.pages) break;
var page = res.query.pages[pageid];
var text = page.revisions ? page.revisions[0]['*'] :'';
var indice = text.search("\n");
var firstline = indice==-1 ? text : text.substr(0, indice);
var exp = /^{{Évaluation\|idfaculté=(.*)\|avancement=(.*)}}$/gi;
result = exp.exec(firstline.replace(/ /g,''));
result = (result==null) ? [] : result;
if (result.length > 2)
{
var id = result[1];
var avancement = result[2];
}
else
{
var id = $('center>a')[0].title.split(':')[1].toLowerCase();
var avancement = 0;
}
$('#ev_cadre').empty();
$('#ev_cadre').prepend('<a href="javascript:$(\'#ev_cadre\').remove()" style="float:right">X</a><form id="evaluation" action="javascript:ev_send_form();"><label>Faculté : <input id="idfaculté" autofocus value="'+id+'"></label><br /><label>Avancement : <input id="avancement" type="range" min="0" max="4" value="'+avancement+'"></label><br /><input type="submit" value="Envoyer" onclick="ev_send_form();"></form>');
})
}
function ev_send_form()
{
var bandeau = evaluation($('#idfaculté').val(), $('#avancement').val());
dpage.edit( function (text, save_function, edit_res)
{
// S'il existe déjà un bandeau…
if (result.length > 2)
text = bandeau + text.replace(/[\w\W]+?\n+?/,"")
else
text = bandeau + text;
save_function(text, {summary: "Gadget d'évaluation", minor: true}, function (save_res)
{
alert(save_res ? "Saved!" : "Not Saved")
})
});
}