2 // Copyright 2008 Grégory Burri
4 // This file is part of Euphorik.
6 // Euphorik is free software: you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation, either version 3 of the License, or
9 // (at your option) any later version.
11 // Euphorik is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
19 euphorik
.PageProfile = function(client
, formateur
, util
) {
23 this.formateur
= formateur
;
27 euphorik
.PageProfile
.prototype.contenu = function() {
32 euphorik
.PageProfile
.prototype.charger = function() {
33 $("#page").html(this.getHTML());
35 // en fonction du statut
36 if (this.client
.authentifie()) {
37 this.chargerProfile();
42 $("#page form#profile").submit(function(){ return false; });
45 euphorik
.PageProfile
.prototype.chargerProfile = function() {
48 $("form#profile input.login").val(this.client
.login
);
49 $("form#profile input.pseudo").val(this.client
.pseudo
);
50 $("form#profile input.email").val(this.client
.email
);
51 $("form#profile input#viewTooltips").attr("checked", this.client
.viewTooltips
);
52 $("form#profile input#viewTimes").attr("checked", this.client
.viewTimes
);
54 $("form#profile select#chatOrder option").removeAttr("selected");
55 $("form#profile select#chatOrder option[value=" + this.client
.chatOrder
+ "]").attr("selected", "selected");
57 $("form#profile select#affichagePseudo option").removeAttr("selected");
58 $("form#profile select#affichagePseudo option[value=" + this.client
.nickFormat
+ "]").attr("selected", "selected");
60 if (this.client
.ostentatiousMaster
) {
61 $("form#profile select#degreeOstentatoire option").removeAttr("selected");
62 $("form#profile select#degreeOstentatoire option[value=" + this.client
.ostentatiousMaster
+ "]").attr("selected", "selected");
65 $("form#profile button").click(
67 thisPage
.client
.pseudo
= thisPage
.formateur
.filtrerInputPseudo($("form#profile input.pseudo").val());
68 thisPage
.client
.email
= $("form#profile input.email").val();
69 thisPage
.client
.chatOrder
= $("form#profile select#chatOrder option:selected").attr("value");
70 thisPage
.client
.nickFormat
= $("form#profile select#affichagePseudo option:selected").attr("value");
71 if (thisPage
.client
.ekMaster
) {
72 thisPage
.client
.ostentatiousMaster
= $("form#profile select#degreeOstentatoire option:selected").attr("value");
74 thisPage
.client
.viewTooltips
= $("form#profile input#viewTooltips").attr("checked");
75 thisPage
.client
.viewTimes
= $("form#profile input#viewTimes").attr("checked");
77 var password
= $("form#profile input.password").val();
78 var passwordRe
= $("form#profile input.passwordRe").val();
79 if (password
!== "" || passwordRe
!== "") {
80 if (password
!== passwordRe
) {
81 thisPage
.util
.messageDialogue("Les mots de passes ne correspondent pas");
84 thisPage
.client
.password
= thisPage
.util
.md5(password
);
87 if(!thisPage
.client
.flush()) {
88 thisPage
.util
.messageDialogue("Impossible de mettre à jour votre profile, causes inconnues", euphorik
.Util
.messageType
.erreur
);
90 thisPage
.util
.messageDialogue("Votre profile a été mis à jour");
91 thisPage
.pages
.afficherPage("minichat");
97 euphorik
.PageProfile
.prototype.chargerLogin = function() {
100 $("#page form#profile button").click(
102 if(thisPage
.client
.connexionLogin($("form#profile input.login").val(), thisPage
.util
.md5($("form#profile input.password").val()))) {
103 // TODO afficher un message "ok"
104 thisPage
.pages
.afficherPage("minichat");
110 euphorik
.PageProfile
.prototype.getHTML = function() {
111 return '<form action="" id="profile" >' +
115 ' <td><input class="login" type="text" size="20" maxlength="20" ' + (this.client
.authentifie() ? 'readonly="readonly"' : '') + ' /></td>' +
116 (this.client
.authentifie() ? '' : ' <td>(sensible à la <a href="http://fr.wikipedia.org/wiki/Casse_(informatique)">casse</a>)</td>') +
119 ' <td>password</td>' +
120 ' <td><input class="password" type="password" size="20" maxlength="20"/></td>' +
122 (this.client
.authentifie() ? '' +
124 ' <td>password re</td>' +
125 ' <td><input class="passwordRe" type="password" size="20" maxlength="20"/></td>' +
129 ' <td><input class="pseudo" type="text" size="40" maxlength="20"/></td>' +
133 ' <td><input class="email" type="text" size="40" maxlength="100"/></td>' +
136 ' <td>Ordre des messages</td>' +
138 ' <select id="chatOrder">' +
139 ' <option value="chrono">Chronologique</option>' +
140 ' <option value="reverse">Anti-chronologique</option>' +
145 (this.client
.ekMaster
? '' +
146 ' <td>Degrée d\'ostentation</td>' +
148 ' <select id="degreeOstentatoire">' +
149 ' <option value="invisible">Nul</option>' +
150 ' <option value="light">Faible</option>' +
151 ' <option value="heavy">Élevé</option>' +
156 ' <td>Affichage des identifiants</td>' +
158 ' <select id="affichagePseudo">' +
159 ' <option value="nick">Pseudo</option>' +
160 ' <option value="login">Login</option>' +
161 ' <option value="nick_login">Pseudo(Login)</option>' +
166 ' <td>Afficher les infos bulles</td>' +
167 ' <td><input type="checkbox" id="viewTooltips" /></td>' +
170 ' <td>Afficher les dates</td>' +
171 ' <td><input type="checkbox" id="viewTimes" /></td>' +
175 ' <td><button>Valider</button></td>' +