ADD fin de 'communication.js'
[euphorik.git] / js / pageMinichat / conversation.js
index 238976b..70f8d2b 100644 (file)
@@ -62,10 +62,28 @@ euphorik.Conversation = function(conversations, num) {
             (reverse ? "" : messageRacineXHTML) +\r
          '</div>' +\r
          (reverse ? "" : messagesXHTML) +\r
+         '<div class="messageReduit" style="height:200px; width:50px"></div>' +\r
       '</td>';\r
     \r
    $("#conversations tr").append(XHTML);\r
    \r
+    // les différents événements liés à la conversation\r
+   var thisConversation = this;   \r
+   $("#" + this.getId() + " .titre .lien").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
+   });\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
@@ -73,6 +91,16 @@ euphorik.Conversation = function(conversations, num) {
    }\r
 };\r
 \r
+euphorik.Conversation.prototype.getMessageReduit = function() {\r
+   return '' +\r
+      '<svg:svg version="1.1" baseProfile="full" width="100px" height="200px">' +\r
+         '<svg:image x="10" y="10" height="10" width="10" class="fermer" />' +\r
+         '<svg:text transform="rotate(-90)" y="15" x="-200" >' +\r
+            'Blabla blablablabla bla blabla ..' +\r
+         '</svg:text>' +\r
+      '</svg:svg>';\r
+}\r
+\r
 /**\r
   * @racine un message représentant la racine de la conversation, vaut undefined pour la conversation générale\r
   */\r
@@ -139,32 +167,6 @@ euphorik.Conversation.prototype.setPage = function(pageCourante, dernierePage) {
    $("#" + this.getId() + " .prev").css("display", dernierePage ? "none" : "inline");\r
 };\r
 \r
-/**\r
-  * Evenement déclanché lors de l'insertion du lien de la conversation dans le message courant.\r
-  */\r
-euphorik.Conversation.prototype.eventLien = function(fun) {\r
-   var thisConversation = this;\r
-   \r
-   $("#" + this.getId() + " .titre .lien").click(\r
-      function() {\r
-         fun(thisConversation.num);\r
-      }\r
-   );\r
-};\r
-\r
-/**\r
-  * Evenement déclanché lors de la fermeture de la conversation.\r
-  */\r
-euphorik.Conversation.prototype.eventFermer = function(fun) {\r
-   var thisConversation = this;\r
-   \r
-   $("#" + this.getId() + " .titre .fermer").click(\r
-      function() {\r
-         fun(thisConversation.num);\r
-      }\r
-   );\r
-};\r
-\r
 /**\r
   * @funNext appelé lorsque l'on passe à la page suivante (de 2 à 1 par exemple)\r
   * @funPrev appelé lorsque l'on passe à la page précédente (de 1 à 2 par exemple)\r
@@ -250,8 +252,8 @@ euphorik.Conversation.prototype.flush = function() {
          messagePair = !messagePair;\r
       }\r
    });\r
-      \r
-   var DOM = $(XHTML);\r
+   \r
+   var DOM = $(XHTML);       \r
        \r
    // pour chaque nouveau message au niveau du document on lui assigne ses événements\r
    DOM.each(function() { thisConversation.attacherEventsSurMessage(this); });\r
@@ -287,9 +289,10 @@ euphorik.Conversation.prototype.flush = function() {
 euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {\r
    // l'id du message\r
    var idMess = this.idMessageFromString($(element).attr("id"));\r
-\r
-   this.util.infoBulle("Extraction de la conversation à partir de ce message", $(".extraire", element));\r
-   this.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", element));\r
+   \r
+   if (idMess in this.conversations.messagesRepond) {\r
+      $(element).addClass("repondEnEvidence");\r
+   }\r
    \r
    var thisConversation = this;\r
    $(".lienConv", element).click(\r
@@ -301,30 +304,35 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
       }\r
    );\r
        \r
-   $(element).click(\r
-      function(event) {\r
-         if ($(event.target).is("a") || $(event.target).parents("#outilsBan").length > 0) {\r
-            return;\r
-         }\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
+   $(element).click(function(event) {\r
+      if ($(event.target).is("a") || $(event.target).parents("#outilsBan").length > 0) {\r
+         return;\r
+      }\r
 \r
-         // met ou enlève la mise en evidence du message\r
-         thisConversation.conversations.toggleMessageRepond(thisConversation.messagesParId[idMess]);\r
+      // met ou enlève la mise en evidence du message\r
+      thisConversation.conversations.toggleMessageRepond(thisConversation.messagesParId[idMess]);\r
          \r
-         // donne le focus à la ligne de saisie\r
-         $("form input.message").focus();\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
+      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
+\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
+   });\r
 \r
    // mise en évidence de la conversation\r
    $(".entete", element).hover(\r
@@ -383,7 +391,7 @@ euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {
             );\r
          },\r
          function() {\r
-            $("#outilsBan", this).hide();\r
+            thisConversation.util.outilsBan.hide();\r
          }\r
       );\r
    }\r