Commit 3fde9691707993f2a14f01b21cb250bd3549c5bc

Authored by Geoffrey PREUD'HOMME
1 parent 1d6e24f7

[Orga] Interprétation des données serveurs en cas de modif

Roadmap Orga :
[x] Squelette / Définition
[x] Génération serveur
[x] Édition client
[x] Communication serveur/client
[ ] SQL (le plus dur pour moi, ça fait longtemps)
[ ] Meilleure gestion modifications (permissions)
[ ] Ajout / Validation de dates
[ ] Fonctions s/ les dates (suppresion / validation)
[ ] Intégration au système d'utilisateurs
[ ] Cleanup (y en aura bien besoin)
Showing 2 changed files with 91 additions and 23 deletions   Show diff stats
js/orga.js
... ... @@ -38,7 +38,7 @@ $(document).ready(function() {
38 38 envoiRefresh({
39 39 action: 'modifier',
40 40 id: id,
41   - id: description[0].innerHTML,
  41 + description: description[0].value,
42 42 duree: parseInt(duree[0].value.match(/^../)[0]) * 3600 + parseInt(duree[0].value.match(/^..:(..)/)[1]) * 60
43 43 })
44 44 })
... ...
orga.php
... ... @@ -19,11 +19,13 @@ if ($e_connecte) {
19 19 $droits = array('voir');
20 20 }
21 21  
  22 +$lastID = 0; // TODO Est-ce que cela mérite-t-il d'exister ?
22 23  
23 24 class Evenement
24 25 {
25   - public $id = 0; // TODO DEBUG Remettre privé (et aussi d'autres choses)
26   - private $creationTime = 0;
  26 + // TODO Mettre tout en privé et utiliser __get et __set
  27 + public $id = 0;
  28 + public $creationTime = 0;
27 29  
28 30 public $nom = "Sans nom";
29 31 public $description = "Sans description";
... ... @@ -35,8 +37,20 @@ class Evenement
35 37 public $dates = array();
36 38 public $datesVotes = array();
37 39  
38   - public function charger() {
39   - // TODO SQL
  40 + function __construct($id = 0) {
  41 + global $lastID;
  42 + if ($id == 0) { // Nouvel évènement
  43 + $lastID += 1;
  44 + $this->id = $lastID;
  45 + $this->creationTime = time();
  46 + } else { // Évènement existant : on charge
  47 + // TODO SQL Select
  48 + $this->id = $lastID + 1; // TODO DEBUG SQL Récupération id
  49 + if ($this->id > $lastID) {
  50 + $lastID = $this->id;
  51 + }
  52 + // TODO SQL Récupération du reste des propriétés
  53 + }
40 54 }
41 55  
42 56 public function sauvegarder() {
... ... @@ -168,18 +182,16 @@ class Evenement
168 182  
169 183 }
170 184  
171   -# a_ : Récupérer depuis la base de donnée
172   -function a_evenement() {
  185 +# a_ : Récupérer depuis la base de donnée (ou pas)
  186 +function a_evenements() {
173 187 # DEBUG
174 188 $test1 = new Evenement;
175   - $test1->id = 1;
176 189 $test1->duree = 12345;
177 190 $test1->nom = 'Évènement de test n°1';
178 191 $test1->description = 'Description de l\'évènement de test n°1';
179 192 $test1->valide = time();
180 193  
181 194 $test2 = new Evenement;
182   - $test2->id = 2;
183 195 $test2->nom = 'Évènement de test n°2';
184 196 $test2->description = 'Description de l\'évènement de test n°2';
185 197 $test2->duree = 36000;
... ... @@ -187,7 +199,6 @@ function a_evenement() {
187 199 $test2->annule = true;
188 200  
189 201 $test3 = new Evenement;
190   - $test3->id = 3;
191 202 $test3->nom = 'Évènement de test n°3';
192 203 $test3->description = 'Description de l\'évènement de test n°3';
193 204 $test3->dates[] = 1415482197;
... ... @@ -198,7 +209,6 @@ function a_evenement() {
198 209 $test3->datesVotes[] = 1;
199 210  
200 211 $test4 = new Evenement;
201   - $test4->id = 4;
202 212 $test4->nom = 'Évènement de test n°4';
203 213 $test4->description = 'Description de l\'évènement de test n°4';
204 214 $test4->dates[] = time();
... ... @@ -209,7 +219,6 @@ function a_evenement() {
209 219 $test4->annule = true;
210 220  
211 221 $test5 = new Evenement;
212   - $test5->id = 5;
213 222 $test5->nom = 'Évènement de test n°5';
214 223 $test5->description = 'Description de l\'évènement de test n°5';
215 224 $test5->dates[] = time();
... ... @@ -217,7 +226,6 @@ function a_evenement() {
217 226 $test5->supprime = true;
218 227  
219 228 $test6 = new Evenement;
220   - $test6->id = 6;
221 229 $test6->nom = 'Évènement de test n°6';
222 230 $test6->description = 'Description de l\'évènement de test n°6';
223 231 $test6->valide = 1415452197;
... ... @@ -225,27 +233,88 @@ function a_evenement() {
225 233 return array($test1, $test2, $test3, $test4, $test5, $test6);
226 234 }
227 235  
228   -# POST
  236 +$evenements = a_evenements();
229 237  
230   -if (isset($_POST['action'])) {
231   -?>
  238 +function a_evenement($id) {
  239 + global $evenements;
  240 + foreach ($evenements as $evenement) {
  241 + if ($evenement->id == $id) {
  242 + return $evenement;
  243 + }
  244 + }
  245 +}
232 246  
233   -<div class="alert alert-success" role="alert">Mon capitaine ! On a reçu quelque chose !</div>
  247 +# TRAITEMENT DES DONNEES POST
234 248  
235   -<?php
  249 +function mauvaiseRequete($code = 0) {
  250 + echo '<div class="alert alert-danger" role="alert">Le serveur n\'a pas compris votre requête <small>(code d\'erreur n°'.$code.')</small>.</div>';
  251 +}
  252 +
  253 +function bonneRequete($message = 'Action correctement effectuée.') {
  254 + echo '<div class="alert alert-success" role="alert">'.$message.'</div>';
  255 +}
  256 +
  257 +if (isset($_POST['action'])) {
  258 +
  259 + switch ($_POST['action']) {
  260 + case 'modifier':
  261 + if (isset($_POST['id']) && isset($_POST['description']) && isset($_POST['duree'])) {
  262 + if ($evenement = a_evenement($_POST['id'])) {
  263 + if (($duree = intval($_POST['duree'])) >= 0) {
  264 + $evenement->description = $_POST['description']; // TODO Protection nécessaire pour SQL
  265 + $evenement->duree = $duree;
  266 + bonneRequete('Élement correctement modifié.');
  267 + } else {
  268 + mauvaiseRequete(4);
  269 + }
  270 + } else {
  271 + mauvaiseRequete(3);
  272 + }
  273 + } else {
  274 + mauvaiseRequete(2);
  275 + }
  276 + break;
  277 +
  278 + case 'annuler':
  279 + if (isset($_POST['id'])) {
  280 + if ($evenement = a_evenement($_POST['id'])) {
  281 + $evenement->annule = true;
  282 + bonneRequete('Évènement annulé.');
  283 + } else {
  284 + mauvaiseRequete(3);
  285 + }
  286 + } else {
  287 + mauvaiseRequete(2);
  288 + }
  289 + break;
  290 +
  291 + case 'supprimer':
  292 + if (isset($_POST['id'])) {
  293 + if ($evenement = a_evenement($_POST['id'])) {
  294 + $evenement->supprime = true;
  295 + bonneRequete('Évènement supprimé.');
  296 + } else {
  297 + mauvaiseRequete(3);
  298 + }
  299 + } else {
  300 + mauvaiseRequete(2);
  301 + }
  302 + break;
  303 +
  304 + default:
  305 + mauvaiseRequete(1);
  306 + break;
  307 + }
236 308 }
237 309  
238 310  
239 311 # AFFICHAGE DE LA PAGE
240 312  
241 313 # Tri des évènements
242   -$evenements = a_evenement();
243 314 $evenementsPlanifies = array();
244 315 $evenementsAPlanifier = array();
245 316 $evenementsPasses = array();
246 317  
247   -$time = time();
248   -
249 318 foreach ($evenements as $evenement) {
250 319 if (!$evenement->supprime) {
251 320 if ($evenement->valide) {
... ... @@ -260,9 +329,8 @@ foreach ($evenements as $evenement) {
260 329 }
261 330 }
262 331  
263   -?>
  332 +# Affichage
264 333  
265   -<?php
266 334 if (!$e_connecte) {
267 335 ?>
268 336 <div class="alert alert-warning" role="alert">Connectez-vous afin de pouvoir agir sur les évènements.</div>
... ...