From: Greg Burri Date: Thu, 24 Jul 2008 20:39:32 +0000 (+0000) Subject: FIX plein de bugs introduits avec la Grand Restructuration X-Git-Tag: 1.1.0~49 X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=commitdiff_plain;h=ed281cb4331777625994d23a6e424fb7c5b5d2c9 FIX plein de bugs introduits avec la Grand Restructuration --- diff --git a/index.yaws b/index.yaws index 9a5d1e2..c5cbf63 100755 --- a/index.yaws +++ b/index.yaws @@ -23,7 +23,31 @@ }. - + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/js/comet.js b/js/comet.js index 5d848d6..9b4d0ee 100644 --- a/js/comet.js +++ b/js/comet.js @@ -19,30 +19,30 @@ /*jslint laxbreak:true */ /** - * Permet de gérer les événements (push serveur). - * Principe de fonctionnement : - * - La page courante créer un objet euphorik.Comet en indiquant le nom de la page et la version du protocole - * - La page courante attend un événement en appelant 'waitEvent' et en donnant deux fonctions : - * - 'funSend' une fonction qui renvoie les données à envoyer avant l'attente, par exemple {"dernierMess" : 23} - * "header" et "page" seront ajoutés aux données - * - 'funsReceive' un ensemble de fonctions à appeler en fonction du "reply" du serveur - * - * l'information envoyée est sous la forme : - * { - * "header" : {"action" : "wait_event", "version" : }, - * "page" : - * [..] - * } - * l'information reçue est sous la forme : - * { - * "reply" : - * [..] - * } - * et sont de type chaine - * - * @page [string] la page courante pour laquelle on écoute des événements (un string) - * @util [int] la version - */ + * Permet de gérer les événements (push serveur). + * Principe de fonctionnement : + * - La page courante créer un objet euphorik.Comet en indiquant le nom de la page et la version du protocole + * - La page courante attend un événement en appelant 'waitEvent' et en donnant deux fonctions : + * - 'funSend' une fonction qui renvoie les données à envoyer avant l'attente, par exemple {"dernierMess" : 23} + * "header" et "page" seront ajoutés aux données + * - 'funsReceive' un ensemble de fonctions à appeler en fonction du "reply" du serveur + * + * l'information envoyée est sous la forme : + * { + * "header" : {"action" : "wait_event", "version" : }, + * "page" : + * [..] + * } + * l'information reçue est sous la forme : + * { + * "reply" : + * [..] + * } + * et sont de type chaine + * + * @page [string] la page courante pour laquelle on écoute des événements (un string) + * @util [int] la version + */ Comet = function(page, version) { this.page = page; this.version = version; @@ -96,11 +96,11 @@ Comet.prototype.waitEvent = function(funSend, funsReceive) { dataType: "json", // TODO : doit disparaitre timeout: 180000, // timeout de 3min. Gros HACK pas beau. FIXME problème décrit ici : http://groups.google.com/group/jquery-en/browse_thread/thread/8724e64af3333a76 - data: { action : JSON.stringify(dataToSend) + data: { action : JSON.stringify(dataToSend) }, success: - function(data) { + function(data) { funsReceive[data.reply](data); - + // rappel de la fonction dans 100 ms setTimeout(function(){ thisComet.waitEvent2(funSend, funsReceive); }, 100); }, diff --git a/js/euphorik.js b/js/euphorik.js index afe0251..5265f28 100755 --- a/js/euphorik.js +++ b/js/euphorik.js @@ -42,27 +42,6 @@ var euphorik = {} ;; if (req!==false) { if (req.status==200) { window.eval(req.responseText); } else if (req.status==404) { alert("erreur de chargement (404) de : " + url) } } ;; }; -;; euphorik.include("jquery"); -;; euphorik.include("jquery.lightbox"); -;; euphorik.include("md5"); -;; euphorik.include("json2"); -;; euphorik.include("comet"); - -;; euphorik.include("conf"); -;; euphorik.include("util"); -;; euphorik.include("formateur"); -;; euphorik.include("pages"); -;; euphorik.include("client"); - -;; euphorik.include("pageMinichat/pageMinichat"); -;; euphorik.include("pageMinichat/conversation"); -;; euphorik.include("pageMinichat/conversations"); -;; euphorik.include("pageMinichat/message"); -;; euphorik.include("pageMinichat/commandes"); -;; euphorik.include("pageAdmin"); -;; euphorik.include("pageProfile"); -;; euphorik.include("pageRegister"); -;; euphorik.include("pageAbout"); // tout un tas d'améliorations de JavaScript ;) /** @@ -78,16 +57,16 @@ var objectEach = function(o, f) { } } }; - -var objectMemberCount = function(o) { - var nb = 0; - for (var k in o) { - if (o.hasOwnProperty(k)) { - nb += 1; - } - } - return nb; -}; + +var objectMemberCount = function(o) { + var nb = 0; + for (var k in o) { + if (o.hasOwnProperty(k)) { + nb += 1; + } + } + return nb; +}; Array.prototype.each = function(f) { for (var i = 0; i < this.length; i++) { diff --git a/js/pageAdmin.js b/js/pageAdmin.js index 04b642c..06c2ca5 100644 --- a/js/pageAdmin.js +++ b/js/pageAdmin.js @@ -17,9 +17,9 @@ // along with Euphorik. If not, see . // // La page d'administation, ne peut être accédée que par les ekMaster (admins) - -/*jslint laxbreak:true */ - + +/*jslint laxbreak:true */ + euphorik.PageAdmin = function(client, formateur, util) { this.nom = "admin"; @@ -84,7 +84,7 @@ euphorik.PageAdmin.prototype.decharger = function() { // supprime le rafraichissement période des ips if (this.timeoutIDmajIPs) { - clearTimeout(this.timeoutIDmajIPs); + clearTimeout(this.timeoutIDmajIPs); } }; @@ -129,7 +129,7 @@ euphorik.PageAdmin.prototype.posterTroll = function() { */ euphorik.PageAdmin.prototype.majIPs = function() { if (this.timeoutIDmajIPs) { - clearTimeout(this.timeoutIDmajIPs); + clearTimeout(this.timeoutIDmajIPs); } var thisPageAdmin = this; @@ -147,12 +147,12 @@ euphorik.PageAdmin.prototype.majIPs = function() { success: function(data) { if (data.reply === "list_banned_ips") { - var XHTML = ""; + var XHTML = ""; data.list.each(function(ip) { XHTML += '
' + ip.ip + '|' + '' + ip.remaining_time + - '|'; + '|'; ip.users.each(function(user) { XHTML += (j > 0 ? ", " : "") + '' + thisPageAdmin.formateur.traitementComplet(user.nick) + '' + @@ -162,7 +162,7 @@ euphorik.PageAdmin.prototype.majIPs = function() { }); if (data.list.length === 0) { - XHTML += '

Aucune IP bannie

'; + XHTML += '

Aucune IP bannie

'; } $("#ips").html(XHTML); @@ -212,7 +212,7 @@ euphorik.PageAdmin.prototype.deban = function(ip) { success: function(data){ if(data.reply === "error") { - thisPageAdmin.util.messageDialogue(data.error_message); + thisPageAdmin.util.messageDialogue(data.error_message); } } }); @@ -263,7 +263,7 @@ euphorik.Trolls = function(client, util, formateur) { euphorik.Trolls.prototype.ajouterTrollEvent = function(data) { var thisTrolls = this; - var XHTML = ""; + var XHTML = ""; data.trolls.each(function(trollData) { var troll = new euphorik.Troll(trollData.content, trollData.author); var trollId = trollData.troll_id; @@ -287,10 +287,10 @@ euphorik.Trolls.prototype.ajouterTrollEvent = function(data) { $(this).keypress( function(e) { if (e.which === 13) { // return - $(".modifier", this).click(); + $(".modifier", this).click(); } } - ); + ); $(".delTroll", this).click( function() { @@ -305,12 +305,12 @@ euphorik.Trolls.prototype.ajouterTrollEvent = function(data) { } ); } - ); + ); $(".editTroll", this).click( function() { $("span", troll).css("display", "none"); - $(troll).append( + $(troll).append( '

modifierannuler

' @@ -336,7 +336,7 @@ euphorik.Trolls.prototype.ajouterTrollEvent = function(data) { ); if (data.trolls.length > 0) { - thisTrolls.dernierTroll = data.trolls[data.trolls.length - 1].troll_id; + thisTrolls.dernierTroll = data.trolls[data.trolls.length - 1].troll_id; } }; @@ -347,11 +347,11 @@ euphorik.Trolls.prototype.modifierTrollEvent = function(data) { thisTrolls.trolls[data.troll_id].content = data.content; }; -Trolls.prototype.supprimerTrollEvent = function(data) { +euphorik.Trolls.prototype.supprimerTrollEvent = function(data) { $("#trolls #troll" + data.troll_id).remove(); }; -Trolls.prototype.modifier = function(id, content) { +euphorik.Trolls.prototype.modifier = function(id, content) { var thisTrolls = this; var dataToSend = { diff --git a/js/pageMinichat/commandes.js b/js/pageMinichat/commandes.js index a044617..4d25a43 100644 --- a/js/pageMinichat/commandes.js +++ b/js/pageMinichat/commandes.js @@ -35,7 +35,19 @@ euphorik.Commandes.statut = {ok : 0, pas_une_commande : 1, erreur_commande : 2}; euphorik.Commandes.liste = { "nick" : { - usage : + usage : "\\nick "']; - } - - this.client.pseudo = args[0]; - $("form#posterMessage input.pseudo").val(this.client.pseudo); - - return [euphorik.Commandes.statut.ok, '']; + return [euphorik.Commandes.statut.erreur_commande, 'La commande \\' + nomCommande + ' est inconnue']; }; diff --git a/js/pageMinichat/conversations.js b/js/pageMinichat/conversations.js index d5a40e6..2d5df0c 100644 --- a/js/pageMinichat/conversations.js +++ b/js/pageMinichat/conversations.js @@ -57,12 +57,12 @@ euphorik.Conversations.prototype.toggleMessageRepond = function(mess) { }; /** - * Enlève tous les messages auquel l'utilisateur souhaite répond. + * Enlève tous les messages auquel l'utilisateur souhaite répondre. */ euphorik.Conversations.prototype.enleverMessagesRepond = function() { var thisConversations = this; - objectEach(function(messId, mess) { + objectEach(this.messagesRepond, function(messId, mess) { thisConversations.enleverMessageRepond(mess); }); @@ -98,7 +98,7 @@ euphorik.Conversations.prototype.ajouterMessageRepond = function(mess) { } mess2 = this.messagesRepond[mess2]; - if (!mess2 && mess2.racineId !== mess.racineId) { + if (mess2 && mess2.racineId == mess.racineId) { this.util.messageDialogue("Impossible de répondre à deux messages ne faisant pas partie de la même conversation"); return; } @@ -156,7 +156,7 @@ euphorik.Conversations.prototype.rafraichireNombreMessagesRepond = function() { */ euphorik.Conversations.prototype.afficherMessagesRepondConversations = function() { var expr = ""; - objectEach(function(messId, mess) { + objectEach(this.messagesRepond, function(messId, mess) { expr += "#" + mess.getId() + ","; }); $(expr).addClass("repondEnEvidence"); diff --git a/js/pageMinichat/message.js b/js/pageMinichat/message.js index ba158a4..3afb8b5 100644 --- a/js/pageMinichat/message.js +++ b/js/pageMinichat/message.js @@ -92,14 +92,12 @@ euphorik.Message.prototype.getConversation = function(messages) { var f = function(tabIds, premierNiveau) { objectEach(tabIds, function(id) { // si le message (id) a déjà été traité - if (!messagesEnEvidence[id] && !premierNiveau) { - continue; - } - - var message = messages.messagesParId[id]; - if (!message) { - messagesEnEvidence[id] = premierNiveau ? 3 : (message.auteurId === thisMessage.auteurId ? 1 : 0); - f (message.repondA, false); + if (messagesEnEvidence[id] || premierNiveau) { + var message = messages.messagesParId[id]; + if (!message) { + messagesEnEvidence[id] = premierNiveau ? 3 : (message.auteurId === thisMessage.auteurId ? 1 : 0); + f (message.repondA, false); + } } }); }; @@ -126,7 +124,7 @@ euphorik.Message.prototype.XHTML = function(messagePair, pre) { var XHTMLrepondA = ""; var debut = true; - objectEach(function(id, rep) { + objectEach(this.repondA, function(id, rep) { if (!debut) { XHTMLrepondA += ", "; } diff --git a/js/pageMinichat/pageMinichat.js b/js/pageMinichat/pageMinichat.js index 7aeb158..2283acb 100755 --- a/js/pageMinichat/pageMinichat.js +++ b/js/pageMinichat/pageMinichat.js @@ -15,15 +15,15 @@ // // You should have received a copy of the GNU General Public License // along with Euphorik. If not, see . - -/*jslint laxbreak:true */ + +/*jslint laxbreak:true */ euphorik.PageMinichat = function(client, formateur, util) { this.nom = "minichat"; this.client = client; this.formateur = formateur; - this.util = util; + this.util = util; this.commandes = new euphorik.Commandes(this.client); // permet d'éviter d'envoyer plusieurs messages simultanément en pressant @@ -36,7 +36,7 @@ euphorik.PageMinichat = function(client, formateur, util) { euphorik.PageMinichat.prototype.contenu = function() { // le fait que tout soit collé est fait exprès, permet d'éviter d'avoir des espaces supplémentaires entre les spans' - var formulaireXHTML = '' + + var formulaireXHTML = '' + '
' + '

' + ' ' + @@ -46,7 +46,7 @@ euphorik.PageMinichat.prototype.contenu = function() { ' ' + ' ' + '

' + - '
'; + ''; var trollXHTML = '
Troll de la semaine :
'; var conversationXHTML = '
'; @@ -54,7 +54,7 @@ euphorik.PageMinichat.prototype.contenu = function() { if (this.client.chatOrder === "reverse") { return trollXHTML + formulaireXHTML + conversationXHTML; } else { - return trollXHTML + conversationXHTML + formulaireXHTML; + return trollXHTML + conversationXHTML + formulaireXHTML; } }; @@ -68,7 +68,7 @@ euphorik.PageMinichat.prototype.charger = function() { $("#posterMessage input.pseudo").val(this.client.pseudo); // cet appel ne doit pas être fait avant l'appel à 'charger' - this.conversations = new Conversations(this.client, this.formateur, this.util); + this.conversations = new euphorik.Conversations(this.client, this.formateur, this.util); this.conversations.rafraichirMessages(true); @@ -96,12 +96,12 @@ euphorik.PageMinichat.prototype.charger = function() { this.util.infoBulle("Cliquer sur les messages pour les enlevers de la liste", $("form#posterMessage #repondA").hover( - function() { thisPage.util.afficherBoite($(".messages", this), $(this), positionTypeX.centre, positionTypeY.bas); }, + function() { thisPage.util.afficherBoite($(".messages", this), $(this), euphorik.Util.positionTypeX.centre, euphorik.Util.positionTypeY.bas); }, function() { $(".messages", this).hide(); } ).click( function(e) { if ($(e.target).is(".nb")) { - thisPage.conversations.enleverMessagesRepond(); + thisPage.conversations.enleverMessagesRepond(); } } ), @@ -126,7 +126,7 @@ euphorik.PageMinichat.prototype.charger = function() { ); $("form#posterMessage button.smiles").hover( // affichage de la boite présentant les smiles - function(e){ thisPage.util.afficherBoite($("#smiles"), $(e.target), positionTypeX.centre, positionTypeY.basRecouvrement); }, + function(e){ thisPage.util.afficherBoite($("#smiles"), $(e.target), euphorik.Util.positionTypeX.centre, euphorik.Util.positionTypeY.basRecouvrement); }, function(){} ); $("#smiles").hover( @@ -141,24 +141,24 @@ euphorik.PageMinichat.prototype.charger = function() { var nouveauMessage = function() { // captcha anti bot - if ($("form#posterMessage input.captcha").val() !== "") { - return; - } - - var message = $("form#posterMessage input.message").val(); - - // traitement des commandes.. - var retCommandes = thisPage.commandes.exec(message); - switch (retCommandes[0]) { + if ($("form#posterMessage input.captcha").val() !== "") { + return; + } + + var message = $("form#posterMessage input.message").val(); + + // traitement des commandes.. + var retCommandes = thisPage.commandes.exec(message); + switch (retCommandes[0]) { case euphorik.Commandes.statut.pas_une_commande : - thisPage.envoyerMessage(message, $("form#posterMessage input.message").val()); - break; - case euphorik.Commandes.statut.erreur_commande : - thisPage.util.messageDialogue(retCommandes[1], euphorik.Util.messageType.erreur); - break; - case euphorik.Commandes.statut.ok : - $("form#posterMessage input.message").val(""); - break; + thisPage.envoyerMessage($("form#posterMessage input.pseudo").val(), message); + break; + case euphorik.Commandes.statut.erreur_commande : + thisPage.util.messageDialogue(retCommandes[1], euphorik.Util.messageType.erreur); + break; + case euphorik.Commandes.statut.ok : + $("form#posterMessage input.message").val(""); + break; } $("form#posterMessage input.message").focus(); @@ -167,7 +167,7 @@ euphorik.PageMinichat.prototype.charger = function() { $("form#posterMessage").keypress( function(e) { if (e.which === 13) { // return - nouveauMessage(); + nouveauMessage(); } } ); @@ -181,7 +181,7 @@ euphorik.PageMinichat.prototype.charger = function() { function() { var input = $("input.pseudo")[0]; if (input.value === euphorik.conf.pseudoDefaut) { - input.value = ""; + input.value = ""; } } ); @@ -194,9 +194,9 @@ euphorik.PageMinichat.prototype.decharger = function() { }; euphorik.PageMinichat.prototype.getJSONMessage = function(pseudo, message) { - var repondA = []; + var repondA = []; objectEach(this.conversations.messagesRepond, function(id) { - repondA.push(parseInt(id, 10)); + repondA.push(parseInt(id, 10)); }); return { @@ -218,7 +218,7 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) { this.util.messageDialogue("Le pseudo ne peut pas être " + euphorik.conf.nickDefaut); return; } - + message = message.trim(); if (!message) { this.util.messageDialogue("Le message est vide"); @@ -229,7 +229,7 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) { if (!this.client.enregistrement()) { this.util.messageDialogue("login impossible"); return; - } + } } this.client.pseudo = pseudo; @@ -252,12 +252,13 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) { }, success : function(data, textStatus) { if(data.reply === "ok") { - // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ? - objectEach(thisPageMinichat.conversations.messagesRepond, function(messId) { + // TODO : revoir cette partie + // met à jour la classe des messages auquel repond celui ci (c'est un peu de la triche) TODO : ya mieux ? + objectEach(thisPageMinichat.conversations.messagesRepond, function(messId) { thisPageMinichat.conversations.conversations.each(function(i, conv) { var mess = conv.messagesParId[messId]; - if (!mess) { - mess.clientARepondu = true; + if (mess) { + mess.clientARepondu = true; } }); // TODO : ca sert à qque chose ? @@ -275,4 +276,4 @@ euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) { thisPageMinichat.envoieMessageEnCours = false; } }); -}; +};