ADD Bannissement (sans le slap)
[euphorik.git] / js / pageMinichat.js
index 2be7ca5..94f6e7c 100755 (executable)
@@ -40,6 +40,21 @@ PageMinichat.prototype.charger = function()
    \r
    this.util.setCaretToEnd(jQuery("form input.message")[0])
 
+   // les outils de bannissement (uniquement pour les ekMaster)
+   if (this.client.ekMaster)
+   {    
+      jQuery("body").append(
+         "<div id=\"outilsBan\"><img id=\"ban\" alt=\"Ban de 3 jours\" src=\"img/ban.gif\" /><img id=\"kick\" alt=\"Ban de 15min\" src=\"img/kick.gif\" /><img id=\"slap\" alt=\"Avertissement\" src=\"img/slap.gif\" /></div>"
+      )
+      jQuery("#outilsBan").hover(
+         function(){},
+         function()
+         {
+            jQuery("#outilsBan").hide()
+         }
+      )
+   }
+
    // <smiles>
    jQuery("body").append("<div id=\"smiles\"></div>")
    // affichage des smiles
@@ -134,6 +149,7 @@ PageMinichat.prototype.decharger = function()
    this.messages.stopAttenteCourante()
    
    jQuery("body #smiles").remove()
+   jQuery("body #outilsBan").remove()
 }
 
 PageMinichat.prototype.getJSONMessage = function(pseudo, message, repondA)
@@ -209,7 +225,11 @@ PageMinichat.prototype.envoyerMessage = function(pseudo, message)
                         thisPageMinichat.messages.conversations[c].messages[m].clientARepondu = true
                   */
                }
-            }\r
+            }
+            else if (data["reply"] == "error")
+            {
+               thisPageMinichat.util.messageDialogue(data["error_message"])
+            }  \r
          }\r
       }\r
    )
@@ -239,9 +259,10 @@ function Reponse(id, pseudo, login)
   * @param pseudo
   * @param contenu
   */
-function Message(id, date, pseudo, login, contenu)
+function Message(id, auteurId, date, pseudo, login, contenu)
 {
    this.id = id
+   this.auteurId = auteurId
    this.date = date
    this.pseudo = pseudo
    this.login = login
@@ -484,7 +505,7 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
             "\">" +
                "<div class=\"extraire\">&gt;</div>" +
                "[<span class=\"date\">" + message.date + "</span>]" +
-               "<span class=\"pseudo\">" + identifiant + "</span>:" +
+               "<span class=\"pseudo\" id=\"user" + message.auteurId + "\">" + identifiant + "</span>:" +
                XHTMLrepondA +
                "<span class=\"contenu\">" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo)) + "</span>" +
             "</div>"
@@ -518,13 +539,40 @@ Conversation.prototype.flush = function(funClickOuvrirConv)
             }
          )
          
+         // les outils de bannissement (uniquement pour les ekMaster)
+         if (thisConversation.client.ekMaster)
+            jQuery(".pseudo", this).hover(
+               function(e)
+               {     
+                  var userId =  parseInt(jQuery(this).attr("id").substr(4))
+                  var element = jQuery(e.target)
+                  var h = element.height()
+                  var offset = element.offset()
+                  var outils = jQuery("#outilsBan").css("top", offset.top - 2).css("left", offset.left - 2).height(h < 16 ? 16 : h).width(element.width() + 16 * 3 + 4).show()
+                  jQuery("img", outils).unbind()
+                  jQuery("#kick", outils).click(
+                     function(e)
+                     {
+                        thisConversation.client.kick(userId)
+                     }
+                  )
+                  jQuery("#ban", outils).click(
+                     function(e)
+                     {
+                        thisConversation.client.ban(userId)
+                     }
+                  )
+               },
+               function(){}
+            )
+         
          jQuery(this).click(
             function(event)
             {
                if (jQuery(event.target).is("a")) return
                
                // l'id du message
-               idMess = jQuery(this).attr("id")
+               var idMess = jQuery(this).attr("id")
                
                // extraction d'une conversation
                if (jQuery(event.target).is(".extraire"))
@@ -611,9 +659,6 @@ function Messages(client, formateur, util)
    
    this.conversations = new Array() // les conversations, la première représente la conversation principale
    this.nouvelleConversation(0)
-
-// Obsolète
-   //this.idDernierMessage = null // l'id du dernier message connu
    
    // l'objet JSONHttpRequest représentant la connexion d'attente
    this.attenteCourante = null
@@ -690,6 +735,7 @@ Messages.prototype.ajouterMessage = function(element, numConversation)
    
    var message = new Message(
       id,      
+      element["user_id"],
       element["date"],
       element["nick"],
       element["login"],
@@ -849,8 +895,6 @@ Messages.prototype.rafraichirMessages = function(vider)
       
    this.stopAttenteCourante()
    
-   /*if (vider)
-      this.idDernierMessage = null*/
    if (vider)
       for (var i = 0; i < this.conversations.length; i++)
          this.conversations[i].idDernierMessageAffiche = 0\r