www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 7807f9f674a1a59fadb5db2342b53d07ebb661d9
parent 329a9f1339942949de0ea5b90af0fe61f3c4eb30
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Sat, 21 May 2011 15:18:07 +0200

Support du thème (mais pas encore de set préférences).

Diffstat:
Mcode/serveur/php/jeu.php | 58+++++++++++++++++++++++++++++-----------------------------
Mcode/serveur/php/ressources/backend.inc | 2+-
Mcode/serveur/php/ressources/pticlic.js | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 105 insertions(+), 32 deletions(-)

diff --git a/code/serveur/php/jeu.php b/code/serveur/php/jeu.php @@ -4,57 +4,57 @@ <title>PtiClic pre-alpha 0.2</title> <meta charset="utf-8" /> <meta name="viewport" content="target-densitydpi=device-dpi" /> - <style>.screen { display: none; }</style> <script src="ressources/jquery-1.5.1.min.js"></script> <script src="ressources/jquery-ui-1.8.11.custom.min.js"></script> <script src="ressources/jquery.ba-hashchange.min.js"></script> <script src="ressources/jquery.JSON.js"></script> <script src="ressources/my-extensions.js"></script> <script src="ressources/pticlic.js"></script> - <script src="server.php?callback=prefs.loadPrefs&action=7"></script> + <script src="server.php?callback=loadPrefs&action=7"></script> <style> - img { border: none; } - body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; } + .screen { display:none; } + img { border:none; } + body, html { margin:0; padding:0; height:100%; overflow:hidden; } .screen { width:100%; height:100%; position:absolute; } .highlight { display:none; width:100%; height:100%; border-width:medium; border-style:solid; border-radius:2em; position:absolute; } a:hover .highlight { display:block; } - #frontpage a { color: black; text-decoration: none; display:inline-block; width: 30%; top: 32%; position:absolute; } - #frontpage .icon-container img { display:block; position:relative; margin: 0 auto; } + #frontpage a { text-decoration:none; display:inline-block; width:30%; top:32%; position:absolute; } + #frontpage .icon-container img { display:block; position:relative; margin:0 auto; } #frontpage .icon-label { width:100%; height:30%; position:relative; } - a.button { - color: black; text-decoration: none; - padding: 0.4em; margin: 0.4em; display: inline-block; - border: medium solid #4a4; background-color:#f0f8d0; border-radius:0.4em; - } - .relationBox { border-width: 3px; border-style: solid; border-radius:1em; padding: 0.5em; width: 95%; margin: 0 auto; } - .formElement { width:46%; height: 10%; position:absolute; } + a.button { text-decoration:none; padding:0.4em; margin:0.4em; display:inline-block; border-width:medium; border-style:solid; border-radius:0.4em; } + .relationBox { border-width:3px; border-style:solid; border-radius:1em; padding:0.5em; width:95%; margin:0 auto; } + .formElement { width:46%; height:10%; position:absolute; } #score { text-align:center; } - .marginBox { width: 90%; height: 90%; top: 5%; left:5%; position:absolute; } - #message { left:25%; top:5%; width:50%; height:10%; position:absolute; border-radius:0.5em; text-align:center; opacity:0.9; } + .marginBox { width:90%; height:90%; top:5%; left:5%; position:absolute; } + #message { left:25%; top:5%; width:50%; height:10%; position:absolute; border-width:medium; border-style:solid; border-radius:0.5em; text-align:center; opacity:0.9; } - .transition { transition: all 0.7s linear; -moz-transition: all 0.7s linear; -webkit-transition: all 0.7s linear; } - .transition-bg { transition: background-color 0.7s linear; -moz-transition: background-color 0.7s linear; -webkit-transition: background-color 0.7s linear; } + .transition { transition:all 0.7s linear; -moz-transition:all 0.7s linear; -webkit-transition:all 0.7s linear; } + .transition-bg { transition:background-color 0.7s linear; -moz-transition:background-color 0.7s linear; -webkit-transition:background-color 0.7s linear; } - #splash, #nojs { background-color:black; color: white; } + #splash, #nojs { background-color:black; color:white; } /* couleurs green */ - body, .screen { background-color:#ffffe0; color: black; } - #message { background-color:#f0f8d0; color:black; border:medium solid #4a4; } + body, .screen { background-color:#ffffe0; color:black; } + a.button { color:black; border-color:#4a4; background-color:#f0f8d0; } + #message { background-color:#f0f8d0; color:black; border-color:#4a4; } + #frontpage a { color:black; } #mc-caption { color:#8b4; } #mn-caption-bg { background-color:#f0f8d0; } - .mn-caption { color: #4a4; } - .borderbar { background-color: #4a4; } - .relationBox { background-color:#f0f8d0; border-color: #4a4; } + .mn-caption { color:#4a4; } + .borderbar { background-color:#4a4; } + .relationBox { background-color:#f0f8d0; border-color:#4a4; } .highlight { background-color:#f0f8d0; border-color:#4a4; } .hot { background-color:yellow; } /* couleurs black */ - body.black, .black .screen { background-color:black; color: white; } - .black #message { background-color:#222; color:white; border:medium solid #ccc; } + body.black, .black .screen { background-color:black; color:white; } + .black a.button { color:white; border-color:#ccc; background-color:#222; } + .black #message { background-color:#222; color:white; border-color:#ccc; } + .black #frontpage a { color:white; } .black #mc-caption { color:white; } .black #mn-caption-bg { background-color:#222; } - .black .mn-caption { color: #ccc; } - .black .borderbar { background-color: #ccc; } - .black .relationBox { background-color:#222; border-color: #ccc; } + .black .mn-caption { color:#ccc; } + .black .borderbar { background-color:#ccc; } + .black .relationBox { background-color:#222; border-color:#ccc; } .black .highlight { background-color:#222; border-color:#ccc; } .black .hot { background-color:#aaa; } </style> @@ -92,7 +92,7 @@ <a href="#prefs" style="left:55%; top:33%;"> <div class="highlight"></div> <div class="icon-container"><img class="iconFitParent" alt="" src="ressources/img/72/default.png" /></div> - <div class="icon-label subFitFont"><span class="text center">Configuration</span></div> + <div class="icon-label subFitFont"><span class="text center">Préférences</span></div> </a> <a href="#connection" style="right:55%; top:66%;"> <div class="highlight"></div> diff --git a/code/serveur/php/ressources/backend.inc b/code/serveur/php/ressources/backend.inc @@ -568,7 +568,7 @@ function setGame($user, $pgid, $gid, $answers) { $num = intval($row['num']); if (!isset($answers[$num])) { - throw new Exception("Cette requête \"Set partie\" ne donne pas de réponse (une relation) pour le mot numéro $num de la partie.", 5); + throw new Exception("Cette requête \"Set partie\" ne donne pas de réponse (une relation) pour le mot numéro ".($num+1)." de la partie.", 5); } $relanswer = intval($answers[$num]); diff --git a/code/serveur/php/ressources/pticlic.js b/code/serveur/php/ressources/pticlic.js @@ -23,6 +23,7 @@ function init(fn) { // ==== Code métier général $(function() { + loadPrefs(); var lastWinSize = $(window).wh(); $(window).dequeue('init'); $(window).resize($.debounce(function resizeJSS() { @@ -41,6 +42,7 @@ function jss() { try { if (jss.running) return; jss.running = true; + $('body').removeClass().addClass(runstate.prefs.theme); if ($("#splash img").is(':visible')) { var ratio = Math.min($('#splash').width() / 320, $('#splash').height() / 480); $('#splash.screen img') @@ -248,7 +250,7 @@ init(function() { $('#game').trigger('goto'); return; } - + window.document.title = "PtiClic "+(state.answers.length + 1)+' / '+runstate.game.cloud.length; $('.mn').text(runstate.game.cloud[state.answers.length].name); jss(); @@ -261,7 +263,7 @@ init(function() { var tmp = runstate.game.cloud[oldstate.answers.length]; var a = runstate.currentMNCaption.text(tmp ? tmp.name : '…'); var b = $('<span class="mn-caption"/>').text(runstate.game.cloud[state.answers.length].name); - if (isForward && (oldstate.screen != 'game' || state.answers.length == oldstate.answers.length)) { + if (!rb || (isForward && (oldstate.screen != 'game' || state.answers.length == oldstate.answers.length))) { isForward = true; a.remove(); a = $(); @@ -343,6 +345,77 @@ init(function() { }); }); +// ==== Écran Préférences +function loadPrefs(prefs) { + runstate.prefs = (prefs && prefs.theme) ? prefs : { + theme: "black" + }; + if (runstate.loaded) jss(); +} + +init(function() { +}); +/*prefs.enter = function() { + try { + $("#prefs-form").unbind('submit', prefs.apply).submit(prefs.apply); + $("#prefs-cancel").clickOnce(prefs.cancel); + $("#prefs-form input:radio[name=theme]").attr('checked', function(i,val) { + return $(this).val() == runstate.prefs.theme; + }); + jss(); + UI().dismiss(); + } catch(e) {alert("Error prefs.enter");alert(e);} +}; + +prefs.apply = function(){ + try { + var newtheme = $("#prefs-form input:radio[name=theme]:checked").val(); + ajaj.request("server.php?callback=?", { + action: 8, + key: 'theme', + value: newtheme + }, function(data) { + try { + if (data.theme) { + message("Préférences", "Les préférences ont été enregistrées."); + prefs.loadPrefs(data); + } else { + message("Préférences", "Les préférences n'ont pas pu être enregistrées."); + } + } catch(e) {alert("Error anonymous in prefs.apply");alert(e);} + }); + state.set('screen', 'frontpage').validate(); + return false; + } catch(e) {alert("Error anonymous in prefs.apply");alert(e);} +}; + +prefs.cancel = function(){ + try { + state.set('screen', 'frontpage').validate(); + } catch(e) {alert("Error anonymous in prefs.cancel");alert(e);} +}; + +prefs.loadPrefs = function(data) { + try { + if (data && data.theme) { + runstate.prefs = data; + } else { + runstate.prefs = { + theme: "green" + }; + } + if (runstate.loaded) jss(); + } catch(e) {alert("Error anonymous in prefs.loadPrefs");alert(e);} +}; +*/ + + + + + + + + game = {}; game.leave = function () { try {