ADD nouveau style (pas fini mais presque)
[euphorik.git] / js / pageMinichat.js
index 678dac3..524176a 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)
 {
@@ -224,16 +240,9 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message)
             {  \r
                $("form input.message").val("")
                         
-               // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche)
+               // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ?
                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
-                  */
-               }
+                  $("#conversations div#mess" + repondA[i].toString(36)).addClass("repondu")
             }
             else if (data["reply"] == "error")
             {
@@ -366,7 +375,7 @@ function Conversation(num, util, formateur, client)
    $("#conversations").append(
       '<div id="' + this.getId() + '" class="conversation">\
       <div class="titre">' +
-         (num == 0 ? '' : '<div class="fermer">x</div><div class="lien">c</div>') +
+         (num == 0 ? '' : '<div class="fermer"></div><div class="lien"></div>') +
          '<span class="next">&lt;</span><span class="numPage">1</span><span class="prev">&gt;</span>\
          </div>\
       </div>'
@@ -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]
@@ -500,9 +509,16 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
             this.formateur.traitementComplet(message.pseudo) + "<span class=\"login\">(" + this.formateur.traitementComplet(message.login) +")</span>" )
          
          var XHTMLrepondA = ""
+         var debut = true
          for (var id in message.repondA)
-            XHTMLrepondA += this.formateur.traitementComplet(message.repondA[id].pseudo) + "&gt; "
-         XHTMLrepondA = "<span class=\"repondA\">" + XHTMLrepondA + "</span>"
+         {
+            if (!debut) XHTMLrepondA += ", "
+            dumpObj(message.repondA.count)
+            XHTMLrepondA += this.formateur.traitementComplet(message.repondA[id].pseudo)
+            debut = false
+         }
+         if (XHTMLrepondA != "")
+            XHTMLrepondA = "<span class=\"repondA\">" + XHTMLrepondA + "</span><span class=\"delimitationRepondA\"></span>"
          
          XHTML += 
             "<div id=\"mess" + message.id.toString(36) + "\" class=\"" + (messagePair ? "messagePair" : "messageImpair") + " message" +
@@ -512,9 +528,9 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
                (this.messages[i].systeme ? " systeme" : "") +
                (this.messages[i].ekMaster ? " ekMaster" : "") +
             "\">" +
-               "<div class=\"extraire\">&gt;</div>" +
+               "<div class=\"extraire\"></div><span class=\"entete\">" +
                "[<span class=\"date\">" + message.date + "</span>]" +
-               "<span class=\"pseudo\"><span class=\"id\" style=\"display: none\">" + message.auteurId + "</span class=\"ident\">" + identifiant + "</span>:" +
+               "<span class=\"pseudo\"><span class=\"id\" style=\"display: none\">" + message.auteurId + "</span class=\"ident\">" + identifiant + "</span></span><span class=\"delimitationEntete\"></span>" +
                XHTMLrepondA +
                "<span class=\"contenu\">" + this.formateur.traitementComplet(message.contenu, message.pseudo) + "</span>" +
             "</div>"
@@ -522,16 +538,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 +636,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
@@ -842,7 +860,7 @@ Messages.prototype.supprimerConversation = function(num)
 Messages.prototype.ajusterLargeurConversations = function()
 {\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 + "%")
+   $("#conversations .conversation").css("width", (100 / this.conversations.length) - 0.001 + "%")
 }
 
 /**
@@ -914,7 +932,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