X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat%2Fmessage.js;h=c77ac587e066743a58e1cc7d8722d5ea72866fee;hp=9664064048fa2c997da43a2889186b9cc24e126b;hb=f2eb4c4ec53b164804c0c7441830372358ce74e6;hpb=e925149a5426cde569be280c28e74c3faade451c diff --git a/js/pageMinichat/message.js b/js/pageMinichat/message.js index 9664064..c77ac58 100644 --- a/js/pageMinichat/message.js +++ b/js/pageMinichat/message.js @@ -39,6 +39,10 @@ euphorik.Message = function(client, formateur, element) { this.login = element.login; this.contenu = element.content; + // l'ensemble des id des messages qui reponde à ce message, exemple : {45:true, 32:true} (le 'true' ne sert à rien ^_^) + // mis à jour au fur à mesure que des messages sont ajoutés aux conversations + this.estReponduPar = {}; + this.appartientAuClient = element.owner; this.clientARepondu = element.answered; this.estUneReponse = element.is_a_reply; @@ -81,27 +85,24 @@ euphorik.Message.prototype.getConversation = function(messages) { messagesEnEvidence[this.id] = 1; - // recherche les réponses (O(n)) - messages.messages.each(function(i, mess) { - if (mess.repondA.hasOwnProperty(thisMessage.id)) { - messagesEnEvidence[mess.id] = 2; - } - }); - - // parcours en largeur - var f = function(tabIds, premierNiveau) { - objectEach(tabIds, function(id) { - // si le message (id) a déjà été traité + // parcours en profondeur + var f = function(m, premierNiveau, ensemble, evidence) { + objectEach(m[ensemble], function(id) { if (!messagesEnEvidence[id] || premierNiveau) { var message = messages.messagesParId[id]; - if (message) { - messagesEnEvidence[id] = premierNiveau ? 3 : (message.auteurId === thisMessage.auteurId ? 1 : 0); - f(message.repondA, false); + if (message) { + messagesEnEvidence[id] = premierNiveau ? evidence : (message.auteurId === thisMessage.auteurId ? 1 : 0); + f(message, false, ensemble, evidence); } } }); }; - f(this.repondA, true); + + // remonte le temps + f(this, true, "estReponduPar", 2); + + // descent le temps + f(this, true, "repondA", 3); return messagesEnEvidence; };