X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=js%2FpageMinichat.js;h=e8d607a33bd6c615601c2426f23f5ab7871b0407;hb=2faefc542de20cfcc0220b5c7fd7982dd0fbbfd4;hp=ec00d7b36d345e8d538f71878c81469f4bbf8972;hpb=35838780dce22af9f2dc80af9149a30a0433de0a;p=euphorik.git diff --git a/js/pageMinichat.js b/js/pageMinichat.js index ec00d7b..e8d607a 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -147,7 +147,9 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) { this.util.messageDialogue("login impossible") return - } + } + + this.client.pseudo = pseudo ;;; dumpObj(this.getJSONMessage(pseudo, message, repondA)) jQuery.ajax( @@ -155,13 +157,17 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) url : "request", type: "POST", data : this.util.jsonVersAction(this.getJSONMessage(pseudo, message, repondA)), - dataType : "json", + dataType : "json", + beforeSend : function(xmlHttpRequest) + { + xmlHttpRequest.setRequestHeader("X-Requested-With", "") + }, success : function(data, textStatus) { ;;; dumpObj(data) if(data["reply"] == "ok") - { + { jQuery("form input.message").val("") // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) @@ -204,11 +210,12 @@ function Reponse(id, pseudo, login) * @param pseudo * @param contenu */ -function Message(id, date, pseudo, contenu) +function Message(id, date, pseudo, login, contenu) { this.id = id this.date = date this.pseudo = pseudo + this.login = login this.contenu = contenu this.appartientAuClient = false @@ -279,7 +286,7 @@ Message.prototype.getConversation = function(messages) * @param numConv le numéro (appelé id) de la conversation * @param formateur outil permettant la mise en forme du texte des messages */ -function Conversation(num, util, formateur) +function Conversation(num, util, formateur, client) { var thisConversation = this @@ -288,6 +295,8 @@ function Conversation(num, util, formateur) this.messageOver = null // le message sur lequel se trouve le curseur this.util = util this.formateur = formateur + this.client = client + this.messages = new Array() this.messagesParId = new Object() @@ -409,27 +418,43 @@ Conversation.prototype.flush = function(funClickExtract, funClickLienConv) var idDernierMessageAffiche = jQuery("#conversations #" + this.getId() + " div:first").attr("id") idDernierMessageAffiche = (idDernierMessageAffiche == undefined ? 0 : parseInt(idDernierMessageAffiche, 36)) + // est-ce que le prochain message est pair ? (permet d'alterner le style des messages) + var messagePair = (idDernierMessageAffiche == 0 ? true : + (jQuery("#conversations #" + this.getId() + " div:first").attr("class").search("messagePair") == -1) + ) + // construction de l'XHTML des messages var XHTML = "" for (var i = this.messages.length - 1; i >= 0; i--) if (this.messages[i].id > idDernierMessageAffiche) - { + { var message = this.messages[i] + + // construit l'identifiant de la personne + var identifiant = + this.client.nickFormat == "nick" ? message.pseudo : + (this.client.nickFormat == "login" ? message.login : message.pseudo + "(" + message.login +")" ) + var XHTMLrepondA = "" for (var id in message.repondA) XHTMLrepondA += this.formateur.traitementComplet(message.repondA[id].pseudo) + "> " XHTMLrepondA = "" + XHTMLrepondA + "" XHTML += - "
" + "
>
" + "[" + message.date + "]" + - "" + this.formateur.traitementComplet(message.pseudo) + ":" + + "" + this.formateur.traitementComplet(identifiant) + ":" + XHTMLrepondA + "" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo)) + "" + "
" + + messagePair = !messagePair } jQuery("#conversations #" + this.getId()).prepend(XHTML) @@ -506,6 +531,7 @@ Conversation.prototype.afficherConversation = function(element) { // cherche le message selectionné var id = parseInt(jQuery(element).attr("id"), 36) + var message = this.messagesParId[id] if (message == undefined) return @@ -605,6 +631,7 @@ Messages.prototype.ajouterMessage = function(element, numConversation) id, element["date"], element["nick"], + element["login"], element["content"] ) @@ -626,7 +653,7 @@ Messages.prototype.ajouterMessage = function(element, numConversation) { thisPage.util.replaceSelection( jQuery("form input.message")[0], - "{" + thisMessages.client.conversations[num-1].racine + "}" + "{" + thisMessages.client.conversations[num-1].root + "}" ) } ) @@ -639,7 +666,7 @@ Messages.prototype.nouvelleConversation = function(num, funFermer, funLien) { var thisMessages = this - this.conversations[num] = new Conversation(num, this.util, this.formateur) + this.conversations[num] = new Conversation(num, this.util, this.formateur, this.client) if (funFermer != undefined) this.conversations[num].eventFermer(funFermer) if (funLien != undefined) @@ -778,6 +805,8 @@ Messages.prototype.rafraichirMessages = function(vider) // ajoute les messages reçu à leur conversation respective for (var numConv = 0; numConv < data["conversations"].length; numConv++) { + //PLOP if (data["conversations"][numConv]["messages"].length == 0) continue + thisMessages.ajouterMessages(data["conversations"][numConv], numConv) // définit les événements liés à la conversation