« Utilisateur:Pinocchio/création référence biblio.js » : différence entre les versions
De BoyWiki
Aucun résumé des modifications |
(query continue compatibility v1.26) |
||
(38 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
/* Création d'une sous-page par édition et maj ou création page principale d'oeuvre */ | /* Création d'une sous-page par édition et maj ou création page principale d'oeuvre */ | ||
/* charge mw.toolbar - gestion insertTags */ | |||
mw.loader.load("mediawiki.action.edit"); | |||
/* Affichage du premier formulaire - nom de page oeuvre */ | /* Affichage du premier formulaire - nom de page oeuvre */ | ||
Ligne 10 : | Ligne 11 : | ||
/* seulement pour page création réf. bib. et utilisateur ayant droit écriture pages biblio. */ | /* seulement pour page création réf. bib. et utilisateur ayant droit écriture pages biblio. */ | ||
if (wgPageName != 'Utilisateur:Pinocchio/Création_Référence_Bibliographique') return; | if (wgPageName != 'Utilisateur:Pinocchio/Création_Référence_Bibliographique') return; | ||
if (wgUserGroups == null || wgUserGroups.join(" ").match(/ | if (wgUserGroups == null || wgUserGroups.join(" ").match(/user|sysop|bureaucrat/) == null) return; | ||
if (wgAction != 'view') return; | if (wgAction != 'view') return; | ||
/* affiche formulaire création nom de page oeuvre */ | /* affiche formulaire création nom de page oeuvre */ | ||
var contfrm = document.getElementById('creatrefbib'); | var contfrm = document.getElementById('creatrefbib'); | ||
var contxt = '<fieldset><legend | var contxt = '<fieldset><legend>Formation du nom de page de l’œuvre</legend>'; | ||
contxt += '<div id="creatrefbib_visu | contxt += '<div id="creatrefbib_visu">Référence:</div>'; | ||
contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre original de l’œuvre</td><td><input name="pgnmtt" type="text" size="100%" onkeyup="creatrefbib_pgnm(1)" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Nom de l’auteur</td><td><input name="pgnmau" type="text" size="60%" onkeyup="creatrefbib_pgnm(2)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">sans le prénom (optionnel: seulement si titre trop imprécis)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit"><b>ou</b> Choisir un nom de page existant</td><td><select name="reflst" onchange="creatrefbib_pgnm(-1)"><option>Recherche des références en cours...</option></select></td></tr>'; | ||
contxt += '<tr><td><br /></td></tr>'; | contxt += '<tr><td><br /></td></tr>'; | ||
contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form2()" /></td></tr>'; | contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form2()" /></td></tr>'; | ||
contxt += '</table> | contxt += '</table></form></fieldset>'; | ||
contfrm.innerHTML = contxt; | contfrm.innerHTML = contxt; | ||
/* init objet requete serveur */ | /* init objet requete serveur */ | ||
var | var xhr = createxhrobject(); | ||
if ( | if (xhr == null) return; | ||
/* recherche pages oeuvres pour liste déroulante */ | /* recherche pages oeuvres pour liste déroulante */ | ||
xhr.open('GET', '/fr/api.php?action=query&list=embeddedin&eititle=Modèle:Référence&einamespace=104&eifilterredir=nonredirects&eilimit=500&format=xml&rawcontinue', false); | |||
xhr.send(''); | |||
if ( | if (xhr.readyState != 4 || xhr.status != 200) { | ||
alert('Erreur requête - Abandon'); | alert('Erreur requête - Abandon'); | ||
return; | return; | ||
} | } | ||
var pagesrch = | var pagesrch = xhr.responseXML.documentElement; | ||
var | var pglst = pagesrch.getElementsByTagName('embeddedin')[0].childNodes; | ||
var tabtit = new Array(); | var tabtit = new Array(); | ||
for (var i = | for (var i = 0; i < pglst.length ; i++) tabtit[i] = pglst[i].getAttribute('title'); | ||
tabtit.sort(alphacompare); | tabtit.sort(alphacompare); | ||
/* remplit liste des pages */ | /* remplit liste des pages */ | ||
var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst']; | var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst']; | ||
lstr.removeChild(lstr.firstChild); | lstr.removeChild(lstr.firstChild); | ||
var opt = document.createElement('option'); | |||
lstr.appendChild(opt); | |||
for (var i = 0; i < tabtit.length ; i++) { | for (var i = 0; i < tabtit.length ; i++) { | ||
opt = document.createElement('option'); | |||
var val = document.createTextNode( | var str = tabtit[i].replace(/&/g,'&'); | ||
var val = document.createTextNode(str.replace(/^Référence:/, "")); | |||
opt.appendChild(val); | opt.appendChild(val); | ||
lstr.appendChild(opt); | lstr.appendChild(opt); | ||
} | } | ||
/* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insertion car. spé.) */ | /* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insertion car. spé. toolbar) */ | ||
var entries = contfrm.getElementsByTagName("input"); | //var entries = contfrm.getElementsByTagName("input"); | ||
for (var j=0; j < entries.length; j++) { | //for (var j=0; j < entries.length; j++) { | ||
// entries[j].onfocus = function() {currentFocused = this;}; | |||
} | //} | ||
} | } | ||
Ligne 84 : | Ligne 84 : | ||
/* test si page oeuvre existe */ | /* test si page oeuvre existe */ | ||
xhr_object.open('GET', '/ | var x = pgnm.replace(/&/g,'\%26'); | ||
x = x.replace(/\?/g,'\%3F'); | |||
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false); | |||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState == 4 && xhr_object.status == 200) { | if (xhr_object.readyState == 4 && xhr_object.status == 200) { | ||
if(confirm("La page «"+ | if(confirm("La page «"+x+"» existe déjà\nContinuer ?") == false) return; | ||
} | } | ||
/* test si page oeuvre existe sans champs auteur */ | /* test si page oeuvre existe sans champs auteur */ | ||
x = x.split(/ \(/); | |||
if(x[1] != undefined) { | if(x[1] != undefined) { | ||
xhr_object.open('GET', '/ | xhr_object.open('GET', '/fr/index.php?title='+x[0]+'&action=raw&ctype=text/plain', false); | ||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState == 4 && xhr_object.status == 200) { | if (xhr_object.readyState == 4 && xhr_object.status == 200) { | ||
Ligne 101 : | Ligne 103 : | ||
/* affiche formulaire création nom de souspage édition */ | /* affiche formulaire création nom de souspage édition */ | ||
var contfrm = document.getElementById('creatrefbib'); | var contfrm = document.getElementById('creatrefbib'); | ||
var contxt = '<fieldset><legend | var contxt = '<fieldset><legend>Formation du nom de sous-page d’édition</legend>'; | ||
contxt += '<div id="creatrefbib_visu | contxt += '<div id="creatrefbib_visu">'+pgnm+'/</div>'; | ||
contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Volume ou Partie</td><td><input name="pgnmvl" type="text" size="40%" onkeyup="creatrefbib_pgnm(3)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Volume (optionnel pour un livre), partie (obligatoire le cas échéant pour un article de périodique)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre traduit</td><td><input name="pgnmtr" type="text" size="100%" onkeyup="creatrefbib_pgnm(4)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">(optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Éditeur ou Titre du périodique</td><td><input name="pgnmed" type="text" size="80%" onkeyup="creatrefbib_pgnm(5)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">éditeur (pour un livre ou un périodique), Titre du périodique (pour un article)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collection</td><td><input name="pgnmco" type="text" size="60%" onkeyup="creatrefbib_pgnm(6)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">(optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Année de publication</td><td><input name="pgnman" type="text" size="20%" onkeyup="creatrefbib_pgnm(7)" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collaborateur important ou Numéro</td><td><input name="pgnmcb" type="text" size="40%" onkeyup="creatrefbib_pgnm(8)" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">collaborateur important (optionnel), Numéro (obligatoire pour un article de périodique)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit"><b>ou</b> Choisir un nom de sous-page existant</td><td><select name="reflst" onchange="creatrefbib_pgnm(-2)"><option>Recherche des références en cours...</option></select></td></tr>'; | ||
contxt += '<tr><td><br /></td></tr>'; | contxt += '<tr><td><br /></td></tr>'; | ||
contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form3()" /></td></tr>'; | contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form3()" /></td></tr>'; | ||
contxt += '</table> | contxt += '</table></form></fieldset>'; | ||
contfrm.innerHTML = contxt; | contfrm.innerHTML = contxt; | ||
/* recherche souspages éditions de la page oeuvre choisie pour liste déroulante */ | /* recherche souspages éditions de la page oeuvre choisie pour liste déroulante */ | ||
xhr_object.open('GET', '/ | xhr_object.open('GET', '/fr/api.php?action=query&list=allpages&apfilterredir=nonredirects&apnamespace=104&apprefix='+pgnm.replace(/^Référence:/,'')+'&aplimit=500&format=xml&rawcontinue', false); | ||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
Ligne 131 : | Ligne 131 : | ||
return; | return; | ||
} | } | ||
var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst']; | var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst']; | ||
lstr.removeChild(lstr.firstChild); | lstr.removeChild(lstr.firstChild); | ||
var pagesrch = xhr_object. | var pagesrch = xhr_object.responseXML.documentElement; | ||
var pglst = pagesrch.getElementsByTagName('allpages')[0].childNodes; | |||
var | var tabpg = new Array(); | ||
for (var i = 0; i < pglst.length ; i++) tabpg[i] = pglst[i].getAttribute('title'); | |||
/* remplit liste des souspages */ | /* remplit liste des souspages */ | ||
var opt = document.createElement('option'); | var opt = document.createElement('option'); | ||
Ligne 142 : | Ligne 144 : | ||
opt.appendChild(val); | opt.appendChild(val); | ||
lstr.appendChild(opt); | lstr.appendChild(opt); | ||
for (var i = 1; i < | for (var i = 1; i < tabpg.length; i++) { | ||
opt = document.createElement('option'); | opt = document.createElement('option'); | ||
val = document.createTextNode( | val = document.createTextNode(tabpg[i]); | ||
opt.appendChild(val); | opt.appendChild(val); | ||
lstr.appendChild(opt); | lstr.appendChild(opt); | ||
} | } | ||
/* affecte event à chaque champs saisie : récup dernier champs sélectionné */ | /* affecte event à chaque champs saisie : récup dernier champs sélectionné pour insert car spé toolbar) */ | ||
var entries = contfrm.getElementsByTagName("input"); | //var entries = contfrm.getElementsByTagName("input"); | ||
for (var j=0; j < entries.length; j++) { | //for (var j=0; j < entries.length; j++) { | ||
// entries[j].onfocus = function() {currentFocused = this;}; | |||
} | //} | ||
} | } | ||
Ligne 186 : | Ligne 187 : | ||
var contfrm = document.getElementById('creatrefbib'); | var contfrm = document.getElementById('creatrefbib'); | ||
var contxt = '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | var contxt = '<form method="post" action="#" name="creat_biblio_pgnm_frm">'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Titre et responsabilité</legend>'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre</td><td><input name="titr" type="text" size="100%" value="'+pgnmtt+'" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Titre de l’œuvre dans cette édition</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Sous-titre</td><td><input name="sstr" type="text" size="100%" /></td></tr>'; | ||
contxt += '<tr><td></td><td> | contxt += '<tr><td></td><td class="cmt">Sous-titre (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Volume</td><td><input name="nvol" type="text" size="40%" value="'+pgnmvl+'" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Numéro, volume, tome (par ex: vol. II, tome 2) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre du volume</td><td><input name="ttvl" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Sous-titre du volume</td><td><input name="ssvl" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre langue2</td><td><input name="tito" type="text" size="100%" value="'+pgnmtr+'" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">si traduction (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Sous-titre langue2</td><td><input name="ssto" type="text" size="100%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Volume langue2</td><td><input name="nvoo" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Titre du volume langue2</td><td><input name="ttvo" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Sous-titre du volume langue2</td><td><input name="ssvo" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lien titre</td><td><input name="lnti" type="text" size="100%" value="'+pgnmtt+'" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Lien interne vers l’article ou le texte de l’œuvre (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteurs - Précisions</td><td><input name="prea" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">S’il n’y a pas d’auteur du livre à proprement parler, mais un «responsable» ou «directeur» (indiquer par ex: edited by) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteurs - Précisions abrégées</td><td><input name="pbga" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Comme ci-dessus mais en abrégé pour les références courtes (indiquer par ex: eds.) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur - Prénom</td><td><input name="aup1" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur - Nom</td><td><input name="aun1" type="text" size="60%" value="'+pgnmau+'" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lien auteur</td><td><input name="lnau" type="text" size="100%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Lien interne vers l’article sur l’auteur (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur2 - Prénom</td><td><input name="aup2" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur2 - Nom</td><td><input name="aun2" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lien auteur2</td><td><input name="lna2" type="text" size="100%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur3 - Prénom</td><td><input name="aup3" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteur3 - Nom</td><td><input name="aun3" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lien auteur3</td><td><input name="lna3" type="text" size="100%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Auteurs - complément</td><td><input name="cpla" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Champs alternatif à "Auteurs - Précisions" mais placé après les auteurs (indiquer par ex: ed.) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collaborateurs</td><td><input name="clbr" type="text" size="100%" value="'+pgnmcb+'" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Indiquer la chaîne complète en respectant la syntaxe, par ex: ill. Prénom Nom ; trad. Prénom Nom (optionnel)</td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Article</legend>'; | ||
contxt += '<table border="0" align="left">'; | contxt += '<table border="0" align="left">'; | ||
contxt += '<tr><td style=" | contxt += '<tr><td class="tit" style="padding-left:6px;">Lien vers page édition</td><td><select name="lnpe" style="width:110%;" onchange="creatrefbib_swarticle()"></select></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Cas particulier aux articles: indiquer la page édition de référence de l’article (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Emplacement article</td><td><input name="posa" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Cas particulier aux articles: indiquer emplacement dans l’ouvrage (p. ex.: p.10-15) (optionnel)</td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Publication</legend>'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Numéro édition</td><td><input name="nedt" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Ordre de cette édition dans un ensemble historique (p. ex.: 5ème éd. revue et corrigée) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lieu édition</td><td><input name="lie1" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Éditeur</td><td><input name="edt1" type="text" size="60%" value="'+pgnmed+'" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lieu édition2</td><td><input name="lie2" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Éditeur2</td><td><input name="edt2" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lieu édition3</td><td><input name="lie3" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Éditeur3</td><td><input name="edt3" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Année édition</td><td><input name="date" type="text" size="20%" value="'+pgnman+'" /></span></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Lieu impression</td><td><input name="liei" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Imprimeur</td><td><input name="impr" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Date impression</td><td><input name="dati" type="text" size="20%" /></td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Description</legend>'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Pages</td><td><input name="nbpg" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Nombre de pages (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Caractéristiques</td><td><input name="cart" type="text" size="50%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Autres caractéristiques (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Format</td><td><input name="frmt" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Format ou dimensions en cm (optionnel)</td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Collection</legend>'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collection</td><td><input name="col1" type="text" size="60%" value="'+pgnmco+'" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISSN</td><td><input name="issn" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Numéro collection</td><td><input name="nco1" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Numéro dans la collection (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collection2</td><td><input name="col2" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISSN2</td><td><input name="iss2" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Numéro collection2</td><td><input name="nco2" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Collection3</td><td><input name="col3" type="text" size="60%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISSN3</td><td><input name="iss3" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Numéro collection3</td><td><input name="nco3" type="text" size="20%" /></td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Notes</legend>'; | ||
contxt += '<table border="0" align="left">'; | contxt += '<table border="0" align="left">'; | ||
contxt += '<tr><td style=" | contxt += '<tr><td class="tit" style="padding-left:20px;">Langue</td><td><input name="lang" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Langue de l’œuvre (anglais, latin, arabe...) (optionnel)</td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Langue2</td><td><input name="lng2" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Notes</td><td><textarea name="nota" style="width:140%; height:5em; font-family:sans-serif; font-size:9pt;"></textarea></td></tr>'; | ||
contxt += '<tr><td></td><td | contxt += '<tr><td></td><td class="cmt">Notes additionnelles (isbn ajouté automatiquement à la suite des notes) (optionnel)</td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<fieldset><legend | contxt += '<fieldset><legend>Identification</legend>'; | ||
contxt += '<table border="0" align="center">'; | contxt += '<table border="0" align="center">'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISBN</td><td><input name="isbn" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Complément ISBN</td><td><input name="csbn" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISBN2</td><td><input name="isb2" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Complément ISBN2</td><td><input name="csb2" type="text" size="40%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">ISBN3</td><td><input name="isb3" type="text" size="20%" /></td></tr>'; | ||
contxt += '<tr><td | contxt += '<tr><td class="tit">Complément ISBN3</td><td><input name="csb3" type="text" size="40%" /></td></tr>'; | ||
contxt += '</table></fieldset>'; | contxt += '</table></fieldset>'; | ||
contxt += '<br />'; | contxt += '<br />'; | ||
Ligne 297 : | Ligne 298 : | ||
/* test si souspage existe */ | /* test si souspage existe */ | ||
xhr_object.open('GET', '/ | var x = pgnm+'/'+sspgnm; | ||
x = x.replace(/&/g,'\%26'); | |||
x = x.replace(/\?/g,'\%3F'); | |||
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false); | |||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState | if (xhr_object.readyState == 4 && xhr_object.status == 200) { | ||
/* si existe */ | |||
/* mode modification souspage existante */ | |||
frm.elements['valid'].value = 'Enregistrer les modifications pour cette référence'; | |||
frm.elements['valid'].onclick = function() {creatrefbib_valid(1);}; | |||
/* recup contenu des attrib=val dans souspage */ | |||
var tabsspgcont = xhr_object.responseText.split(/\n\||\n<!--.*-->/); | |||
/* affecte champs du formulaire avec val recup */ | |||
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','lien-page-article','emplacement-article','no-édition','lieu','éditeur','lieu2','éditeur2','lieu3','éditeur3','année','lieu-impr','imprimeur','date-impr','pages','caractéristiques','format','collection','issn','no-collection','collection2','issn2','no-collection2','collection3','issn3','no-collection3','langue','langue2','notes','notes-article','isbn','complément-isbn','isbn2','complément-isbn2','isbn3','complément-isbn3'); | |||
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','lnpe','posa','nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','nota','nota','isbn','csbn','isb2','csb2','isb3','csb3'); | |||
for (var i = 1; i < tabsspgcont.length; i++) { | |||
if (tabsspgcont[i].length < 2) continue; | |||
/* cherche attributs dans tableau */ | |||
for (var j = 0; j < attr.length; j++) { | |||
if (tabsspgcont[i].split(/=/)[0] == attr[j]) { | |||
/* applique valeurs à éléments formulaire */ | |||
if (attr[j] == 'lien-page-article') { | |||
var opt = document.createElement('option'); | |||
var val = tabsspgcont[i].split(/=/)[1].replace(/^Référence:/,''); | |||
opt.appendChild(document.createTextNode(val)); | |||
frm.elements['lnpe'].appendChild(opt); | |||
creatrefbib_swarticle(); | |||
} | |||
else if (attr[j] == 'emplacement-article') { | |||
if (!tabsspgcont[i].split(/=/)[1].match(/emplacement-article/)) frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1]; | |||
} | |||
else if (attr[j] == 'notes-article') { | |||
if (!tabsspgcont[i].split(/=/)[1].match(/notes-article/)) frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1]; | |||
} | |||
else frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1]; | |||
break; | |||
} | } | ||
} | } | ||
} | } | ||
Ligne 336 : | Ligne 341 : | ||
/* recherche toutes les souspages éditions pour liste déroulante lien-page-article */ | /* recherche toutes les souspages éditions pour liste déroulante lien-page-article */ | ||
xhr_object.open('GET', '/ | xhr_object.open('GET', '/fr/api.php?action=query&list=embeddedin&eititle=Modèle:Édition&einamespace=104&eifilterredir=nonredirects&eilimit=500&format=xml&rawcontinue', true); | ||
xhr_object.onreadystatechange = function() { | xhr_object.onreadystatechange = function() { | ||
if (xhr_object.readyState | if (xhr_object.readyState != 4 || xhr_object.status != 200) return; | ||
var pagesrch = xhr_object.responseXML.documentElement; | |||
var pglst = pagesrch.getElementsByTagName('embeddedin')[0].childNodes; | |||
var tabtit = new Array(); | |||
for (var i = 0; i < pglst.length ; i++) tabtit[i] = pglst[i].getAttribute('title'); | |||
tabtit.sort(alphacompare); | |||
/* remplit liste des souspages */ | |||
var opt = document.createElement('option'); | |||
frm.elements['lnpe'].appendChild(opt); | |||
for (var i = 0; i < tabtit.length ; i++) { | |||
if (!tabtit[i].match(/\//)) continue; | |||
var opt = document.createElement('option'); | |||
var val = tabtit[i].replace(/^Référence:/,''); | |||
opt.appendChild(document.createTextNode(val)); | |||
frm.elements['lnpe'].appendChild(opt); | |||
} | } | ||
} | } | ||
xhr_object.send(''); | xhr_object.send(''); | ||
/* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insert car spé) */ | /* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insert car spé toolbar) */ | ||
var entries = contfrm.getElementsByTagName("input"); | //var entries = contfrm.getElementsByTagName("input"); | ||
for (var j=0; j < entries.length; j++) { | //for (var j=0; j < entries.length; j++) { | ||
// entries[j].onfocus = function() {currentFocused = this;}; | |||
} | //} | ||
} | } | ||
Ligne 389 : | Ligne 392 : | ||
if(frm.elements['pgnmcb'].value.length) nbc++; | if(frm.elements['pgnmcb'].value.length) nbc++; | ||
if(frm.elements['pgnman'].value.length >2 | if(frm.elements['pgnman'].value.length >2 | ||
&& (frm.elements['pgnmed'].value.length > | && (frm.elements['pgnmed'].value.length >2 || (frm.elements['pgnmco'].value.length >3 && frm.elements['pgnmcb'].value.length >3)) | ||
&& nbc <= 3 && nbc >= 1) { | && nbc <= 3 && nbc >= 1) { | ||
frm.elements['valid'].disabled = false; | frm.elements['valid'].disabled = false; | ||
Ligne 431 : | Ligne 434 : | ||
} | } | ||
Ligne 448 : | Ligne 441 : | ||
var frm = document.forms['creat_biblio_pgnm_frm']; | var frm = document.forms['creat_biblio_pgnm_frm']; | ||
var elem = new Array('nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','isbn','csbn','isb2','csb2','isb3','csb3'); | var elem = new Array('nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','isbn','csbn','isb2','csb2','isb3','csb3'); | ||
if(frm.elements['lnpe']. | if(frm.elements['lnpe'].options[frm.elements['lnpe'].selectedIndex].text.length >3) var val = 1; | ||
else var val = | else var val = 0; | ||
for (var i = 0; i < elem.length; i++) { | for (var i = 0; i < elem.length; i++) { | ||
frm.elements[elem[i]].disabled = val; | frm.elements[elem[i]].disabled = val; | ||
Ligne 469 : | Ligne 462 : | ||
var pgname = frm.elements['args'].value.split(/\//)[0]; | var pgname = frm.elements['args'].value.split(/\//)[0]; | ||
var sspgname = frm.elements['args'].value.split(/\//)[1]; | var sspgname = frm.elements['args'].value.split(/\//)[1]; | ||
var lnpgarticle = 'Référence:'+frm.elements['lnpe'].options[frm.elements['lnpe'].selectedIndex].text; | |||
var pgrefctnt = '<!-- En saisie manuelle insérer sous la ligne switch des lignes de la forme |param=val.\n<!-- Liste des | var pgrefctnt = '<!-- En saisie manuelle insérer sous la ligne switch des lignes de la forme |param=val.\n<!-- Liste des attributs disponible dans la documentation du modèle Édition.\n-->'; | ||
pgrefctnt += '{{{{#switch:{{{1}}}|check|réf=Réf édition|isbd=Réf isbd|isbdmod=Réf isbdmod|refcourte=Réf courte|#default=Édition}}\n'; | if (lnpgarticle.length >13) { | ||
/* init contenu nouvelle page article */ | |||
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','no-édition','lieu','éditeur','lieu2','éditeur2','lieu3','éditeur3','année','lieu-impr','imprimeur','date-impr','pages','caractéristiques','format','collection','issn','no-collection','collection2','issn2','no-collection2','collection3','issn3','no-collection3','langue','langue2','notes','isbn','complément-isbn','isbn2','complément-isbn2','isbn3','complément-isbn3'); | pgrefctnt += '{{{{#switch:{{{1}}}|check|réf=Réf édition|isbd=Réf isbd article|isbdmod=Réf isbdmod article|refcourte=Réf courte article|#default=Édition}}\n'; | ||
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','lien-page-article','emplacement-article','notes-article'); | |||
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','lnpe','posa','nota'); | |||
} else { | |||
/* init contenu nouvelle page édition */ | |||
pgrefctnt += '{{{{#switch:{{{1}}}|check|réf=Réf édition|isbd=Réf isbd|isbdmod=Réf isbdmod|refcourte=Réf courte|#default=Édition}}\n'; | |||
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','no-édition','lieu','éditeur','lieu2','éditeur2','lieu3','éditeur3','année','lieu-impr','imprimeur','date-impr','pages','caractéristiques','format','collection','issn','no-collection','collection2','issn2','no-collection2','collection3','issn3','no-collection3','langue','langue2','notes','isbn','complément-isbn','isbn2','complément-isbn2','isbn3','complément-isbn3'); | |||
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','nota','isbn','csbn','isb2','csb2','isb3','csb3'); | |||
} | |||
for (var i=0; i < attr.length; i++) { | for (var i=0; i < attr.length; i++) { | ||
if (frm.elements[elem[i]].value.length) pgrefctnt += '|'+attr[i]+'='+frm.elements[elem[i]].value+'\n'; | if (frm.elements[elem[i]].value.length) { | ||
if (elem[i] == 'lnpe') pgrefctnt += '|'+attr[i]+'='+lnpgarticle+'\n'; | |||
else pgrefctnt += '|'+attr[i]+'='+frm.elements[elem[i]].value+'\n'; | |||
} | |||
} | } | ||
pgrefctnt += '<!-- Ne pas modifier après cette ligne. -->\n'; | pgrefctnt += '<!-- Ne pas modifier après cette ligne. -->\n'; | ||
pgrefctnt += '|commentaires={{{commentaires|}}}\n'; | pgrefctnt += '|commentaires={{{commentaires|}}}\n'; | ||
if (lnpgarticle.length <13) { | |||
pgrefctnt += '|emplacement-article={{{emplacement-article|}}}\n'; | |||
pgrefctnt += '|notes-article={{{notes-article|}}}\n'; | |||
} | |||
pgrefctnt += '}}'; | pgrefctnt += '}}'; | ||
/* init objet requete serveur */ | /* init objet requete serveur */ | ||
var xhr_object = createxhrobject(); | var xhr_object = createxhrobject(); | ||
Ligne 488 : | Ligne 494 : | ||
/* test si page oeuvre existe */ | /* test si page oeuvre existe */ | ||
xhr_object.open('GET', '/ | var x = pgname.replace(/&/g,'\%26'); | ||
x = x.replace(/\?/g,'\%3F'); | |||
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false); | |||
xhr_object.send(''); | xhr_object.send(''); | ||
/* si page oeuvre n'existe pas */ | /* si page oeuvre n'existe pas */ | ||
Ligne 494 : | Ligne 502 : | ||
var mode = 0; | var mode = 0; | ||
/* init contenu nouvelle page oeuvre */ | /* init contenu nouvelle page oeuvre */ | ||
var pgeuvctnt = "{{Référence}}\n\n== Éditions ==\n<!-- Attention : cette partie ne doit faire qu'inclure les sous-pages (une par édition). Pour ajouter une édition, il faut créer une nouvelle sous-page. -->\n\n"; | var pgeuvctnt = "{{"+"Référence}}\n\n== Éditions ==\n<!-- Attention : cette partie ne doit faire qu'inclure les sous-pages (une par édition). Pour ajouter une édition, il faut créer une nouvelle sous-page. -->\n\n"; | ||
} | } | ||
/* si page oeuvre existe déjà */ | /* si page oeuvre existe déjà */ | ||
Ligne 508 : | Ligne 516 : | ||
/* init contenu page oeuvre */ | /* init contenu page oeuvre */ | ||
/* cas titre du lien différent du contenu du lien (titre dans sspgname p.e. édition étrangère) */ | /* cas titre du lien différent du contenu du lien (titre dans sspgname p.e. édition étrangère) */ | ||
var | var y = sspgname.split(/ – /); | ||
if ( | if (y[1] != undefined) pgeuvctnt += "=== [["+pgname+"/"+sspgname+"|''"+y[0]+"'', "+y[1]+"]] ==="; | ||
else pgeuvctnt += "=== [["+pgname+"/"+sspgname+"|''"+pgname.replace(/^Référence:/,'')+"'', "+sspgname+"]] ==="; | else pgeuvctnt += "=== [["+pgname+"/"+sspgname+"|''"+pgname.replace(/^Référence:/,'')+"'', "+sspgname+"]] ==="; | ||
pgeuvctnt += "\n\n{{"+pgname+"/"+sspgname+"}}"; | pgeuvctnt += "\n\n{{"+pgname+"/"+sspgname+"}}"; | ||
Ligne 517 : | Ligne 525 : | ||
/* page oeuvre - seulement si creat=2 (sinon recrée seulement page édition) */ | /* page oeuvre - seulement si creat=2 (sinon recrée seulement page édition) */ | ||
if (creat == 2) { | if (creat == 2) { | ||
xhr_object.open('GET', '/ | x = pgname.replace(/&/g,'\%26'); | ||
x = x.replace(/\?/g,'\%3F'); | |||
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=edit', false); | |||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
alert("Erreur edit page "+ | alert("Erreur edit page "+x); | ||
return; | return; | ||
} | } | ||
Ligne 563 : | Ligne 573 : | ||
data += '--'+boundary+'--\r\n'; | data += '--'+boundary+'--\r\n'; | ||
xhr_object.open('POST', '/ | xhr_object.open('POST', '/fr/index.php?title='+x+'&action=submit', false); | ||
//xhr_object.setRequestHeader("Host", " | //xhr_object.setRequestHeader("Host", "www.boywiki.org"); | ||
xhr_object.setRequestHeader("Charset", "utf-8"); | xhr_object.setRequestHeader("Charset", "utf-8"); | ||
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary); | xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary); | ||
Ligne 571 : | Ligne 581 : | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
alert('Erreur écriture page '+ | alert('Erreur écriture page '+x); | ||
return; | return; | ||
} | } | ||
} | } | ||
/* sous-page édition (la page est supposée nouvelle donc vide sinon elle est recréée) */ | /* sous-page édition ou article (la page est supposée nouvelle donc vide sinon elle est recréée) */ | ||
xhr_object.open('GET', '/ | x = pgname+'/'+sspgname; | ||
x = x.replace(/&/g,'\%26'); | |||
x = x.replace(/\?/g,'\%3F'); | |||
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=edit', false); | |||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
alert("Erreur edit page "+ | alert("Erreur edit page "+x); | ||
return; | return; | ||
} | } | ||
Ligne 612 : | Ligne 625 : | ||
data += '--'+boundary+'--\r\n'; | data += '--'+boundary+'--\r\n'; | ||
xhr_object.open('POST', '/ | xhr_object.open('POST', '/fr/index.php?title='+x+'&action=submit', false); | ||
//xhr_object.setRequestHeader("Host", "fr.boywiki.org"); | //xhr_object.setRequestHeader("Host", "fr.boywiki.org"); | ||
xhr_object.setRequestHeader("Charset", "utf-8"); | xhr_object.setRequestHeader("Charset", "utf-8"); | ||
Ligne 620 : | Ligne 633 : | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
alert('Erreur écriture page '+ | alert('Erreur écriture page '+x); | ||
return; | return; | ||
} | } | ||
alert('Fin création'); | alert('Fin création'); | ||
/* boutons retour */ | /* boutons retour */ | ||
document.getElementById('creatrefbib_end').innerHTML = '<span style="display:block; margin: 20px 25%;"><input type="button" value="Ajouter une autre page | document.getElementById('creatrefbib_end').innerHTML = '<span style="display:block; margin: 20px 25%;"><input type="button" value="Ajouter une autre sous-page du même ouvrage" onclick="creatrefbib_form2()" /><input type="button" value="Revenir au début" onclick="javascript:window.location.reload()" /></span>'; | ||
} | } |
Dernière version du 15 décembre 2015 à 18:56
/* Affichage et gestion formulaire pour création de référence bibliographique */
/* Création d'une sous-page par édition et maj ou création page principale d'oeuvre */
/* charge mw.toolbar - gestion insertTags */
mw.loader.load("mediawiki.action.edit");
/* Affichage du premier formulaire - nom de page oeuvre */
function creatrefbib_form() {
/* seulement pour page création réf. bib. et utilisateur ayant droit écriture pages biblio. */
if (wgPageName != 'Utilisateur:Pinocchio/Création_Référence_Bibliographique') return;
if (wgUserGroups == null || wgUserGroups.join(" ").match(/user|sysop|bureaucrat/) == null) return;
if (wgAction != 'view') return;
/* affiche formulaire création nom de page oeuvre */
var contfrm = document.getElementById('creatrefbib');
var contxt = '<fieldset><legend>Formation du nom de page de l’œuvre</legend>';
contxt += '<div id="creatrefbib_visu">Référence:</div>';
contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Titre original de l’œuvre</td><td><input name="pgnmtt" type="text" size="100%" onkeyup="creatrefbib_pgnm(1)" /></td></tr>';
contxt += '<tr><td class="tit">Nom de l’auteur</td><td><input name="pgnmau" type="text" size="60%" onkeyup="creatrefbib_pgnm(2)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">sans le prénom (optionnel: seulement si titre trop imprécis)</td></tr>';
contxt += '<tr><td class="tit"><b>ou</b> Choisir un nom de page existant</td><td><select name="reflst" onchange="creatrefbib_pgnm(-1)"><option>Recherche des références en cours...</option></select></td></tr>';
contxt += '<tr><td><br /></td></tr>';
contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form2()" /></td></tr>';
contxt += '</table></form></fieldset>';
contfrm.innerHTML = contxt;
/* init objet requete serveur */
var xhr = createxhrobject();
if (xhr == null) return;
/* recherche pages oeuvres pour liste déroulante */
xhr.open('GET', '/fr/api.php?action=query&list=embeddedin&eititle=Modèle:Référence&einamespace=104&eifilterredir=nonredirects&eilimit=500&format=xml&rawcontinue', false);
xhr.send('');
if (xhr.readyState != 4 || xhr.status != 200) {
alert('Erreur requête - Abandon');
return;
}
var pagesrch = xhr.responseXML.documentElement;
var pglst = pagesrch.getElementsByTagName('embeddedin')[0].childNodes;
var tabtit = new Array();
for (var i = 0; i < pglst.length ; i++) tabtit[i] = pglst[i].getAttribute('title');
tabtit.sort(alphacompare);
/* remplit liste des pages */
var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst'];
lstr.removeChild(lstr.firstChild);
var opt = document.createElement('option');
lstr.appendChild(opt);
for (var i = 0; i < tabtit.length ; i++) {
opt = document.createElement('option');
var str = tabtit[i].replace(/&/g,'&');
var val = document.createTextNode(str.replace(/^Référence:/, ""));
opt.appendChild(val);
lstr.appendChild(opt);
}
/* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insertion car. spé. toolbar) */
//var entries = contfrm.getElementsByTagName("input");
//for (var j=0; j < entries.length; j++) {
// entries[j].onfocus = function() {currentFocused = this;};
//}
}
addOnloadHook(creatrefbib_form);
/* Affichage du second formulaire - nom de sous-page édition */
/* lance par bouton valider du formulaire 1 ou bouton 'créer une autre page' de fin création */
function creatrefbib_form2() {
/* cas retour nouvelle création édition suite fin création précédente */
if (document.forms['creat_biblio_pgnm_frm'].elements['args'] != undefined) var pgnm = document.forms['creat_biblio_pgnm_frm'].elements['args'].value.split(/\//)[0];
else var pgnm = document.getElementById('creatrefbib_visu').innerHTML;
/* init objet requete serveur */
var xhr_object = createxhrobject();
if (xhr_object == null) return;
/* test si page oeuvre existe */
var x = pgnm.replace(/&/g,'\%26');
x = x.replace(/\?/g,'\%3F');
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false);
xhr_object.send('');
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
if(confirm("La page «"+x+"» existe déjà\nContinuer ?") == false) return;
}
/* test si page oeuvre existe sans champs auteur */
x = x.split(/ \(/);
if(x[1] != undefined) {
xhr_object.open('GET', '/fr/index.php?title='+x[0]+'&action=raw&ctype=text/plain', false);
xhr_object.send('');
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
if(confirm("Une page «"+x[0]+"» existe déjà\nContinuer ?") == false) return;
}
}
/* affiche formulaire création nom de souspage édition */
var contfrm = document.getElementById('creatrefbib');
var contxt = '<fieldset><legend>Formation du nom de sous-page d’édition</legend>';
contxt += '<div id="creatrefbib_visu">'+pgnm+'/</div>';
contxt += '<form method="post" action="#" name="creat_biblio_pgnm_frm">';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Volume ou Partie</td><td><input name="pgnmvl" type="text" size="40%" onkeyup="creatrefbib_pgnm(3)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Volume (optionnel pour un livre), partie (obligatoire le cas échéant pour un article de périodique)</td></tr>';
contxt += '<tr><td class="tit">Titre traduit</td><td><input name="pgnmtr" type="text" size="100%" onkeyup="creatrefbib_pgnm(4)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">(optionnel)</td></tr>';
contxt += '<tr><td class="tit">Éditeur ou Titre du périodique</td><td><input name="pgnmed" type="text" size="80%" onkeyup="creatrefbib_pgnm(5)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">éditeur (pour un livre ou un périodique), Titre du périodique (pour un article)</td></tr>';
contxt += '<tr><td class="tit">Collection</td><td><input name="pgnmco" type="text" size="60%" onkeyup="creatrefbib_pgnm(6)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">(optionnel)</td></tr>';
contxt += '<tr><td class="tit">Année de publication</td><td><input name="pgnman" type="text" size="20%" onkeyup="creatrefbib_pgnm(7)" /></td></tr>';
contxt += '<tr><td class="tit">Collaborateur important ou Numéro</td><td><input name="pgnmcb" type="text" size="40%" onkeyup="creatrefbib_pgnm(8)" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">collaborateur important (optionnel), Numéro (obligatoire pour un article de périodique)</td></tr>';
contxt += '<tr><td class="tit"><b>ou</b> Choisir un nom de sous-page existant</td><td><select name="reflst" onchange="creatrefbib_pgnm(-2)"><option>Recherche des références en cours...</option></select></td></tr>';
contxt += '<tr><td><br /></td></tr>';
contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" disabled onclick="creatrefbib_form3()" /></td></tr>';
contxt += '</table></form></fieldset>';
contfrm.innerHTML = contxt;
/* recherche souspages éditions de la page oeuvre choisie pour liste déroulante */
xhr_object.open('GET', '/fr/api.php?action=query&list=allpages&apfilterredir=nonredirects&apnamespace=104&apprefix='+pgnm.replace(/^Référence:/,'')+'&aplimit=500&format=xml&rawcontinue', false);
xhr_object.send('');
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur requête - Abandon');
return;
}
var lstr = document.forms['creat_biblio_pgnm_frm'].elements['reflst'];
lstr.removeChild(lstr.firstChild);
var pagesrch = xhr_object.responseXML.documentElement;
var pglst = pagesrch.getElementsByTagName('allpages')[0].childNodes;
var tabpg = new Array();
for (var i = 0; i < pglst.length ; i++) tabpg[i] = pglst[i].getAttribute('title');
/* remplit liste des souspages */
var opt = document.createElement('option');
var val = document.createTextNode('---');
opt.appendChild(val);
lstr.appendChild(opt);
for (var i = 1; i < tabpg.length; i++) {
opt = document.createElement('option');
val = document.createTextNode(tabpg[i]);
opt.appendChild(val);
lstr.appendChild(opt);
}
/* affecte event à chaque champs saisie : récup dernier champs sélectionné pour insert car spé toolbar) */
//var entries = contfrm.getElementsByTagName("input");
//for (var j=0; j < entries.length; j++) {
// entries[j].onfocus = function() {currentFocused = this;};
//}
}
/* Affichage du formulaire principal - contenu notice édition */
/* lance par bouton valider du formulaire 2 */
function creatrefbib_form3() {
/* récup champs du formulaire 2 */
var frm = document.forms['creat_biblio_pgnm_frm'];
var pgnm = document.getElementById('creatrefbib_visu').innerHTML.split(/\//);
var sspgnm = pgnm[1];
pgnm = pgnm[0];
var pgnmtt = pgnm.split(/ \(|\)/);
if (pgnmtt[1] != undefined) {
var pgnmau = pgnmtt[1];
pgnmtt = pgnmtt[0].replace(/^Référence:/,'');
}
else {
pgnmtt = pgnm.replace(/^Référence:/,'');
var pgnmau = '';
}
var pgnmvl = frm.elements['pgnmvl'].value;
var pgnmtr = frm.elements['pgnmtr'].value;
var pgnmed = frm.elements['pgnmed'].value;
var pgnmco = frm.elements['pgnmco'].value;
var pgnman = frm.elements['pgnman'].value;
var pgnmcb = frm.elements['pgnmcb'].value;
/* affiche formulaire contenu référence édition */
var contfrm = document.getElementById('creatrefbib');
var contxt = '<form method="post" action="#" name="creat_biblio_pgnm_frm">';
contxt += '<fieldset><legend>Titre et responsabilité</legend>';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Titre</td><td><input name="titr" type="text" size="100%" value="'+pgnmtt+'" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Titre de l’œuvre dans cette édition</td></tr>';
contxt += '<tr><td class="tit">Sous-titre</td><td><input name="sstr" type="text" size="100%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Sous-titre (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Volume</td><td><input name="nvol" type="text" size="40%" value="'+pgnmvl+'" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Numéro, volume, tome (par ex: vol. II, tome 2) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Titre du volume</td><td><input name="ttvl" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Sous-titre du volume</td><td><input name="ssvl" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Titre langue2</td><td><input name="tito" type="text" size="100%" value="'+pgnmtr+'" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">si traduction (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Sous-titre langue2</td><td><input name="ssto" type="text" size="100%" /></td></tr>';
contxt += '<tr><td class="tit">Volume langue2</td><td><input name="nvoo" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">Titre du volume langue2</td><td><input name="ttvo" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Sous-titre du volume langue2</td><td><input name="ssvo" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Lien titre</td><td><input name="lnti" type="text" size="100%" value="'+pgnmtt+'" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Lien interne vers l’article ou le texte de l’œuvre (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Auteurs - Précisions</td><td><input name="prea" type="text" size="40%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">S’il n’y a pas d’auteur du livre à proprement parler, mais un «responsable» ou «directeur» (indiquer par ex: edited by) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Auteurs - Précisions abrégées</td><td><input name="pbga" type="text" size="40%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Comme ci-dessus mais en abrégé pour les références courtes (indiquer par ex: eds.) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Auteur - Prénom</td><td><input name="aup1" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Auteur - Nom</td><td><input name="aun1" type="text" size="60%" value="'+pgnmau+'" /></td></tr>';
contxt += '<tr><td class="tit">Lien auteur</td><td><input name="lnau" type="text" size="100%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Lien interne vers l’article sur l’auteur (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Auteur2 - Prénom</td><td><input name="aup2" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Auteur2 - Nom</td><td><input name="aun2" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Lien auteur2</td><td><input name="lna2" type="text" size="100%" /></td></tr>';
contxt += '<tr><td class="tit">Auteur3 - Prénom</td><td><input name="aup3" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Auteur3 - Nom</td><td><input name="aun3" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Lien auteur3</td><td><input name="lna3" type="text" size="100%" /></td></tr>';
contxt += '<tr><td class="tit">Auteurs - complément</td><td><input name="cpla" type="text" size="40%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Champs alternatif à "Auteurs - Précisions" mais placé après les auteurs (indiquer par ex: ed.) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Collaborateurs</td><td><input name="clbr" type="text" size="100%" value="'+pgnmcb+'" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Indiquer la chaîne complète en respectant la syntaxe, par ex: ill. Prénom Nom ; trad. Prénom Nom (optionnel)</td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Article</legend>';
contxt += '<table border="0" align="left">';
contxt += '<tr><td class="tit" style="padding-left:6px;">Lien vers page édition</td><td><select name="lnpe" style="width:110%;" onchange="creatrefbib_swarticle()"></select></td></tr>';
contxt += '<tr><td></td><td class="cmt">Cas particulier aux articles: indiquer la page édition de référence de l’article (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Emplacement article</td><td><input name="posa" type="text" size="60%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Cas particulier aux articles: indiquer emplacement dans l’ouvrage (p. ex.: p.10-15) (optionnel)</td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Publication</legend>';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Numéro édition</td><td><input name="nedt" type="text" size="40%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Ordre de cette édition dans un ensemble historique (p. ex.: 5ème éd. revue et corrigée) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Lieu édition</td><td><input name="lie1" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">Éditeur</td><td><input name="edt1" type="text" size="60%" value="'+pgnmed+'" /></td></tr>';
contxt += '<tr><td class="tit">Lieu édition2</td><td><input name="lie2" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">Éditeur2</td><td><input name="edt2" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Lieu édition3</td><td><input name="lie3" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">Éditeur3</td><td><input name="edt3" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Année édition</td><td><input name="date" type="text" size="20%" value="'+pgnman+'" /></span></td></tr>';
contxt += '<tr><td class="tit">Lieu impression</td><td><input name="liei" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">Imprimeur</td><td><input name="impr" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">Date impression</td><td><input name="dati" type="text" size="20%" /></td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Description</legend>';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Pages</td><td><input name="nbpg" type="text" size="20%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Nombre de pages (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Caractéristiques</td><td><input name="cart" type="text" size="50%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Autres caractéristiques (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Format</td><td><input name="frmt" type="text" size="40%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Format ou dimensions en cm (optionnel)</td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Collection</legend>';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Collection</td><td><input name="col1" type="text" size="60%" value="'+pgnmco+'" /></td></tr>';
contxt += '<tr><td class="tit">ISSN</td><td><input name="issn" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Numéro collection</td><td><input name="nco1" type="text" size="20%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Numéro dans la collection (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Collection2</td><td><input name="col2" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">ISSN2</td><td><input name="iss2" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Numéro collection2</td><td><input name="nco2" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Collection3</td><td><input name="col3" type="text" size="60%" /></td></tr>';
contxt += '<tr><td class="tit">ISSN3</td><td><input name="iss3" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Numéro collection3</td><td><input name="nco3" type="text" size="20%" /></td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Notes</legend>';
contxt += '<table border="0" align="left">';
contxt += '<tr><td class="tit" style="padding-left:20px;">Langue</td><td><input name="lang" type="text" size="20%" /></td></tr>';
contxt += '<tr><td></td><td class="cmt">Langue de l’œuvre (anglais, latin, arabe...) (optionnel)</td></tr>';
contxt += '<tr><td class="tit">Langue2</td><td><input name="lng2" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Notes</td><td><textarea name="nota" style="width:140%; height:5em; font-family:sans-serif; font-size:9pt;"></textarea></td></tr>';
contxt += '<tr><td></td><td class="cmt">Notes additionnelles (isbn ajouté automatiquement à la suite des notes) (optionnel)</td></tr>';
contxt += '</table></fieldset>';
contxt += '<fieldset><legend>Identification</legend>';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">ISBN</td><td><input name="isbn" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Complément ISBN</td><td><input name="csbn" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">ISBN2</td><td><input name="isb2" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Complément ISBN2</td><td><input name="csb2" type="text" size="40%" /></td></tr>';
contxt += '<tr><td class="tit">ISBN3</td><td><input name="isb3" type="text" size="20%" /></td></tr>';
contxt += '<tr><td class="tit">Complément ISBN3</td><td><input name="csb3" type="text" size="40%" /></td></tr>';
contxt += '</table></fieldset>';
contxt += '<br />';
contxt += '<input type="hidden" name="args" value="'+pgnm+'/'+sspgnm+'" />';
contxt += '<span style="display:block; margin: 20px 35%;"><input type="button" name="valid" value="Créer cette référence" onclick="creatrefbib_valid(2)" /></span>';
contxt += '</form>';
contxt += '<div id="creatrefbib_end" style="margin:20px auto;"></div>';
contfrm.innerHTML = contxt;
var frm = document.forms['creat_biblio_pgnm_frm'];
/* init objet requete serveur */
var xhr_object = createxhrobject();
if (xhr_object == null) return;
/* test si souspage existe */
var x = pgnm+'/'+sspgnm;
x = x.replace(/&/g,'\%26');
x = x.replace(/\?/g,'\%3F');
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false);
xhr_object.send('');
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
/* si existe */
/* mode modification souspage existante */
frm.elements['valid'].value = 'Enregistrer les modifications pour cette référence';
frm.elements['valid'].onclick = function() {creatrefbib_valid(1);};
/* recup contenu des attrib=val dans souspage */
var tabsspgcont = xhr_object.responseText.split(/\n\||\n<!--.*-->/);
/* affecte champs du formulaire avec val recup */
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','lien-page-article','emplacement-article','no-édition','lieu','éditeur','lieu2','éditeur2','lieu3','éditeur3','année','lieu-impr','imprimeur','date-impr','pages','caractéristiques','format','collection','issn','no-collection','collection2','issn2','no-collection2','collection3','issn3','no-collection3','langue','langue2','notes','notes-article','isbn','complément-isbn','isbn2','complément-isbn2','isbn3','complément-isbn3');
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','lnpe','posa','nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','nota','nota','isbn','csbn','isb2','csb2','isb3','csb3');
for (var i = 1; i < tabsspgcont.length; i++) {
if (tabsspgcont[i].length < 2) continue;
/* cherche attributs dans tableau */
for (var j = 0; j < attr.length; j++) {
if (tabsspgcont[i].split(/=/)[0] == attr[j]) {
/* applique valeurs à éléments formulaire */
if (attr[j] == 'lien-page-article') {
var opt = document.createElement('option');
var val = tabsspgcont[i].split(/=/)[1].replace(/^Référence:/,'');
opt.appendChild(document.createTextNode(val));
frm.elements['lnpe'].appendChild(opt);
creatrefbib_swarticle();
}
else if (attr[j] == 'emplacement-article') {
if (!tabsspgcont[i].split(/=/)[1].match(/emplacement-article/)) frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1];
}
else if (attr[j] == 'notes-article') {
if (!tabsspgcont[i].split(/=/)[1].match(/notes-article/)) frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1];
}
else frm.elements[elem[j]].value = tabsspgcont[i].split(/=/)[1];
break;
}
}
}
}
/* recherche toutes les souspages éditions pour liste déroulante lien-page-article */
xhr_object.open('GET', '/fr/api.php?action=query&list=embeddedin&eititle=Modèle:Édition&einamespace=104&eifilterredir=nonredirects&eilimit=500&format=xml&rawcontinue', true);
xhr_object.onreadystatechange = function() {
if (xhr_object.readyState != 4 || xhr_object.status != 200) return;
var pagesrch = xhr_object.responseXML.documentElement;
var pglst = pagesrch.getElementsByTagName('embeddedin')[0].childNodes;
var tabtit = new Array();
for (var i = 0; i < pglst.length ; i++) tabtit[i] = pglst[i].getAttribute('title');
tabtit.sort(alphacompare);
/* remplit liste des souspages */
var opt = document.createElement('option');
frm.elements['lnpe'].appendChild(opt);
for (var i = 0; i < tabtit.length ; i++) {
if (!tabtit[i].match(/\//)) continue;
var opt = document.createElement('option');
var val = tabtit[i].replace(/^Référence:/,'');
opt.appendChild(document.createTextNode(val));
frm.elements['lnpe'].appendChild(opt);
}
}
xhr_object.send('');
/* affecte event à chaque champs saisie : récup dernier champs sélectionné (pour insert car spé toolbar) */
//var entries = contfrm.getElementsByTagName("input");
//for (var j=0; j < entries.length; j++) {
// entries[j].onfocus = function() {currentFocused = this;};
//}
}
/* Logique de test et formation visu nom de page et souspage */
/* lancé par event onkeyup */
function creatrefbib_pgnm(c) {
var frm = document.forms['creat_biblio_pgnm_frm'];
/* gestion inhib bouton */
if(c==1) {
if(frm.elements['pgnmtt'].value.length >3) frm.elements['valid'].disabled = false;
else frm.elements['valid'].disabled = true;
}
if(c>2) {
/* test condition if(année && (editeur || (collec && collab)) && nbc =< 4 && nbc >= 2) */
var nbc = 0;
if(frm.elements['pgnmtr'].value.length >3) nbc++;
if(frm.elements['pgnmvl'].value.length >2) nbc++;
if(frm.elements['pgnmed'].value.length >2) nbc++;
if(frm.elements['pgnmco'].value.length >2) nbc++;
if(frm.elements['pgnmcb'].value.length) nbc++;
if(frm.elements['pgnman'].value.length >2
&& (frm.elements['pgnmed'].value.length >2 || (frm.elements['pgnmco'].value.length >3 && frm.elements['pgnmcb'].value.length >3))
&& nbc <= 3 && nbc >= 1) {
frm.elements['valid'].disabled = false;
}
else frm.elements['valid'].disabled = true;
}
/* affichage zone visu */
if (c==1 || c==2) {
var pgnm = "Référence:"+frm.elements['pgnmtt'].value;
if (frm.elements['pgnmau'].value.length) pgnm += " ("+frm.elements['pgnmau'].value+")";
document.getElementById('creatrefbib_visu').innerHTML = pgnm;
}
if(c>2) {
var pgnm = document.getElementById('creatrefbib_visu').innerHTML.split(/\//);
pgnm = pgnm[0]+'/';
if(frm.elements['pgnmtr'].value.length >3) pgnm += frm.elements['pgnmtr'].value+' – ';
if(frm.elements['pgnmvl'].value.length >2) pgnm += frm.elements['pgnmvl'].value+', ';
if(frm.elements['pgnmed'].value.length >2) pgnm += frm.elements['pgnmed'].value;
if(frm.elements['pgnmco'].value.length >2) pgnm += '-'+frm.elements['pgnmco'].value;
if(frm.elements['pgnman'].value.length >2) pgnm += ', '+frm.elements['pgnman'].value;
if(frm.elements['pgnmcb'].value.length) pgnm += ' ('+frm.elements['pgnmcb'].value+')';
document.getElementById('creatrefbib_visu').innerHTML = pgnm;
}
/* cas choix dans liste déroulante */
if(c==-1) {
frm.elements['valid'].disabled = false;
document.getElementById('creatrefbib_visu').innerHTML = 'Référence:'+frm.elements['reflst'].options[frm.elements['reflst'].selectedIndex].text;
}
if(c==-2) {
if (frm.elements['reflst'].selectedIndex == 0) {
frm.elements['valid'].disabled = true;
var nm = document.getElementById('creatrefbib_visu').innerHTML.split(/\//)[0];
document.getElementById('creatrefbib_visu').innerHTML = nm+'/';
} else {
frm.elements['valid'].disabled = false;
var nm = document.getElementById('creatrefbib_visu').innerHTML.split(/\//)[0];
nm += '/'+frm.elements['reflst'].options[frm.elements['reflst'].selectedIndex].text;
document.getElementById('creatrefbib_visu').innerHTML = nm;
}
}
}
/* Active/désactive champs suivants sur cas article */
/* lancé par onchange sur "lien vers page édition" */
function creatrefbib_swarticle() {
var frm = document.forms['creat_biblio_pgnm_frm'];
var elem = new Array('nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','isbn','csbn','isb2','csb2','isb3','csb3');
if(frm.elements['lnpe'].options[frm.elements['lnpe'].selectedIndex].text.length >3) var val = 1;
else var val = 0;
for (var i = 0; i < elem.length; i++) {
frm.elements[elem[i]].disabled = val;
}
}
/* Création pages lancée par bouton validation formulaire principal */
/* création sous-page édition */
/* création ou ajout texte à page oeuvre en mode création (creat=1) */
function creatrefbib_valid(creat) {
/* inhib bouton et message */
var frm = document.forms['creat_biblio_pgnm_frm'];
frm.elements['valid'].disabled = true;
document.getElementById('creatrefbib_end').innerHTML = 'La création des pages prend quelques secondes...';
/* récup args */
var pgname = frm.elements['args'].value.split(/\//)[0];
var sspgname = frm.elements['args'].value.split(/\//)[1];
var lnpgarticle = 'Référence:'+frm.elements['lnpe'].options[frm.elements['lnpe'].selectedIndex].text;
var pgrefctnt = '<!-- En saisie manuelle insérer sous la ligne switch des lignes de la forme |param=val.\n<!-- Liste des attributs disponible dans la documentation du modèle Édition.\n-->';
if (lnpgarticle.length >13) {
/* init contenu nouvelle page article */
pgrefctnt += '{{{{#switch:{{{1}}}|check|réf=Réf édition|isbd=Réf isbd article|isbdmod=Réf isbdmod article|refcourte=Réf courte article|#default=Édition}}\n';
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','lien-page-article','emplacement-article','notes-article');
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','lnpe','posa','nota');
} else {
/* init contenu nouvelle page édition */
pgrefctnt += '{{{{#switch:{{{1}}}|check|réf=Réf édition|isbd=Réf isbd|isbdmod=Réf isbdmod|refcourte=Réf courte|#default=Édition}}\n';
var attr = new Array('titre','sous-titre','volume','titre-volume','sous-titre-volume','titre-langue2','sous-titre-langue2','volume-langue2','titre-volume-langue2','sous-titre-volume-langue2','lien-titre','précisions-auteurs','précisions-abrégées','prénom','nom','lien-auteur','prénom2','nom2','lien-auteur2','prénom3','nom3','lien-auteur3','complément-auteurs','collaborateurs','no-édition','lieu','éditeur','lieu2','éditeur2','lieu3','éditeur3','année','lieu-impr','imprimeur','date-impr','pages','caractéristiques','format','collection','issn','no-collection','collection2','issn2','no-collection2','collection3','issn3','no-collection3','langue','langue2','notes','isbn','complément-isbn','isbn2','complément-isbn2','isbn3','complément-isbn3');
var elem = new Array('titr','sstr','nvol','ttvl','ssvl','tito','ssto','nvoo','ttvo','ssvo','lnti','prea','pbga','aup1','aun1','lnau','aup2','aun2','lna2','aup3','aun3','lna3','cpla','clbr','nedt','lie1','edt1','lie2','edt2','lie3','edt3','date','liei','impr','dati','nbpg','cart','frmt','col1','issn','nco1','col2','iss2','nco2','col3','iss3','nco3','lang','lng2','nota','isbn','csbn','isb2','csb2','isb3','csb3');
}
for (var i=0; i < attr.length; i++) {
if (frm.elements[elem[i]].value.length) {
if (elem[i] == 'lnpe') pgrefctnt += '|'+attr[i]+'='+lnpgarticle+'\n';
else pgrefctnt += '|'+attr[i]+'='+frm.elements[elem[i]].value+'\n';
}
}
pgrefctnt += '<!-- Ne pas modifier après cette ligne. -->\n';
pgrefctnt += '|commentaires={{{commentaires|}}}\n';
if (lnpgarticle.length <13) {
pgrefctnt += '|emplacement-article={{{emplacement-article|}}}\n';
pgrefctnt += '|notes-article={{{notes-article|}}}\n';
}
pgrefctnt += '}}';
/* init objet requete serveur */
var xhr_object = createxhrobject();
if (xhr_object == null) return;
/* test si page oeuvre existe */
var x = pgname.replace(/&/g,'\%26');
x = x.replace(/\?/g,'\%3F');
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=raw&ctype=text/plain', false);
xhr_object.send('');
/* si page oeuvre n'existe pas */
if (xhr_object.readyState == 4 && xhr_object.status == 404) {
var mode = 0;
/* init contenu nouvelle page oeuvre */
var pgeuvctnt = "{{"+"Référence}}\n\n== Éditions ==\n<!-- Attention : cette partie ne doit faire qu'inclure les sous-pages (une par édition). Pour ajouter une édition, il faut créer une nouvelle sous-page. -->\n\n";
}
/* si page oeuvre existe déjà */
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
var mode = 1;
var pgeuvctnt = "\n\n";
}
if (xhr_object.readyState != 4 || (xhr_object.status != 404 && xhr_object.status != 200)) {
alert("Erreur inconnue");
return;
}
/* init contenu page oeuvre */
/* cas titre du lien différent du contenu du lien (titre dans sspgname p.e. édition étrangère) */
var y = sspgname.split(/ – /);
if (y[1] != undefined) pgeuvctnt += "=== [["+pgname+"/"+sspgname+"|''"+y[0]+"'', "+y[1]+"]] ===";
else pgeuvctnt += "=== [["+pgname+"/"+sspgname+"|''"+pgname.replace(/^Référence:/,'')+"'', "+sspgname+"]] ===";
pgeuvctnt += "\n\n{{"+pgname+"/"+sspgname+"}}";
/* Création des pages */
/* page oeuvre - seulement si creat=2 (sinon recrée seulement page édition) */
if (creat == 2) {
x = pgname.replace(/&/g,'\%26');
x = x.replace(/\?/g,'\%3F');
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=edit', false);
xhr_object.send('');
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert("Erreur edit page "+x);
return;
}
var pagedit = xhr_object.responseText.split(/<textarea[^>]*>|<\/textarea>/gi);
/* si page oeuvre existe déjà récup contenu */
if (mode == 1) {
var pgdit = pagedit[1];
pgdit = pgdit.replace(/\n+$/,'');
pgdit = pgdit.replace(/</g, '<');
pgdit = pgdit.replace(/>/g, '>');
pgdit = pgdit.replace(/&/g, '&');
pgdit = pgdit.replace(/"/g, '"');
pgeuvctnt = pgdit+pgeuvctnt;
}
/* récup variables */
pagedit = pagedit[0]+pagedit[2];
pagedit = pagedit.replace(/\n/g, '');
var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
var editoken = pagedit.match(/.{80}name="wpEditToken/i);
editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
var summary = 'Routine création référence biblio.';
/* init requete serveur - maj page oeuvre */
var boundary = '--------------23242526272829';
var data = '';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+pgeuvctnt+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/fr/index.php?title='+x+'&action=submit', false);
//xhr_object.setRequestHeader("Host", "www.boywiki.org");
xhr_object.setRequestHeader("Charset", "utf-8");
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
xhr_object.setRequestHeader("Content-Length", String(data.length));
xhr_object.send(data);
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur écriture page '+x);
return;
}
}
/* sous-page édition ou article (la page est supposée nouvelle donc vide sinon elle est recréée) */
x = pgname+'/'+sspgname;
x = x.replace(/&/g,'\%26');
x = x.replace(/\?/g,'\%3F');
xhr_object.open('GET', '/fr/index.php?title='+x+'&action=edit', false);
xhr_object.send('');
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert("Erreur edit page "+x);
return;
}
/* récup variables */
pagedit = xhr_object.responseText.split(/<textarea[^>]*>|<\/textarea>/gi);
pagedit = pagedit[0]+pagedit[2];
pagedit = pagedit.replace(/\n/g, '');
var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
var editoken = pagedit.match(/.{80}name="wpEditToken/i);
editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
var summary = 'Routine création référence biblio.';
/* init requete serveur - maj page édition */
var boundary = '--------------23242526272829';
var data = '';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+pgrefctnt+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/fr/index.php?title='+x+'&action=submit', false);
//xhr_object.setRequestHeader("Host", "fr.boywiki.org");
xhr_object.setRequestHeader("Charset", "utf-8");
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
xhr_object.setRequestHeader("Content-Length", String(data.length));
xhr_object.send(data);
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur écriture page '+x);
return;
}
alert('Fin création');
/* boutons retour */
document.getElementById('creatrefbib_end').innerHTML = '<span style="display:block; margin: 20px 25%;"><input type="button" value="Ajouter une autre sous-page du même ouvrage" onclick="creatrefbib_form2()" /><input type="button" value="Revenir au début" onclick="javascript:window.location.reload()" /></span>';
}