FIX #74
authorGreg Burri <greg.burri@gmail.com>
Sun, 5 Oct 2008 10:02:43 +0000 (10:02 +0000)
committerGreg Burri <greg.burri@gmail.com>
Sun, 5 Oct 2008 10:02:43 +0000 (10:02 +0000)
js/fragment.js
js/pageMinichat/conversation.js
js/pageMinichat/conversations.js
js/pageMinichat/pageMinichat.js
js/util.js

index 23f22d0..4ffbf8f 100644 (file)
@@ -25,7 +25,7 @@ Fragment = function() {
    var replaceHtmlCode = function(str) {
       return str.replace(/%(\d\d)/g, function(text, code) {
          return String.fromCharCode(parseInt(code, 16));
-      })
+      });
    };
    this.fragments = {};
    if (!window.location.hash) {
@@ -38,7 +38,6 @@ Fragment = function() {
           thisFragment.fragments[tuple[0]] = JSON.parse(tuple[1]);
        });
    } catch(error) {
-      alert(error)
       ;; console.log(error);
    }
 };
index 2810b1b..4d590b6 100644 (file)
@@ -244,15 +244,22 @@ euphorik.Conversation.prototype.flush = function() {
 \r
    var messagePair = (this.idDernierMessageAffiche === 0 ? true :\r
       ($("#" + this.getId() + " .messages div:" + (reverse ? "first" : "last")).attr("class").search("messagePair") === -1)\r
-   );\r
+   );
+   
+   // permet d'itérer sur les nouveaux messages à afficher
+   var pourChaqueNouveauMessage = function(f) {
+      thisConversation.messages.each(function(i, mess) {
+         if (mess.id > thisConversation.idDernierMessageAffiche) {
+            f(mess);
+         }
+      });
+   };\r
       \r
    // construction de l'XHTML des messages\r
-   var XHTML = "";\r
-   this.messages.each(function(i, mess) {\r
-      if (mess.id > thisConversation.idDernierMessageAffiche) {\r
-         XHTML += mess.XHTML(messagePair, thisConversation.getId());\r
-         messagePair = !messagePair;\r
-      }\r
+   var XHTML = "";
+   pourChaqueNouveauMessage(function(mess) {\r
+      XHTML += mess.XHTML(messagePair, thisConversation.getId());\r
+      messagePair = !messagePair;\r
    });\r
    \r
    var DOM = $(XHTML);       \r
@@ -274,11 +281,25 @@ euphorik.Conversation.prototype.flush = function() {
       } else {\r
          $("#" + this.getId() + " .messages .message").slice(0, nbMessagesAffiche - this.nbMessageMax).remove();\r
       }\r
-   }\r
+   }
+  
+   // met à jour la classe des messages auquels repondent les nouveaux messages
+   // dans le cas où ce message appartient au client courant (c'est un peu de la triche) TODO : ya mieux ?    
+   pourChaqueNouveauMessage(function(mess) {
+      if (mess.client === thisConversation.client) {
+         objectEach(mess.repondA, function(messId) {
+            var mess = thisConversation.messagesParId[messId];
+            if (mess) {
+               mess.clientARepondu = true;
+               $("#conversations #" + mess.getId(thisConversation.getId())).addClass("repondu")
+            }
+         });
+      }
+   });
    \r
    if (this.messages.length > 0) {\r
       this.idDernierMessageAffiche = this.messages[this.messages.length-1].id;\r
-   }\r
+   }
   \r
    // met à jour la racine de la conversation\r
    this.majRacine();\r
@@ -326,7 +347,7 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
       // donne le focus à la ligne de saisie\r
       $("form input.message").focus();\r
    }).hover(function() { // affiche les outils liées au message\r
-      var top = $(this).offset().top\r
+      var top = $(this).offset().top;\r
       var left = $(this).offset().left + $(this).outerWidth() - thisConversation.util.outilsMessage.outerWidth();\r
       $(".extraire", thisConversation.util.outilsMessage).unbind();\r
       $(".extraireCompletement", thisConversation.util.outilsMessage).unbind();\r
@@ -336,7 +357,7 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
       thisConversation.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", thisConversation.util.outilsMessage));\r
       thisConversation.util.outilsMessage.css("top", top).css("left", left).prependTo(this).show();\r
    }, function() {\r
-      thisConversation.util.outilsMessage.hide()\r
+      thisConversation.util.outilsMessage.hide();\r
    });\r
 \r
    // mise en évidence de la conversation\r
index b99e092..94236c1 100644 (file)
@@ -63,11 +63,11 @@ euphorik.Conversations.prototype.toggleMessageRepond = function(mess) {
 euphorik.Conversations.prototype.mettreAJourFragment = function() {\r
    conv = [];\r
    for(var i = 1; i < this.conversations.length; i++) {\r
-       conv.push(this.conversations[i].racine.id)\r
+       conv.push(this.conversations[i].racine.id);\r
    }\r
    this.fragment.setVal("conv", conv);\r
    this.fragment.write();\r
-}\r
+};\r
 \r
 /**\r
   * Enlève tous les messages auquel l'utilisateur souhaite répondre.\r
@@ -195,7 +195,7 @@ euphorik.Conversations.prototype.getJSONrafraichirMessages = function() {
 };\r
 \r
 euphorik.Conversations.prototype.getJSONConversations = function() {\r
-   var thisConversations = this\r
+   var thisConversations = this;\r
    var clientConv = [];\r
    \r
    this.client.conversations.each(function(i, conv) {\r
index 6a2706f..b71efea 100755 (executable)
@@ -213,14 +213,14 @@ euphorik.PageMinichat.prototype.chargerConversationsFragment = function() {
    } catch(e) {
       ;; console.log(e)
    }
-}
+};
   
 euphorik.PageMinichat.prototype.decharger = function() {
    this.conversations.comet.stopAttenteCourante();
    
    $("body #smiles").remove();
    
-    this.fragment.delVal("conv")
+    this.fragment.delVal("conv");
 };
 
 /**
@@ -265,17 +265,6 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(message) {
       "put_message",
       this.getJSONMessage(pseudo, message),
       function() {
-         // TODO : revoir cette partie
-         // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ?
-         objectEach(thisPageMinichat.conversations.messagesRepond, function(messId) {
-            thisPageMinichat.conversations.conversations.each(function(i, conv) {
-               var mess = conv.messagesParId[messId];
-               if (mess) {
-                  mess.clientARepondu = true;
-                  $("#conversations #" + mess.getId(conv.getId())).addClass("repondu")
-               }
-            });
-         });
          $("form#posterMessage input.message").val("");
          thisPageMinichat.conversations.enleverMessagesRepond(); 
          thisPageMinichat.envoieMessageEnCours = false;
index fe36b47..86c4e79 100644 (file)
@@ -75,8 +75,9 @@ euphorik.Util.prototype.messageDialogue = function(message, type, boutons, forma
    });\r
    \r
    $("#info").slideDown(200);
-   if (temps !== -1)\r
-      this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);\r
+   if (temps !== -1) {\r
+      this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);
+   }\r
 };\r
 \r
 euphorik.Util.positionTypeX = {gauche: 0, gaucheRecouvrement: 1, centre: 2, droiteRecouvrement: 3, droite: 4};\r