ADD nouveau style (pas fini)
[euphorik.git] / js / pageMinichat.js
index e006f3c..42314d1 100755 (executable)
@@ -1,4 +1,20 @@
-// coding: utf-8
+// coding: utf-8\r
+// Copyright 2008 Grégory Burri\r
+//\r
+// This file is part of Euphorik.\r
+//\r
+// Euphorik is free software: you can redistribute it and/or modify\r
+// it under the terms of the GNU General Public License as published by\r
+// the Free Software Foundation, either version 3 of the License, or\r
+// (at your option) any later version.\r
+//\r
+// Euphorik is distributed in the hope that it will be useful,\r
+// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+// GNU General Public License for more details.\r
+//\r
+// You should have received a copy of the GNU General Public License\r
+// along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.
  
 function PageMinichat(client, formateur, util)
 {
@@ -226,14 +242,7 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message)
                         
                // 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++)
-               {
                   $("#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
-                  */
-               }
             }
             else if (data["reply"] == "error")
             {
@@ -488,7 +497,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
       
    // construction de l'XHTML des messages
    var XHTML = ""
-   for (var i = this.messages.length - 1; i >= 0; i--)
+   for (var i = 0; i < this.messages.length; i++)
       if (this.messages[i].id > this.idDernierMessageAffiche)
       {      
          var message = this.messages[i]
@@ -522,16 +531,17 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
          messagePair = !messagePair
       }
       
-   $("#conversations #" + this.getId()).prepend(XHTML)
-   
    // enlève les messages exedentaires
    var nbMessagesAffiche = $("#conversations #" + this.getId() + " .message").size()
    
    if (nbMessagesAffiche > this.nbMessageMax)
       $("#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").substr(4), 36) > thisConversation.idDernierMessageAffiche }).each(
+   
+   
+   //.filter(function(){ return parseInt($(this).attr("id").substr(4), 36) > thisConversation.idDernierMessageAffiche })
+   
+   var DOM = $(XHTML)
+   DOM.each(
       function()
       {
          $(".lienConv", this).click(
@@ -619,6 +629,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
          )
       }
    )
+   DOM.prependTo("#conversations #" + this.getId())
    
    if (this.messages.length > 0)
       this.idDernierMessageAffiche = this.messages[this.messages.length-1].id
@@ -840,8 +851,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 + "%")
+{\r
+   // 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 + "%")
 }
 
 /**
@@ -913,7 +925,13 @@ Messages.prototype.rafraichirMessages = function(vider)
          {
             case "new_troll" :
                thisMessages.trollIdCourant = data["troll_id"]
-               $("#trollCourant .troll").html(thisMessages.formateur.traitementComplet(data["content"]))
+               $("#trollCourant .troll").html(thisMessages.formateur.traitementComplet(data["content"])).unbind().click(
+                  function()
+                  {
+                     thisMessages.ouvrirConversation(data["message_id"])
+                  }
+               )
+               
                $("#trollCourant .troll a[@rel*=lightbox]").lightBox()
                break