* Création d'un script ruby dans /tool pour apposer automatiquement une entête concernant la licence voir : http://www.gnu.org/licenses/gpl-howto.fr.html\r
* Eventuellement mettre à jour automatiquement le Copyright (date) et les personnes responsables \r
* Système de censure par les admins (suppression d'un message)\r
+ * Ne supprime pas réellement le message mais le censure\r
+ * L'admin vois toujours le message (grisé, ou tracé)\r
+ * Les utilisateurs normaux voient à la place "<censuré, raison : blabla>"\r
* Intégrer les totoz : http://www.totoz.eu/ (avec une limite de 3 par messages par exemple) \r
* avoir une option pour les cacher ou les voir\r
* Masquer systématiquement ceux qui dépassent une certaine taille en pixel\r
// 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
///////////////////////////////////////////////////////////////////////////////////////////////////
-
+/**\r
+ * Représente un troll, pas grand chose finalement.\r
+ */
function Troll(content, author)
{
this.content = content