Discussion utilisateur:Dr Brains/MessageWatchlist.js
/*
Moi | Bla-bla | Contributions | Travaux | Outils | Scripts | Bot | Administration | Bureaucratie | Divers |
|
Archives | |
Notification de modification de la liste de suivi
- Code original : en:User:Ais523/watchlistnotifier.js
Fonctions
[modifier le code]Sur toutes les pages
[modifier le code]Affiche en haut de la page la dernière modification d'une page de la liste de suivi[1]
- Utilise une requête Ajax via l'API pour connaître la dernière modification[2]
- La requête est renouvelée automatiquement au bout d'un temps déterminé (10 secondes par défaut)
- Les liens de la notification procurent une prévisualisation Ajax vers la page demandée.
Dans la liste de suivi
[modifier le code]Affiche en gras les modifications faites depuis la dernière consultation (sauvegarde par cookie)
Installation
[modifier le code]Ce script est adapté pour tous les skins et tous les navigateurs. Si vous rencontrez des problèmes ou avez des suggestions pour l'améliorer, merci de me laisser un message en utilisant le lien en haut à droite de cette page.
Pour bénéficier de cette fonction, ajoutez le code suivant à votre page Utilisateur:<VotrePseudo>/monobook.js (ou autre suivant l'habillage sélectionné dans vos Préférences)
importScript('Utilisateur:Dr Brains/MessageWatchlist.js');
Personnalisation
[modifier le code]Les variables situées dans la partie personnalisable du code source sont personnalisables. Pour les modifier, il suffit de les recopier (sans la déclaration var) et de leur attribuer la valeur souhaitée après l'appel du script.
Paramètres
[modifier le code]Deux variables sont personnalisables :
Si vous souhaitez les modifier, vous pouvez ajuster la variable correspondante lors de l'installation.
Exemple
[modifier le code]importScript('Utilisateur:Dr Brains/MessageWatchlist.js');
$(function(){
MessageWatchlistReload = 60;
MessageWatchlistHeight = 800;
});
Textes
[modifier le code]Les différents textes sont personnalisables.
Il est également possible de modifier le format d'affichage de la notification.
Voici à quoi correspondent les "variables" précédées d'un signe $ [5] :
- $01 : Lien vers la liste de suivi
- $02 : Heure de la modification (UTC)
- $03 : Lien de prévisualisation de la page
- $04 : Lien de prévisualisation de la page de diff
- $05 : Lien de prévisualisation de la page d'historique
- $06 : Lien de prévisualisation vers la page d'édition
- $07 : Lien de prévisualisation de fin de suivi
- $08 : Lien de prévisualisation de la page personnelle de l'utilisateur
- $09 : Lien de prévisualisation de la page de discussion de l'utilisateur
- $10 : Lien de prévisualisation des contributions de l'utilisateur
- $11 : Résumé de modification
Tous types d'élément HTML sont autorisés (<b>
, <i>
, <u>
, <s>
, <br/>
, <span>
, <div>
, etc...).
Seules les apostrophes peuvent poser problème : elles doivent être précédées d'un signe \ (Alt Gr + 8) afin d'être considérées comme du texte et non comme la fin de la variable.
Exemple
[modifier le code]importScript('Utilisateur:Dr Brains/MessageWatchlist.js');
$(function(){
MessageWatchlist_NotificationFormat = '<b>Dernière modification de la $01</b><br/>$03 ($04|$05|$06|$07) modifiée le $02 par l\'utilisateur $08 ($09|$10) : "$11"';
MessageWatchlist_TalkText = 'Discussion';
MessageWatchlist_ContribText = 'Contributions';
}
Notes
[modifier le code]- Si il n'y a pas eu de modification depuis la dernière consultation de la liste de suivi, il n'y a pas de notification
- Les pages modifiées par l'utilisateur sont exclues de la requête
- exprimée en secondes, 10 secondes par défaut
- exprimée en pixels, 500 pixels par défaut
- Toutes sont facultatives. Si la variable n'apparaît pas dans le format, l'information correspondante ne sera pas donnée
CODE SOURCE
[modifier le code]//<pre><nowiki>
////////////////////////////////////////// PARTIE PERSONNALISABLE ///////////////////////////////////////////////////////
// ##### PARAMÈTRES ##### //
//// Nombre de secondes entre deux mises à jour
var MessageWatchlistReload = 10;
//// Hauteur de la fenêtre de prévisualisation (en pixels)
var MessageWatchlistHeight = 500;
// ##### TEXTES ##### //
//// Notification de changement
// Format
var MessageWatchlist_NotificationFormat = '<b>Dernière modification de la $01</b> : $02 | <b>Détails :</b> "$03" ($04|$05|$06|$07), $log par $08 ($09|$10) | <b>Résumé : </b>"$11"';
// Textes
var MessageWatchlist_LogFormat = {
"default" : "modification",
"edit" : "modification",
"new" : "création",
"move_move" : "renommage",
"move_move_redir" : "renommage par-dessus une redirection",
"protect_protect" : "protection",
"protect_modify" : "protection modifiée",
"protect_unprotect" : "protection supprimée",
"delete_delete" : "suppression",
"delete_revision" : "suppression de révision",
"delete_restore" : "restaurtion",
"massmessage_send" : "envoi de message de masse",
"block_block" : "blocage",
"block_unblock" : "déblocage",
}
var MessageWatchlist_WatchlistTitle ='Voir la liste de suivi';
var MessageWatchlist_WatchlistText ='liste de suivi';
var MessageWatchlist_PageTitle ='Voir la page';
var MessageWatchlist_DiffTitle ='Voir la différence de version';
var MessageWatchlist_DiffText ='diff';
var MessageWatchlist_HistTitle ='Voir l\'historique de cette page';
var MessageWatchlist_HistText ='hist';
var MessageWatchlist_EditTitle ='Modifier cette page';
var MessageWatchlist_EditText ='edit';
var MessageWatchlist_StopTitle ='Ne plus suivre cette page';
var MessageWatchlist_StopText ='stop';
var MessageWatchlist_UserTitle ='Voir la page personnelle de cet utilisateur';
var MessageWatchlist_TalkTitle ='Discuter avec cet utilisateur';
var MessageWatchlist_TalkText ='d';
var MessageWatchlist_ContribTitle ='Voir les contributions de cet utilisateur';
var MessageWatchlist_ContribText ='c';
var MessageWatchlist_BlockTitle ='Bloquer cet utilisateur';
var MessageWatchlist_BlockText ='b';
var MessageWatchlist_AlertEdit = 'Il y a déjà une fenêtre de modification ouverte.\nVous devez la fermer pour pouvoir en ouvrir une autre.';
//// Fenêtre de prévisualisation
var MessageWatchlist_LoadingText = 'Chargement';
var MessageWatchlist_CloseWindowTitle ='Cliquer pour fermer la fenêtre de prévisualisation';
var MessageWatchlist_CloseWindowText ='Fermer';
var MessageWatchlist_PreviewSizePlusTitle = 'Cliquer pour augmenter la taille de la fenêtre de prévisualisation';
var MessageWatchlist_PreviewSizePlusText = '▼';
var MessageWatchlist_PreviewSizeMinusTitle = 'Cliquer pour diminuer la taille de la fenêtre de prévisualisation';
var MessageWatchlist_PreviewSizeMinusText = '▲';
var MessageWatchlist_DirectLinkText ='Lien direct';
// Boutons Boîtes déroulantes/Palettes de navigation
var MessageWatchlist_Enrouler = '[enrouler]';
var MessageWatchlist_Derouler = '[dérouler]';
// Boutons Sommaire
var MessageWatchlist_EnroulerBis = '[-]';
var MessageWatchlist_DeroulerBis = '[+]';
////////////////////////////////////////// FIN DE LA PARTIE PERSONNALISABLE /////////////////////////////////////////////
// Construction de la requête ajax
var wmwpajax = {
http: function(bundle) {
// mandatory: bundle.url
// optional: bundle.async
// optional: bundle.method
// optional: bundle.headers
// optional: bundle.data
// optional: bundle.onSuccess (xmlhttprequest, bundle)
// optional: bundle.onFailure (xmlhttprequest, bundle)
// optional: bundle.otherStuff OK too, passed to onSuccess and onFailure
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
wmwpajax.httpComplete(xmlhttp,bundle);
};
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async === false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers)
try {
xmlhttp.setRequestHeader(field,bundle.headers[field]);
} catch(err) {
//Argos42 : pour rendre LiveRC fonctionnel sur chrome
}
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
},
httpComplete: function(xmlhttp,bundle) {
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess)
bundle.onSuccess(xmlhttp,bundle);
} else if (bundle.onFailure) {
bundle.onFailure(xmlhttp,bundle);
} else {
// A activer en debug mode ?
// alert(xmlhttp.status+xmlhttp.responseText);
}
}
};
// Fonction lancée après succès de la requête
function MessageWatchlist_WatchEditFound(xmlreq, data) {
var watchrev, watchsum, watchrevold, watchpage, junk;
var Resultat = xmlreq.responseXML.getElementsByTagName('item')[0];
if(!Resultat) return;
var watchrev = Resultat.getAttribute('revid');
if(!watchrev) return;
try{
watchrevold = jQuery.cookie('ais523wmwatchrev=');
}
catch(junk) {watchrevold=0;}
// Gestion des différents skins
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('article');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.body;
var NotifierParentNode = document.getElementById('MessageWatchlist_Div');
if(!NotifierParentNode){
NotifierParentNode = document.createElement('div');
NotifierParentNode.id='MessageWatchlist_Div';
var DivRepere = document.getElementById('siteNotice');
DivRepere.parentNode.insertBefore( NotifierParentNode , DivRepere );
}
// Liste de suivi
if((mw.config.get('wgCanonicalSpecialPageName') == "Watchlist")&&(document.URL.indexOf("edit")==-1)){
var now = new Date();
var nextYear = new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365 );
jQuery.cookie('ais523wmwatchrev', watchrev, {expires:nextYear, path:"/"})
var aas= Content.getElementsByTagName('a');
var i=aas.length;
while(i--){
if(aas[i].href.indexOf('diff=')!=-1&&watchrevold)
if(+(aas[i].href.split('diff=')[1].split('&')[0])>watchrevold)
aas[i].parentNode.style.fontWeight='bold';
}
NotifierParentNode.style.display = "none";
// Autres pages
} else {
var watchpageid = Resultat.getAttribute('pageid');
var watchrevid = Resultat.getAttribute('revid');
var watchpage = Resultat.getAttribute('title');
var watchuser = Resultat.getAttribute('user');
var watchsum = Resultat.getAttribute('parsedcomment');
var watchtimestamp = Resultat.getAttribute('timestamp');
watchtimestamp = watchtimestamp.split('Z').join('').split('T').join(' - ');
var Codedwatchpage = watchpage.replace(/'/g, "ZAPOSRTOPHE");
var CodedUser = watchuser.replace(/'/g, "ZAPOSRTOPHE");
if(watchrev!=watchrevold){
var WatchlistLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Special:Watchlist\');" title="'+MessageWatchlist_WatchlistTitle+'">'+MessageWatchlist_WatchlistText+'</a>';
var PageLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='+encodeURIComponent(Codedwatchpage)+'\');" title="'+MessageWatchlist_PageTitle+'">'+watchpage+'</a>';
var DiffLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='+encodeURIComponent(Codedwatchpage)+'&diff=prev&oldid='+watchrevid+'\');" title="'+MessageWatchlist_DiffTitle+'">'+MessageWatchlist_DiffText+'</a>';
var HistLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='+encodeURIComponent(Codedwatchpage)+'&action=history\');" title="'+MessageWatchlist_HistTitle+'">'+MessageWatchlist_HistText+'</a>';
var EditLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='+encodeURIComponent(Codedwatchpage)+'&action=edit\');" title="'+MessageWatchlist_EditTitle+'">'+MessageWatchlist_EditText+'</a>';
var StopLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + mw.config.get('wgScript') + '?title='+encodeURIComponent(Codedwatchpage)+'&action=unwatch\');" title="'+MessageWatchlist_StopTitle+'">'+MessageWatchlist_StopText+'</a>';
var UserLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + '/wiki/User:'+encodeURIComponent(CodedUser)+'\');" title="'+MessageWatchlist_UserTitle+'">'+watchuser+'</a>';
var UserTalkLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + '/wiki/User talk:'+encodeURIComponent(CodedUser)+'\');" title="'+MessageWatchlist_TalkTitle+'">'+MessageWatchlist_TalkText+'</a>';
var UserContribLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + '/wiki/Special:Contributions/'+encodeURIComponent(CodedUser)+'\');" title="'+MessageWatchlist_ContribTitle+'">'+MessageWatchlist_ContribText+'</a>';
var BlockUserLink = '<a href="javascript:MessageWatchlist_QuickPreview(\''+mw.config.get('wgServer') + '/wiki/Special:Blockip/'+encodeURIComponent(CodedUser)+'\');" title="'+MessageWatchlist_BlockTitle+'">'+MessageWatchlist_BlockText+'</a>';
var LogFormat = MessageWatchlist_LogFormat["default"];
var watchtype = Resultat.getAttribute('type');
if(watchtype=="edit"){ LogFormat = MessageWatchlist_LogFormat["edit"]; }
if(watchtype=="new"){ LogFormat = MessageWatchlist_LogFormat["new"]; }
if(watchtype=="log"){
var watchlogtype = Resultat.getAttribute('logtype');
var watchlogaction = Resultat.getAttribute('logaction');
if(typeof(MessageWatchlist_LogFormat[(watchlogtype+"_"+watchlogaction)])==="string") LogFormat = MessageWatchlist_LogFormat[(watchlogtype+"_"+watchlogaction)];
}
var NotifyText = MessageWatchlist_NotificationFormat;
NotifyText = NotifyText.split('$log').join(LogFormat);
NotifyText = NotifyText.split('$01').join(WatchlistLink);
NotifyText = NotifyText.split('$02').join(watchtimestamp);
NotifyText = NotifyText.split('$03').join(PageLink);
NotifyText = NotifyText.split('$04').join(DiffLink);
NotifyText = NotifyText.split('$05').join(HistLink);
NotifyText = NotifyText.split('$06').join(EditLink);
NotifyText = NotifyText.split('$07').join(StopLink);
NotifyText = NotifyText.split('$08').join(UserLink);
NotifyText = NotifyText.split('$09').join(UserTalkLink);
if(mw.config.get('wgUserGroups').indexOf('sysop')!=-1){
NotifyText = NotifyText.split('$10').join(UserContribLink+'|'+BlockUserLink);
}else{
NotifyText = NotifyText.split('$10').join(UserContribLink);
}
NotifyText = NotifyText.split('$11').join(watchsum);
var LastNotify = document.getElementById('watchlistnotify');
if(LastNotify){
LastNotify.innerHTML = NotifyText;
NotifierParentNode.style.display = "block";
}else{
NotifierParentNode.innerHTML += '<div id="watchlistnotify" style="margin-bottom:0.5em;">' + NotifyText + '</div><div id="watchlistShowPreview" style="display:none;"></div>';
}
}else{
NotifierParentNode.style.display = "none";
}
}
}
// Fonction de lancement de la requête
function MessageWatchlist_getLastEditOnWatchList() {
// Gestion des différents skins
var Content = document.getElementById('bodyContent');
if(!Content) Content = document.getElementById('article');
if(!Content) Content = document.getElementById('mw_contentholder');
if(!Content) Content = document.body;
var NotifierParentNode = document.getElementById('MessageWatchlist_Div');
if(!NotifierParentNode){
NotifierParentNode = document.createElement('div');
NotifierParentNode.id='MessageWatchlist_Div';
var DivRepere = document.getElementById('siteNotice');
DivRepere.parentNode.insertBefore( NotifierParentNode , DivRepere );
}
var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath')
+ '/api.php?format=xml&action=query&list=watchlist'
+ '&wllimit=1&wldir=older'
+ '&wlexcludeuser='+encodeURIComponent(mw.config.get('wgUserName'))
+ '&wlallrev'
+ '&wlprop=comment|ids|title|user|flags|timestamp|patrol|sizes|parsedcomment|loginfo'
+ '&wltype=edit|new|log'
wmwpajax.http({url:URL, onSuccess: MessageWatchlist_WatchEditFound});
if(!((mw.config.get('wgCanonicalSpecialPageName') == "Watchlist")&&(document.URL.indexOf("edit")==-1))){
setTimeout("MessageWatchlist_getLastEditOnWatchList()",MessageWatchlistReload*1000);
}
}
$(MessageWatchlist_getLastEditOnWatchList);
importStylesheet('Utilisateur:Dr Brains/MessageWatchlist.css');
// Fonction de prévisualisation
function MessageWatchlist_QuickPreview(url){
if(!url) return;
url = decodeURIComponent(url);
while(url.indexOf(''')!=-1){
url = url.split(''').join("'");
if(url.indexOf(''')==-1) break;
}
url = url.replace(/ZAPOSRTOPHE/g, "'");
if((url.indexOf('action=edit')!=-1)&&((mw.config.get('wgAction')=="edit")||(mw.config.get('wgAction')=="submit"))){ alert(MessageWatchlist_AlertEdit); return;}
var PreviewDiv = document.getElementById('watchlistShowPreview');
if(!PreviewDiv) return;
while (PreviewDiv.firstChild){ PreviewDiv.removeChild(PreviewDiv.firstChild); }
PreviewDiv.innerHTML = '<h2>'+MessageWatchlist_LoadingText+'<span style="text-decoration:blink;">...</span><h2><br/>';
PreviewDiv.style.display = "block";
wmwpajax.http({url:url, onSuccess: MessageWatchlist_QuickPreviewDone});
}
function MessageWatchlist_QuickPreviewDone(req, data){
var PreviewDiv = document.getElementById('watchlistShowPreview');
if(!PreviewDiv) return;
var url = data.url;
while (PreviewDiv.firstChild){ PreviewDiv.removeChild(PreviewDiv.firstChild); }
var TempElement = document.createElement('div');
TempElement.innerHTML = req.responseText;
var Content = WatchUsers_getElementWithId( TempElement, 'div', 'bodyContent');
if(!Content) Content = WatchUsers_getElementWithId( TempElement, 'div', 'mw_contentholder');
if(!Content) Content = WatchUsers_getElementWithId( TempElement, 'div', 'article');
var PageContent = Content.innerHTML;
var LiensAction = '<h2>'
+'<a href="javascript:MessageWatchlist_CancelPreview();" title="'+MessageWatchlist_CloseWindowTitle+'">'+MessageWatchlist_CloseWindowText+'</a>'
+' | '
+'<b><a href="javascript:MessageWatchlist_QuickPreviewSize(50);" title="'+MessageWatchlist_PreviewSizePlusTitle+'">'+MessageWatchlist_PreviewSizePlusText+'</a></b>'
+' : '
+'<b><a href="javascript:MessageWatchlist_QuickPreviewSize(-50);" title="'+MessageWatchlist_PreviewSizeMinusTitle+'">'+MessageWatchlist_PreviewSizeMinusText+'</a></b>'
+' | '
+'<a href="'+url+'" title="'+url+'">'+MessageWatchlist_DirectLinkText+'</a>'
+'</h2>';
PreviewDiv.innerHTML = LiensAction + '<div id="MessageWatchlist_PreviewContent" style="height:'+MessageWatchlistHeight+'px;overflow-y:auto;border:2px solid black;padding:1em;">' + PageContent + '<div class="visualClear"/></div>';
PreviewDiv.style.display = "block";
MessageWatchlist_cleanPreviewContent(PreviewDiv);
}
// Fermeture de la fenêtre de prévisualisation
function MessageWatchlist_CancelPreview(){
var PreviewDiv = document.getElementById('watchlistShowPreview');
while (PreviewDiv.firstChild){ PreviewDiv.removeChild(PreviewDiv.firstChild); }
PreviewDiv.style.display = "none";
}
// Modification de la taille de la fenêtre de prévisualisation
function MessageWatchlist_QuickPreviewSize(diff){
var PreviewDiv = document.getElementById('MessageWatchlist_PreviewContent');
PreviewDiv.style.height = (parseInt(PreviewDiv.style.height.split('px').join('')) + diff) + 'px';
}
function WatchUsers_getElementWithId( elementParentNode , elementTagName , elementId ){
if(!elementParentNode) elementParentNode = document;
var TheElement = false;
var Elements = elementParentNode.getElementsByTagName(elementTagName);
var elementcount = 0;
while(elementcount<Elements.length){
var Id = Elements[elementcount].id;
if(Id){
if(Id.indexOf(elementId)!=-1){
TheElement = Elements[elementcount];
break;
}
}
elementcount++
}
return TheElement;
}
// ################################################################################################################## GESTION DU CONTENU DE LA PREVISUALISATION
var MessageWatchlist_indexSummary = 0;
var MessageWatchlist_indexNavigationBars = 10000;
var MessageWatchlist_indexCollapsibleTables = 10000;
function MessageWatchlist_cleanPreviewContent(element){
if(!element) element = document;
var newContentWrapper = element.getElementsByTagName("div");
var div=0;
while(div<newContentWrapper.length){
if (
($(newContentWrapper[div]).hasClass("NavFrame")) // ************************************* Boîtes déroulantes
){
MessageWatchlist_indexCollapsibleTables++;
NavHead = newContentWrapper[div].firstChild;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.id = 'NavToggle' + MessageWatchlist_indexCollapsibleTables;
NavToggle.href = 'javascript:MessageWatchlist_toggleCollapsibleTables(' + MessageWatchlist_indexCollapsibleTables + ');';
NavToggle.innerHTML = MessageWatchlist_Enrouler;
newContentWrapper[div].insertBefore( NavToggle, NavHead );
var Content = newContentWrapper[div].getElementsByTagName("div");
for( var c=0;c<Content.length; c++ ) {
if ($(Content[c]).hasClass("NavContent")) {
Content[c].id = 'NavContent' + MessageWatchlist_indexCollapsibleTables;
}
}
MessageWatchlist_toggleCollapsibleTables(MessageWatchlist_indexCollapsibleTables);
}
Div_Id = newContentWrapper[div].id;
if(Div_Id){
if(
(Div_Id=="toctitle") // ************************************* Sommaire
){
MessageWatchlist_indexSummary = (MessageWatchlist_indexSummary+1);
newContentWrapper[div].id = 'toctitle_'+MessageWatchlist_indexSummary;
var TitreSommaire = newContentWrapper[div].getElementsByTagName('h2')[0];
TitreSommaire.innerHTML = TitreSommaire.innerHTML + ' <a href="javascript:MessageWatchlist_afficherSommaire(\'toc_'+MessageWatchlist_indexSummary
+'\',\'toctitle_'+MessageWatchlist_indexSummary
+'\', \''+TitreSommaire.innerHTML
+'\');" >'+MessageWatchlist_DeroulerBis+'</a>';
var Conteneur = newContentWrapper[div].parentNode;
var Sommaire = Conteneur.getElementsByTagName('ul')[0];
Sommaire.id = 'toc_'+MessageWatchlist_indexSummary;
Sommaire.style.display="none";
}
if(
(Div_Id=="mw-hidden-catlinks")
){
newContentWrapper[div].style.display= "block";
}
}
div++
}
var Tables = element.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if( $(Tables[i]).hasClass("collapsible") ){ // ************************************* Palettes de navigation
NavigationBar = Tables[i];
NavigationBar.id = "collapsibleTable" + MessageWatchlist_indexNavigationBars ;
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( MessageWatchlist_Enrouler );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.id = "collapseButton" + MessageWatchlist_indexNavigationBars ;
ButtonLink.href = "javascript:MessageWatchlist_collapseNavigationBar(" + MessageWatchlist_indexNavigationBars + ");" ;
ButtonLink.appendChild( ButtonText );
Button.appendChild( ButtonLink );
var Header = NavigationBar.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
if (Header) {
Header.insertBefore( Button, Header.firstChild );
}
if ( $( NavigationBar ).hasClass( "collapsed" ) ) MessageWatchlist_collapseNavigationBar( MessageWatchlist_indexNavigationBars );
MessageWatchlist_indexNavigationBars++;
}
}
}
// ###################################################### FONCTIONS SUBALTERNES A LA GESTION DU CONTENU
// -------------------------------------------- Sommaire
function MessageWatchlist_afficherSommaire(IDSommaire, IdTitre, TitreInitial){
var Sommaire = document.getElementById(IDSommaire);
Sommaire.style.display="block";
var Titre = document.getElementById(IdTitre).getElementsByTagName('h2')[0];
Titre.innerHTML = TitreInitial + ' <a href="javascript:MessageWatchlist_masquerSommaire(\''+IDSommaire+'\',\''+IdTitre+'\', \''+TitreInitial+'\');" >'+MessageWatchlist_EnroulerBis+'</a>';
}
function MessageWatchlist_masquerSommaire(IDSommaire, IdTitre, TitreInitial){
var Sommaire = document.getElementById(IDSommaire);
Sommaire.style.display="none";
var Titre = document.getElementById(IdTitre).getElementsByTagName('h2')[0];
Titre.innerHTML = TitreInitial + ' <a href="javascript:MessageWatchlist_afficherSommaire(\''+IDSommaire+'\',\''+IdTitre+'\', \''+TitreInitial+'\');" >'+MessageWatchlist_DeroulerBis+'</a>';
}
// -------------------------------------------- Palettes de navigation
function MessageWatchlist_collapseNavigationBar( tableIndex ) {
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) return false;
var Rows = Table.getElementsByTagName( "tr" );
if ( Button.firstChild.data == MessageWatchlist_Enrouler ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = MessageWatchlist_Derouler;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = MessageWatchlist_Enrouler ;
}
}
// -------------------------------------------- Boîtes déroulantes
function MessageWatchlist_toggleCollapsibleTables(index) {
var NavToggle = document.getElementById("NavToggle" + index);
var NavContent = document.getElementById("NavContent" + index);
if( (!NavToggle) || (!NavContent) ) return;
var Caption = NavToggle.innerHTML;
if (Caption == MessageWatchlist_Enrouler) {
NavContent.style.display = 'none';
NavToggle.innerHTML = MessageWatchlist_Derouler;
} else if (Caption == MessageWatchlist_Derouler) {
NavContent.style.display = 'block';
NavToggle.innerHTML = MessageWatchlist_Enrouler;
}
}
// </nowiki></pre>