Blame view

orga.php 9.33 KB
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
1
  <h3> Organisation </h3>
97d25235   Erwan Nanrocki   ajout d un titre ...
2
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
3
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
4
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
5
6
  $time = time();
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
7
  # e_ : est
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
8
9
10
  // $e_connecte = (isset($_SESSION["connected"]) && $_SESSION["connected"]);
  $e_connecte = true; // DEBUG
  $e_modo = true; // DEBUG
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
11
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
12
13
14
15
16
17
18
19
20
21
  if ($e_connecte) {
      if ($e_modo) {
          $droits  = array('voir', 'voter', 'ajouter', 'proposer', 'annuler', 'supprimer', 'modifier', 'valider');
      } else {
          $droits = array('voir', 'voter');
      }
  } else {
      $droits = array('voir');
  }
  
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
22
23
24
  
  class Evenement
  {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
25
      public $id = 0; // TODO DEBUG Remettre privé (et aussi d'autres choses)
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
26
27
      private $creationTime = 0;
  
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
28
29
30
31
      public $nom = "Sans nom";
      public $description = "Sans description";
      public $annule = false;
      public $valide = false;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
32
33
      public $duree = 3600;
      public $supprime = false;
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
34
35
  
      public $dates = array();
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
36
      public $datesVotes = array();
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
37
38
  
      public function html() {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
39
          $html = '<li id="ev_li_'.$this->id.'" class="ev_li list-group-item';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
40
41
42
43
          if ($this->annule) {
              $html .= ' list-group-item-danger';
          }
          $html .= '">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
44
45
  
          # Titre
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
46
          $html .= '<h4 class="list-group-item-heading">'.$this->nom;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
47
          if ($this->p_annuler()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
48
              $html .= ' <button type="button" class="ev_annuler btn btn-warning"><span class="glyphicon glyphicon glyphicon-remove"></span> Annuler</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
49
          }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
50
          if ($this->p_supprimer()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
51
              $html .= ' <button type="button" class="ev_supprimer btn btn-danger"><span class="glyphicon glyphicon glyphicon-trash"></span> Supprimer</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
52
          }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
53
          $html .= '</h4>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
54
55
56
57
  
          # Description
          $html .= '<div class="panel panel-default">';
          $html .= '<div class="panel-heading">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
58
          $html .= '<h5 class="panel-title">Informations';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
59
          if ($this->p_modifier()) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
60
              $html .= ' <button type="button" class="ev_modifier btn btn-default"><span class="glyphicon glyphicon-pencil"></span> Modifier</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
61
          }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
62
          $html .= '</h5>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
63
64
          $html .= '</div>';
          $html .= '<div class="panel-body">';
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
65
          $html .= '<p class="ev_description">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
66
67
68
69
          $html .= nl2br(htmlspecialchars($this->description));
          $html .= '</p>';
          // $html .= '<hr/>';
          $html .= '<p>';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
70
71
72
          $heures = floor($this->duree/3600);
          $minutes = floor($this->duree%3600/60);
          $secondes = floor($this->duree%3600%60);
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
73
          $html .= 'Durée : <span class="ev_duree">'.($heures > 0 ? '<span class="ev_duree_h">'.$heures.'</span> heure'.($heures > 1 ? 's' : '').' ' : '').($minutes > 0 ? '<span class="ev_duree_m">'.$minutes.'</span> minute'.($minutes > 1 ? 's' : '').' ' : '').($secondes > 0 ? '<span class="ev_duree_s">'.$secondes.'</span> seconde'.($secondes > 1 ? 's' : '').' ' : '').'</span><br/>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
74
          if ($this->valide) {
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
75
              $html .= 'Date : le <span class="ev_date">'.date('j/m/o', $this->valide).' à '.date('H:i', $this->valide).'</span><br/>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
76
77
78
          }
          $html .= '</p>';
          if ($this->annule) {
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
79
              $html .= '<p><span class="label label-danger">Annulé</span></p>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
80
81
82
83
84
85
86
  
          }
          $html .= '</div>';
          $html .= '</div>';
  
          # Dates
          if (!$this->valide && !$this->annule) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
87
              $html .= '<div class="ev_pos panel panel-default">';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
88
              $html .= '<div class="panel-heading">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
89
              $html .= '<h5 class="panel-title">Dates possibles';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
90
              if ($this->p_proposer()) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
91
                  $html .= ' <button type="button" class="ev_pos_proposer btn btn-default"><span class="glyphicon glyphicon-plus"></span> Proposer une date</button>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
92
              }
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
93
              $html .= '</h5>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
94
95
              $html .= '</div>';
              $html .= '<div class="panel-body">';
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
96
97
98
              if ($this->p_voter()) {
                  $html .= '<p>Sélectionnez les dates qui vous conviennent.</p>';
              }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
99
100
              $html .= '<div class="list-group">';
              $time = time();
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
101
              foreach ($this->dates as $dateIndex => $date) { // TODO À faire fonctionner (après que le reste fonctionne)
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
102
103
104
105
                  $html .= '<a href="#"class="list-group-item';
                  if ($date < $time) {
                      $html .= ' disabled';
                  }
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
106
                  $html .= '">Le <span class="ev_pos_date">'.date('j/m/o', $date).' à '.date('H:i', $date).'</span> (<span class="ev_pos_nb">'.$this->datesVotes[$dateIndex].'</span> <span class="glyphicon glyphicon-user"></span>)</a>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
107
              }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
108
109
              $html .= '</div>';
              if ($this->p_valider()) {
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
110
                  $html .= '<p><button type="button" class="ev_pos_valider btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Valider la date</button></p>';
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
111
112
113
114
115
116
117
118
              }
              $html .= '</div>';
              $html .= '</div>';
          }
  
          $html .= '</li>';
          return $html;
      }
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
  
      public function passe() {
          global $time;
          if ($this->valide) {
              return $this->valide+$this->duree < $time;
          } else {
              return false;
          }
      }
  
      # p_ : Il est possible de ...
      function p_annuler() {
          global $droits;
          return in_array('annuler', $droits) && !$this->annule && !$this->passe();
      }
  
      function p_supprimer() {
          global $droits;
          return in_array('supprimer', $droits) && !$this->valide;
      }
  
      function p_modifier() {
          global $droits;
          return in_array('modifier', $droits);
      }
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
145
146
147
148
149
      function p_voter() {
          global $droits;
          return in_array('voter', $droits) && !$this->valide;
      }
  
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
150
151
      function p_proposer() {
          global $droits;
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
152
          return in_array('proposer', $droits) && !$this->valide;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
153
154
155
156
      }
  
      function p_valider() {
          global $droits;
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
157
          # TODO Et si un nombre suffisant de personnes est ok avec la date la plus disponible 
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
158
159
160
161
162
163
164
165
166
          return in_array('valider', $droits) && !$this->valide;
      }
  
  }
  
  # a_ : Récupérer depuis la base de donnée
  function a_evenement() {
      # DEBUG
      $test1 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
167
      $test1->id = 1;
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
168
      $test1->duree = 12345;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
169
      $test1->nom = 'Évènement de test n°1';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
170
      $test1->description = 'Description de l\'évènement de test n°1';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
171
172
173
      $test1->valide = time();
      
      $test2 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
174
      $test2->id = 2;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
175
      $test2->nom = 'Évènement de test n°2';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
176
177
      $test2->description = 'Description de l\'évènement de test n°2';
      $test2->duree = 36000;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
178
179
180
181
      $test2->valide = time();
      $test2->annule = true;
      
      $test3 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
182
      $test3->id = 3;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
183
      $test3->nom = 'Évènement de test n°3';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
184
      $test3->description = 'Description de l\'évènement de test n°3';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
185
186
187
188
189
190
191
192
      $test3->dates[] = 1415482197;
      $test3->datesVotes[] = 42;
      $test3->dates[] = time();
      $test3->datesVotes[] = 5;
      $test3->dates[] = time()+365*24*3600;
      $test3->datesVotes[] = 1;
      
      $test4 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
193
      $test4->id = 4;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
194
      $test4->nom = 'Évènement de test n°4';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
195
      $test4->description = 'Description de l\'évènement de test n°4';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
196
197
198
199
200
201
202
203
      $test4->dates[] = time();
      $test4->datesVotes[] = 5;
      $test4->dates[] = time()+365*24*3600;
      $test4->datesVotes[] = 1;
      $test4->dates[] = time();
      $test4->annule = true;
  
      $test5 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
204
      $test5->id = 5;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
205
      $test5->nom = 'Évènement de test n°5';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
206
      $test5->description = 'Description de l\'évènement de test n°5';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
207
208
209
210
211
      $test5->dates[] = time();
      $test5->datesVotes[] = 0;
      $test5->supprime = true;
  
      $test6 = new Evenement;
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
212
      $test6->id = 6;
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
213
      $test6->nom = 'Évènement de test n°6';
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
214
      $test6->description = 'Description de l\'évènement de test n°6';
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
      $test6->valide = 1415452197;
  
      return array($test1, $test2, $test3, $test4, $test5, $test6);
  }
  
  # Tri des évènements
  $evenements = a_evenement();
  $evenementsPlanifies = array();
  $evenementsAPlanifier = array();
  $evenementsPasses = array();
  
  $time = time();
  
  foreach ($evenements as $evenement) {
      if (!$evenement->supprime) {
          if ($evenement->valide) {
              if ($evenement->passe()) {
                  $evenementsPasses[] = $evenement;
              } else {
                  $evenementsPlanifies[] = $evenement;
              }
          } else {
              $evenementsAPlanifier[] = $evenement;
          }
      }
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
240
241
  }
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
242
  ?>
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
243
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
244
245
246
247
248
249
250
251
252
253
  <?php
  if (!$e_connecte) {
  ?>
  <div class="alert alert-warning" role="alert">Connectez-vous afin de pouvoir agir sur les évènements.</div>
  <?php    
  }
  ?>
  <?php
  if (in_array('voir', $droits)) {
  ?>
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
254
255
  <h3>Évènements plannifiés <?php if (in_array('ajouter', $droits)) { ?><button id="ev_ajouter_fixe" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Ajouter un évènement avec une date fixée</button><?php } ?></h3>
  <ul id="ev_ul_planifies" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
256
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
257
258
259
  foreach ($evenementsPlanifies as $evenement) {
      echo $evenement->html();
  }
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
260
  ?>
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
261
262
  </ul>
  
27f3beb9   Geoffrey Bontoux-Preud-Homme   Ajout de orga.php
263
  
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
264
265
  <h3>Évènements à plannifier <?php if (in_array('ajouter', $droits)) { ?><button id="ev_ajouter_choix" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Ajouter un évènement avec une date à choisir</button><?php } ?></h3>
  <ul id="ev_ul_aplanifier" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
266
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
267
268
269
  foreach ($evenementsAPlanifier as $evenement) {
      echo $evenement->html();
  }
f84e30e3   Geoffrey PREUD'HOMME   [Orga] Retravail
270
271
272
273
  ?>
  </ul>
  
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
274
  <h3>Évènements passés</h3>
6884541c   Geoffrey PREUD'HOMME   [Orga] Ajout d'id...
275
  <ul id="ev_ul_passes" class="list-group">
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
276
  <?php
5f2f48c7   Geoffrey PREUD'HOMME   [Orga] Modificati...
277
278
279
280
  foreach ($evenementsPasses as $evenement) {
      echo $evenement->html();
  }
  ?>
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
281
282
  </ul>
  
fab2252b   Geoffrey PREUD'HOMME   [Orga] Réponse ad...
283
  <script type="text/javascript" src="js/orga.js"></script>
3a23c07d   Geoffrey PREUD'HOMME   [Orga] Ajout d'év...
284
  
e4f5453d   Geoffrey PREUD'HOMME   [Orga] Meilleure ...
285
286
287
288
289
290
291
  <?php
  } else {
  ?>
  <div class="alert alert-danger" role="alert">Vous ne pouvez pas voir les évènements.</div>
  <?php
  }
  ?>