- switch (data["reply"])
- {
- case "troll_added" :
- var XHTML = ""
- for (var i = 0; i < data["trolls"].length; i++)
- {
- XHTML +=
- '<div id="troll' + data["trolls"][i]["troll_id"] + '" class="troll">' +
- '<span class="content">' + thisTrolls.formateur.traitementComplet(data["trolls"][i]["content"], data["trolls"][i]["author"]) + '</span>' +
- '<span class="author">' + thisTrolls.formateur.traitementComplet(data["trolls"][i]["author"]) + '</span>' +
- (data["trolls"][i]["author_id"] == thisTrolls.client.id ? '<span class="editTroll">éditer</span><span class="delTroll">Supprimer</span>' : '') +
- '</div>'
+ "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);
+ }
+ }
+ );
+};
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Représente un troll, pas grand chose finalement.
+ */
+euphorik.Troll = function(content, author) {
+ this.content = content;
+ this.author = author;
+};
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+euphorik.Trolls = function(client, util, formateur) {
+ this.client = client;
+ this.util = util;
+ this.formateur = formateur;
+ this.dernierTroll = 0;
+
+ this.trolls = {};
+};
+
+euphorik.Trolls.prototype.ajouterTrollEvent = function(data) {
+ var thisTrolls = this;
+
+ var XHTML = "";\r
+ data.trolls.each(function(trollData) {
+ var troll = new euphorik.Troll(trollData.content, trollData.author);
+ var trollId = trollData.troll_id;
+ thisTrolls.trolls[trollId] = troll;
+
+ XHTML +=
+ '<div id="troll' + trollId + '" class="troll">' +
+ '<span class="content">' + thisTrolls.formateur.traitementComplet(troll.content, troll.author) + '</span>' +
+ '<span class="author"> - ' + thisTrolls.formateur.traitementComplet(troll.author) + '</span>' +
+ (trollData.author_id === thisTrolls.client.id ? '<span class="editTroll">éditer</span><span class="delTroll">Supprimer</span>' : '') +
+ '</div>';
+ });
+ $("#trolls").append(XHTML);
+ $("#trolls .troll").filter(function() { return parseInt($(this).attr("id").substr(5), 10) > thisTrolls.dernierTroll; }).each(
+ function() {
+ var troll = this;
+ var id = parseInt($(this).attr("id").substr(5), 10);
+
+ $("a[@rel*=lightbox]", this).lightBox();
+
+ $(this).keypress(
+ function(e) {
+ if (e.which === 13) { // return
+ $(".modifier", this).click();\r