thisClient.chargerDonnees(data);\r
},\r
function(data) {\r
- thisClient.util.messageDialogue(data.error_message);\r
+ thisClient.util.messageDialog(data.error_message);\r
thisClient.delCookie(); // suppression du cookie actuel, cas où le cookie du client ne permet pas une authentification\r
},\r
false\r
thisClient.majBulle(); \r
},\r
function(data) {\r
- thisClient.util.messageDialogue(data.error_message);\r
+ thisClient.util.messageDialog(data.error_message);\r
ok = false;\r
},\r
async\r
// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
/*jslint laxbreak:true */
-
-// tout euphorik est contenu dans cet objet
+\r
+// all euphorik is contained in this object
var euphorik = {};
// le main
$(document).ready(
function() {
var fragment = new Fragment();
- var formateur = new euphorik.Formater();
+ var formater = new euphorik.Formater();
var util = new euphorik.Util(formater);
var communication = new euphorik.Communication(
- function(data) { util.messageDialogue(data.error_message); },
+ function(data) { util.messageDialog(data.error_message); },
function() { util.showWaitBar(); },
function() { util.hideWaitBar(); }
);
$("#menuCss").change(function() { client.setCss("styles/" + $("option:selected", this).attr("value") + "/euphorik.css"); });
- // FIXME : ne fonctionne pas sous opera
+ // FIXME : doesn't work under Opera
// voir : http://dev.jquery.com/ticket/2892#preview
$(window).unload(function() { client.flush(); });
- $("#menu .minichat").click(function() { pages.afficherPage("minichat"); });
- $("#menu .admin").click(function() { pages.afficherPage("admin"); });
- $("#menu .profile").click(function() { pages.afficherPage("profile"); });
+ $("#menu .minichat").click(function() { pages.displayPage("minichat"); });
+ $("#menu .admin").click(function() { pages.displayPage("admin"); });
+ $("#menu .profile").click(function() { pages.displayPage("profile"); });
$("#menu .logout").click(function() {
- util.messageDialogue("Êtes-vous sur de vouloir vous délogger ?", euphorik.Util.messageType.question,
+ util.messageDialog("Are you sure you want to log out?", euphorik.Util.messageType.question,
{
- "Oui" : function() {
+ "Yes" : function() {
client.deconnexion();
- pages.afficherPage("minichat", true);
+ pages.displayPage("minichat", true);
},
- "Non" : function() {}
+ "No" : function() {}
}
);
});
- $("#menu .register").click(function(){ pages.afficherPage("register"); });
- $("#menu .about").click(function(){ pages.afficherPage("about"); });
+ $("#menu .register").click(function(){ pages.displayPage("register"); });
+ $("#menu .about").click(function(){ pages.displayPage("about"); });
- // TODO : simplifier et pouvoir créer des liens par exemple : <span class="lien" href="conditions">Conditions d'utilisation</span>
- $("#footer .conditions").click(function(){ pages.afficherPage("conditions_utilisation"); });
+ // TODO : simplification : such link[1] should be created and automatically open the right page without\r
+ // explicitly add a page.\r
+ // [1] : <a class="lien" href="conditions">Conditions d'utilisation</a>
+ $("#footer .conditions").click(function(){ pages.displayPage("conditions_utilisation"); });
- pages.ajouterPage(new euphorik.PageMinichat(client, formater, util, communication), true);
- pages.ajouterPage(new euphorik.PageAdmin(client, formater, util, communication));
- pages.ajouterPage(new euphorik.PageProfile(client, formater, util));
- pages.ajouterPage(new euphorik.PageRegister(client, formater, util));
- pages.ajouterPage(new euphorik.PageAbout(client, formater, util, communication));
- pages.ajouterPage("conditions_utilisation");
+ pages.addPage(new euphorik.PageMinichat(client, formater, util, communication), true);
+ pages.addPage(new euphorik.PageAdmin(client, formater, util, communication));
+ pages.addPage(new euphorik.PageProfile(client, formater, util));
+ pages.addPage(new euphorik.PageRegister(client, formater, util));
+ pages.addPage(new euphorik.PageAbout(client, formater, util, communication));
+ pages.addPage("conditions_utilisation");
- pages.afficherPage();
+ pages.displayPage(); // display the default page
}
);
this.nom = "about";\r
\r
this.client = client;\r
- this.formateur = formater;\r
+ this.formater = formater;\r
this.util = util;
this.communication = communication;\r
};\r
this.nom = "admin";
this.client = client;
- this.formater = formateur;
+ this.formater = formater;
this.util = util;
this.communication = communication;
content = content.trim();
if (content === "") {
- this.util.messageDialogue("Le troll est vide");
+ this.util.messageDialog("Le troll est vide");
return;
}
var ip = $(".ip", this).html();
$(".deban", this).click(
function() {
- thisPageAdmin.util.messageDialogue("Êtes-vous sur de vouloir débannir l'IP ''" + ip + "'' ?", euphorik.Util.messageType.question,
+ thisPageAdmin.util.messageDialog("Êtes-vous sur de vouloir débannir l'IP ''" + ip + "'' ?", euphorik.Util.messageType.question,
{"Oui" : function() {
thisPageAdmin.deban(ip);
},
"banned_ips_refresh" : function(data){ thisPageAdmin.majIPs(); },
"error" :
function(data) {
- thisTrolls.util.messageDialogue(data.error_message);
+ thisTrolls.util.messageDialog(data.error_message);
}
}
);
$(".delTroll", this).click(
function() {
- thisTrolls.util.messageDialogue(
+ thisTrolls.util.messageDialog(
"Êtes-vous sur de vouloir supprimer le troll \"" + thisTrolls.trolls[id].content + "\" ?",
euphorik.Util.messageType.question,
{
}
// commandes spéciales pour afficher l'aide : "?", "h", "help", "aide"
if (nomCommande === "?" || nomCommande === "h" || nomCommande === "help" || nomCommande === "aide") {
- this.util.messageDialogue(
+ this.util.messageDialog(
this.texteAide,
euphorik.Util.messageType.informatif,
{"fermer" : function(){}},
}\r
\r
if (mess2 && mess2.racineId !== mess.racineId) {\r
- this.util.messageDialogue("Impossible de répondre à deux messages ne faisant pas partie de la même conversation");\r
+ this.util.messageDialog("Impossible de répondre à deux messages ne faisant pas partie de la même conversation");\r
return;\r
}\r
\r
if (this.client.ajouterConversation(racine)) {\r
this.rafraichirMessages(true);\r
} else {\r
- this.util.messageDialogue("Cette conversation est déjà ouverte");\r
+ this.util.messageDialog("Cette conversation est déjà ouverte");\r
}\r
};\r
\r
// ajoute les messages reçus à leur conversation respective\r
data.conversations.each(function(numConv, conv) {\r
if (!thisConversations.ajouterMessages(conv, numConv)) {\r
- thisConversations.util.messageDialogue("La conversation {" + thisConversations.client.conversations[numConv - 1].root.toString(36) + "} n'existe pas");\r
+ thisConversations.util.messageDialog("La conversation {" + thisConversations.client.conversations[numConv - 1].root.toString(36) + "} n'existe pas");\r
thisConversations.client.supprimerConversation(numConv - 1);\r
}\r
});\r
thisPage.envoyerMessage(message);
break;
case euphorik.Commandes.statut.erreur_commande :
- thisPage.util.messageDialogue(retCommandes[1], euphorik.Util.messageType.erreur);
+ thisPage.util.messageDialog(retCommandes[1], euphorik.Util.messageType.erreur);
break;
case euphorik.Commandes.statut.ok :
$("form#posterMessage input.message").val("");
pseudo = this.formater.filtrerInputPseudo(pseudo);
if (pseudo === euphorik.conf.pseudoDefaut) {
- this.util.messageDialogue("Le pseudo ne peut pas être " + euphorik.conf.pseudoDefaut);
+ this.util.messageDialog("Le pseudo ne peut pas être " + euphorik.conf.pseudoDefaut);
return;
}
message = message.trim();
if (!message) {
- this.util.messageDialogue("Le message est vide");
+ this.util.messageDialog("Le message est vide");
return;
}
if (!this.client.authentifie()) {
if (!this.client.enregistrement()) {
- this.util.messageDialogue("login impossible");
+ this.util.messageDialog("login impossible");
return;
}
}
// évite le double post
if (this.envoieMessageEnCours) {
- this.util.messageDialogue("Message en cours d'envoie...");
+ this.util.messageDialog("Message en cours d'envoie...");
return;
}
this.envoieMessageEnCours = true;
thisPageMinichat.envoieMessageEnCours = false;
},
function(data) {
- thisPageMinichat.util.messageDialogue(data.error_message);
+ thisPageMinichat.util.messageDialog(data.error_message);
thisPageMinichat.envoieMessageEnCours = false;
},
true,
this.nom = "profile";\r
\r
this.client = client;\r
- this.formateur = formater;\r
+ this.formater = formater;\r
this.util = util;\r
};\r
\r
var passwordRe = $("form#profile input.passwordRe").val();\r
if (password !== "" || passwordRe !== "") {\r
if (password !== passwordRe) { \r
- thisPage.util.messageDialogue("Les mots de passes ne correspondent pas");\r
+ thisPage.util.messageDialog("Les mots de passes ne correspondent pas");\r
return;\r
}\r
thisPage.client.password = thisPage.util.md5(password);\r
}\r
\r
if(!thisPage.client.flush()) {\r
- thisPage.util.messageDialogue("Impossible de mettre à jour votre profile, causes inconnues", euphorik.Util.messageType.erreur);\r
+ thisPage.util.messageDialog("Impossible de mettre à jour votre profile, causes inconnues", euphorik.Util.messageType.erreur);\r
} else { \r
- thisPage.util.messageDialogue("Votre profile a été mis à jour");\r
- thisPage.pages.afficherPage("minichat");\r
+ thisPage.util.messageDialog("Votre profile a été mis à jour");\r
+ thisPage.pages.displayPage("minichat");\r
}\r
}\r
);\r
function() {\r
if(thisPage.client.connexionLogin($("form#profile input.login").val(), thisPage.util.md5($("form#profile input.password").val()))) {\r
// TODO afficher un message "ok"\r
- thisPage.pages.afficherPage("minichat");\r
+ thisPage.pages.displayPage("minichat");\r
}\r
}\r
);\r
var passwordRe = $("#page form#register input.passwordRe").val();\r
\r
if (login === "") {\r
- thisPage.util.messageDialogue("Le login ne doit pas être vide");\r
+ thisPage.util.messageDialog("Le login ne doit pas être vide");\r
} else if (password === "" && passwordRe === "") {\r
- thisPage.util.messageDialogue("Un mot de passe est obligatoire");\r
+ thisPage.util.messageDialog("Un mot de passe est obligatoire");\r
} else if (password !== passwordRe) {\r
- thisPage.util.messageDialogue("Les mots de passes ne correspondent pas");\r
+ thisPage.util.messageDialog("Les mots de passes ne correspondent pas");\r
} else if (thisPage.client.enregistrement(login, thisPage.util.md5(password))) { \r
- thisPage.util.messageDialogue("Enregistrement réussi");\r
- thisPage.pages.afficherPage("minichat");\r
+ thisPage.util.messageDialog("Enregistrement réussi");\r
+ thisPage.pages.displayPage("minichat");\r
}\r
}\r
);\r
\r
\r
/**\r
- * Gestion des pages.\r
+ * Pages manager.\r
*/\r
euphorik.Pages = function(fragment, communication) {\r
this.fragment = fragment;
};\r
\r
/**\r
- * Accepte soit un objet soit un string.\r
- * un string correspond au nom de la page, par exemple : "page" -> "page.html"\r
- * @defaut si vrai alors la page est la page par défaut\r
+ * Add a new page, must be done one time per page after the website is loaded.\r
+ * Accept a string or a Page object.\r
+ * If a string is given then a static object page is automatically created.\r
+ * A string is the name of the page without the 'html' extension, for example\r
+ * "page" -> "page.html"\r
+ * @defaultPage If true then the page will be flaged as 'default'. It must be only one default page.\r
*/\r
-euphorik.Pages.prototype.ajouterPage = function(page, defaut) {\r
+euphorik.Pages.prototype.addPage = function(page, defaultPage) {\r
if (typeof page === "string") {\r
page = new euphorik.PageStatique(page, this.communication);\r
}\r
\r
this.pages[page.nom] = page; \r
\r
- if (defaut) {\r
+ if (defaultPage) {\r
this.pageDefaut = page;\r
}\r
};\r
\r
-euphorik.Pages.prototype.afficherPage = function(nomPage, forcerChargement) {\r
- forcerChargement = forcerChargement || false;\r
+/**\r
+ * Display a given page.\r
+ * If no page name given the the default page will be loaded.\r
+ * @pageName [optional] The page name to load. \r
+ * @forceToLoad [optional] If true then the page will be reloaded even it already displayed.\r
+ */\r
+euphorik.Pages.prototype.displayPage = function(pageName, forceToLoad) {\r
+ forceToLoad = forceToLoad || false;\r
\r
// si le nom de la page n'est pas donné on le prend du fragment\r
- if (!nomPage) {\r
- nomPage = this.fragment.getVal("page");\r
+ if (!pageName) {\r
+ pageName = this.fragment.getVal("page");\r
}\r
\r
- var page = this.pages[nomPage];\r
+ var page = this.pages[pageName];\r
if (!page) {\r
page = this.pageDefaut;\r
}\r
\r
- if (!page || (!forcerChargement && page === this.pageCourante)) {\r
+ if (!page || (!forceToLoad && page === this.pageCourante)) {\r
return;\r
}\r
\r
\r
$("#page").html(contenu).removeClass().addClass(\r
this.pageCourante.nom +\r
- (this.pageCourante.classes ? " " + this.pageCourante.classes() : "") // l'objet peut fournire des classes css supplémentaires sous la forme d'un string\r
+ // A page can bring some additionnals CSS classes\r
+ (this.pageCourante.classes ? " " + this.pageCourante.classes() : "")\r
);\r
\r
if (this.pageCourante.charger) {\r
* - afficher une boite de message\r
* - afficher une bulle d'aide lié à un élément\r
* - manipuler le curseur et réaliser des sélections sur des zones de saisie (<input>)\r
- * @formateur permet de formater les messages affichés à l'aide de messageDialogue (facultatif), voir "formater.js".\r
+ * @formater permet de formater les messages affichés à l'aide de messageDialog (facultatif), voir "formater.js".\r
*/\r
euphorik.Util = function (formater) {\r
$("#info .fermer").click(function() {\r
\r
$("body").append('<div id="flecheBulle"></div>').append('<div id="messageBulle"><p></p></div>');\r
\r
- this.formateur = formater;\r
+ this.formater = formater;\r
this.bulleActive = true;\r
};\r
\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, temps) {\r
+euphorik.Util.prototype.messageDialog = function(message, type, boutons, formate, temps) {\r
var thisUtil = this;\r
\r
type = type || euphorik.Util.messageType.informatif;\r
formate = formate === undefined ? true : formate;\r
\r
- if (this.timeoutMessageDialogue) {\r
- clearTimeout(this.timeoutMessageDialogue);\r
+ if (this.timeoutMessageDialog) {\r
+ clearTimeout(this.timeoutMessageDialog);\r
}\r
\r
var fermer = function() { $("#info").slideUp(100); };\r
fermer();\r
\r
- $("#info .message").html(!thisUtil.formater || !formate ? message : thisUtil.formateur.traitementComplet(message));\r
+ $("#info .message").html(!thisUtil.formater || !formate ? message : thisUtil.formater.traitementComplet(message));\r
\r
switch(type) {\r
case euphorik.Util.messageType.informatif : $("#info #icone").attr("class", "information"); break;\r
\r
$("#info").slideDown(200);
if (temps !== -1) {\r
- this.timeoutMessageDialogue = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);
+ this.timeoutMessageDialog = setTimeout(fermer, temps || euphorik.conf.tempsAffichageMessageDialogue);
}\r
};\r
\r