X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat%2Fconversations.js;fp=js%2FpageMinichat%2Fconversations.js;h=ada8a24382bc09f8cf3c20e5b0cea8ebedf7bf17;hp=b0eea99a97211fdebe06a4ba31ac111f9cb6ea6a;hb=217c4d7a0d5f9fee3a8ef0a05ab8506c7f39d5e5;hpb=bd9caeefe3cfc9b4194c31052b0ddd4da26f604c diff --git a/js/pageMinichat/conversations.js b/js/pageMinichat/conversations.js index b0eea99..ada8a24 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. */ @@ -207,10 +220,7 @@ euphorik.Conversations.prototype.ajouterMessages = function(elements, numConvers } 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)) { - this.conversations[numConversation].setRacine(elements.first); - } + this.ajouterMessage(elements.messages[i], numConversation) } this.flush(numConversation); @@ -247,6 +257,7 @@ euphorik.Conversations.prototype.ajouterMessage = function(element, numConversat nouvelleConversation = true; this.nouvelleConversation( numConversation, + message, // si une nouvelle conversation a été créée alors on lui donne la racine qui correspond au premier message function(num) { // fermeture de la conversation thisConversations.supprimerConversation(num); }, @@ -263,12 +274,17 @@ euphorik.Conversations.prototype.ajouterMessage = function(element, numConversat return nouvelleConversation; }; -euphorik.Conversations.prototype.nouvelleConversation = function(num, funFermer, funLien) +euphorik.Conversations.prototype.nouvelleConversation = function(num, racine, funFermer, funLien) { var thisMessages = this; this.conversations[num] = new euphorik.Conversation(this, num); + if (racine) { + this.conversations[num].racine = racine; + this.mettreAJourFragment(); + } + if (funFermer) { this.conversations[num].eventFermer(funFermer); } @@ -316,6 +332,7 @@ euphorik.Conversations.prototype.supprimerConversation = function(num) { this.client.supprimerConversation(num - 1); this.rafraichirMessages(true); + this.mettreAJourFragment(); }; /**