From: Greg Burri Date: Sat, 26 Jul 2008 13:22:07 +0000 (+0000) Subject: MOD amélioration de la mise en évidence des messages FIX#32 X-Git-Tag: 1.1.0~45 X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=commitdiff_plain;h=f2eb4c4ec53b164804c0c7441830372358ce74e6 MOD amélioration de la mise en évidence des messages FIX#32 --- diff --git a/doc/graphiques/maquette_1.svg b/doc/graphiques/maquette_1.svg index 082335c..b6784c9 100644 --- a/doc/graphiques/maquette_1.svg +++ b/doc/graphiques/maquette_1.svg @@ -29,9 +29,9 @@ objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.0000001" - inkscape:cx="261.23852" - inkscape:cy="972.02611" + inkscape:zoom="7.5822789" + inkscape:cx="580.48394" + inkscape:cy="905.17554" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -420,11 +420,11 @@ + style="fill:#846c19;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> + normal + ses messages + + messages quinous répondent + messages auquelsont a répondu + + + + this.nbMessageMax) { delete this.messagesParId[this.messages.shift().id]; } + + // met à jour le membre 'estReponduPar' des messages de la conversation + for (var i = 0; i < this.messages.length - 1; i++) { + var autreMess = this.messages[i]; + if (autreMess.id in message.repondA) { + autreMess.estReponduPar[message.id] = true; + } + } }; /** diff --git a/js/pageMinichat/conversations.js b/js/pageMinichat/conversations.js index 277726d..b0eea99 100644 --- a/js/pageMinichat/conversations.js +++ b/js/pageMinichat/conversations.js @@ -232,9 +232,8 @@ euphorik.Conversations.prototype.ajouterMessages = function(elements, numConvers * @return true si une nouvelle conversation a été créée sinon false */ euphorik.Conversations.prototype.ajouterMessage = function(element, numConversation) { - var thisMessages = this; - - // pas d'utilisation de jquery pour des raisons de performance + var thisConversations = this; + var message = new euphorik.Message( this.client, @@ -249,12 +248,12 @@ euphorik.Conversations.prototype.ajouterMessage = function(element, numConversat this.nouvelleConversation( numConversation, function(num) { // fermeture de la conversation - thisMessages.supprimerConversation(num); + thisConversations.supprimerConversation(num); }, function(num) { // insertion du lien vers la conversation thisPage.util.replaceSelection( $("form#posterMessage input.message")[0], - "{" + thisMessages.client.conversations[num-1].root.toString(36) + "}" + "{" + thisConversations.client.conversations[num-1].root.toString(36) + "}" ); } ); 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; }; diff --git a/styles/1/img/fleche_proprietaire.png b/styles/1/img/fleche_proprietaire.png index d852d25..38845e2 100644 Binary files a/styles/1/img/fleche_proprietaire.png and b/styles/1/img/fleche_proprietaire.png differ diff --git a/styles/1/img/fleche_reponse.png b/styles/1/img/fleche_reponse.png index 98786cd..729f937 100644 Binary files a/styles/1/img/fleche_reponse.png and b/styles/1/img/fleche_reponse.png differ diff --git a/styles/1/pageMinichat.css b/styles/1/pageMinichat.css index aeefec7..71f6a08 100755 --- a/styles/1/pageMinichat.css +++ b/styles/1/pageMinichat.css @@ -230,7 +230,7 @@ zoom: 1 } #page.minichat div.message.reponse .entete { - background-color: #bf2911 + background-color: #846c19 } #page.minichat div.message.reponse .delimitationEntete, #page.minichat div.message.reponse .repondA { @@ -244,7 +244,7 @@ background-image: url(img/fleche_repondu.png); } #page.minichat div.message.proprietaire .entete { - background-color: #31732f + background-color: #13920f } #page.minichat div.message.proprietaire .delimitationEntete, #page.minichat div.message.proprietaire .repondA {