User:Mathieu/monobook.js

From Event-B
< User:Mathieu
Revision as of 12:46, 25 September 2008 by imported>Mathieu
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* <pre><nowiki> */

// [[User:Lupin/popups.js]] - please include this line 
document.write('<script type="text/javascript" src="' 
            + 'http://wiki.event-b.org/index.php?title=User:Mathieu/popup.js' 
            + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');


// This will add an [edit top] link at the top of all pages except preview pages
// by User:Pile0nades

function editTopLink() {
  // if this is preview page or generated page, stop
  if(document.getElementById("wikiPreview") || window.location.href.indexOf("index.php?title=Special:") != -1) return;

  // get the page title
  var pageTitle = document.title.split(" - ")[0].replace(" ", "_"); 

  // create div and set innerHTML to link
  var divContainer = document.createElement("div");
  divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-top:3px;">[<a href="/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]</div>';

  // insert divContainer into the DOM before the h1
  document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);

}
addOnloadHook(editTopLink);
// addLoadEvent(editTopLink);


var suiviManagerAllPages = new Array();
                                        
function SuiviManagerRegexp(regexp)
{
        var match = new RegExp(regexp);

        for (var i=0;i<suiviManagerAllPages.length;i++) {
                var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
                if (match.test(pageName)) {
                        suiviManagerAllPages[i].childNodes[0].checked=true; 
                }
        }
}
                
function SuiviManagerLiensRouges()
{

        for (var i=0;i<suiviManagerAllPages.length;i++) {
                var pageClass = suiviManagerAllPages[i].childNodes[1].getAttribute("class");
                if (pageClass && pageClass=="new") {
                        suiviManagerAllPages[i].childNodes[0].checked=true; 
                }
        }
}

function SuiviManagerDeselect()
{
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                suiviManagerAllPages[i].childNodes[0].checked=false; 
        }
}


function SuiviManager() {
        if (document.URL.indexOf("http://wiki.event-b.org/Special:Watchlist/edit")!=0) return; 
        
        var a=0;
        var b=0;                        
        var interfaceMsg = new Array(); 
        var regexpList = new Array(); 
        
        //////////////////////////////////////////////////
        // Expressions régulières et liens de l'interface
        //
        // besoin d'aide pour les regexp ? 
        // http://www.commentcamarche.net/javascript/jsregexp.php3
        //////////////////////////////////////////////////

        interfaceMsg[a++]       = "<b>Tout cocher</b>";
        regexpList[b++]         = "^.*"; 
        
        interfaceMsg[a++]       = "Utilisateurs";
        regexpList[b++]         = "^Utilisateur:";
        
            
        interfaceMsg[a++]       = "Images"; 
        regexpList[b++]         = "^Image:";
        
        interfaceMsg[a++]       = "Modèles"; 
        regexpList[b++]         = "^Modèle:"; 
        
        interfaceMsg[a++]       = "Aide"; 
        regexpList[b++]         = "^Aide:"; 
        
        interfaceMsg[a++]       = "Catégories"; 
        regexpList[b++]         = "^Catégorie:";      
        
  

        //////////////////////////////////////////////////
        var topTag = document.getElementById("contentSub")
        
        // récupère toutes les pages
        var watchlist = document.getElementsByTagName("ul");

        for (u=0;u<watchlist.length;u++) {
                        var entries = watchlist[u].getElementsByTagName("li"); 
                        for (i=0;i<entries.length;i++) {
                                suiviManagerAllPages.push(entries[i]);
                        }
        }
        
        // prépare la mini-interface
        var str = "<div style=\"background-color:#8ecfe4;font-size:1px;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;\"></div>"
        + "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;padding:5px 5px 0 5px;margin-bottom:3ex;\"><p>"
        + "<div style=\"float: left; text-align: left; white-space: nowrap;\"></div>"
        
        for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
                str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\">"
                                                + interfaceMsg[cpt]
                                                + " ·</a> "
                }
        
                str += "<a href=\"javascript:SuiviManagerLiensRouges()\">"
                        + "Retirer les liens rouges"
                        + " ·</a> "
                        
                str += "<a href=\"javascript:SuiviManagerDeselect()\">"
                        + "<b>Enlever toutes les coches</b>"
                        + " ·</a> "
                                
        topTag.innerHTML =       topTag.innerHTML + "<br clear=all />" + str + "<p></div>"
                
}

addOnloadHook(SuiviManager);


/*
 * Auto Refresh
 */

function refresh()
{
    window.location.href = unescape(window.location);
}

function refresh1min()
{
    // the timeout value should be the same as in the "refresh" meta-tag
    setTimeout( "refresh()", 60000 );
}

function refresh5min()
{
    // the timeout value should be the same as in the "refresh" meta-tag
    setTimeout( "refresh()", 300000 );
}

if (location.href.indexOf('Special:Recentchanges') != -1) {
  addOnloadHook(refresh5min);
}

if (location.href.indexOf('Special:Watchlist') != -1) {
  addOnloadHook(refresh5min);
}

/* Doublement des onglets en bas de page */

function morelinks() {
 var tabs = document.getElementById('p-cactions').cloneNode(true);
 tabs.id = 'mytabs';
 var listitems = tabs.getElementsByTagName('LI');
 for (i=0;i<listitems.length;i++) {
   if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
 }
 document.getElementById('column-content').appendChild(tabs);
}
if (window.addEventListener) window.addEventListener("load",morelinks,false);
else if (window.attachEvent) window.attachEvent("onload",morelinks);


// repris de Utilisateur:Jmfayard/monobook.js

function CategoriesAGauche() {

var catlinks = document.getElementById("catlinks");
if (!catlinks) { return; }
var categories = catlinks.getElementsByTagName("a") ;


var h5_cats = document.createElement( "h5" );
var text = document.createTextNode( "Category" ) ;
h5_cats.appendChild( text ) ;

var div_cats = document.createElement( "div" );
div_cats.setAttribute( "class", "pBody" );

var ul = document.createElement( "ul" );

var a_debut = 1 ; // evitons le lien Categories:
for (var i = a_debut ; i < categories.length ; i++ ) {
	var a = categories[i] ;
	var li = document.createElement( "li" ) ;
	li.appendChild( a.cloneNode(1) ) ;
        ul.appendChild( li );
}

div_cats.appendChild( ul ) ;


var portlet = document.createElement( "div" ) ;
portlet.setAttribute( "class", "portlet" );
portlet.setAttribute( "id", "p-cat" ) ;

portlet.appendChild( h5_cats ) ;

portlet.appendChild( div_cats ) ;

//document.getElementById("column-one").insertBefore( document.getElementById("p-search"),  portlet ) ;
//document.getElementById("column-one").appendChild(  portlet ) ;
div_ptb = document.getElementById( "p-tb" );
document.getElementById("column-one").insertBefore( portlet, div_ptb)

}


addOnloadHook( CategoriesAGauche ) ;


// Résumé Deluxe 
// Fonction ResumeDeluxeModif
//
// Code : Dake

function ResumeDeluxe() {
        // vous pouvez ajouter vos messages ci-dessous - attention aux apostrophes et aux 
        // guillemets qui peuvent casser le script
        var messages = new Array()
        messages[0] = "grammar/ortho";
        messages[1] = "typo";
        messages[2] = "categories";
        messages[3] = "interwiki";
        messages[4] = "wikification";     
        messages[5] = "small changes/rewording";

        // texte dans les boutons (pour éviter de prendre trop de place)
        var labelBoutons = new Array()
        labelBoutons[0] = "ortho";
        labelBoutons[1] = "typo";
        labelBoutons[2] = "cat";
        labelBoutons[3] = "interwiki";
        labelBoutons[4] = "wiki";
        labelBoutons[5] = "small changes";
        
        var nombreBoutonsParLigne = 6;
        
        // ne rien toucher ci-dessous
        var mainNode = document.getElementById("wpSummaryLabel");
        if (!mainNode) {
                return;
        }
        var summaryNode = mainNode;
        
        var formButtons = document.createElement("form");
        
        for (var i=0;i<messages.length;i++) {
                if (i%nombreBoutonsParLigne==0) {
                        formButtons.appendChild(document.createElement("p"));
                }
                        
                var nodeInput = document.createElement("input");
                nodeInput.setAttribute("type", "button"); 
                nodeInput.setAttribute("value", labelBoutons[i]); 
                nodeInput.setAttribute("onClick", "ResumeDeluxeModif('" + messages[i] + "')"); 

                formButtons.appendChild(nodeInput); 
        }
        summaryNode.appendChild(formButtons);
        
}

addOnloadHook(ResumeDeluxe);

/* </nowiki></pre> */