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:
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 {