From 149c4de8eca530d3d4edf36b903b7d2271558716 Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Sat, 4 Oct 2008 23:26:17 +0000 Subject: [PATCH] ADD commande /cpf (C'est pas faux) ADD aide sur les commandes : /aide, /help --- js/betterjs.js | 1 + js/pageMinichat/commandes.js | 41 ++++++++++++++++++++++++++++++--- js/pageMinichat/pageMinichat.js | 13 +++++++---- js/util.js | 17 ++++++++------ styles/1/pageMinichat.css | 12 ++++++++++ styles/2/pageMinichat.css | 12 ++++++++++ 6 files changed, 82 insertions(+), 14 deletions(-) diff --git a/js/betterjs.js b/js/betterjs.js index 69788d8..d982030 100644 --- a/js/betterjs.js +++ b/js/betterjs.js @@ -1,3 +1,4 @@ +// coding: utf-8 // tout un tas d'améliorations de JavaScript ;) diff --git a/js/pageMinichat/commandes.js b/js/pageMinichat/commandes.js index f49ce9a..014b9bb 100644 --- a/js/pageMinichat/commandes.js +++ b/js/pageMinichat/commandes.js @@ -27,14 +27,30 @@ * /nick * Modifie le pseudo courant */ -euphorik.Commandes = function(client) { +euphorik.Commandes = function(client, pageMinichat, util, formateur) { + var thisCommandes = this; + this.client = client; + this.pageMinichat = pageMinichat; + this.util = util; + this.formateur = formateur; + + // construction du texte d'aide (liste des commandes) de manière statique + this.texteAide = "

Commandes

    "; + objectEach( + euphorik.Commandes.liste, + function(nom, commande) { + thisCommandes.texteAide += "
  • " + thisCommandes.formateur.traitementComplet(commande.usage) + " : " + thisCommandes.formateur.traitementComplet(commande.description) + "
  • "; + } + ); + this.texteAide += "
"; }; euphorik.Commandes.statut = {ok : 0, pas_une_commande : 1, erreur_commande : 2}; euphorik.Commandes.liste = { "nick" : { + description : "Change le pseudo courant", usage : "/nick ", exec : function(args, client) { @@ -47,7 +63,15 @@ euphorik.Commandes.liste = { return [euphorik.Commandes.statut.ok, '']; } - } + }, + "cpf" : { + description : "Envoie le message \"C'est pas faux\"", + usage : "/cpf", + exec : function(args, client, pageMinichat) { + pageMinichat.envoyerMessage("C'est pas faux"); + return [euphorik.Commandes.statut.ok, '']; + } + } }; /** @@ -68,9 +92,20 @@ euphorik.Commandes.prototype.exec = function(chaine) { if (nomCommande === "") { return [euphorik.Commandes.statut.erreur_commande, 'La commande est vide']; } + // commandes spéciales pour afficher l'aide : "?", "h", "help", "aide" + if (nomCommande === "?" || nomCommande === "h" || nomCommande === "help" || nomCommande === "aide") { + this.util.messageDialogue( + this.texteAide, + euphorik.Util.messageType.informatif, + {"fermer" : function(){}}, + false, + -1 + ); + return [euphorik.Commandes.statut.ok, '']; + } if (euphorik.Commandes.liste.hasOwnProperty(nomCommande)) { - return euphorik.Commandes.liste[nomCommande].exec(args, this.client); + return euphorik.Commandes.liste[nomCommande].exec(args, this.client, this.pageMinichat); } return [euphorik.Commandes.statut.erreur_commande, 'La commande /' + nomCommande + ' est inconnue']; diff --git a/js/pageMinichat/pageMinichat.js b/js/pageMinichat/pageMinichat.js index 00d1b89..6a2706f 100755 --- a/js/pageMinichat/pageMinichat.js +++ b/js/pageMinichat/pageMinichat.js @@ -25,7 +25,7 @@ euphorik.PageMinichat = function(client, formateur, util, communication) { this.formateur = formateur; this.util = util; this.communication = communication; - this.commandes = new euphorik.Commandes(this.client); + this.commandes = new euphorik.Commandes(this.client, this, this.util, this.formateur); // permet d'éviter d'envoyer plusieurs messages simultanément en pressant // rapidement sur "enter" par exemple @@ -163,7 +163,7 @@ euphorik.PageMinichat.prototype.charger = function() { var retCommandes = thisPage.commandes.exec(message); switch (retCommandes[0]) { case euphorik.Commandes.statut.pas_une_commande : - thisPage.envoyerMessage($("form#posterMessage input.pseudo").val(), message); + thisPage.envoyerMessage(message); break; case euphorik.Commandes.statut.erreur_commande : thisPage.util.messageDialogue(retCommandes[1], euphorik.Util.messageType.erreur); @@ -223,8 +223,13 @@ euphorik.PageMinichat.prototype.decharger = function() { this.fragment.delVal("conv") }; -euphorik.PageMinichat.prototype.envoyerMessage = function(pseudo, message) { - var thisPageMinichat = this; +/** + * Envoie un nouve message donné, le pseudo utilisé est celui se trouvant + * dans la zone de saisie (form#posterMessage input.pseudo). + */ +euphorik.PageMinichat.prototype.envoyerMessage = function(message) { + var thisPageMinichat = this; + var pseudo = $("form#posterMessage input.pseudo").val(); // (un pseudo vide est autorisé) pseudo = this.formateur.filtrerInputPseudo(pseudo); diff --git a/js/util.js b/js/util.js index 2c66959..fe36b47 100644 --- a/js/util.js +++ b/js/util.js @@ -43,14 +43,16 @@ euphorik.Util.messageType = {informatif: 0, question: 1, erreur: 2}; * @param message le message (string) * @param type voir 'messageType'. par défaut messageType.informatif * @param les boutons sous la forme d'un objet ou les clefs sont les labels des boutons - * et les valeurs les fonctions executées lorsqu'un bouton est activé. - * @param formate faut-il formaté le message ? true par défaut + * et les valeurs les fonctions executées lorsqu'un bouton est activé. + * Lorsqu'un bouton est activé le message se ferme. + * @param formate faut-il formaté le message ? true par défaut + * @param temps le temps d'affichage du message en seconde, -1 pour une durée infinie */ -euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate) { +euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate, temps) { var thisUtil = this; type = type || euphorik.Util.messageType.informatif; - formate = formate || true; + formate = formate === undefined ? true : formate; if (this.timeoutMessageDialogue) { clearTimeout(this.timeoutMessageDialogue); @@ -58,7 +60,7 @@ euphorik.Util.prototype.messageDialogue = function(message, type, boutons, forma var fermer = function() { $("#info").slideUp(100); }; fermer(); - + $("#info .message").html(!thisUtil.formateur || !formate ? message : thisUtil.formateur.traitementComplet(message)); switch(type) { @@ -72,8 +74,9 @@ euphorik.Util.prototype.messageDialogue = function(message, type, boutons, forma $("#info .boutons").append("
" + nom + "
").find("div:last").click(bouton).click(fermer); }); - $("#info").slideDown(200); - this.timeoutMessageDialogue = setTimeout(fermer, euphorik.conf.tempsAffichageMessageDialogue); + $("#info").slideDown(200); + if (temps !== -1) + this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue); }; euphorik.Util.positionTypeX = {gauche: 0, gaucheRecouvrement: 1, centre: 2, droiteRecouvrement: 3, droite: 4}; diff --git a/styles/1/pageMinichat.css b/styles/1/pageMinichat.css index ec1f2f2..de908dd 100755 --- a/styles/1/pageMinichat.css +++ b/styles/1/pageMinichat.css @@ -9,6 +9,18 @@ vertical-align: middle; } +/***** L'aide sur les commandes *****/ +#aideCommandes h1 { + font-size: 14px; + font-weight: bold; +} +#aideCommandes .usage { + font-weight: bold; +} +#aideCommandes li { + list-style-type: none; +} + /***** La boite de sélection des smiles *****/ #smiles { text-align: center; diff --git a/styles/2/pageMinichat.css b/styles/2/pageMinichat.css index 633ff61..67b4d58 100755 --- a/styles/2/pageMinichat.css +++ b/styles/2/pageMinichat.css @@ -11,6 +11,18 @@ vertical-align: middle; } +/***** L'aide sur les commandes *****/ +#aideCommandes h1 { + font-size: 14px; + font-weight: bold; +} +#aideCommandes .usage { + font-weight: bold; +} +#aideCommandes li { + list-style-type: none; +} + /***** La boite de sélection des smiles *****/ #smiles { text-align: center; -- 2.45.2