FIX#64
[euphorik.git] / js / pageMinichat / conversation.js
index 70f8d2b..f821f9c 100644 (file)
@@ -56,41 +56,43 @@ euphorik.Conversation = function(conversations, num) {
          '<div class="titre">' +\r
             (reverse ? messageRacineXHTML : "") +\r
             '<div class="nav">' +\r
-               (num === 0 ? '' : '<div class="fermer"></div><div class="lien"></div><div class="reduire"></div>') +\r
+               (this.num === 0 ? '' : '<div class="fermer"></div><div class="creerLien"></div>') + //</div><div class="reduire">\r
                '<span class="next">&lt;</span><span class="numPage">1</span><span class="prev">&gt;</span>' +\r
             '</div>' +\r
             (reverse ? "" : messageRacineXHTML) +\r
          '</div>' +\r
          (reverse ? "" : messagesXHTML) +\r
-         '<div class="messageReduit" style="height:200px; width:50px"></div>' +\r
+         //'<div class="messageReduit" style="height:200px; width:50px"></div>' +\r
       '</td>';\r
     \r
    $("#conversations tr").append(XHTML);\r
    \r
+   // les infos bulles\r
+   this.util.infoBulle("Aller à la première page", $("#" + this.getId() + " .titre .numPage"), euphorik.Util.positionBulleType.haut);\r
+   if (this.num !== 0) {\r
+      this.util.infoBulle("Créer un lien vers la conversation", $("#" + this.getId() + " .titre .creerLien"));\r
+      this.util.infoBulle("Fermer la conversation", $("#" + this.getId() + " .titre .fermer"));\r
+   }\r
+   \r
     // les différents événements liés à la conversation\r
    var thisConversation = this;   \r
-   $("#" + this.getId() + " .titre .lien").click(function() {\r
+   $("#" + this.getId() + " .titre .creerLien").click(function() {\r
         thisConversation.util.replaceSelection(\r
            $("form#posterMessage input.message")[0],\r
            "{" + thisConversation.client.conversations[thisConversation.num - 1].root.toString(36) + "}"\r
         );\r
    });   \r
    $("#" + this.getId() + " .titre .fermer").click(function() {\r
-      thisConversation.conversations.supprimerConversation(num);\r
+      thisConversation.conversations.supprimerConversation(thisConversation.num);\r
    });\r
+   /*\r
    $("#" + this.getId() + " .titre .reduire").click(function() {\r
       $("#" + thisConversation.getId() + " .titre, #" + thisConversation.getId() + " .messages").hide()\r
       var e = $("#" + thisConversation.getId() +  " .messageReduit");\r
       e.get()[0].innerHTML = thisConversation.getMessageReduit()\r
-   });\r
-\r
-   this.util.infoBulle("Aller à la première page", $("#" + this.getId() + " .numPage"), euphorik.Util.positionBulleType.haut);\r
-   if (num !== 0) {\r
-      this.util.infoBulle("Créer un lien vers la conversation", $("#" + this.getId() + " .lien"));\r
-      this.util.infoBulle("Fermer la conversation", $("#" + this.getId() + " .fermer"));\r
-   }\r
+   });*/\r
 };\r
-\r
+/*\r
 euphorik.Conversation.prototype.getMessageReduit = function() {\r
    return '' +\r
       '<svg:svg version="1.1" baseProfile="full" width="100px" height="200px">' +\r
@@ -99,7 +101,7 @@ euphorik.Conversation.prototype.getMessageReduit = function() {
             'Blabla blablablabla bla blabla ..' +\r
          '</svg:text>' +\r
       '</svg:svg>';\r
-}\r
+}*/\r
 \r
 /**\r
   * @racine un message représentant la racine de la conversation, vaut undefined pour la conversation générale\r
@@ -284,6 +286,7 @@ euphorik.Conversation.prototype.flush = function() {
 \r
 /**\r
   * Attache des événements à un message donné.\r
+  * Utilisé lorsqu'un message est ajouté au document HTML.\r
   * @element le message du DOM\r
   */\r
 euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {\r
@@ -296,7 +299,7 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
    \r
    var thisConversation = this;\r
    $(".lienConv", element).click(\r
-      function(event) {          \r
+      function(event) {\r
          // FIXME : ya pas mieux ?\r
          var racine = $(event.target).text();\r
          thisConversation.conversations.ouvrirConversation(parseInt(racine.substring(1, racine.length - 1), 36));\r
@@ -307,31 +310,34 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
    $(element).click(function(event) {\r
       if ($(event.target).is("a") || $(event.target).parents("#outilsBan").length > 0) {\r
          return;\r
+      } else if ($(event.target).is(".extraire")) {\r
+         thisConversation.util.outilsMessage.hide();\r
+         thisConversation.conversations.ouvrirConversation(idMess);\r
+         return;\r
+      } else if ($(event.target).is(".extraireCompletement")) {\r
+         thisConversation.util.outilsMessage.hide();\r
+         thisConversation.conversations.ouvrirConversation(thisConversation.messagesParId[idMess].racineId);\r
+         return;\r
       }\r
 \r
       // met ou enlève la mise en evidence du message\r
       thisConversation.conversations.toggleMessageRepond(thisConversation.messagesParId[idMess]);\r
-         \r
+\r
       // donne le focus à la ligne de saisie\r
       $("form input.message").focus();\r
-   }).hover(function(event) { // affiche les outils liées au message\r
+   }).hover(function() { // affiche les outils liées au message\r
       var top = $(this).offset().top\r
-      var left = $(this).offset().left + $(this).width() - thisConversation.util.outilsMessage.width()\r
-      thisConversation.util.outilsMessage.css("top", top + 1).css("left", left).prependTo(this).show();\r
-      //TODO\r
-      //\r
-      // extraction d'une conversation\r
-      /*if ($(event.target).is(".extraire")) {\r
-         thisConversation.conversations.ouvrirConversation(idMess);\r
-         return;\r
-      }\r
-\r
-      if ($(event.target).is(".extraireCompletement")) {\r
-         thisConversation.conversations.ouvrirConversation(thisConversation.messagesParId[idMess].racineId);\r
-         return;\r
-      }*/\r
-   }, function(event) {\r
-      thisConversation.util.outilsMessage.hide();\r
+      var left = $(this).offset().left + $(this).outerWidth() - thisConversation.util.outilsMessage.largeur\r
+      $(".extraire", thisConversation.util.outilsMessage).unbind();\r
+      $(".extraireCompletement", thisConversation.util.outilsMessage).unbind();\r
+      // TODO : ces deux appels devraient se trouver dans "PageMinichat" lors de la création de thisConversation.util\r
+      // malheureusement lors de la modification du DOM (suppression des conversations) les événements liés sont supprimés\r
+      thisConversation.util.infoBulle("Extraction de la conversation à partir de ce message", $(".extraire", thisConversation.util.outilsMessage));\r
+      thisConversation.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", thisConversation.util.outilsMessage));\r
+      thisConversation.util.outilsMessage.css("top", top).css("left", left).prependTo(this).show();\r
+      thisConversation.util.outilsMessage.largeur = thisConversation.util.outilsMessage.outerWidth();\r
+   }, function() {\r
+      thisConversation.util.outilsMessage.hide()\r
    });\r
 \r
    // mise en évidence de la conversation\r
@@ -440,8 +446,7 @@ euphorik.Conversation.prototype.afficherConversation = function(id) {
 };\r
 \r
 /**\r
-  * Supprime une conversation.\r
-  * Ne l'enlève pas du DOM.\r
+  * Supprime la conversation du DOM.\r
   */\r
 euphorik.Conversation.prototype.supprimer = function() {\r
    $("#" + this.getId()).remove();\r