PageMinichat.prototype.decharger = function()
{
- if (this.attenteCourante != null)
- this.attenteCourante.abort()
+ //alert(this.attenteCourante)
+ this.messages.stopAttenteCourante()
}
PageMinichat.prototype.getXMLMessage = function(pseudo, message, repondA)
}
PageMinichat.prototype.envoyerMessage = function(pseudo, message)
-{\r
+{
+ var thisPageMinichat = this
+\r
// (un pseudo vide est autorisé)
pseudo = this.formateur.filtrerInputPseudo(pseudo)
for(var i = 0; i < tags.length; i++)
repondA.push(/\{(.*?)\}>/.exec(tags[i])[1])
message = message.replace(this.regexMessageTagReplace, "")
-
- // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche)
- for (var i = 0; i < repondA.length; i++)
- {
- jQuery("#conversation div#" + repondA[i]).addClass("repondu")
- for (var c = 0; c < this.messages.conversations.length; c++)
- for (var m = 0; m < this.messages.conversations[c].messages.length; m++)
- this.messages.conversations[c].messages[m].clientARepondu = true
- }
}\r
\r
message = message.trim()\r
dataType : "xml",\r
success : function(data, textStatus)\r
{
- if(jQuery("statut", data.documentElement).text() == "ok")\r
- jQuery("form input.message").val("")\r
+ if(jQuery("statut", data.documentElement).text() == "ok")
+ {\r
+ jQuery("form input.message").val("")
+
+ // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche)
+ for (var i = 0; i < repondA.length; i++)
+ {
+ jQuery("#conversations div#" + repondA[i]).addClass("repondu")
+ /* Ca sert à rien, TODO : tester/virer
+ for (var c = 0; c < thisPageMinichat.messages.conversations.length; c++)
+ for (var m = 0; m < thisPageMinichat.messages.conversations[c].messages.length; m++)
+ thisPageMinichat.messages.conversations[c].messages[m].clientARepondu = true
+ */
+ }
+ }\r
}\r
}\r
)
this.formateur = formateur
this.messages = new Array()
this.messagesParId = new Object()
+
+ this.nbMessageMax = conf.nbMessageAffiche // Le nombre de message affiché par page
jQuery("#conversations").append(
'<div id="' + this.getId() + '" class="conversation">\
// enlève les messages exedentaires
var nbMessagesAffiche = jQuery("#conversations #" + this.getId() + " .message").size()
+
if (nbMessagesAffiche > this.nbMessageMax)
- jQuery("#conversations #" + this.getId() + " .message").slice(this.nbMessageMax, nbMessagesAffiche).empty();
+ jQuery("#conversations #" + this.getId() + " .message").slice(this.nbMessageMax, nbMessagesAffiche).empty()
// Ajoute les événements liés à chaque message
jQuery("#conversations #" + this.getId() + " .message").filter(function(){return parseInt(jQuery(this).attr("id"), 36) > parseInt(idDernierMessageAffiche, 36)}).each(
this.conversations[i].viderMessages()
}
+/**
+ * Arrete l'attente courante s'il y en a une.
+ */
+Messages.prototype.stopAttenteCourante = function()
+{
+ if (this.attenteCourante != null)
+ this.attenteCourante.abort()
+}
+
/**
* Met à jour les messages de manière continue.
* (AJAX-Comet-style proof)
{
var thisMessages = this // caisupair javacrypte
- if (this.attenteCourante != null)
- this.attenteCourante.abort()
-
if (vider == undefined)
vider = false
+
+ this.stopAttenteCourante()
if (vider)
this.idDernierMessage = null\r
- this.util.xmlVersAction(this.getXMLrafraichirMessages()).action.dump("Client")
+ ;;; this.util.xmlVersAction(this.getXMLrafraichirMessages()).action.dump("Client")
this.attenteCourante = jQuery.ajax({
type: "POST",
url: "request",
success:
function(data)
{ \r
- thisMessages.util.serializer.serializeToString(data).dump("Serveur")\r
+ ;;; thisMessages.util.serializer.serializeToString(data).dump("Serveur")\r
if (vider)
thisMessages.viderMessages()