d7d735a5de5fc3a719b292ec6103e3b24b02d252
3 function PageAdmin(client
, formateur
, util
)
8 this.formateur
= formateur
12 PageAdmin
.prototype.contenu = function()
14 return '<h1>Trolls</h1>\
15 <p>Un troll est un sujet à débat, en général une question.</p>\
16 <p>Chaque semaine un troll est choisit au hasard parmis les trolls proposés et devient le troll de la semaine.</p>\
17 <form action="" id="nouveauTroll">\
19 <input class="troll" name="troll" type="text" maxlength="500" value=""></input>\
20 <button class="return" value="return">poster</button>\
23 <div id="trolls"></div>\
28 PageAdmin
.prototype.charger = function()
30 $("#page form#nouveauTroll").submit(function(){return false})
34 this.trolls
= new Trolls(this.client
, this.util
, this.formateur
)
35 this.trolls
.rafraichirTrolls()
39 $("#page form#nouveauTroll input.troll").focus()
41 $("#page form#nouveauTroll button.return").click(
44 thisPage
.posterTroll()
49 PageAdmin
.prototype.decharger = function()
51 this.trolls
.pageEvent
.stopAttenteCourante()
54 PageAdmin
.prototype.posterTroll = function()
56 var thisPageAdmin
= this
58 var content
= $("#page form#nouveauTroll input.troll").val()
60 content
= content
.trim()
63 this.util
.messageDialogue("Le troll est vide")
69 "action" : "put_troll",
70 "cookie" : this.client
.cookie
,
74 ;;; dumpObj(dataToSend
)
80 data: this.util
.jsonVersAction(dataToSend
),
86 if (data
["reply"] == "ok")
88 $("#page form#nouveauTroll input.troll").val("")
90 else if (data
["reply"] == "error")
92 thisPageAdmin
.util
.messageDialogue(data
["error_message"])
101 * Met à jour la liste des IP bannies.
103 PageAdmin
.prototype.majIPs = function()
105 var thisPageAdmin
= this
109 "action" : "list_banned_ips",
110 "cookie" : this.client
.cookie
113 ;;; dumpObj(dataToSend
)
119 data: this.util
.jsonVersAction(dataToSend
),
125 if (data
["reply"] == "list_banned_ips")
128 for(var i
= 0; i
< data
["list"].length
; i
++)
130 var ip
= data
["list"][i
]
131 XHTML
+= '<span class="ip">' + ip
["ip"] + '</span>' +
132 '<span class="temps">' +
133 ip
["remaining_time"] +
135 for(var j
= 0; j
< ip
["users"].length
; j
++)
137 var user
= ip
["users"][j
]
138 XHTML
+= (j
> 0 ? ", " : "") +
139 '<span class="pseudo">' + thisPageAdmin
.formateur
.traitementComplet(user
["nick"]) + '</span>' +
140 (user
["login"] == "" ? "" : '<span class="login">(' + thisPageAdmin
.formateur
.traitementComplet(user
["login"]) + ')</span>')
144 $("#ips").html(XHTML
)
146 else if (data
["reply"] == "error")
148 thisPageAdmin
.util
.messageDialogue(data
["error_message"])
155 ///////////////////////////////////////////////////////////////////////////////////////////////////
158 function Troll(content
, author
)
160 this.content
= content
165 ///////////////////////////////////////////////////////////////////////////////////////////////////
168 function Trolls(client
, util
, formateur
)
172 this.formateur
= formateur
173 this.dernierTroll
= 0
174 this.pageEvent
= new PageEvent("admin", this.util
)
180 Trolls
.prototype.modifier = function(id
, content
)
182 var thisTrolls
= this
186 "action" : "mod_troll",
187 "cookie" : this.client
.cookie
,
192 ;;; dumpObj(dataToSend
)
198 data: this.util
.jsonVersAction(dataToSend
),
203 if (data
["reply"] == "error")
205 thisTrolls
.util
.messageDialogue(data
["error_message"])
213 * Supprime un troll en fonction de son id.
215 Trolls
.prototype.supprimer = function(id
)
217 var thisTrolls
= this
221 "action" : "del_troll",
222 "cookie" : this.client
.cookie
,
226 ;;; dumpObj(dataToSend
)
232 data: this.util
.jsonVersAction(dataToSend
),
237 if (data
["reply"] == "error")
239 thisTrolls
.util
.messageDialogue(data
["error_message"])
246 Trolls
.prototype.rafraichirTrolls = function()
248 var thisTrolls
= this
250 this.pageEvent
.waitEvent(
251 function() { return { "last_troll" : thisTrolls
.dernierTroll
}},
254 switch (data
["reply"])
258 for (var i
= 0; i
< data
["trolls"].length
; i
++)
260 var troll
= new Troll(data
["trolls"][i
]["content"], data
["trolls"][i
]["author"])
261 var trollId
= data
["trolls"][i
]["troll_id"]
262 thisTrolls
.trolls
[trollId
] = troll
265 '<div id="troll' + trollId
+ '" class="troll">' +
266 '<span class="content">' + thisTrolls
.formateur
.traitementComplet(troll
.content
, troll
.author
) + '</span>' +
267 '<span class="author"> - ' + thisTrolls
.formateur
.traitementComplet(troll
.author
) + '</span>' +
268 (data
["trolls"][i
]["author_id"] == thisTrolls
.client
.id
? '<span class="editTroll">éditer</span><span class="delTroll">Supprimer</span>' : '') +
271 $("#trolls").append(XHTML
)
272 $("#trolls .troll").filter(function(){return parseInt($(this).attr("id").substr(5)) > thisTrolls
.dernierTroll
}).each(
276 var id
= parseInt($(this).attr("id").substr(5))
278 $("a[@rel*=lightbox]", this).lightBox()
283 if (e
.which
== 13) // return
284 $(".modifier", this).click()
287 $(".delTroll", this).click(
290 thisTrolls
.util
.messageDialogue(
291 "Êtes-vous sur de vouloir supprimer le troll \"" + $("#trolls .troll .content").html() + "\" ?",
292 messageType
.question
,
296 thisTrolls
.supprimer(id
)
303 $(".editTroll", this).click(
306 $("span", troll
).css("display", "none")
308 '<form><p><input class="content" type="text" size="50" maxlength="500" value="' +
309 thisTrolls
.trolls
[id
].content
+
310 '"></input><span class="modifier">modifier</span><span class="annuler">annuler</span></p></form>'
312 $("form input.content").focus()
314 var virerLeFormulaire = function()
316 $("form", troll
).remove()
317 $('span', troll
).css("display", "inline")
319 $("span.modifier", troll
).click(
322 var content
= $("form input.content", troll
).val()
324 thisTrolls
.modifier(id
, content
)
327 $("span.annuler", troll
).click( virerLeFormulaire
)
328 $("form", troll
).submit(function(){ return false})
334 if (data
["trolls"].length
> 0)
335 thisTrolls
.dernierTroll
= data
["trolls"][data
["trolls"].length
- 1]["troll_id"]
337 case "troll_modified" :
338 $("#trolls #troll" + data
["troll_id"] + " .content").html(thisTrolls
.formateur
.traitementComplet(data
["content"], thisTrolls
.trolls
[data
["troll_id"]].author
))
339 $("#trolls #troll" + data
["troll_id"] + " a[@rel*=lightbox]").lightBox()
340 thisTrolls
.trolls
[data
["troll_id"]].content
= data
["content"]
342 case "troll_deleted" :
343 $("#trolls #troll"+data
["troll_id"]).remove()
346 thisTrolls
.util
.messageDialogue(data
["error_message"])