ADD changement du skin1 pour une meilleure lisibilité des reponses
[euphorik.git] / js / euphorik.js
index 825e4c3..5ada1d7 100755 (executable)
@@ -994,6 +994,16 @@ Client.prototype.kick = function(userId, raison)
 
 /**
    * classe permettant de gérer les événements (push serveur).
+   * l'information envoyé est sous la forme :
+   *  {
+   *     "action" : "wait_event"
+   *     "page" : <page>
+   *     [..]
+   *  }
+   * l'information reçu est sous la forme :
+   *  {
+   *     "reply" : <reply>
+   *  }
    * @page la page
    */
 function PageEvent(page, util)
@@ -1024,9 +1034,11 @@ PageEvent.prototype.stopAttenteCourante = function()
 /**
   * Attend un événement lié à la page. 
   * @funSend une fonction renvoyant les données json à envoyer
-  * @funReceive une fonction qui accepte un paramètre correspondant au données reçues
+  * @funsReceive est un objet comprenant les fonctions à appeler en fonction du "reply"
+  * les fonctions acceptent un paramètre correspondant au données reçues.
+  * exemple : {"new_message" : function(data){ ... }}
   */
-PageEvent.prototype.waitEvent = function(funSend, funReceive)
+PageEvent.prototype.waitEvent = function(funSend, funsReceive)
 {
    this.stopAttenteCourante()
    
@@ -1057,15 +1069,16 @@ PageEvent.prototype.waitEvent = function(funSend, funReceive)
          {            
             ;; dumpObj(data)
             
-            funReceive(data)
+            funsReceive[data["reply"]](data)
             
             // rappel de la fonction dans 100 ms
-            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 100)
+            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 100)
          },
       error:
          function(XMLHttpRequest, textStatus, errorThrown)
          {
-            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 1000)
+            ;; console.log("Connexion perdue dans waitEvent")
+            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 1000)
          }
    })
 }
@@ -1073,11 +1086,11 @@ PageEvent.prototype.waitEvent = function(funSend, funReceive)
 /**
   * Si un stopAttenteCourante survient un peu n'importe quand il faut imédiatement arreter de boucler.
   */
-PageEvent.prototype.waitEvent2 = function(funSend, funReceive)
+PageEvent.prototype.waitEvent2 = function(funSend, funsReceive)
 {
    if (this.stop)
       return
-   this.waitEvent(funSend, funReceive)
+   this.waitEvent(funSend, funsReceive)
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////