views.php 5.18 KB
Newer Older
1
2
3
<?php

class Views {
4

5
6
7
8
9
10
11
12
13
14
15
16
17
18
    private $admin;
    private $utclogin;
    private $surname;
    private $firstname;

    public function __construct ($admin, $utclogin, $surname, $firstname) {
      $this->admin=$admin;
      $this->utclogin=$utclogin;
      $this->surname=$surname;
      $this->firstname=$firstname;
    }

    public function isActive() {
      return $this->admin->isActive();
19
20
    }

21
    public function printHtmlBegin() {
22
23
24
25
26
27
28
    echo '<html>';
    echo '<head>';
    echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
    echo '<title>Api Sub</title>';
    echo '<link href="css/main.css" type="text/css" rel="stylesheet"/>';
    echo '</head>';
    echo '<body>';
29
    echo '<h1>Inscriptions aux Api</h1>';
30
31
    }

32
    public function printInstructions($row) {
33
34
        echo '<h2>Instructions</h2>';
        echo '<p>Les Api sont décrites ici : <b><a href="https://apint.utc.fr/cat">https://apint.utc.fr/cat</a></b></p>';
35
36
37
        echo "<p>Veillez à avoir bien lu la fiche avant de vous inscrire (pré-requis, dates...). Vous pouvez vous inscrire et vous désinscrire <b>tant que votre inscription n'est pas validée</b>.</p>";
        echo "<p>La présence à une Api validée est obligatoire.<p>";
        echo '<p>Vous ne <b>pouvez pas</b> suivre deux Api qui se déroulent lors de la même semaine (sauf pour le cas particulier de l\'Api <i>Animer une Api</i>). Si vous choisissez deux Api la même semaine, vous serez inscrit à la première qui sera validée.</p>';
38
39
    }

40
41
42
    public function printUser($isResp, $isAdmin) {
        echo "<p><i>$this->firstname $this->surname</i> (<b>$this->utclogin</b>)</p>";
        if ($isResp) {
43
          echo '<a href="index.php?mode=resp">[Gérer ses Api]</a> ';
44
45
        }
        if ($isAdmin) {
46
47
48
49
          echo '<a href="index.php?mode=admin">[Super-pouvoirs]</a> ';
        }
        if ($isResp || $isAdmin) {
          echo '<a href="index.php">[Accueil]</a>';
50
        }
Stephane Crozat's avatar
Fix #1    
Stephane Crozat committed
51
52
    }

53
    private function printApi($row) {
54
55
56
57
58
      return "$row[normcode] - $row[name] (du $row[normdbegin] au $row[normdend]) [Demandes $row[nbask] | Inscriptions $row[nbval]/$row[size]]";
    }

    private function printWeek($row) {
      return "$row[year] Semaine $row[week]";
59
    }
60

61
    public function printSubList($list) {
62
      #KNOWN_BUB #TODO Il est possible de ses déinscrire en utilisant directement l'URL
63
64
      if ($list) {
        echo '<h2>Vos inscriptions</h2>';
65
        $week = '';
66
        foreach ($list as $row) {
67
68
69
70
          if ($row['week'] != $week) {
            $week = $row['week'];
            echo "<h3>".$this->printWeek($row)."</h3>";
          }
71
          echo '<p>';
72
          if ($this->isActive()) {
73
74
75
76
77
78
            if ($row['validation']) {
              echo "<span class='validation'>[validé]</span> ";
            }
            else {
              echo "<a href='index.php?action=unsub&api=$row[id]'>[désinscription]</a> ";
            }
79
          }
80
          echo $this->printApi($row);
81
82
83
84
85
86
87
88
          echo ' ['.$row['semester'].$row['year'].', inscrit le '.$row['subdate'].']';
          echo '</p>';
        }
      }
      else {
        echo '<h2>Aucune inscription</h2>';
      }
    }
89

90
  public function printApiList($list) {
91
92
    if ($list) {
      echo '<h2>Liste des Api</h2>';
93
      $week = '';
94
      foreach ($list as $row) {
95
96
97
98
        if ($row['week'] != $week) {
          $week = $row['week'];
          echo "<h3>".$this->printWeek($row)."</h3>";
        }
99
        echo '<p>';
100
        if ($this->isActive()) {
101
102
103
104
105
106
107
108
109
          if ($row['open'] && $row['is_available']) {
            echo "<a href='index.php?action=sub&api=$row[id]'>[inscription]</a> ";
          }
          elseif (! $row['is_available']) {
            echo "[-] ";
          }
          else {
            echo '[complet] ';
          }
110
        }
111
        echo $this->printApi($row);
112
113
114
115
116
117
118
        echo '</p>';
      }
    }
    else {
      echo '<h2>Aucune Api</h2>';
    }
  }
Stephane Crozat's avatar
Fix #1    
Stephane Crozat committed
119

120
  public function respValidation ($listsub) {
121
    // #KNOWN_BUG Si un resp a plusieurs Api, il peut changer un inscrit entre ses deux Api en modifiant l'URL (pas via l'interface)
122
123
124
125
126
127
128
129
    echo '<h1>Interface Responsable d\'Api</h2>';
    if ($listsub) {
      $api = '';
      foreach ($listsub as $sub) {
        if ($api != $sub['id']) {
          $api = $sub['id'];
          echo "<h2>$sub[normcode] $sub[name] (Semaine $sub[week])</h2>";
        }
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
        if ($sub['utclogin']) {
          if ($sub['validation']) {
            // Subscription already validated
            echo "<p><b>[validé]</b> $sub[utclogin]</p>";
          }
          else if (is_null($sub['validation'])) {
            // At least one waiting subscription
            echo "<p> <a href='index.php?action=validate&api=$sub[id]&login=$sub[utclogin]&mode=resp'>[valider]</a> $sub[utclogin]</p>";
          }
          else {
            // validation = FALSE lignes ignored
          }
        }
        else {
          // Not yet any subscription for this Api (LEFT JOIN might have add null student line)
          echo "<p>Aucune inscription à gérer</p>";
        }
147
148
149
150
151
      }
    }
    else {
      echo "<p>Aucune Api à gérer</p>";
    }
152
153
154
  }

  public function adminFunction ($utclogin) {
155
    echo "<p>Je dois vérifier que $utclogin a vraiment des super-pouvoirs...</p>";
156
  }
157
}