X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat.js;fp=js%2FpageMinichat.js;h=03024bcb00bfc5be0b5f21c5c00c7cd8da313024;hp=0aa2142271c341e19441ef30d4098e6638f65829;hb=96ba3a0f8ce151653f0e994955e44eafa995beca;hpb=fa5ea78cb2bd127b797f161d9bc922469a55375d diff --git a/js/pageMinichat.js b/js/pageMinichat.js index 0aa2142..03024bc 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -301,20 +301,24 @@ Message.prototype.setRepondA = function(repondAJSON) /** * Renvoie les messages faisant partie d'une conversation. * @param messages l'ensemble des messages de la conversation - * @return les id des messages qui ont été mis en evidence sous la forme d'un hash (object) {id => bool} + * @return les id des messages qui ont été mis en evidence sous la forme + * d'un hash (object) {id => 0 | 1 | 2 | 3}. 1 : proprietaire, 2 : reponse directe, 3 : message repondu */ Message.prototype.getConversation = function(messages) { + var thisMessage = this + // les messages faisant partie de la conversation var messagesEnEvidence = {} - messagesEnEvidence[this.id] = true + messagesEnEvidence[this.id] = 1 // recherche les réponses (O(n)) for (var i = 0; i < messages.messages.length; i++) if (messages.messages[i].repondA.hasOwnProperty(this.id)) - messagesEnEvidence[messages.messages[i].id] = true + messagesEnEvidence[messages.messages[i].id] = messages.messages[i].auteurId == this.auteurId ? 1 : 2 + var premierNiveau = true var f = function(tabIds) { for(var id in tabIds) @@ -322,7 +326,8 @@ Message.prototype.getConversation = function(messages) var message = messages.messagesParId[id] if (message != undefined) { - messagesEnEvidence[id] = true + messagesEnEvidence[id] = message.auteurId == thisMessage.auteurId ? 1 : ( premierNiveau ? 3 : 0 ) + premierNiveau = false f (message.repondA) } } @@ -382,12 +387,29 @@ Conversation.prototype.enleverMiseEnEvidence = function() Conversation.prototype.colorerEntetes = function() { - + var messagesReponse = "" + var messagesRepondu = "" + var messagesProprietaire = "" + for (var i = 0; i < this.messages.length; i++) + { + if (this.messages[i].appartientAuClient) + messagesProprietaire += "#mess" + this.messages[i].id.toString(36) + "," + else if (this.messages[i].estUneReponse) + messagesReponse += "#mess" + this.messages[i].id.toString(36) + "," + else if (this.messages[i].clientARepondu) + messagesRepondu += "#mess" + this.messages[i].id.toString(36) + "," + } + $(messagesReponse).addClass("reponse") + $(messagesRepondu).addClass("repondu") + $(messagesProprietaire).addClass("proprietaire") } Conversation.prototype.decolorerEntetes = function() { - + $("#" + this.getId() + " .message") + .removeClass("reponse") + .removeClass("repondu") + .removeClass("proprietaire") } /** @@ -629,13 +651,16 @@ Conversation.prototype.flush = function(funClickOuvrirConv) // mise en évidence de la conversation $(".entete", this).hover( function() - { + { + thisConversation.decolorerEntetes() thisConversation.afficherConversation(idMess) }, // quand on sort de l'entête du message la mise en évidence est enlevée function() { - thisConversation.enleverMiseEnEvidence() + thisConversation.enleverMiseEnEvidence() + thisConversation.decolorerEntetes() + thisConversation.colorerEntetes() } ) } @@ -668,10 +693,25 @@ Conversation.prototype.afficherConversation = function(id) function() { var jq = $(this) - if (!mess.hasOwnProperty(parseInt(jq.attr("id").substr(4), 36))) + var statut = mess[parseInt(jq.attr("id").substr(4), 36)] + if (statut == undefined) jq.addClass("cache") - else + else + { jq.removeClass("cache") + switch (statut) + { + case 1 : + jq.addClass("proprietaire") + break; + case 2 : + jq.addClass("reponse") + break; + case 3 : + jq.addClass("repondu") + break; + } + } } ) }