// GNU General Public License for more details.\r
//\r
// You should have received a copy of the GNU General Public License\r
-// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
+// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.\r
+// \r
+// La page d'administation, ne peut être accédée que par les ekMaster (admins)
function PageAdmin(client, formateur, util)
{
this.util = util
this.pageEvent = new PageEvent("admin", this.util)
-
+ \r
+ // le timer qui rappelle periodiquement le rafraichissement des IP bannies
this.timeoutIDmajIPs = null
}
-
+\r
+/**\r
+ * Interface des pages.\r
+ */
PageAdmin.prototype.contenu = function()
{
- return '<h1>Trolls</h1>\
+ return '\\r
+ <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">\
<h1>IPs bannies</h1>\
<div id="ips"></div>'
}
-
+\r
+/**\r
+ * Interface des pages.\r
+ */
PageAdmin.prototype.charger = function()
{
$("#page form#nouveauTroll").submit(function(){return false})
var thisPage = this
+ \r
+ // la liste des trolls proposés par les ekMasters
+ this.trolls = new Trolls(this.client, this.util, this.formateur)\r
- this.trolls = new Trolls(this.client, this.util, this.formateur)
this.waitEvent()
this.majIPs()
}
)
}
-
+\r
+/**\r
+ * Interface des pages.\r
+ */
PageAdmin.prototype.decharger = function()
{
- this.pageEvent.stopAttenteCourante()
+ this.pageEvent.stopAttenteCourante()\r
+ \r
+ // supprime le rafraichissement période des ips\r
+ if (this.timeoutIDmajIPs)\r
+ clearTimeout(this.timeoutIDmajIPs)
}
-
+\r
+/**\r
+ * Post un troll, le contenu est lu à partir de "input.troll".\r
+ */
PageAdmin.prototype.posterTroll = function()
{
var thisPageAdmin = this
}
// 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)
}
}
)
}
-
+\r
+/**\r
+ * Débannie une ip donnée.\r
+ */
PageAdmin.prototype.deban = function(ip)
{
var thisPageAdmin = this
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"])
}
}
}
)
}
-
+\r
+/**\r
+ * Attente d'événement de la part du serveur.\r
+ */
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 },
+ "troll_deleted" : function(data){ thisPageAdmin.trolls.supprimerTrollEvent },
+ "banned_ips_refresh" : function(data){ thisPageAdmin.majIPs() },
+ "error" :
+ function(data)
+ {
thisTrolls.util.messageDialogue(data["error_message"])
- break
- }
+ }
}
)
}
///////////////////////////////////////////////////////////////////////////////////////////////////
-
+/**\r
+ * Représente un troll, pas grand chose finalement.\r
+ */
function Troll(content, author)
{
this.content = content