Commit 3fde9691707993f2a14f01b21cb250bd3549c5bc
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> | ... | ... |