Utilisateur:Alphos/glossary.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
glossary.js
Author: [[fr:w:User:Alphos]]
*/
function showGlossaryToggle() {
//inutile pour les pages spéciales
if (mw.config.get('wgNamespaceNumber') < 0) { return false; }
//instanciation de l'objet de requête
if (window.XMLHttpRequest) {
xhttp=new XMLHttpRequest();
}
else {
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var contentId = 'content';
//éléments de la barre latérale dans un calque
var pLogo = document.getElementById('p-logo');
if (pLogo) { pLogo.style.zIndex = '1'; }
var pSearch = document.getElementById('p-search');
if (pSearch) { pSearch.style.zIndex = '1'; }
var pLang = document.getElementById('p-lang');
if (pLang) { pLang.style.zIndex = '1'; }
var pNavig = document.getElementById('p-navigation');
if (pNavig) { pNavig.style.zIndex = '1'; }
var pContrib = document.getElementById('p-Contribuer');
if (pContrib) { pContrib.style.zIndex = '1'; }
var pPrint = document.getElementById('p-coll-print_export');
if (pPrint) { pPrint.style.zIndex = '1'; }
var pTb = document.getElementById('p-tb');
if (pTb) { pTb.style.zIndex = '1'; }
var pPanel = document.getElementById('panel');
if (pPanel) { pPanel.style.zIndex = '1'; }
//éléments présent dès le début
var removeGlossaryCreate = document.getElementById('glossary-create');
var removeGlossaryToggle = document.getElementById('glossary-toggle');
var glossaryContentExists = document.getElementById('glossary-content');
//"suppression" du bouton de rechargement le temps du rechargement
var removeGlossaryReload = document.getElementById('glossary-reload');
if (removeGlossaryReload) document.getElementById(contentId).removeChild(removeGlossaryReload);
xhttp.open("GET","http://fr.wikipedia.org/w/api.php?action=parse&page=Utilisateur:" + encodeURIComponent(mw.config.get('wgUserName')) + "/Glossaire/" + encodeURIComponent(mw.config.get('wgPageName')) + "&prop=text|revid&format=xml",false);
try {xhttp.send(null);} catch (e) { return; }
xmlxml = xhttp.responseXML;
//récupération du RevId correspondant : si c'est 0, la page n'existe pas, donc pas la peine de montrer le toggle ou de continuer la fonction
var glossaryRevId = xmlxml.getElementsByTagName('api')[0].getElementsByTagName('parse')[0].getAttribute('revid');
if (glossaryRevId != 0) {
//retrait du bouton de création si nécessaire
if (removeGlossaryCreate) {
document.getElementById(contentId).removeChild(removeGlossaryCreate);
}
//contenu du glossaire
var glossaryContentHTML = xmlxml.getElementsByTagName('api')[0].getElementsByTagName('parse')[0].getElementsByTagName('text')[0].firstChild.nodeValue;
var glossaryToggleExists = document.getElementById('glossary-toggle');
if (!glossaryToggleExists) {
//affichage de la petite flèche en bas à droite
var glossaryToggle = document.createElement('div');
glossaryToggle.id = 'glossary-toggle';
glossaryToggle.style.display = 'block';
glossaryToggle.style.position = 'fixed';
glossaryToggle.style.bottom = '0px';
glossaryToggle.style.right = '0px';
glossaryToggle.style.border = '1px solid darkgoldenrod';
glossaryToggle.style.backgroundColor = '#CCDDFF';
glossaryToggle.style.padding = '5px';
glossaryToggle.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Pfeil_links_oben.svg/10px-Pfeil_links_oben.svg.png" onclick="toggleGlossary();" onmouseover="document.getElementById(\'glossary-toggle\').style.backgroundColor = \'#DDEEFF\'; document.getElementById(\'glossary-toggle\').style.border = \'1px solid goldenrod\';" onmouseout="document.getElementById(\'glossary-toggle\').style.backgroundColor = \'#CCDDFF\'; document.getElementById(\'glossary-toggle\').style.border = \'1px solid darkgoldenrod\';" title="Afficher votre glossaire pour cette page." />';
document.getElementById(contentId).appendChild(glossaryToggle);
}
//bouton pour recharger
var glossaryReload = document.createElement('div');
glossaryReload.id = 'glossary-reload';
glossaryReload.style.display = 'block';
glossaryReload.style.position = 'fixed';
glossaryReload.style.bottom = '21px';
glossaryReload.style.right = '0px';
glossaryReload.style.backgroundColor = '#CCDDFF';
glossaryReload.style.textAlign = 'center';
glossaryReload.style.padding = 'auto';
glossaryReload.style.width = '20px';
glossaryReload.style.height = '20px';
glossaryReload.style.zIndex = '3';
glossaryReload.style.border = '1px solid darkgoldenrod';
glossaryReload.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/View-refresh.svg/20px-View-refresh.svg.png" title="Recharger votre glossaire pour cette page (ne recharge pas le reste de la page)." onmouseover="document.getElementById(\'glossary-reload\').style.backgroundColor = \'#DDEEFF\'; document.getElementById(\'glossary-reload\').style.border = \'1px solid goldenrod\';" onmouseout="document.getElementById(\'glossary-reload\').style.backgroundColor = \'#CCDDFF\'; document.getElementById(\'glossary-reload\').style.border = \'1px solid darkgoldenrod\';" onclick="showGlossaryToggle();" />';
document.getElementById(contentId).appendChild(glossaryReload);
if (!glossaryContentExists) {
//création de la div de contenu au-dessus de la barre latérale, sans l'afficher par défaut (permet d'utiliser la barre latérale)
var glossaryContent = document.createElement('div');
glossaryContent.id = 'glossary-content';
glossaryContent.style.display = 'none';
glossaryContent.style.padding = '5px';
glossaryContent.style.width = '13.4em';
if (skin == 'vector') { glossaryContent.style.fontSize = '.7em'; }
else { glossaryContent.style.fontSize = '.85em'; }
glossaryContent.style.backgroundColor = '#FFEEEE';
glossaryContent.style.position = 'fixed';
glossaryContent.style.maxHeight = '98.5%';
glossaryContent.style.top = '0px';
glossaryContent.style.left = '0px';
glossaryContent.style.overflow = 'auto';
glossaryContent.style.zIndex = '5';
glossaryContent.innerHTML = '<div style="min-width: 1em; padding: 10px; margin: auto; color: green; background-color: #EEEEEE; font-weight: bold; font-variant: small-caps; text-align: center; font-size: 1.5em;">Glossaire<br/><span style="font-size: 9px; font-variant: normal;" class="plainlinks"><a href="http://fr.wikipedia.org/w/index.php?action=edit&title=Utilisateur:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Glossaire/' + encodeURIComponent(mw.config.get('wgPageName')) + '"><span title="Modifiez votre glossaire pour cette page">m</span></a> • <a href="http://fr.wikipedia.org/wiki/Utilisateur:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Glossaire/' + encodeURIComponent(mw.config.get('wgPageName')) + '"><span title="Voir votre glossaire pour cette page">v</span></a></span></div>' + glossaryContentHTML ;
document.getElementById(contentId).appendChild(glossaryContent);
}
else {
glossaryContentExists.innerHTML = '<div style="min-width: 1em; padding: 10px; margin: auto; color: green; background-color: #EEEEEE; font-weight: bold; font-variant: small-caps; text-align: center; font-size: 1.5em;">Glossaire<br/><span style="font-size: 9px; font-variant: normal;" class="plainlinks"><a href="http://fr.wikipedia.org/w/index.php?action=edit&title=Utilisateur:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Glossaire/' + encodeURIComponent(mw.config.get('wgPageName')) + '"><span title="Modifiez votre glossaire pour cette page">m</span></a> • <a href="http://fr.wikipedia.org/wiki/Utilisateur:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Glossaire/' + encodeURIComponent(mw.config.get('wgPageName')) + '"><span title="Voir votre glossaire pour cette page">v</span></a></span></div>' + glossaryContentHTML ;
}
}
else {
if (removeGlossaryToggle) document.getElementById(ContentId).removeChild(removeGlossaryToggle);
if (glossaryContentExists) document.getElementById(ContentId).removeChild(glossaryContentExists);
//affichage d'un lien pour créer le glossaire en bas à droite
if (!removeGlossaryCreate) {
var glossaryCreate = document.createElement('div');
glossaryCreate.id = 'glossary-create';
glossaryCreate.style.display = 'block';
glossaryCreate.style.position = 'fixed';
glossaryCreate.style.bottom = '0px';
glossaryCreate.style.left = '0px';
glossaryCreate.style.backgroundColor = '#CCDDFF';
glossaryCreate.style.textAlign = 'center';
glossaryCreate.style.padding = 'auto';
glossaryCreate.style.width = '20px';
glossaryCreate.style.height = '20px';
glossaryCreate.style.zIndex = '3';
glossaryCreate.style.border = '1px solid darkgoldenrod';
glossaryCreate.innerHTML = '<a href="http://fr.wikipedia.org/w/index.php?action=edit&title=Utilisateur:' + encodeURIComponent(mw.config.get('wgUserName')) + '/Glossaire/' + encodeURIComponent(mw.config.get('wgPageName')) + '" style="font-size: 1.5em; color: darkgoldenrod;" title="Créer votre glossaire pour cette page (ouvre une autre fenêtre)." target="_blank" onmouseover="this.style.color = \'goldenrod\'; document.getElementById(\'glossary-create\').style.backgroundColor = \'#DDEEFF\'; document.getElementById(\'glossary-create\').style.border = \'1px solid goldenrod\';" onmouseout="this.style.color = \'darkgoldenrod\'; document.getElementById(\'glossary-create\').style.backgroundColor = \'#CCDDFF\'; document.getElementById(\'glossary-create\').style.border = \'1px solid darkgoldenrod\';">+</a>';
document.getElementById(contentId).appendChild(glossaryCreate);
}
//bouton pour recharger
var glossaryReload = document.createElement('div');
glossaryReload.id = 'glossary-reload';
glossaryReload.style.display = 'block';
glossaryReload.style.position = 'fixed';
glossaryReload.style.bottom = '21px';
glossaryReload.style.left = '0px';
glossaryReload.style.backgroundColor = '#CCDDFF';
glossaryReload.style.textAlign = 'center';
glossaryReload.style.padding = 'auto';
glossaryReload.style.width = '20px';
glossaryReload.style.height = '20px';
glossaryReload.style.zIndex = '3';
glossaryReload.style.border = '1px solid darkgoldenrod';
glossaryReload.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/View-refresh.svg/20px-View-refresh.svg.png" title="Recharger votre glossaire pour cette page (ne recharge pas le reste de la page)." onmouseover="document.getElementById(\'glossary-reload\').style.backgroundColor = \'#DDEEFF\'; document.getElementById(\'glossary-reload\').style.border = \'1px solid goldenrod\';" onmouseout="document.getElementById(\'glossary-reload\').style.backgroundColor = \'#CCDDFF\'; document.getElementById(\'glossary-reload\').style.border = \'1px solid darkgoldenrod\';" onclick="showGlossaryToggle();" />';
document.getElementById(contentId).appendChild(glossaryReload);
}
}
addOnloadHook(showGlossaryToggle);
function toggleGlossary() {
//javascript pour utiliser la flèche en bas à droite : clic pour afficher ou masquer le contenu du glossaire
var glossaryToggle = document.getElementById('glossary-toggle');
var glossaryContent = document.getElementById('glossary-content');
if (glossaryContent.style.display == 'none') {
glossaryContent.style.display = 'block';
glossaryToggle.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Pfeil_rechts_unten.svg/10px-Pfeil_rechts_unten.svg.png" onclick="toggleGlossary();" />';
glossaryToggle.title = 'masquer le glossaire pour cette page';
}
else {
glossaryContent.style.display = 'none';
glossaryToggle.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Pfeil_links_oben.svg/10px-Pfeil_links_oben.svg.png" onclick="toggleGlossary();" />';
glossaryToggle.title = 'afficher le glossaire pour cette page';
}
}