REPORT de la branche 1.0
[euphorik.git] / js / pageAdmin.js
index 97c0243..6f3b3db 100644 (file)
@@ -1,20 +1,22 @@
-// coding: utf-8\r
-// Copyright 2008 Grégory Burri\r
-//\r
-// This file is part of Euphorik.\r
-//\r
-// Euphorik is free software: you can redistribute it and/or modify\r
-// it under the terms of the GNU General Public License as published by\r
-// the Free Software Foundation, either version 3 of the License, or\r
-// (at your option) any later version.\r
-//\r
-// Euphorik is distributed in the hope that it will be useful,\r
-// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-// GNU General Public License for more details.\r
-//\r
-// You should have received a copy of the GNU General Public License\r
+// coding: utf-8
+// Copyright 2008 Grégory Burri
+//
+// This file is part of Euphorik.
+//
+// Euphorik is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Euphorik is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
 // along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.
+// 
+// La page d'administation, ne peut être accédée que par les ekMaster (admins)
 
 function PageAdmin(client, formateur, util)
 {
@@ -26,12 +28,17 @@ function PageAdmin(client, formateur, util)
    
    this.pageEvent = new PageEvent("admin", this.util)
    
+   // le timer qui rappelle periodiquement le rafraichissement des IP bannies
    this.timeoutIDmajIPs = null
 }
 
+/**
+  * Interface des pages.
+  */
 PageAdmin.prototype.contenu = function()
 {
-   return '<h1>Trolls</h1>\
+   return '\
+   <h1>Trolls</h1>\
    <p>Un troll est un sujet à débat, en général une question, affiché sur la page principale.</p>\
    <p>Chaque semaine un troll est choisi au hasard parmis les trolls proposés et devient le troll de la semaine.</p>\
    <form action="" id="nouveauTroll">\
@@ -45,13 +52,18 @@ PageAdmin.prototype.contenu = function()
    <div id="ips"></div>'
 }
 
+/**
+  * Interface des pages.
+  */
 PageAdmin.prototype.charger = function()
 {      
    $("#page form#nouveauTroll").submit(function(){return false})
       
    var thisPage = this
    
+   // la liste des trolls proposés par les ekMasters
    this.trolls = new Trolls(this.client, this.util, this.formateur)
+   
    this.waitEvent()
    
    this.majIPs()
@@ -66,11 +78,21 @@ PageAdmin.prototype.charger = function()
    )
 }
 
+/**
+  * Interface des pages.
+  */
 PageAdmin.prototype.decharger = function()
 {
    this.pageEvent.stopAttenteCourante()
+   
+   // supprime le rafraichissement période des ips
+   if (this.timeoutIDmajIPs)
+      clearTimeout(this.timeoutIDmajIPs)
 }
 
+/**
+  * Post un troll, le contenu est lu à partir de "input.troll".
+  */
 PageAdmin.prototype.posterTroll = function()
 {
    var thisPageAdmin = this
@@ -195,13 +217,16 @@ PageAdmin.prototype.majIPs = function()
                }
                
                // rafraichissement toutes les minutes (je sais c'est mal)
-               // le problème est le rafraichissement des temps restant de bannissement qui doit êtrew fait du coté client
+               // le problème est le rafraichissement des temps restant de bannissement qui doit être fait du coté client
                thisPageAdmin.timeoutIDmajIPs = setTimeout(function(){ thisPageAdmin.majIPs() }, 60 * 1000)
             }
       }
    )
 }
 
+/**
+  * Débannie une ip donnée.
+  */
 PageAdmin.prototype.deban = function(ip)
 {
    var thisPageAdmin = this
@@ -224,54 +249,43 @@ PageAdmin.prototype.deban = function(ip)
             function(data)
             {
                ;; dumpObj(data)
-               switch(data["reply"])
+               if(data["reply"] == "error")
                {
-                  case "error" :
-                     thisPageAdmin.util.messageDialogue(data["error_message"])
-                     break
-                  case "ok" :
-                     // obsolète : plus besoin
-                     /* thisPageAdmin.majIPs() */ 
-                     break 
+                  thisPageAdmin.util.messageDialogue(data["error_message"])
                }
             }
       }
    )
 }
 
+/**
+  * Attente d'événement de la part du serveur.
+  */
 PageAdmin.prototype.waitEvent = function()
 {
    var thisPageAdmin = this
          
    this.pageEvent.waitEvent(
       function() { return { "last_troll" : thisPageAdmin.trolls.dernierTroll }},
-      function(data)
       {
-         switch (data["reply"])
-         {
-            case "troll_added" :
-               thisPageAdmin.trolls.ajouterTrollEvent(data)
-               break
-            case "troll_modified" :
-               thisPageAdmin.trolls.modifierTrollEvent(data)
-               break
-            case "troll_deleted" :
-               thisPageAdmin.trolls.supprimerTrollEvent(data)
-               break
-            case "banned_ips_refresh" :
-               thisPageAdmin.majIPs()
-               break
-            case "error" :
+         "troll_added" : function(data){ thisPageAdmin.trolls.ajouterTrollEvent(data) },
+         "troll_modified" : function(data){ thisPageAdmin.trolls.modifierTrollEvent(data) },
+         "troll_deleted" : function(data){ thisPageAdmin.trolls.supprimerTrollEvent(data) },
+         "banned_ips_refresh" : function(data){ thisPageAdmin.majIPs() },
+         "error" :
+            function(data)
+            {
                thisTrolls.util.messageDialogue(data["error_message"])
-               break
-         }
+            }
       }
    )
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-
+/**
+  * Représente un troll, pas grand chose finalement.
+  */
 function Troll(content, author)
 {
    this.content = content