+// coding: utf-8
// tout un tas d'améliorations de JavaScript ;)
* /nick <nouveau 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 = "<div id=\"aideCommandes\"><h1>Commandes</h1><ul>";
+ objectEach(
+ euphorik.Commandes.liste,
+ function(nom, commande) {
+ thisCommandes.texteAide += "<li><span class=\"usage\">" + thisCommandes.formateur.traitementComplet(commande.usage) + "</span> : " + thisCommandes.formateur.traitementComplet(commande.description) + "</li>";
+ }
+ );
+ this.texteAide += "</ul></div>";
};
euphorik.Commandes.statut = {ok : 0, pas_une_commande : 1, erreur_commande : 2};
euphorik.Commandes.liste = {
"nick" : {
+ description : "Change le pseudo courant",
usage : "/nick <nouveau pseudo>",
exec : function(args, client) {
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, ''];
+ }
+ }
};
/**
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'];
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
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);
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);
* @param message le message (string)\r
* @param type voir 'messageType'. par défaut messageType.informatif\r
* @param les boutons sous la forme d'un objet ou les clefs sont les labels des boutons\r
- * et les valeurs les fonctions executées lorsqu'un bouton est activé.\r
- * @param formate faut-il formaté le message ? true par défaut\r
+ * et les valeurs les fonctions executées lorsqu'un bouton est activé.
+ * Lorsqu'un bouton est activé le message se ferme. \r
+ * @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\r
*/\r
-euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate) {\r
+euphorik.Util.prototype.messageDialogue = function(message, type, boutons, formate, temps) {\r
var thisUtil = this;\r
\r
type = type || euphorik.Util.messageType.informatif;\r
- formate = formate || true;\r
+ formate = formate === undefined ? true : formate;\r
\r
if (this.timeoutMessageDialogue) {\r
clearTimeout(this.timeoutMessageDialogue);\r
\r
var fermer = function() { $("#info").slideUp(100); };\r
fermer();\r
- \r
+\r
$("#info .message").html(!thisUtil.formateur || !formate ? message : thisUtil.formateur.traitementComplet(message));\r
\r
switch(type) {\r
$("#info .boutons").append("<div>" + nom + "</div>").find("div:last").click(bouton).click(fermer);\r
});\r
\r
- $("#info").slideDown(200);\r
- this.timeoutMessageDialogue = setTimeout(fermer, euphorik.conf.tempsAffichageMessageDialogue);\r
+ $("#info").slideDown(200);
+ if (temps !== -1)\r
+ this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);\r
};\r
\r
euphorik.Util.positionTypeX = {gauche: 0, gaucheRecouvrement: 1, centre: 2, droiteRecouvrement: 3, droite: 4};\r
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;
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;