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,
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
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")
$("#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.
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
}
{
// 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
}
)
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)
$(".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()
*/
Conversation.prototype.afficherConversation = function(id)
{
+ var thisConversation = this
+
var message = this.messagesParId[id]
if (message == undefined) return
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
*/
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 = {}
- $(".message").removeClass("repondEnEvidence")
+ $("#conversations div.message").removeClass("repondEnEvidence")
+ $("form#posterMessage #repondA .messages").empty()
}
/**
{
$("#" + mess.getId()).removeClass("repondEnEvidence")
$("#" + mess.getId(this.prefixIdMessage)).remove()
- $("form#posterMessage #repondA .messages").empty()
delete this.messagesRepond[mess.id]
this.rafraichireNombreMessagesRepond()
}
}
/**
- * Met à jour le nombre qui indique à l'utilisateur à combien de messages il répond
+ * Met à jour le nombre qui indique à l'utilisateur à combien de messages il répond.
*/
Messages.prototype.rafraichireNombreMessagesRepond = function()
{
else boite.hide()
}
+/**
+ * Affiche les messages auquel l'utilisateur souhaite répondre au sein des messages des conversations.
+ * Utilisé lorsqu'une conversation est extraite.
+ */
+Messages.prototype.afficherMessagesRepondConversations = function()
+{
+ var expr = ""
+ for(var messId in this.messagesRepond)
+ expr += "#" + this.messagesRepond[messId].getId() + ","
+ $(expr).addClass("repondEnEvidence")
+}
+
/**
* Crée un message JSON contenant le message demandant un rafraichissement.
*/
{
// met ou enlève la mise en evidence du message
thisMessages.toggleMessageRepond(Mess)
+ // donne le focus à la ligne de saisie
+ $("form input.message").focus()
}
)
}
function(data)
{
if (vider)
- {
thisMessages.viderMessages()
- vider = false
- }
// ajoute les messages reçus à leur conversation respective
for (var numConv = 0; numConv < data["conversations"].length; numConv++)
{
thisMessages.client.supprimerConversation(numConv - 1)
}
}
+ if (vider)
+ thisMessages.afficherMessagesRepondConversations()
+ vider = false
}
}
)