X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat.js;h=2de1531976b7a6dc29cfbe0bd167196e6005a75e;hp=8586bb5b94422d6f0359bc2cfa9d88cfc8104262;hb=c01d54fd6a515a6f2860e3b18ff574afa5caa83b;hpb=eaeff7851380cf9a416fd609fd9e90297f8f5918 diff --git a/js/pageMinichat.js b/js/pageMinichat.js index 8586bb5..2de1531 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -174,7 +174,7 @@ PageMinichat.prototype.getJSONMessage = function(pseudo, message) repondA.push(parseInt(id)) // FIXME : une propriété ne peut pas être de type int ? return { - "action" : "put_message", + "header" : { "action" : "put_message", "version" : conf.versionProtocole }, "cookie" : this.client.cookie, "nick" : pseudo, "content" : message, @@ -437,8 +437,8 @@ function Conversation(num, util, formateur, client) this.client = client this.idDernierMessageAffiche = 0 - this.messages = new Array() - this.messagesParId = new Object() + this.messages = [] + this.messagesParId = {} this.nbMessageMax = conf.nbMessageAffiche // Le nombre de message affiché par page @@ -472,11 +472,11 @@ Conversation.prototype.colorerEntetes = function() for (var i = 0; i < this.messages.length; i++) { if (this.messages[i].appartientAuClient) - messagesProprietaire += "#" + this.messages[i].getId() + "," + messagesProprietaire += "#" + this.messages[i].getId(this.getId()) + "," else if (this.messages[i].clientARepondu) - messagesRepondu += "#" + this.messages[i].getId() + "," + messagesRepondu += "#" + this.messages[i].getId(this.getId()) + "," else if (this.messages[i].estUneReponse) - messagesReponse += "#" + this.messages[i].getId() + "," + messagesReponse += "#" + this.messages[i].getId(this.getId()) + "," } $(messagesReponse).addClass("reponse") $(messagesRepondu).addClass("repondu") @@ -579,6 +579,11 @@ Conversation.prototype.viderMessages = function() $("#conversations #" + this.getId() + " .message").remove() } +Conversation.prototype.idMessageFromString = function(idString) +{ + return parseInt(idString.substr(4 + this.getId().length), 36) +} + /** * Après l'ajout d'un ou plusieurs message cette méthode est appelée afin * d'afficher les messages non-affichés. @@ -600,7 +605,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv, funClickMessage) for (var i = 0; i < this.messages.length; i++) if (this.messages[i].id > this.idDernierMessageAffiche) { - XHTML += this.messages[i].XHTML(messagePair) + XHTML += this.messages[i].XHTML(messagePair, this.getId()) messagePair = !messagePair } @@ -613,7 +618,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv, funClickMessage) { // FIXME : ya pas mieux ? var racine = $(event.target).text() - funClickOuvrirConv(parseInt(racine.substring(1, racine.length - 1), 36)) + funClickOuvrirConv(parseInt(idString.substring(1, racine.length - 1), 36)) return false } ) @@ -622,7 +627,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv, funClickMessage) thisConversation.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", this)) // l'id du message - var idMess = parseInt($(this).attr("id").substr(4), 36) + var idMess = thisConversation.idMessageFromString($(this).attr("id")) $(this).click( function(event) @@ -674,7 +679,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv, funClickMessage) $(".pseudo", this).hover( function(e) { - var userId = parseInt($(".id", this).text()) + var userId = parseInt($(".id", this).text()) var element = $(this) var h = element.height() var offset = element.offset() @@ -730,6 +735,8 @@ Conversation.prototype.flush = function(funClickOuvrirConv, funClickMessage) */ Conversation.prototype.afficherConversation = function(id) { + var thisConversation = this + var message = this.messagesParId[id] if (message == undefined) return @@ -740,7 +747,7 @@ Conversation.prototype.afficherConversation = function(id) function() { var jq = $(this) - var statut = mess[parseInt(jq.attr("id").substr(4), 36)] + var statut = mess[thisConversation.idMessageFromString(jq.attr("id"))] if (statut == undefined) jq.addClass("cache") else @@ -822,6 +829,10 @@ Messages.prototype.toggleMessageRepond = function(mess) */ Messages.prototype.enleverMessagesRepond = function() { + for (var messId in this.messagesRepond) + this.enleverMessageRepond(this.messagesRepond[messId]) + + // on réinitialise pour être sur que tout est bien enlevé this.messagesRepond = {} $("#conversations div.message").removeClass("repondEnEvidence") $("form#posterMessage #repondA .messages").empty() @@ -832,7 +843,6 @@ Messages.prototype.enleverMessagesRepond = function() */ Messages.prototype.enleverMessageRepond = function(mess) { - console.log(mess) $("#" + mess.getId()).removeClass("repondEnEvidence") $("#" + mess.getId(this.prefixIdMessage)).remove() delete this.messagesRepond[mess.id] @@ -1105,6 +1115,8 @@ Messages.prototype.flush = function(numConv) { // met ou enlève la mise en evidence du message thisMessages.toggleMessageRepond(Mess) + // donne le focus à la ligne de saisie + $("form input.message").focus() } ) }