Utilisatrice:Bototomatix/tableau de bot.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) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
// ******************************** \\
//  Code emprunté au nekotb_fc 1.1  \\
//   par DarkoNeko (CC-By-SA 3.0)   \\
// ******************************** \\

var bototomatix = new Object()

//essai d'extension du DOM Element. ça rend de facto le script incompatible avec IE7- et Safari 2
Element.prototype.createAndAppendTextNode = function(p_txt) {
   return this.appendChild( document.createTextNode( p_txt ) )
} 
//creation d'un element + attributs + éventuels node texte dedans ; et ajout au node parent
Element.prototype.createAndAppendElement = function(p_el, p_attributs, p_textnode) {
   var xx = this.appendChild( document.createElement( p_el ) )
   for(key in p_attributs) {
       xx.setAttribute( key , p_attributs[key] )
   }
   if(p_textnode) {
       xx.createAndAppendTextNode( p_textnode )
   }
   return xx
}
//supprime tous les sous nodes d'un node (pas besoin d'être récursif).
Element.prototype.removeChildNodes =  function() {
   while (this.hasChildNodes() )  {
      this.removeChild(this.firstChild);
   }
}

// PARTIE PRINCIPALE \\

bototomatix.elements = new Array()

function bototomatix_tableauDeBot() {
   var li = $('<a href="#">Tableau de bord</a>')
      .click(function (e) {
         e.preventDefault();
         bototomatix_init();
      })
      .wrap('<li></li>')
      .parent();
   $('#p-personal').find('ul').first().append(li);
}
$(bototomatix_tableauDeBot)

function bototomatix_init() {
   //titre de l'outil
   document.getElementById("firstHeading").firstChild.nodeValue = "Tableau de bot"

   var content = document.getElementById("bodyContent")
   removeChildNodes(content)    //supprimer le contenu initial de la zone 'article".
 
   var root = content.createAndAppendElement("div",  {'id':"bototomatix_tableau_de_bot"})
    var serie = root.createAndAppendElement("div", {'id':"bototomatix_serie",'style':"min-height:200px;"})
     serie0.createAndAppendElement("input", {'type':"button",'value':"Ajouter",'style':"display:inline-block;width:15em;",'onclick':"bototomatix_ajout()"})
     serie0.createAndAppendElement("input", {'id':"bototomatix_serie0_catini",'style':"display:inline-block;width:15em;"})
     serie0.createAndAppendElement("input", {'id':"bototomatix_serie0_catfin",'style':"display:inline-block;width:15em;"})
     serie.createAndAppendElement("ul", {'id':"bototomatix_elements"})
    root.createAndAppendElement("hr")
    var options = root.createAndAppendElement("div", {'id':"bototomatix_options",'style':"min-height:200px;"}, "")
    root.createAndAppendElement("a", { href:"#", "onclick":"return bototomatix_demarrage()" }, "demarrage" )
}

function bototomatix_ajout() {
   var serie0_catini = document.getElementById("bototomatix_serie0_catini")
   var serie0_catfin = document.getElementById("bototomatix_serie0_catfin")
   var catini = serie0_catini.value
   var catfin = serie0_catfin.value
   catini.value = '' //on vide le champ
   catfin.value = ''
   // if(cat(ini|fin).length < 1 ) return false //si champ vide, on ignore silencieusement
 
   var ul = document.getElementById("bototomatix_elements")
 
   var randomNumber = Math.floor(Math.random()*100001) //generation d'un id [a priori] unique, comme le nom peut contenir des chars non valides
   var name = "bototomatix_element_"+randomNumber

   var li = ul.createAndAppendElement("li", {'id':name} )
   li.createAndAppendElement("input", {'type':"button",'value':"Supprimer",'style':"display:inline-block;width:15em;", 'onclick':"bototomatix.remove_element(name)"})
   li.createAndAppendTextNode(catini)
   li.createAndAppendTextNode(catfin)
 
   bototomatix.elements.push(name)
 
   return false
}

bototomatix.remove_element = function(idnode) {
   var node = document.getElementById(idnode)
   var name = node.firstChild.nodeValue.replace(/ /g, "_")
   node.parentNode.removeChild(node) 
 
   for(var a=0 ; a < bototomatix.elements.length ; a++) {
      if(bototomatix.elements[a] == name) {
         bototomatix.elements.splice(a, 1);
         break;
      }
   }
   return false
}

function bototomatix_demarrage() {
   
}