X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=js%2FpageMinichat%2Fconversations.js;h=26fbb66ebd299e0263b4997cd76082a58d6398b6;hb=7203835bce6f94b6afcc7403694145c829a4f833;hp=b0eea99a97211fdebe06a4ba31ac111f9cb6ea6a;hpb=f2eb4c4ec53b164804c0c7441830372358ce74e6;p=euphorik.git diff --git a/js/pageMinichat/conversations.js b/js/pageMinichat/conversations.js index b0eea99..26fbb66 100644 --- a/js/pageMinichat/conversations.js +++ b/js/pageMinichat/conversations.js @@ -21,10 +21,11 @@ /** * Représente l'ensemble des conversations affichés. */ -euphorik.Conversations = function(client, formateur, util) { +euphorik.Conversations = function(client, formateur, util, fragment) { this.client = client; this.formateur = formateur; this.util = util; + this.fragment = fragment; // un ensemble des messages (id) auquel l'utilisateur répond (vider après l'envoie du message courant) this.messagesRepond = {}; @@ -56,6 +57,18 @@ euphorik.Conversations.prototype.toggleMessageRepond = function(mess) { this.ajouterMessageRepond(mess); }; +/** + * Met à jour le fragment de l'url renseignant sur les conversations ouvertes. + */ +euphorik.Conversations.prototype.mettreAJourFragment = function() { + conv = []; + for(var i = 1; i < this.conversations.length; i++) { + conv.push(this.conversations[i].racine.id) + } + this.fragment.setVal("conv", conv); + this.fragment.write(); +} + /** * Enlève tous les messages auquel l'utilisateur souhaite répondre. */ @@ -205,11 +218,13 @@ euphorik.Conversations.prototype.ajouterMessages = function(elements, numConvers if (!elements.messages.length) { return this.conversations[numConversation] !== undefined; } - + for (var i = 0; i < elements.messages.length; i++) { - // si une nouvelle conversation a été créée alors on lui donne la racine if (this.ajouterMessage(elements.messages[i], numConversation)) { + // si une nouvelle conversation a été créée alors on lui donne la racine + // TODO : ce block ne devrait pas se trouver ici mais dans "nouvelleConversation" this.conversations[numConversation].setRacine(elements.first); + this.mettreAJourFragment(); } } @@ -268,7 +283,7 @@ euphorik.Conversations.prototype.nouvelleConversation = function(num, funFermer, var thisMessages = this; this.conversations[num] = new euphorik.Conversation(this, num); - + if (funFermer) { this.conversations[num].eventFermer(funFermer); } @@ -316,6 +331,7 @@ euphorik.Conversations.prototype.supprimerConversation = function(num) { this.client.supprimerConversation(num - 1); this.rafraichirMessages(true); + this.mettreAJourFragment(); }; /**