X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat.js;h=f6b73c0040c5e95dee421842c1fe4bb36496bd72;hp=454b357ac7ed70737a23e95f18168c4e6eb1aed1;hb=c39e55c505a27e30209fcfb6d837d6ec8a82b990;hpb=fb1166f6fcf86e40a94f5d88aaed398603615f28 diff --git a/js/pageMinichat.js b/js/pageMinichat.js index 454b357..f6b73c0 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -103,8 +103,8 @@ PageMinichat.prototype.charger = function() PageMinichat.prototype.decharger = function() { - if (this.attenteCourante != null) - this.attenteCourante.abort() + //alert(this.attenteCourante) + this.messages.stopAttenteCourante() } PageMinichat.prototype.getXMLMessage = function(pseudo, message, repondA) @@ -140,7 +140,9 @@ PageMinichat.prototype.getXMLMessage = function(pseudo, message, repondA) } PageMinichat.prototype.envoyerMessage = function(pseudo, message) -{ +{ + var thisPageMinichat = this + // (un pseudo vide est autorisé) pseudo = this.formateur.filtrerInputPseudo(pseudo) @@ -152,15 +154,6 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) 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 - } } message = message.trim() @@ -185,8 +178,21 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) dataType : "xml", success : function(data, textStatus) { - if(jQuery("statut", data.documentElement).text() == "ok") - jQuery("form input.message").val("") + if(jQuery("statut", data.documentElement).text() == "ok") + { + 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 + */ + } + } } } ) @@ -302,6 +308,8 @@ function Conversation(num, util, formateur) 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( '
\ @@ -450,8 +458,9 @@ Conversation.prototype.flush = function(funClickExtract, funClickLienConv) // 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( @@ -753,6 +762,15 @@ Messages.prototype.viderMessages = function() 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) @@ -762,16 +780,15 @@ Messages.prototype.rafraichirMessages = function(vider) { var thisMessages = this // caisupair javacrypte - if (this.attenteCourante != null) - this.attenteCourante.abort() - if (vider == undefined) vider = false + + this.stopAttenteCourante() if (vider) this.idDernierMessage = null - this.util.xmlVersAction(this.getXMLrafraichirMessages()).action.dump("Client") + ;;; this.util.xmlVersAction(this.getXMLrafraichirMessages()).action.dump("Client") this.attenteCourante = jQuery.ajax({ type: "POST", url: "request", @@ -780,7 +797,7 @@ Messages.prototype.rafraichirMessages = function(vider) success: function(data) { - thisMessages.util.serializer.serializeToString(data).dump("Serveur") + ;;; thisMessages.util.serializer.serializeToString(data).dump("Serveur") if (vider) thisMessages.viderMessages()