X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=js%2FpageMinichat.js;h=678dac3add9916f5ea06bd91161e69c5d612ae75;hb=4a510de0c99d080cdd3ecc837307ac8ee3509e87;hp=d6a4bf08f556843985077df04103c81b6ae592e6;hpb=531c70729709cd97024eb1c2ff3ed836db9f550e;p=euphorik.git diff --git a/js/pageMinichat.js b/js/pageMinichat.js index d6a4bf0..678dac3 100755 --- a/js/pageMinichat.js +++ b/js/pageMinichat.js @@ -19,8 +19,8 @@ PageMinichat.prototype.contenu = function()
\

\ \ - \ - \ + \ + \ \ \

\ @@ -46,7 +46,7 @@ PageMinichat.prototype.charger = function() { $("body").append( '
' + - '

' + + '

' + 'Ban de 3 jours' + 'Ban de 15min' + 'Avertissement' + @@ -97,9 +97,12 @@ PageMinichat.prototype.charger = function() $("form button.smiles").hover( function(e) { - var offset = $(e.target).offset() - alert($("$smiles").width()) - $("#smiles").css("top", offset.top).css("left", offset.left).show() + var position = $(e.target).offset() + // le décalage pour ne pas dépasser à droite (10 correspond à la marge pour éviter de coller le bord) + var decalage = $("body").width() - $("#smiles").width() - position.left - 10 + decalage = decalage > 0 ? 0 : decalage + + $("#smiles").css("top", position.top).css("left", position.left + decalage).show() }, function(e){} ) @@ -489,10 +492,10 @@ Conversation.prototype.flush = function(funClickOuvrirConv) if (this.messages[i].id > this.idDernierMessageAffiche) { var message = this.messages[i] - + // construit l'identifiant de la personne var identifiant = - this.client.nickFormat == "nick" ? this.formateur.traitementComplet(message.pseudo) : + this.client.nickFormat == "nick" || message.login == "" ? this.formateur.traitementComplet(message.pseudo) : (this.client.nickFormat == "login" ? this.formateur.traitementComplet(message.login) : this.formateur.traitementComplet(message.pseudo) + "(" + this.formateur.traitementComplet(message.login) +")" ) @@ -502,7 +505,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) XHTMLrepondA = "" + XHTMLrepondA + "" XHTML += - "
" + "
>
" + "[" + message.date + "]" + - "" + identifiant + ":" + + "" + message.auteurId + "" + identifiant + ":" + XHTMLrepondA + - "" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo)) + "" + + "" + this.formateur.traitementComplet(message.contenu, message.pseudo) + "" + "
" messagePair = !messagePair @@ -528,7 +531,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) $("#conversations #" + this.getId() + " .message").slice(this.nbMessageMax, nbMessagesAffiche).empty() // ajoute les événements liés à chaque nouveau message - $("#conversations #" + this.getId() + " .message").filter(function(){return parseInt($(this).attr("id"), 36) > thisConversation.idDernierMessageAffiche}).each( + $("#conversations #" + this.getId() + " .message").filter(function(){ return parseInt($(this).attr("id").substr(4), 36) > thisConversation.idDernierMessageAffiche }).each( function() { $(".lienConv", this).click( @@ -548,8 +551,8 @@ Conversation.prototype.flush = function(funClickOuvrirConv) $(".pseudo", this).hover( function(e) { - var userId = parseInt($(this).attr("id").substr(4)) - var element = $(e.target) + var userId = parseInt($(".id", this).text()) + var element = $(this) var h = element.height() var offset = element.offset() var outils = $("#outilsBan").css("top", offset.top - 2).css("left", offset.left - 2).height(h < 16 ? 16 : h).width(element.width() + 16 * 3 + 4 + 64).show() @@ -585,7 +588,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) if ($(event.target).is("a")) return // l'id du message - var idMess = $(this).attr("id") + var idMess = $(this).attr("id").substr(4) // extraction d'une conversation if ($(event.target).is(".extraire")) @@ -596,7 +599,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) var valCourant = $("input.message").val() if (valCourant == undefined) valCourant = "" - var tag = $(".pseudo", this).text() + "{" + idMess + "}" + ">" + var tag = $(".pseudo span.ident", this).text() + "{" + idMess + "}" + ">" if (valCourant.indexOf(tag, 0) == -1) $("input.message").val(tag + " " + valCourant) thisConversation.util.setCaretToEnd($("form input.message")[0]) @@ -629,7 +632,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv) Conversation.prototype.afficherConversation = function(element) { // cherche le message selectionné - var id = parseInt($(element).attr("id"), 36) + var id = parseInt($(element).attr("id").substr(4), 36) var message = this.messagesParId[id] if (message == undefined) return @@ -641,7 +644,7 @@ Conversation.prototype.afficherConversation = function(element) function() { var jq = $(this) - if (!mess.hasOwnProperty(parseInt(jq.attr("id"), 36))) + if (!mess.hasOwnProperty(parseInt(jq.attr("id").substr(4), 36))) jq.addClass("cache") else jq.removeClass("cache") @@ -714,8 +717,8 @@ Messages.prototype.getJSONConversations = function() */ Messages.prototype.ajouterMessages = function(elements, numConversation) { - if (elements["messages"].length == 0 && typeof(this.conversations[numConversation]) == "undefined") - return false + if (elements["messages"].length == 0) + return this.conversations[numConversation] != undefined for (var i = 0; i < elements["messages"].length; i++) this.ajouterMessage(elements["messages"][i], numConversation) @@ -837,8 +840,9 @@ Messages.prototype.supprimerConversation = function(num) * Ajuste la largeur des conversations en fonction de leur nombre. modifie l'attribut CSS 'width'. */ Messages.prototype.ajusterLargeurConversations = function() -{ - $("#conversations .conversation").css("width", 100 / this.conversations.length + "%") +{ + // le "- 0.01" evite que IE se chie dessus lamentablement et affiche les conversations les unes au dessus des autres + $("#conversations .conversation").css("width", (100 / this.conversations.length) - 0.01 + "%") } /**