-// coding: utf-8
-
-function PageProfile(client, formateur, util)
-{
- this.nom = "profile"
-
- this.client = client
- this.formateur = formateur
- this.util = util
-}
-
-PageProfile.prototype.contenu = function()
-{
- return ""
-}
-
-PageProfile.prototype.charger = function()
-{
- jQuery("#page").html(this.getHTML())
-
- // en fonction du statut
- if (this.client.identifie())
- this.chargerProfile()
- else
- this.chargerLogin()
-
- jQuery("#page form#profile").submit(function(){return false})
-}
-
-PageProfile.prototype.chargerProfile = function()
-{ \r
- var thisPage = this\r
+// coding: utf-8\r
+// Copyright 2008 Grégory Burri\r
+//\r
+// This file is part of Euphorik.\r
+//\r
+// Euphorik is free software: you can redistribute it and/or modify\r
+// it under the terms of the GNU General Public License as published by\r
+// the Free Software Foundation, either version 3 of the License, or\r
+// (at your option) any later version.\r
+//\r
+// Euphorik is distributed in the hope that it will be useful,\r
+// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+// GNU General Public License for more details.\r
+//\r
+// You should have received a copy of the GNU General Public License\r
+// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.\r
+\r
+euphorik.PageProfile = function(client, formateur, util) {\r
+ this.nom = "profile";\r
+ \r
+ this.client = client;\r
+ this.formateur = formateur;\r
+ this.util = util;\r
+};\r
+\r
+euphorik.PageProfile.prototype.contenu = function() {\r
+ // pourquoi ?\r
+ return "";\r
+};\r
+\r
+euphorik.PageProfile.prototype.charger = function() {\r
+ $("#page").html(this.getHTML());\r
+ \r
+ // en fonction du statut\r
+ if (this.client.authentifie()) {\r
+ this.chargerProfile();\r
+ } else {\r
+ this.chargerLogin();\r
+ }\r
+ \r
+ $("#page form#profile").submit(function(){ return false; });\r
+};\r
+\r
+euphorik.PageProfile.prototype.chargerProfile = function() { \r
+ var thisPage = this;\r
+ \r
+ $("form#profile input.login").val(this.client.login);\r
+ $("form#profile input.pseudo").val(this.client.pseudo);\r
+ $("form#profile input.email").val(this.client.email);\r
+ $("form#profile input#viewTooltips").attr("checked", this.client.viewTooltips);\r
+ $("form#profile input#viewTimes").attr("checked", this.client.viewTimes);\r
\r
- jQuery("form#profile input.login").val(this.client.login)\r
- jQuery("form#profile input.pseudo").val(this.client.pseudo)\r
- jQuery("form#profile input.email").val(this.client.email)\r
+ $("form#profile select#chatOrder option").removeAttr("selected");\r
+ $("form#profile select#chatOrder option[value=" + this.client.chatOrder + "]").attr("selected", "selected");\r
+ \r
+ $("form#profile select#affichagePseudo option").removeAttr("selected");\r
+ $("form#profile select#affichagePseudo option[value=" + this.client.nickFormat + "]").attr("selected", "selected");\r
+ \r
+ if (this.client.ostentatiousMaster) {\r
+ $("form#profile select#degreeOstentatoire option").removeAttr("selected");\r
+ $("form#profile select#degreeOstentatoire option[value=" + this.client.ostentatiousMaster + "]").attr("selected", "selected");\r
+ }\r
\r
- jQuery("#page form#profile button").click(\r
- function()\r
- {\r
- thisPage.client.pseudo = thisPage.formateur.filtrerInputPseudo(jQuery("form#profile input.pseudo").val())\r
- thisPage.client.email = jQuery("form#profile input.email").val()\r
+ $("form#profile button").click(\r
+ function() {\r
+ thisPage.client.pseudo = thisPage.formateur.filtrerInputPseudo($("form#profile input.pseudo").val());\r
+ thisPage.client.email = $("form#profile input.email").val();\r
+ thisPage.client.chatOrder = $("form#profile select#chatOrder option:selected").attr("value");\r
+ thisPage.client.nickFormat = $("form#profile select#affichagePseudo option:selected").attr("value");\r
+ if (thisPage.client.ekMaster) {\r
+ thisPage.client.ostentatiousMaster = $("form#profile select#degreeOstentatoire option:selected").attr("value");\r
+ }\r
+ thisPage.client.viewTooltips = $("form#profile input#viewTooltips").attr("checked");\r
+ thisPage.client.viewTimes = $("form#profile input#viewTimes").attr("checked");\r
\r
- var password = jQuery("form#profile input.password").val()\r
- var passwordRe = jQuery("form#profile input.passwordRe").val() \r
- if (password != "" || passwordRe != "")\r
- {\r
- if (password != passwordRe)\r
- { \r
- thisPage.util.messageDialogue("Les mots de passes ne correspondent pas")\r
- return\r
+ var password = $("form#profile input.password").val();\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
+ return;\r
}\r
- thisPage.client.password = thisPage.util.md5(password)\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", messageType.erreur)\r
- else
- {
- thisPage.util.messageDialogue("Votre profile a été mis à jour")\r
- //thisPage.pages.afficherPage("minichat")
+ if(!thisPage.client.flush()) {\r
+ thisPage.util.messageDialogue("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
}\r
}\r
- )
-}
-
-PageProfile.prototype.chargerLogin = function()
-{
- var thisPage = this
-
- jQuery("#page form#profile button").click(
- function()
- {
- if(!thisPage.client.connexionLogin(jQuery("form#profile input.login").val(), thisPage.util.md5(jQuery("form#profile input.password").val())))
- thisPage.util.messageDialogue("Couple login/pass introuvable")
- else
- {\r
- // TODO afficher un message "ok"
- thisPage.pages.afficherPage("minichat")
- }
- }
- )
-}
-
-PageProfile.prototype.getHTML = function()
-{
-return '\
-<form id="profile" >\
- <table>\
- <tr>\
- <td>login</td>\
- <td><input class="login" type="text" size="20" maxlength="20" ' + (this.client.identifie() ? 'readonly="readonly"' : '') + ' /></td>\
- </tr>\
- <tr>\
- <td>password</td>\
- <td><input class="password" type="password" size="20" maxlength="20"/></td>\
- </tr>' +
- (this.client.identifie() ? '\
- <tr>\
- <td>password re</td>\
- <td><input class="passwordRe" type="password" size="20" maxlength="20"/></td>\
- </tr>\
- <tr>\
- <td>pseudo</td>\
- <td><input class="pseudo" type="text" size="40" maxlength="20"/></td>\
- </tr>\
- <tr>\
- <td>e-mail</td>\
- <td><input class="email" type="text" size="40" maxlength="100"/></td>\
- </tr>\
- <tr>' : '') + '\
- <tr>\
- <td></td>\
- <td><button>Valider</button>\
- </tr>\
- </table>\
-</form>'
-}
\ No newline at end of file
+ );\r
+};\r
+\r
+euphorik.PageProfile.prototype.chargerLogin = function() { \r
+ var thisPage = this;\r
+\r
+ $("#page form#profile button").click(\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
+ }\r
+ }\r
+ );\r
+};\r
+\r
+euphorik.PageProfile.prototype.getHTML = function() {\r
+ return '<form action="" id="profile" >' +\r
+ ' <table>' +\r
+ ' <tr>' +\r
+ ' <td>login</td>' +\r
+ ' <td><input class="login" type="text" size="20" maxlength="20" ' + (this.client.authentifie() ? 'readonly="readonly"' : '') + ' /></td>' +\r
+ (this.client.authentifie() ? '' : ' <td>(sensible à la <a href="http://fr.wikipedia.org/wiki/Casse_(informatique)">casse</a>)</td>') +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>password</td>' +\r
+ ' <td><input class="password" type="password" size="20" maxlength="20"/></td>' +\r
+ ' </tr>' + \r
+ (this.client.authentifie() ? '' +\r
+ ' <tr>' +\r
+ ' <td>password re</td>' +\r
+ ' <td><input class="passwordRe" type="password" size="20" maxlength="20"/></td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>pseudo</td>' +\r
+ ' <td><input class="pseudo" type="text" size="40" maxlength="20"/></td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>e-mail</td>' +\r
+ ' <td><input class="email" type="text" size="40" maxlength="100"/></td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>Ordre des messages</td>' +\r
+ ' <td>' +\r
+ ' <select id="chatOrder">' +\r
+ ' <option value="chrono">Chronologique</option>' +\r
+ ' <option value="reverse">Anti-chronologique</option>' +\r
+ ' </select>' +\r
+ ' </td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ (this.client.ekMaster ? '' +\r
+ ' <td>Degrée d\'ostentation</td>' +\r
+ ' <td>' +\r
+ ' <select id="degreeOstentatoire">' +\r
+ ' <option value="invisible">Nul</option>' +\r
+ ' <option value="light">Faible</option>' +\r
+ ' <option value="heavy">Élevé</option>' +\r
+ ' </select>' +\r
+ ' </td>' : '') +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>Affichage des identifiants</td>' +\r
+ ' <td>' +\r
+ ' <select id="affichagePseudo">' +\r
+ ' <option value="nick">Pseudo</option>' +\r
+ ' <option value="login">Login</option>' +\r
+ ' <option value="nick_login">Pseudo(Login)</option>' +\r
+ ' </select>' +\r
+ ' </td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>Afficher les infos bulles</td>' +\r
+ ' <td><input type="checkbox" id="viewTooltips" /></td>' +\r
+ ' </tr>' +\r
+ ' <tr>' +\r
+ ' <td>Afficher les dates</td>' +\r
+ ' <td><input type="checkbox" id="viewTimes" /></td>' +\r
+ ' </tr>' : '') +\r
+ ' <tr>' +\r
+ ' <td></td>' +\r
+ ' <td><button>Valider</button></td>' +\r
+ ' </tr>' +\r
+ ' </table>' +\r
+ '</form>';\r
+};\r