X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=js%2FpageAdmin.js;h=01871182c2dea0f24a50edbdb3ee9df04a248977;hb=fa5ea78cb2bd127b797f161d9bc922469a55375d;hp=97c024367005a9d1f98b682ade66e9517a91c68d;hpb=5db18ca51ea988501309b589aa1b3c342451050a;p=euphorik.git diff --git a/js/pageAdmin.js b/js/pageAdmin.js index 97c0243..0187118 100644 --- a/js/pageAdmin.js +++ b/js/pageAdmin.js @@ -14,7 +14,9 @@ // 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 . +// along with Euphorik. If not, see . +// +// La page d'administation, ne peut être accédée que par les ekMaster (admins) function PageAdmin(client, formateur, util) { @@ -25,13 +27,18 @@ function PageAdmin(client, formateur, util) this.util = 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 '

Trolls

\ + return '\ +

Trolls

\

Un troll est un sujet à débat, en général une question, affiché sur la page principale.

\

Chaque semaine un troll est choisi au hasard parmis les trolls proposés et devient le troll de la semaine.

\
\ @@ -44,14 +51,19 @@ PageAdmin.prototype.contenu = function()

IPs bannies

\
' } - + +/** + * 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.trolls = new Trolls(this.client, this.util, this.formateur) this.waitEvent() this.majIPs() @@ -65,12 +77,22 @@ PageAdmin.prototype.charger = function() } ) } - + +/** + * Interface des pages. + */ PageAdmin.prototype.decharger = function() { - this.pageEvent.stopAttenteCourante() + 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 }, + "troll_deleted" : function(data){ thisPageAdmin.trolls.supprimerTrollEvent }, + "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