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,9 +48,48 @@ | ||
48 | <a class="modal-action modal-close waves-effect waves-red btn-flat">Annuler</a> | 48 | <a class="modal-action modal-close waves-effect waves-red btn-flat">Annuler</a> |
49 | </div> | 49 | </div> |
50 | </div> | 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 | <!-- Page --> | 90 | <!-- Page --> |
53 | <nav role="navigation"> | 91 | <nav role="navigation"> |
92 | + | ||
54 | <div> | 93 | <div> |
55 | <div> | 94 | <div> |
56 | <a class="brand-logo" v-if="page == 'connexion'">10⁵</a> | 95 | <a class="brand-logo" v-if="page == 'connexion'">10⁵</a> |
@@ -287,22 +326,21 @@ | @@ -287,22 +326,21 @@ | ||
287 | <div class="collapsible-header"> | 326 | <div class="collapsible-header"> |
288 | <i class="material-icons" v-if="utilisateur.droit == 1">assignment_ind</i> | 327 | <i class="material-icons" v-if="utilisateur.droit == 1">assignment_ind</i> |
289 | <i class="material-icons" v-if="utilisateur.droit == 2">perm_identity</i> | 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 | </div> | 330 | </div> |
293 | <div class="collapsible-body"> | 331 | <div class="collapsible-body"> |
294 | <h5>Changer de droit</h5> | 332 | <h5>Changer de droit</h5> |
295 | <form @change="u_droit(utilisateur)"> | 333 | <form @change="u_droit(utilisateur)"> |
296 | <p> | 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 | <label :for="'droit_' + utilisateur.login + '_1'">BDE</label> | 336 | <label :for="'droit_' + utilisateur.login + '_1'">BDE</label> |
299 | </p> | 337 | </p> |
300 | <p> | 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 | <label :for="'droit_' + utilisateur.login + '_2'">Bar</label> | 340 | <label :for="'droit_' + utilisateur.login + '_2'">Bar</label> |
303 | </p> | 341 | </p> |
304 | <p> | 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 | <label :for="'droit_' + utilisateur.login + '_3'">Président</label> | 344 | <label :for="'droit_' + utilisateur.login + '_3'">Président</label> |
307 | </p> | 345 | </p> |
308 | </form> | 346 | </form> |
@@ -310,7 +348,7 @@ | @@ -310,7 +348,7 @@ | ||
310 | <form @submit="u_mdp(utilisateur)"> | 348 | <form @submit="u_mdp(utilisateur)"> |
311 | <div class="input-field"> | 349 | <div class="input-field"> |
312 | <i class="material-icons prefix">vpn_key</i> | 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 | <label for="utilisateur.mdp">Mot de passe</label> | 352 | <label for="utilisateur.mdp">Mot de passe</label> |
315 | </div> | 353 | </div> |
316 | <button :disabled="!utilisateur.mdp">Changer de mot de passe</button> | 354 | <button :disabled="!utilisateur.mdp">Changer de mot de passe</button> |
@@ -319,7 +357,7 @@ | @@ -319,7 +357,7 @@ | ||
319 | <form @submit="u_carte(utilisateur)"> | 357 | <form @submit="u_carte(utilisateur)"> |
320 | <div class="input-field"> | 358 | <div class="input-field"> |
321 | <i class="material-icons prefix">credit_card</i> | 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 | <label for="utilisateur.idCarte">Carte</label> | 361 | <label for="utilisateur.idCarte">Carte</label> |
324 | </div> | 362 | </div> |
325 | <button :disabled="!utilisateur.idCarte">Changer de carte</button> | 363 | <button :disabled="!utilisateur.idCarte">Changer de carte</button> |
@@ -330,14 +368,19 @@ | @@ -330,14 +368,19 @@ | ||
330 | </div> | 368 | </div> |
331 | </li> | 369 | </li> |
332 | </ul> | 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 | </div> | 376 | </div> |
339 | </div> | 377 | </div> |
378 | + <div id="statistiques"> | ||
379 | + <h4>Statistiques</h4> | ||
380 | + <todo></todo> | ||
381 | + </div> | ||
340 | </div> | 382 | </div> |
383 | + </div> | ||
341 | 384 | ||
342 | 385 | ||
343 | </div> | 386 | </div> |
js/init.js
@@ -43,6 +43,7 @@ var app = new Vue({ | @@ -43,6 +43,7 @@ var app = new Vue({ | ||
43 | clients: [], | 43 | clients: [], |
44 | transactions: [], | 44 | transactions: [], |
45 | utilisateurs: [], | 45 | utilisateurs: [], |
46 | + u_nouveau: {}, | ||
46 | }, | 47 | }, |
47 | methods: { | 48 | methods: { |
48 | // API | 49 | // API |
@@ -104,6 +105,9 @@ var app = new Vue({ | @@ -104,6 +105,9 @@ var app = new Vue({ | ||
104 | }, | 105 | }, |
105 | 106 | ||
106 | // Affichage | 107 | // Affichage |
108 | + modal: function(nom) { | ||
109 | + $('#' + nom).openModal(); | ||
110 | + }, | ||
107 | toast: function(texte) { | 111 | toast: function(texte) { |
108 | Materialize.toast(texte, 4000); | 112 | Materialize.toast(texte, 4000); |
109 | }, | 113 | }, |
@@ -155,6 +159,20 @@ var app = new Vue({ | @@ -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 | u_mdp: function(utilisateur) { | 176 | u_mdp: function(utilisateur) { |
159 | var that = this | 177 | var that = this |
160 | this.api("utilisateur/mdp", {login: utilisateur.login, mdp: utilisateur.mdp}, function(retour, donnees) { | 178 | this.api("utilisateur/mdp", {login: utilisateur.login, mdp: utilisateur.mdp}, function(retour, donnees) { |
scss/style.scss
@@ -68,6 +68,12 @@ nav>div { | @@ -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 | // Stylisation de tous les boutons | 78 | // Stylisation de tous les boutons |
73 | button { | 79 | button { |
@@ -80,6 +86,17 @@ button[disabled] { | @@ -80,6 +86,17 @@ button[disabled] { | ||
80 | @extend .disabled; | 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 | // Simplification des formulaires | 100 | // Simplification des formulaires |
84 | form { | 101 | form { |
85 | @extend .row; | 102 | @extend .row; |