/**\r
* Représente l'ensemble des conversations affichés.\r
*/\r
-euphorik.Conversations = function(client, formateur, util) {\r
+euphorik.Conversations = function(client, formateur, util, fragment) {\r
this.client = client;\r
this.formateur = formateur;\r
this.util = util;\r
+ this.fragment = fragment;\r
\r
// un ensemble des messages (id) auquel l'utilisateur répond (vider après l'envoie du message courant)\r
this.messagesRepond = {};\r
this.ajouterMessageRepond(mess);\r
};\r
\r
+/**\r
+ * Met à jour le fragment de l'url renseignant sur les conversations ouvertes.\r
+ */\r
+euphorik.Conversations.prototype.mettreAJourFragment = function() {\r
+ conv = [];\r
+ for(var i = 1; i < this.conversations.length; i++) {\r
+ conv.push(this.conversations[i].racine.id)\r
+ }\r
+ this.fragment.setVal("conv", conv);\r
+ this.fragment.write();\r
+}\r
+\r
/**\r
* Enlève tous les messages auquel l'utilisateur souhaite répondre.\r
*/\r
if (!elements.messages.length) {\r
return this.conversations[numConversation] !== undefined;\r
}\r
-\r
+ \r
for (var i = 0; i < elements.messages.length; i++) {\r
- // si une nouvelle conversation a été créée alors on lui donne la racine\r
if (this.ajouterMessage(elements.messages[i], numConversation)) {\r
+ // si une nouvelle conversation a été créée alors on lui donne la racine\r
+ // TODO : ce block ne devrait pas se trouver ici mais dans "nouvelleConversation"\r
this.conversations[numConversation].setRacine(elements.first);\r
+ this.mettreAJourFragment();\r
}\r
}\r
\r
* @return true si une nouvelle conversation a été créée sinon false\r
*/\r
euphorik.Conversations.prototype.ajouterMessage = function(element, numConversation) {\r
- var thisMessages = this;\r
-\r
- // pas d'utilisation de jquery pour des raisons de performance \r
+ var thisConversations = this;\r
+ \r
var message = \r
new euphorik.Message(\r
this.client,\r
\r
if (!this.conversations[numConversation]) {\r
nouvelleConversation = true;\r
- this.nouvelleConversation(\r
- numConversation,\r
- function(num) { // fermeture de la conversation\r
- thisMessages.supprimerConversation(num);\r
- },\r
- function(num) { // insertion du lien vers la conversation\r
- thisPage.util.replaceSelection(\r
- $("form#posterMessage input.message")[0],\r
- "{" + thisMessages.client.conversations[num-1].root.toString(36) + "}"\r
- );\r
- }\r
- );\r
+ this.nouvelleConversation(numConversation);\r
}\r
\r
this.conversations[numConversation].ajouterMessage(message);\r
return nouvelleConversation;\r
};\r
\r
-euphorik.Conversations.prototype.nouvelleConversation = function(num, funFermer, funLien)\r
+euphorik.Conversations.prototype.nouvelleConversation = function(num)\r
{\r
var thisMessages = this;\r
\r
this.conversations[num] = new euphorik.Conversation(this, num);\r
- \r
- if (funFermer) {\r
- this.conversations[num].eventFermer(funFermer);\r
- }\r
- \r
- if (funLien) {\r
- this.conversations[num].eventLien(funLien);\r
- }\r
-\r
+ \r
this.conversations[num].setFunPage(\r
function(num) { // page suivante\r
thisMessages.client.pageSuivante(num - 1);\r
this.client.supprimerConversation(num - 1);\r
\r
this.rafraichirMessages(true);\r
+ this.mettreAJourFragment();\r
};\r
\r
/**\r