MOD french -> english (2)
[euphorik.git] / js / pageMinichat / pageMinichat.js
index 703931c..0b9c5b3 100755 (executable)
  
 /*jslint laxbreak:true */
 
-euphorik.PageMinichat = function(client, formateur, util, communication) {
+euphorik.PageMinichat = function(client, formater, util, communication) {
    this.nom = "minichat";
    
    this.client = client;
-   this.formateur = formateur;
+   this.formater = formater;
    this.util = util;
    this.communication = communication;
-   this.commandes = new euphorik.Commandes(this.client);
+   this.commandes = new euphorik.Commandes(this.client, this, this.util, this.formater);
    
    // permet d'éviter d'envoyer plusieurs messages simultanément en pressant
    // rapidement sur "enter" par exemple
    this.envoieMessageEnCours = false;
-   
-   this.regexMessageTagMatch = /\{.*?\}>/g;
-   this.regexMessageTagReplace =  /^(.*?\{.*?\}>)*/;
 };
 
 euphorik.PageMinichat.prototype.contenu = function() {
@@ -63,18 +60,18 @@ euphorik.PageMinichat.prototype.classes = function() {
    return this.client.chatOrder === "reverse" ? "orderReverse" : "orderChrono";
 };
 
-euphorik.PageMinichat.prototype.charger = 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.fragment);   
+   this.conversations = new euphorik.Conversations(this.client, this.formater, this.util, this.communication, this.fragment);   
    
    this.chargerConversationsFragment();
    
    this.conversations.rafraichirMessages(true);   
-    
+
    this.util.setCaretToEnd($("form#posterMessage input.message")[0]);
 
    // les outils de bannissement (uniquement pour les ekMaster)
@@ -85,7 +82,7 @@ euphorik.PageMinichat.prototype.charger = function() {
          ' <span class="spacer"></span>' +
          ' <form action=""><p><input id="raison" name="raison" type="text" size="10" maxlength="200"></input></p></form>' +
          ' <img id="ban" src="img/ban.gif" alt="Ban de 3 jours" />' +
-         ' <img id="kick" src="img/kick.gif" alt="Ban de 15min" />' +
+         ' <img id="kick" src="img/kick.gif" alt="Ban de 15 min" />' +
          ' <img id="slap" src="img/slap.gif" alt="Avertissement" />' +
          '</span>'
       );
@@ -97,12 +94,8 @@ euphorik.PageMinichat.prototype.charger = function() {
    }
    
    // la barre d'outils liée à chaque message
-   this.util.outilsMessage = $('<div id="outilsMess"><div class="extraire"></div><div class="extraireCompletement"></div></div>').prependTo("#page.minichat");
-   this.util.outilsMessage.largeur = this.util.outilsMessage.outerWidth(); // TODO : gros cheat pas beau :O
-   //console.log(this.util.outilsMessage.largeur)
-   
-   this.util.infoBulle("Ouvrir la conversation liée au troll de la semaine", $("#trollCourant .troll"));
-   
+   this.util.outilsMessage = $('<div id="outilsMess"><div class="extraire"></div><div class="extraireCompletement"></div></div>').prependTo("#page.minichat");   
+   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() {
@@ -127,12 +120,12 @@ euphorik.PageMinichat.prototype.charger = function() {
    // <smiles>
    $("body").append('<div id="smiles"></div>');
    // affichage des smiles
-   $("#smiles").append(this.formateur.getSmilesHTML()).children().each(
+   $("#smiles").append(this.formater.getSmilesHTML()).children().each(
       function(i) {
          var opacityBase = $(this).css("opacity");
          $(this).click(
             function() {
-               thisPage.util.replaceSelection($("form#posterMessage input.message")[0], thisPage.formateur.smiles[$(this).attr("class")][0].source.replace(/\\/g, ""));
+               thisPage.util.replaceSelection($("form#posterMessage input.message")[0], thisPage.formater.smiles[$(this).attr("class")][0].source.replace(/\\/g, ""));
             }
          ).hover(
             function() { $(this).animate({opacity: 1}, 200); },
@@ -167,10 +160,10 @@ euphorik.PageMinichat.prototype.charger = function() {
          var retCommandes = thisPage.commandes.exec(message);         
          switch (retCommandes[0]) {
             case euphorik.Commandes.statut.pas_une_commande :
-               thisPage.envoyerMessage($("form#posterMessage input.pseudo").val(), message);
+               thisPage.envoyerMessage(message);
                break;
             case euphorik.Commandes.statut.erreur_commande :
-               thisPage.util.messageDialogue(retCommandes[1], euphorik.Util.messageType.erreur);
+               thisPage.util.messageDialog(retCommandes[1], euphorik.Util.messageType.erreur);
                break;
             case euphorik.Commandes.statut.ok :
                $("form#posterMessage input.message").val("");
@@ -217,45 +210,50 @@ euphorik.PageMinichat.prototype.chargerConversationsFragment = function() {
    } catch(e) {
       ;; console.log(e)
    }
-}
+};
   
 euphorik.PageMinichat.prototype.decharger = function() {
    this.conversations.comet.stopAttenteCourante();
    
    $("body #smiles").remove();
    
-    this.fragment.delVal("conv")
+    this.fragment.delVal("conv");
 };
 
-euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) {   
-   var thisPageMinichat = this;
+/**
+  * Envoie un nouve message donné, le pseudo utilisé est celui se trouvant
+  * dans la zone de saisie (form#posterMessage input.pseudo).
+  */
+euphorik.PageMinichat.prototype.envoyerMessage = function(message) {   
+   var thisPageMinichat = this;   
+   var pseudo = $("form#posterMessage input.pseudo").val();
 
    // (un pseudo vide est autorisé)
-   pseudo = this.formateur.filtrerInputPseudo(pseudo);
+   pseudo = this.formater.filtrerInputPseudo(pseudo);
    
    if (pseudo === euphorik.conf.pseudoDefaut) {
-      this.util.messageDialogue("Le pseudo ne peut pas être " + euphorik.conf.pseudoDefaut);
+      this.util.messageDialog("Le pseudo ne peut pas être " + euphorik.conf.pseudoDefaut);
       return;
    }
    
    message = message.trim();
    if (!message) {
-      this.util.messageDialogue("Le message est vide");
+      this.util.messageDialog("Le message est vide");
       return;
    }
+   
+   this.client.pseudo = pseudo;
 
    if (!this.client.authentifie()) {
       if (!this.client.enregistrement()) {
-         this.util.messageDialogue("login impossible");
+         this.util.messageDialog("login impossible");
          return;
       }
    }
       
-   this.client.pseudo = pseudo;
-   
    // évite le double post
    if (this.envoieMessageEnCours) {
-      this.util.messageDialogue("Message en cours d'envoie...");
+      this.util.messageDialog("Message en cours d'envoie...");
       return;
    }
    this.envoieMessageEnCours = true;
@@ -264,23 +262,12 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) {
       "put_message",
       this.getJSONMessage(pseudo, message),
       function() {
-         // 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) {
-            thisPageMinichat.conversations.conversations.each(function(i, conv) {
-               var mess = conv.messagesParId[messId];
-               if (mess) {
-                  mess.clientARepondu = true;
-                  $("#conversations #" + mess.getId(conv.getId())).addClass("repondu")
-               }
-            });
-         });
          $("form#posterMessage input.message").val("");
          thisPageMinichat.conversations.enleverMessagesRepond(); 
          thisPageMinichat.envoieMessageEnCours = false;
       },
       function(data) {
-         thisPageMinichat.util.messageDialogue(data.error_message);
+         thisPageMinichat.util.messageDialog(data.error_message);
          thisPageMinichat.envoieMessageEnCours = false;
       },
       true,