X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat%2Fmessage.js;fp=js%2FpageMinichat%2Fmessage.js;h=0000000000000000000000000000000000000000;hp=c24be1dd1aa12c83510d2dfa4bf13493c53a7b8b;hb=e49a1c483f1751f129c0766d1061b3da44b60581;hpb=d6dcd0fd8af56bd4791aa4e621c2e5058033c37a diff --git a/js/pageMinichat/message.js b/js/pageMinichat/message.js deleted file mode 100644 index c24be1d..0000000 --- a/js/pageMinichat/message.js +++ /dev/null @@ -1,155 +0,0 @@ -// coding: utf-8 -// Copyright 2008 Grégory Burri -// -// This file is part of Euphorik. -// -// Euphorik is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// Euphorik is distributed in the hope that it will be useful, -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Euphorik. If not, see . - -euphorik.Reponse = function(id, pseudo, login) { - this.id = id; - this.pseudo = pseudo; - this.login = login; - this.pseudo = pseudo || ""; - this.login = login || ""; -}; - -/** - * Représente un message. - */ -euphorik.Message = function(client, formater, element) { - this.client = client; - this.formater = formater; - - this.id = element.id; - this.auteurId = element.user_id; - this.racineId = element.root; - this.date = element.date; - this.pseudo = element.nick; - 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; - this.systeme = element.system; // est-ce un message 'système' ? - this.setRepondA(element.answer_to); // un ensemble de reponse (voir Reponse) indexé par l'id du message de la reponses - this.ekMaster = element.ek_master; - this.degreeOstentatoire = element.ostentatious_master; -}; - -/** - * @param pre est un prefix permettant de créer un Id différent pour deux mêmes messages. - * Cela est utile pour afficher plusieurs mêmes messages au sein d'un document XHTML. - * voir également la fonction 'XHTML()'. - */ -euphorik.Message.prototype.getId = function(pre) { - pre = pre || ""; - return pre + "mess" + this.id.toString(36); -}; - -euphorik.Message.prototype.setRepondA = function(repondAJSON) { - var thisMessage = this; - this.repondA = {}; - - repondAJSON.each(function(i, reponse) { - thisMessage.repondA[reponse.id] = new euphorik.Reponse(reponse.id, reponse.nick, reponse.login); - }); -}; - -/** - * Renvoie les messages faisant partie d'une conversation. - * @param messages l'ensemble des messages de la conversation - * @return les id des messages qui ont été mis en evidence sous la forme - * d'un hash (object) {id => 0 | 1 | 2 | 3}. 1 : proprietaire, 2 : reponse directe, 3 : message repondu - */ -euphorik.Message.prototype.getConversation = function(messages) { - var thisMessage = this; - - // les messages faisant partie de la conversation - var messagesEnEvidence = {}; - messagesEnEvidence[this.id] = 1; - - // parcours en profondeur - var f = function(ids, premierNiveau, ensemble, evidence) { - objectEach(ids, function(id) { - if (!messagesEnEvidence[id] || premierNiveau) { - var message = messages.messagesParId[id]; - if (message) { - messagesEnEvidence[id] = premierNiveau ? evidence : (message.auteurId === thisMessage.auteurId ? 1 : 0); - f(message[ensemble], false, ensemble, evidence); - } - } - }); - }; - - // remonte le temps - f(this.estReponduPar, true, "estReponduPar", 2); - - // descent le temps - f(this.repondA, true, "repondA", 3); - - return messagesEnEvidence; -}; - -/** - * Renvoie le message sous la forme de code XHTML (string) prêt à être inséré dans un document. - * Aucun callback n'est affecté. - */ -euphorik.Message.prototype.XHTML = function(messagePair, pre) { - if (messagePair === undefined) { - messagePair = true; - } - pre = pre || ""; - - thisMessage = this; - - // construit l'identifiant de la personne - var identifiant = - this.client.nickFormat === "nick" || this.login === "" ? this.formater.traitementComplet(this.pseudo) : - (this.client.nickFormat === "login" ? this.formater.traitementComplet(this.login) : - this.formater.traitementComplet(this.pseudo) + "(" + this.formater.traitementComplet(this.login) +")" ); - - var XHTMLrepondA = ""; - var debut = true; - objectEach(this.repondA, function(id, rep) { - if (!debut) { - XHTMLrepondA += ", "; - } - XHTMLrepondA += thisMessage.formater.traitementComplet(rep.pseudo); - debut = false; - }); - if (XHTMLrepondA) { - XHTMLrepondA = "" + XHTMLrepondA + ""; - } - - return "
" + - "" + - "[" + this.date + "]" + - "" + this.auteurId + "" + identifiant + "" + - "" + - "" + - XHTMLrepondA + - "" + this.formater.traitementComplet(this.contenu, this.pseudo) + "" + - "
"; -};