MediaWiki:Gadget-document.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.
var numforms = 0;
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
function refbuttons() {
if (document.getElementById('toolbar') ) {
button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "Modèle Document";
buttonimage = document.createElement('img');
buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/d/d6/Button_l_d.png";
buttonimage.alt = "Modèle Document";
button.appendChild(buttonimage);
var toolbar = document.getElementById('toolbar');
if (navigator.userAgent.indexOf('MSIE') == -1) {
if (toolbar.style != null) {
toolbar.style.height = 'auto';
}
else {
toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
}
toolbar.appendChild(button);
citemain = document.createElement('div');
citemain.style.display = 'none';
citemain.style.margin = '0.2em 0 -0.2em 0';
citemain.setAttribute('Id', 'citeselect');
citemain.appendChild( addOption("addEntete()", "En-tête") );
citemain.appendChild( addOption("addDoc()", "Ligne") );
citemain.appendChild( addOption("hideInitial()", "-") );
citemore = document.createElement('div');
citemore.style.display = 'none';
toolbar.appendChild(citemain);
}
else {
toolbar.appendChild(button);
selection = '<div id="citeselect" style="display:none"><input type="button" value="Entete" onclick="addEntete()" />'+
'<input type="button" value="Document" onclick="addDoc()" />'+
'<input type="button" value="Cancel" onclick="hideInitial()" />'+
'</div>';
document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
}
document.getElementById('citeselect').innerHTML += '<span id="refToolFormArea"></span>';
}
if (typeof EditTools == "object") {
var placeholder = document.getElementById("editpage-specialchars");
EditTools.createEditTools (placeholder);
}
}
function addOption(script, text) {
option = document.createElement('input');
option.setAttribute('type', 'button');
option.setAttribute('onclick', script);
option.setAttribute("value", text);
return option;
}
function hideInitial() {
document.getElementById('citeselect').style.display = 'none';
oldFormHide();
}
function oldFormHide() {
//if (numforms != 0) {
// document.getElementById('citediv'+numforms).style.display = 'none';
//}
document.getElementById('refToolFormArea').innerHTML = '';
if (document.getElementById('errorform') != null) {
document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
}
}
function easyCiteMain() {
document.getElementById('citeselect').style.display = '';
}
function addEntete() {
oldFormHide();
template = "Liste documents début";
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>En-tête du modèle Document</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="type"> Titre : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="type"></td>'+
'<td width="120"><label for="divers"> Divers : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="divers"></td></tr>'+
'</table>'+
'<input type="button" value="Ajouter" onClick="addcites()">'+
' <input type="button" value="Prévisualiser" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<span style="float:right"><a href="//fr.wikisource.org/wiki/Modèle:'+template.replace(/ /g, '_')+'" target="_blank">[aide]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function addDoc() {
oldFormHide();
template = "Document";
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>Modèle Document</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="160"><label for="titre"> Titre : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="titre"></td>'+
'<td width="100"><label for="livre"> Index : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="livre"></td></tr>'+
'<tr><td width="160"><label for="éditions"> Éditions multiples : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="éditions"></td>'+
'<td width="100"><label for="date"> Date : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:20%" id="date"><label for="dates"> Dates : </label><input type="text" tabindex=1 style="width:35%" id="dates"></td></tr>'+
'<tr><td width="160"><label for="epub"> ePub : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="epub"></td>'+
'<td width="100"><label for="avancement"> Avct : </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:10%" id="avancement"></td></tr>'+
'</table>'+
'<input type="button" value="Ajouter" onClick="addcites()">'+
' <input type="button" value="Prévisualiser" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<span style="float:right"><a href="//fr.wikisource.org/wiki/Modèle:'+template.replace(/ /g, '_')+'" target="_blank">[aide]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function makeCiteCode() {
cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
var template = '';
var citebegin = '';
var citename = '';
var citeinner = '';
for (var i=0; i<cites.length; i++) {
var citeid = cites[i].id;
var citevalue = cites[i].value;
citevalue = citevalue.trim(); //Trim leading and trailing whitespace
if (citeid == "verbose") {
if (cites[i].checked) {
citeinner = citeinner.replace(/\|/g, "\n|");
}
}
else if (citevalue != '' && cites[i].type != 'button' && cites[i].type != 'image') {
if (citeid == "refname") {
citebegin += ' name="' + citevalue + '"';
}
else if (citeid == "template") {
citename = '{{' + citevalue;
template = citevalue;
}
else {
if (citeid == "pages") {
if (citevalue.match(/^\w+$/) && template != 'cite encyclopedia') {
citeid = "page"; //Use page= instead of pages= if only one page. Makes p. 5 instead of pp. 5.
}
else {
citevalue = citevalue.replace(/-/g, "–"); //Replace hyphens with en dashes [[WP:ENDASH]]
}
}
citeinner += "|" + citeid + "=" + citevalue;
}
}
}
cite = citebegin + citename + citeinner + "}}";
return cite;
}
function addcites(template) {
var cite = makeCiteCode();
insertTags(cite, '', '');
//document.getElementById('citediv'+numforms).style.display = 'none';
oldFormHide();
}
function preview(wikitext) {
document.getElementById('progress').style.visibility = "visible";
wikitext += '';
var url = "api.php?action=parse&format=xml&prop=text&text=" + encodeURIComponent(wikitext);
var xmlhttp = sajax_init_object(); // new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState==4) {
if(xmlhttp.status==200) {
document.getElementById('progress').style.visibility = "hidden";
var xmlDoc=xmlhttp.responseXML.documentElement;
var previewHTML = xmlDoc.getElementsByTagName("text")[0].textContent;
if (previewHTML == undefined) {
previewHTML = xmlDoc.getElementsByTagName("text")[0].childNodes[0].nodeValue;
}
//alert(previewHTML);
previewHTML = previewHTML.replace(/href="\//gi, 'href="//fr.wikisource.org/');
document.getElementById('previewSpan').innerHTML = '<fieldset><legend>Prévisualisation</legend>' + previewHTML + '</fieldset>';
}
else
alert('The query returned an error.');
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send(null)
}
function previewCitationDefault() {
var wikitext = makeCiteCode();
preview(wikitext);
}
$( refbuttons );