MOD amélioration de l'affichage des outils des messages (extraction) (pas fini)
[euphorik.git] / js / pageMinichat / pageMinichat.js
index 2283acb..d289a99 100755 (executable)
@@ -35,7 +35,7 @@ euphorik.PageMinichat = function(client, formateur, util) {
 };
 
 euphorik.PageMinichat.prototype.contenu = function() {
-   // le fait que tout soit collé est fait exprès, permet d'éviter d'avoir des espaces supplémentaires entre les spans'
+   // le fait que tout soit collé est fait exprès, permet d'éviter d'avoir des espaces supplémentaires entre les spans
    var formulaireXHTML = '' +
       '<form method="post" action="" id ="posterMessage">' +
       ' <p>' +
@@ -64,18 +64,21 @@ euphorik.PageMinichat.prototype.classes = function() {
 
 euphorik.PageMinichat.prototype.charger = function() {   
    thisPage = this;
-
+   
    $("#posterMessage input.pseudo").val(this.client.pseudo);
    
    // cet appel ne doit pas être fait avant l'appel à 'charger'
-   this.conversations = new euphorik.Conversations(this.client, this.formateur, this.util);
+   this.conversations = new euphorik.Conversations(this.client, this.formateur, this.util, this.fragment);   
    
-   this.conversations.rafraichirMessages(true);
+   this.chargerConversationsFragment();
    
+   this.conversations.rafraichirMessages(true);   
+    
    this.util.setCaretToEnd($("form#posterMessage input.message")[0]);
 
    // les outils de bannissement (uniquement pour les ekMaster)
    if (this.client.ekMaster) {    
+      // TODO : augmentation un peu space, à revoir
       this.util.outilsBan = $(
          '<span id="outilsBan">' +
          ' <span class="spacer"></span>' +
@@ -92,11 +95,23 @@ euphorik.PageMinichat.prototype.charger = function() {
       this.util.infoBulle("La raison", $("input", this.util.outilsBan));
    }
    
+   // la barre d'outils liée à chaque message
+   this.util.outilsMessage = $('<div class="outilsMess"><div class="extraire"></div><div class="extraireCompletement"></div></div>').prependTo("#page.minichat")
+   this.util.infoBulle("Extraction de la conversation à partir de ce message", $(".extraire", this.util.outilsMessage));
+   this.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", this.util.outilsMessage));
+   
    this.util.infoBulle("Ouvrir la conversation liée au troll de la semaine", $("#trollCourant .troll"));
    
    this.util.infoBulle("Cliquer sur les messages pour les enlevers de la liste",
       $("form#posterMessage #repondA").hover(
-         function() { thisPage.util.afficherBoite($(".messages", this), $(this), euphorik.Util.positionTypeX.centre, euphorik.Util.positionTypeY.bas); },
+         function() {
+            thisPage.util.afficherBoite(
+               $(".messages", this),
+               $(this),
+               euphorik.Util.positionTypeX.centre,
+               thisPage.client.chatOrder === "reverse" ? euphorik.Util.positionTypeY.bas : euphorik.Util.positionTypeY.haut
+            );
+         },
          function() { $(".messages", this).hide(); }
       ).click(
          function(e) {
@@ -136,7 +151,7 @@ euphorik.PageMinichat.prototype.charger = function() {
       }
    );
    // </smiles>
-   
+      
    // événements
    var nouveauMessage = 
       function() {  
@@ -187,12 +202,31 @@ euphorik.PageMinichat.prototype.charger = function() {
    );
 };
 
+euphorik.PageMinichat.prototype.chargerConversationsFragment = function() {
+   var thisPageMinichat = this; 
+   
+   // attention : "conv" doit être un tableau d'entier
+   try {
+      var conv = this.fragment.getVal("conv");
+      if (conv) {
+         conv.each(function(i, racine) {
+            thisPageMinichat.client.ajouterConversation(racine)
+         });
+      }
+   } catch(e) {
+      ;; console.log(e)
+   }
+}
+  
 euphorik.PageMinichat.prototype.decharger = function() {
    this.conversations.comet.stopAttenteCourante();
    
    $("body #smiles").remove();
+   
+    this.fragment.delVal("conv")
 };
 
+
 euphorik.PageMinichat.prototype.getJSONMessage = function(pseudo, message) {
    var repondA = [];
    objectEach(this.conversations.messagesRepond, function(id) {
@@ -251,7 +285,7 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) {
          xmlHttpRequest.setRequestHeader("X-Requested-With", "");
       },
       success : function(data, textStatus) {         
-         if(data.reply === "ok") {           
+         if(data.reply === "ok") {
             // TODO : revoir cette partie
             // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ?
             objectEach(thisPageMinichat.conversations.messagesRepond, function(messId) {
@@ -259,10 +293,9 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) {
                   var mess = conv.messagesParId[messId];
                   if (mess) {
                      mess.clientARepondu = true;
+                     $("#conversations #" + mess.getId(conv.getId())).addClass("repondu")
                   }
                });
-               // TODO : ca sert à qque chose ?
-               //$("#conversations div#" + thisPageMinichat.conversations.messagesRepond[messId].getId()).addClass("repondu")
             });
             
             $("form#posterMessage input.message").val("");