Commit 1de801b76cb7d175695264125c113731d10d1718

Authored by Geoffrey PREUD'HOMME
1 parent 8a71d37c

Ajouter utilisateur

Showing 3 changed files with 90 additions and 12 deletions   Show diff stats
@@ -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>
@@ -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) {
@@ -68,6 +68,12 @@ nav&gt;div { @@ -68,6 +68,12 @@ nav&gt;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;