REPORT de la branche 1.1 (459->476)
[euphorik.git] / js / pageMinichat / conversation.js
index 2810b1b..acd7d67 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.auteurId === thisConversation.client.id) {
+         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