Utilisateur:Dr Brains/TodoRapide.js

Une page de Wikipédia, l'encyclopédie libre.
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) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@C..................c@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.........:..:o8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@8o::::::......::::::C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O.:...::::.::...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@888...::o@8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C....:8@@@o::.:.O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@C..:.o8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8c...:C@@@@C:.:..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@8:...:C@@@@@@@@@@@OCoCCO@@@@@8oooooCO8@@@@@@@@8OoooO@@@@@@o:...:ooooc....cO@@@@@@@@@ooo@@@@@@@ooooooCO@@@@Coc@@@8ooooCCC8@@@@@@ooooooooO@@@
@@@@@@@@@@@O....cO@@@@@@@@@O...:...:o@@@o..:::...o8@@@@8:..:::..c@@@@c.::......:.::8@@@@@@@@@8c.:.O@@@@@8...:::..:@@@.:.@@@o..:::...o8@@@8.:..:::cC@@@
@@@@@@@@@@8c....O@@@@@@@@o.:c8@@@@:..O@@:..8@@@C...O@O:.:C@@@@o..C8@C:....ooo:.....8@@@@@@@@C.:Cc.c8@@@@C..o@@@:.:8@O..c@@@...8@@@C:.:C@@o..C@@@@@@@@@
@@@@@@@@@@C.....8@@@@@@@@...@@@@@@:..8@8...@@@@8c..C@...8@@@@@o..C8@:....:@@@@8:....O@@@@@@O.:o@C..O@@@8c:.:.::..c@8C..C@@O...@@@@Oc..C@8c......C8@@@@
@@@@@@@@@@o.....@@@@@@@@8...@@@@@8.:.@@C..c@@@@o..o8@:..8@@@@@:.:O@@..::.o@@@@@O....cO@@@@C:.:CCo:.C8@@Cc.:cccoC8@@Oc.cO@@C..c@@@@o..o8@o::cOO88@@@@@@
@@@@@@@@@@....:c@@@@@@@@@c.:cCOo:..c8@8c..oCo:...8@@@c:.:oCCc:.:C@@8.....O@@@@@@:....c@@@c..COCOCo.:O@@c.:O@@@@@@@@C..C@@@c.:oCoc...8@@8:.:oCCCC8@@@@@
@@@@@@@@@8 ...:C@@@@@@@@@@Cc....:c8@@@O:.....:cCO@@@@@Oo:...:cO@@@@C....c8@@@@@@c.....@@C..:@@@@@O. o@O:.:@@@@@@@@Oc.:O@@O:......coO@@@C..:.....8@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    Fonction "TodoRapide" by [[Utilisateur:Micthev|мɨƇ†ɦΣ√]]        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* [[Utilisateur:Micthev/TodoRapide|Documentation]]                  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* {{Projet:JavaScript/Script}}                                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* Une partie de ce script à été pris chez                           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  [[Utilisateur:Antaya|Antaya]]                                     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

<syntaxhighlight lang="javascript">

 
<nowiki> */


//// Définition des variables ////

if(typeof(Todo_emplacement)=='undefined') var Todo_emplacement = "à faire";
if(typeof(Todo_version)=='undefined') var Todo_version = "2";

var CookieRedirect = "wikipedia.todo.redirectto";
var linkprefix = mw.config.get('wgServer')+mw.config.get('wgScript')+"?title=Utilisateur:";
var encodedUserName = encodeURIComponent(mw.config.get('wgUserName'));
var pagetodo = "/"+Todo_emplacement;
var pagefait = "/"+Todo_emplacement+"/Fait";
var todopage = encodeURIComponent(pagetodo);
var faitpage = encodeURIComponent(pagefait);
var nbcapture_todo = 0;

//// Cookie ////

function SetCookie(our_cookieName, our_cookieValue, our_hours, our_path, our_domain, our_secure) {
     var expire = new Date();
     var nHours = our_hours;
     expire.setTime( expire.getTime() + (3600000 * nHours) );
     document.cookie = our_cookieName + "=" + escape(our_cookieValue)
        + ((expire) ? "; expires=" + expire.toGMTString() : "" )
        + ((our_path) ? "; path=" + our_path : "" )
        + ((our_domain) ? "; domain=" + our_domain : "" )
        + ((our_secure) ? "; secure" : "" );
}

function GetCookie(cookieName) {
     var start = document.cookie.indexOf( cookieName + "=" );
     if ( start == -1 ) return "";
     var len = start + cookieName.length + 1;
     if ( ( !start ) && ( cookieName != document.cookie.substring( 0, cookieName.length ) ) ) {
          return "";
     }
     var end = document.cookie.indexOf( ";", len );
     if ( end == -1 ) end = document.cookie.length;
     return unescape( document.cookie.substring( len, end ) );
}
 
function DeleteCookie(cookieName) {
     var the_cookieValue = GetCookie(cookieName);
     if ( the_cookieValue ) {
          SetCookie( cookieName, "", -48, "/", false, false);
     }
}


function Todo() {

//// Gestion de l'URL ////

     if (mw.config.get('wgTitle') == mw.config.get('wgUserName')+pagetodo && mw.config.get('wgAction') == "view") {
          var new_location = GetCookie( CookieRedirect );
          DeleteCookie( CookieRedirect );
          if( new_location ) {
               document.location.href = mw.config.get('wgServer')+mw.config.get('wgArticlePath').replace( '$1', new_location );
          }
     }else if( mw.config.get('wgTitle') == mw.config.get('wgUserName')+pagetodo ) {
          if( mw.config.get('wgAction') == "edit" && location.href.indexOf("&action=edit&addinmytodo=") != -1) {
               var statusRegExp = /&action=edit&addinmytodo=(.*)&mytododetails=(.*)/;
               var todopage = decodeURIComponent( statusRegExp.exec( location.href )[1] );
               var tododetails = decodeURIComponent( statusRegExp.exec( location.href )[2] );
               var summary = "Ajout de [["+todopage+"]] grâce à [[Utilisateur:Micthev/TodoRapide|TodoRapide]]";
               //Modifier le formulaire
               document.getElementById('wpTextbox1').value += "* {{Utilisateur:Micthev/TodoRapide/liste|"+todopage+"|~~~~~}}\n*:"+tododetails+"\n";
               document.getElementById('wpSummary').value = summary;
               //Modification mineure
               document.getElementById('wpMinoredit').checked = true;
               //Soumettre!
               document.getElementById('editform').submit();
          }
          if( mw.config.get('wgAction') == "edit" && location.href.indexOf("&action=edit&TodoPageSource=") != -1) {
               var statusRegExp = /&action=edit&TodoPageSource=(.*)&Todomodif=(.*)/;
               var todopage = unescape( statusRegExp.exec( location.href )[1] ).replace(/_/g,' ');
               var tododetails = unescape( statusRegExp.exec( location.href )[2] ).replace(/\+/g,' ');
               var summary = "Ajout de [["+todopage+"]] grâce à [[Utilisateur:Micthev/TodoRapide|TodoRapide]]";
               //Modifier le formulaire
               document.getElementById('wpTextbox1').value += "{{Utilisateur:Micthev/TodoRapide/liste2|"+todopage+"|~~~~~}}\n"+tododetails+"\n{{Utilisateur:Micthev/TodoRapide/liste2bis|"+todopage+"}}\n";
               document.getElementById('wpSummary').value = summary;
               //Modification mineure
               document.getElementById('wpMinoredit').checked = true;
               //Soumettre!
               document.getElementById('editform').submit();

          }
     }
     if (mw.config.get('wgTitle') == mw.config.get('wgUserName')+pagefait && mw.config.get('wgAction') == "view") {
          var new_location = GetCookie( CookieRedirect );
          DeleteCookie( CookieRedirect );
          if( new_location ) {
               document.location.href = mw.config.get('wgServer')+mw.config.get('wgArticlePath').replace( '$1', new_location );
          }
     }else if( mw.config.get('wgTitle') == mw.config.get('wgUserName')+pagefait ) {
          if( mw.config.get('wgAction') == "edit" && location.href.indexOf("&action=edit&removeinmytodo=") != -1) {
               var statusRegExp = /&action=edit&removeinmytodo=(.*)/;
               var todopage = decodeURIComponent( statusRegExp.exec( location.href )[1] );
               var summary = "Marquage de [["+todopage+"]] fait grâce à [[Utilisateur:Micthev/TodoRapide|TodoRapide]]";
               //Modifier le formulaire
               document.getElementById('wpTextbox1').value += "{{#switch:{{{1}}}|"+todopage+"=OK|"+todopage+"_date=~~~~~}}";
               document.getElementById('wpSummary').value = summary;
               //Modification mineure
               document.getElementById('wpMinoredit').checked = true;
               //Soumettre!
               document.getElementById('editform').submit();
          }
     }
     if (Todo_version=="1"){
//// Affichage de l'onglet ////
     var a = document.getElementById("p-cactions");
          if (a && mw.config.get('wgNamespaceNumber') >= 0) {
               var b = a.getElementsByTagName("ul");
               if (b.length > 0) {
                    b[0].innerHTML = b[0].innerHTML
                                   + '<li id="ca-nstab-user">'
                                   + '<a href="javascript:var message = Capture_page()">'
                                   + 'ajouter à mon todo</a>'
                                   + '</li>';
               }
          }
     }
//// Affichage du lien ////
     var a = document.getElementById("p-navigation");
     if (a && mw.config.get('wgNamespaceNumber') >= 0) {
          var b = a.getElementsByTagName("ul");
          if (b.length > 0) {
               b[0].innerHTML = '<li id="ca-nstab-user">'
                              + '<a href="javascript:Todo_Capture()">'
                              + 'Ajouter cette page à mon pense-bête</a>'
                              + '</li>'
                              + b[0].innerHTML;
          }
     }
//// Lien Marquer comme fait ///
/*
     var c = document.getElementById("TodoRapide");
     var d = c.getElementsByTagName("em");
     for (i=0; i<=101; i++){ 
          d[i].style.visibility = "visible";
          d[i].innerHTML = " • <a href='javascript:Marquerfait(\""+d[i].innerHTML+"\")'>fait ?</a>";
     }
*/
}

//// Capture de la page ////

function Capture_page(){
     var todo_url =  encodeURI(mw.config.get('wgPageName'));
     var todo_desc = Description();
     if (todo_desc!=null){
          var todo_desc = encodeURI(todo_desc);
          SetCookie( CookieRedirect, mw.config.get('wgPageName'), 24, "/", false, false );
          document.location.href = linkprefix+encodedUserName+todopage+"&smaxage=0&action=edit&addinmytodo="+todo_url+"&mytododetails="+todo_desc;
     }
}

function Todo_Capture() {
     if (nbcapture_todo==0){
          nbcapture_todo++; 
          var e = document.getElementById("bodyContent");
          e.innerHTML = '<div id="Todo_entete"><center><table style="background:#DDDDDD;" width="750" border="0" cellpading="0" cellspacing="0"><tr><td>'
                      + '<a href="/wiki/Utilisateur:Micthev/TodoRapide"><big><big><big><big><font color="purple"><u><i><b>T<small><small>ODO</small></small>R<small><small>APIDE</small></small></b></i></u></font></big></big></big></big></a></td><td>'
                      + 'Ajouter : <b>'
                      + mw.config.get('wgPageName')
                      + '</b><br>à mon pense-bête : <b>'
                      + '<a href="/wiki/Utilisateur:'
                      + mw.config.get('wgUserName')
                      + pagetodo
                      + '">Utilisateur:'
                      + mw.config.get('wgUserName')
                      + pagetodo
                      + '</a></b></td></tr><tr><td colspan="2">Avec les modifications à faire suivantes :</td></tr><tr><td colspan="2" align="center">'
                      + '<form enctype="multipart/form-data" action= "/w/index.php"><input type="hidden" name="title" value="Utilisateur:'
                      + mw.config.get('wgUserName')
                      + pagetodo
                      + '"/><input type="hidden" name="action" value="edit"/><input type="hidden" name="TodoPageSource" value="'
                      + mw.config.get('wgPageName')
                      + '"/><textarea style="background:#DDDDDD;" spellcheck="false" name="Todomodif" id="wpTextbox1" cols="80" rows="6" tabindex="1"></textarea><br><br><input type="button" value="Annuler" onclick="javascript:Todo_annul()">&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="OK"></form></td></tr></table></div>'
                      + e.innerHTML;
     }else{
          Todo_annul();
     }
     SetCookie( CookieRedirect, mw.config.get('wgPageName'), 24, "/", false, false );
}

function Todo_annul(){
     var f = document.getElementById("Todo_entete");
     f.innerHTML = '';
     nbcapture_todo=0; 
}

//// Marquer comme fait ///

function Marquerfait(marquage) {
     var marquer = encodeURI(marquage);
     SetCookie( CookieRedirect, mw.config.get('wgPageName'), 24, "/", false, false );
     document.location.href = linkprefix+encodedUserName+faitpage+"&smaxage=0&action=edit&removeinmytodo="+marquer;
}


//// Message de description ////
 
function Description (){
     var todo_desc = prompt ('Avec quelle description ?', '');
     return todo_desc;
}


//// Chargement de la fonction ////
$(Todo);

/* </nowiki></syntaxhighlight> */