X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat.js;fp=js%2FpageMinichat.js;h=7282a432beafe4c7c17145f5427636045a5d54d2;hp=03024bcb00bfc5be0b5f21c5c00c7cd8da313024;hb=39d4d474dc011f29b3060729f7ff09f446093070;hpb=3277c9878dcc451201a220117e437b1926770e3b diff --git a/js/pageMinichat.js b/js/pageMinichat.js index 03024bc..7282a43 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -26,6 +26,10 @@ function PageMinichat(client, formateur, util) this.regexMessageTagMatch = /\{.*?\}>/g this.regexMessageTagReplace = /^(.*?\{.*?\}>)*/ + + // permet d'éviter d'envoyer plusieurs messages simultanément en pressant + // rapidement sur "enter" par exemple + this.envoieMessageEnCours = false } PageMinichat.prototype.contenu = function() @@ -173,7 +177,7 @@ PageMinichat.prototype.getJSONMessage = function(pseudo, message, repondA) } PageMinichat.prototype.envoyerMessage = function(pseudo, message) -{ +{ var thisPageMinichat = this // (un pseudo vide est autorisé) @@ -205,6 +209,14 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) this.client.pseudo = pseudo + // évite le double post + if (this.envoieMessageEnCours) + { + this.util.messageDialogue("Message en cours d'envoie...") + return + } + this.envoieMessageEnCours = true + ;; dumpObj(this.getJSONMessage(pseudo, message, repondA)) jQuery.ajax( { @@ -214,6 +226,7 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) dataType : "json", beforeSend : function(xmlHttpRequest) { + // TODO : ça marche ça ?? xmlHttpRequest.setRequestHeader("X-Requested-With", "") }, success : function(data, textStatus) @@ -231,7 +244,12 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message) else if (data["reply"] == "error") { thisPageMinichat.util.messageDialogue(data["error_message"]) - } + } + thisPageMinichat.envoieMessageEnCours = false + }, + error : function() + { + thisPageMinichat.envoieMessageEnCours = false } } ) @@ -561,7 +579,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) var DOM = $(XHTML) DOM.each( function() - { + { $(".lienConv", this).click( function(event) { @@ -570,6 +588,49 @@ Conversation.prototype.flush = function(funClickOuvrirConv) funClickOuvrirConv(parseInt(racine.substring(1, racine.length - 1), 36)) return false } + ) + + thisConversation.util.infoBulle("Extraction de la conversation", $(".extraire", this)) + + // l'id du message + var idMess36 = $(this).attr("id").substr(4) + var idMess = parseInt(idMess36, 36) + + $(this).click( + function(event) + { + if ($(event.target).is("a") || $(event.target).parents("#outilsBan").length > 0) return + + // extraction d'une conversation + if ($(event.target).is(".extraire")) + { + funClickOuvrirConv(idMess) + return + } + + var valCourant = $("input.message").val() + if (valCourant == undefined) valCourant = "" + var tag = $(".pseudo span.ident", this).text() + "{" + idMess36 + "}" + ">" + if (valCourant.indexOf(tag, 0) == -1) + $("input.message").val(tag + " " + valCourant) + thisConversation.util.setCaretToEnd($("form input.message")[0]) + } + ) + + // mise en évidence de la conversation + $(".entete", this).hover( + function() + { + thisConversation.decolorerEntetes() + thisConversation.afficherConversation(idMess) + }, + // quand on sort de l'entête du message la mise en évidence est enlevée + function() + { + thisConversation.enleverMiseEnEvidence() + thisConversation.decolorerEntetes() + thisConversation.colorerEntetes() + } ) if (thisConversation.client.viewTimes) @@ -620,49 +681,6 @@ Conversation.prototype.flush = function(funClickOuvrirConv) $("#outilsBan", this).hide() } ) - - thisConversation.util.infoBulle("Extraction de la conversation", $(".extraire", this)) - - // l'id du message - var idMess36 = $(this).attr("id").substr(4) - var idMess = parseInt(idMess36, 36) - - $(this).click( - function(event) - { - if ($(event.target).is("a") || $(event.target).parents("#outilsBan").length > 0) return - - // extraction d'une conversation - if ($(event.target).is(".extraire")) - { - funClickOuvrirConv(idMess) - return - } - - var valCourant = $("input.message").val() - if (valCourant == undefined) valCourant = "" - var tag = $(".pseudo span.ident", this).text() + "{" + idMess36 + "}" + ">" - if (valCourant.indexOf(tag, 0) == -1) - $("input.message").val(tag + " " + valCourant) - thisConversation.util.setCaretToEnd($("form input.message")[0]) - } - ) - - // mise en évidence de la conversation - $(".entete", this).hover( - function() - { - thisConversation.decolorerEntetes() - thisConversation.afficherConversation(idMess) - }, - // quand on sort de l'entête du message la mise en évidence est enlevée - function() - { - thisConversation.enleverMiseEnEvidence() - thisConversation.decolorerEntetes() - thisConversation.colorerEntetes() - } - ) } ) DOM.prependTo("#conversations #" + this.getId())