Commit 1de801b76cb7d175695264125c113731d10d1718
1 parent
8a71d37c
Ajouter utilisateur
Showing
3 changed files
with
90 additions
and
12 deletions
Show diff stats
index.html
... | ... | @@ -48,9 +48,48 @@ |
48 | 48 | <a class="modal-action modal-close waves-effect waves-red btn-flat">Annuler</a> |
49 | 49 | </div> |
50 | 50 | </div> |
51 | + <div id="u_ajouter" class="modal"> | |
52 | + <form @submit="u_ajouter(u_nouveau)"> | |
53 | + <div class="modal-content"> | |
54 | + <h4>Ajouter un utilisateur</h4> | |
55 | + <div class="input-field"> | |
56 | + <i class="material-icons prefix">perm_identity</i> | |
57 | + <input type="text" name="login" v-model="u_nouveau.login" length="30"> | |
58 | + <label for="u_nouveau.login">Login</label> | |
59 | + </div> | |
60 | + <p> | |
61 | + <input name="droit_nouveau" type="radio" id="droit_nouveau_1" v-model="u_nouveau.droit" value="1" /> | |
62 | + <label for="droit_nouveau_1">BDE</label> | |
63 | + </p> | |
64 | + <p> | |
65 | + <input name="droit_nouveau" type="radio" id="droit_nouveau_2" v-model="u_nouveau.droit" value="2" /> | |
66 | + <label for="droit_nouveau_2">Bar</label> | |
67 | + </p> | |
68 | + <p> | |
69 | + <input name="droit_nouveau" type="radio" id="droit_nouveau_3" v-model="u_nouveau.droit" value="3" /> | |
70 | + <label for="droit_nouveau_3">Président</label> | |
71 | + </p> | |
72 | + <div class="input-field"> | |
73 | + <i class="material-icons prefix">vpn_key</i> | |
74 | + <input type="password" name="mdp" v-model="u_nouveau.mdp" length="72"> | |
75 | + <label for="u_nouveau.mdp">Mot de passe</label> | |
76 | + </div> | |
77 | + <div class="input-field"> | |
78 | + <i class="material-icons prefix">credit_card</i> | |
79 | + <input type="text" name="carte" length="8" v-model="u_nouveau.idCarte"> | |
80 | + <label for="carte">Carte</label> | |
81 | + </div> | |
82 | + </div> | |
83 | + <div class="modal-footer"> | |
84 | + <button type="submit" class="modal-action modal-close waves-green" :disabled="!u_nouveau.login || !u_nouveau.droit || !u_nouveau.mdp">Créer</button> | |
85 | + <button type="reset" class="modal-action modal-close waves-red">Annuler</button> | |
86 | + </div> | |
87 | + </form> | |
88 | + </div> | |
51 | 89 | |
52 | 90 | <!-- Page --> |
53 | 91 | <nav role="navigation"> |
92 | + | |
54 | 93 | <div> |
55 | 94 | <div> |
56 | 95 | <a class="brand-logo" v-if="page == 'connexion'">10⁵</a> |
... | ... | @@ -287,22 +326,21 @@ |
287 | 326 | <div class="collapsible-header"> |
288 | 327 | <i class="material-icons" v-if="utilisateur.droit == 1">assignment_ind</i> |
289 | 328 | <i class="material-icons" v-if="utilisateur.droit == 2">perm_identity</i> |
290 | - <i class="material-icons" v-if="utilisateur.droit == 3">supervisor_account</i> | |
291 | - {{ utilisateur.login }} | |
329 | + <i class="material-icons" v-if="utilisateur.droit == 3">supervisor_account</i> {{ utilisateur.login }} | |
292 | 330 | </div> |
293 | 331 | <div class="collapsible-body"> |
294 | 332 | <h5>Changer de droit</h5> |
295 | 333 | <form @change="u_droit(utilisateur)"> |
296 | 334 | <p> |
297 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_1'" v-model="utilisateur.droit" value="1"/> | |
335 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_1'" v-model="utilisateur.droit" value="1" /> | |
298 | 336 | <label :for="'droit_' + utilisateur.login + '_1'">BDE</label> |
299 | 337 | </p> |
300 | 338 | <p> |
301 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_2'" v-model="utilisateur.droit" value="2"/> | |
339 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_2'" v-model="utilisateur.droit" value="2" /> | |
302 | 340 | <label :for="'droit_' + utilisateur.login + '_2'">Bar</label> |
303 | 341 | </p> |
304 | 342 | <p> |
305 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_3'" v-model="utilisateur.droit" value="3"/> | |
343 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_3'" v-model="utilisateur.droit" value="3" /> | |
306 | 344 | <label :for="'droit_' + utilisateur.login + '_3'">Président</label> |
307 | 345 | </p> |
308 | 346 | </form> |
... | ... | @@ -310,7 +348,7 @@ |
310 | 348 | <form @submit="u_mdp(utilisateur)"> |
311 | 349 | <div class="input-field"> |
312 | 350 | <i class="material-icons prefix">vpn_key</i> |
313 | - <input type="password" name="mdp" v-model="utilisateur.mdp"> | |
351 | + <input type="password" name="mdp" v-model="utilisateur.mdp" length="72"> | |
314 | 352 | <label for="utilisateur.mdp">Mot de passe</label> |
315 | 353 | </div> |
316 | 354 | <button :disabled="!utilisateur.mdp">Changer de mot de passe</button> |
... | ... | @@ -319,7 +357,7 @@ |
319 | 357 | <form @submit="u_carte(utilisateur)"> |
320 | 358 | <div class="input-field"> |
321 | 359 | <i class="material-icons prefix">credit_card</i> |
322 | - <input type="text" name="carte" length="8" v-model="utilisateur.idCarte" > | |
360 | + <input type="text" name="carte" length="8" v-model="utilisateur.idCarte"> | |
323 | 361 | <label for="utilisateur.idCarte">Carte</label> |
324 | 362 | </div> |
325 | 363 | <button :disabled="!utilisateur.idCarte">Changer de carte</button> |
... | ... | @@ -330,14 +368,19 @@ |
330 | 368 | </div> |
331 | 369 | </li> |
332 | 370 | </ul> |
333 | - </div> | |
334 | - </div> | |
335 | - <div id="statistiques"> | |
336 | - <h4>Statistiques</h4> | |
337 | - <todo></todo> | |
371 | + <div class="fixed-action-btn"> | |
372 | + <button @click="modal('u_ajouter')"> | |
373 | + <i class="large material-icons">add</i> | |
374 | + </button> | |
375 | + </div> | |
338 | 376 | </div> |
339 | 377 | </div> |
378 | + <div id="statistiques"> | |
379 | + <h4>Statistiques</h4> | |
380 | + <todo></todo> | |
381 | + </div> | |
340 | 382 | </div> |
383 | + </div> | |
341 | 384 | |
342 | 385 | |
343 | 386 | </div> | ... | ... |
js/init.js
... | ... | @@ -43,6 +43,7 @@ var app = new Vue({ |
43 | 43 | clients: [], |
44 | 44 | transactions: [], |
45 | 45 | utilisateurs: [], |
46 | + u_nouveau: {}, | |
46 | 47 | }, |
47 | 48 | methods: { |
48 | 49 | // API |
... | ... | @@ -104,6 +105,9 @@ var app = new Vue({ |
104 | 105 | }, |
105 | 106 | |
106 | 107 | // Affichage |
108 | + modal: function(nom) { | |
109 | + $('#' + nom).openModal(); | |
110 | + }, | |
107 | 111 | toast: function(texte) { |
108 | 112 | Materialize.toast(texte, 4000); |
109 | 113 | }, |
... | ... | @@ -155,6 +159,20 @@ var app = new Vue({ |
155 | 159 | } |
156 | 160 | }); |
157 | 161 | }, |
162 | + u_ajouter: function(utilisateur) { | |
163 | + var that = this | |
164 | + this.api("utilisateur/ajouter", utilisateur, function(retour, donnees) { | |
165 | + switch(retour) { | |
166 | + case "ok": | |
167 | + that.toast("Utilisateur " + utilisateur.login + " ajouté") | |
168 | + break; | |
169 | + | |
170 | + default: | |
171 | + that.erreur(retour, donnees); | |
172 | + break; | |
173 | + } | |
174 | + }); | |
175 | + }, | |
158 | 176 | u_mdp: function(utilisateur) { |
159 | 177 | var that = this |
160 | 178 | this.api("utilisateur/mdp", {login: utilisateur.login, mdp: utilisateur.mdp}, function(retour, donnees) { | ... | ... |
scss/style.scss
... | ... | @@ -68,6 +68,12 @@ nav>div { |
68 | 68 | |
69 | 69 | } |
70 | 70 | |
71 | +.modal-footer { | |
72 | + >a, >button { | |
73 | + @extend .waves-effect; | |
74 | + @extend .btn-flat; | |
75 | + } | |
76 | +} | |
71 | 77 | |
72 | 78 | // Stylisation de tous les boutons |
73 | 79 | button { |
... | ... | @@ -80,6 +86,17 @@ button[disabled] { |
80 | 86 | @extend .disabled; |
81 | 87 | } |
82 | 88 | |
89 | +.fixed-action-btn { | |
90 | + bottom: 75px; | |
91 | + right: 50px; | |
92 | + >button { | |
93 | + @extend .btn-floating; | |
94 | + @extend .btn-large; | |
95 | + @extend .indigo; | |
96 | + } | |
97 | + | |
98 | +} | |
99 | + | |
83 | 100 | // Simplification des formulaires |
84 | 101 | form { |
85 | 102 | @extend .row; | ... | ... |