commit d3e051693cf463ea5e1a6f9a23b3ac88f85eba6e
parent 0ab4833657abc05fafa1da94da80ee2a133d3101
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Tue, 24 May 2011 18:23:42 +0200
Bouton connecter/déconnecterr 95%.
Diffstat:
3 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/code/serveur/php/jeu.html b/code/serveur/php/jeu.html
@@ -104,7 +104,7 @@
<a class="fpButton" href="#connection" style="right:55%; top:66%;">
<div class="highlight"></div>
<div class="icon-container"><img alt="" class="icon" src="ressources/img/72/default.png" /></div>
- <div class="icon-label subFitFont"><span class="text center">Connexion</span></div>
+ <div class="icon-label subFitFont"><span class="text dis-connect center">Connexion</span></div>
</a>
<a class="fpButton" href="#info" style="left:55%; top:66%;">
<div class="highlight"></div>
diff --git a/code/serveur/php/ressources/pticlic.js b/code/serveur/php/ressources/pticlic.js
@@ -16,6 +16,7 @@ $.ajaj = function(url, data, dfd, retryCheck, callback) {
if (callback) return $.getJSON(url, data, callback);
return $.getJSON(url, data, function(data) {
if (data.isError) {
+ isConnected(false);
dfd.reject(data);
message("Erreur", data.msg);
if ((data.error == 10 || data.error == 3) && state.screen == fromScreen && (!retryCheck || retryCheck())) {
@@ -24,9 +25,11 @@ $.ajaj = function(url, data, dfd, retryCheck, callback) {
$.screen('frontpage').trigger('goto');
}
} else {
+ isConnected(true);
dfd.resolve(data);
}
}).fail(function(data) {
+ isConnected(false);
dfd.reject(data);
$("#frontpage").trigger('goto');
message("Erreur", "Une erreur est survenue, veuillez nous en excuser.");
@@ -198,6 +201,9 @@ init(function() {
window.document.title = "PtiClic pre-alpha 0.2";
if (runstate.pendingSetPrefs) runstate.pendingSetPrefs();
});
+ $.screen('frontpage').bind('update', function() {
+ $('.dis-connect').text(isConnected() ? "Déconnexion" : "Connexion");
+ });
if (UI().isAndroid()) $('#back2site').hide();
$('#frontpage a.fpButton').$each(function(i,e) {
e.find('img.icon').data('image', e.attr('href').substring(1));
@@ -205,6 +211,15 @@ init(function() {
});
// ==== Écran connexion
+function isConnected(arg) {
+ if (typeof arg == 'undefined') {
+ return !!runstate.connected;
+ } else {
+ runstate.connected = !!arg;
+ if (runstate.screen == 'frontpage') $.screen('frontpage').trigger('update');
+ }
+}
+
init(function() {
$('#connection.screen form').submit(function() {
runstate.user = $('#user').val();
@@ -231,6 +246,21 @@ init(function() {
runstate.cancelPendingSetPrefs();
if (state.screen == 'frontpage') $.screen('frontpage').trigger('goto');
});
+
+ $('a[href="#connection"]').click(function() {
+ if (isConnected()) {
+ UI().setPreference("user", '');
+ UI().setPreference("passwd", '');
+ runstate.user = '';
+ runstate.passwd = '';
+ $.ajaj("server.php?callback=?", { action: 9 }, null, null, function(data) {
+ isConnected(false);
+ message("Succès", "Vous êtes déconnecté.");
+ loadPrefs({theme:"green"});
+ });
+ return false;
+ }
+ });
});
// ==== Écran game
@@ -365,6 +395,7 @@ runstate.serverPrefs = $.extend({}, runstate.prefs);
function loadPrefs(prefs) {
var previousTheme = runstate.prefs ? runstate.prefs.theme : 'green';
if (prefs && prefs.theme) {
+ isConnected(true);
runstate.prefs = prefs;
runstate.serverPrefs = $.extend({}, runstate.prefs);
if (runstate.loaded && previousTheme != runstate.prefs.theme) jss();
@@ -383,8 +414,8 @@ function setPrefs(prefs, callback) {
runstate.pendingGetPrefs = function() {
$.ajaj("server.php?callback=?", { action: 7 }, null, null, function(data) {
- if (data.theme) { runstate.connected = true; message("Succès", "Vous êtes connecté.", data.msg); loadPrefs(data); }
- if (data.isError) message("Erreur", data.msg);
+ if (data.theme) { isConnected(true); message("Succès", "Vous êtes connecté."); loadPrefs(data); }
+ if (data.isError) { isConnected(false); message("Erreur", data.msg); }
});
};
diff --git a/code/serveur/php/server.php b/code/serveur/php/server.php
@@ -111,8 +111,10 @@ function main()
setUserPref($user, $_GET['key'], $_GET['value']);
userPrefs($user);
- }
- else {
+ } elseif ($action == 9) {
+ session_destroy();
+ echo '{"disconnected":true}';
+ } else {
throw new Exception("Commande inconnue", 2);
}
}