Commit dc030339afd1b981284bfd805bc0e70e517bea39
1 parent
1de801b7
Modification de son propre utilisateur
Showing
2 changed files
with
75 additions
and
36 deletions
Show diff stats
index.html
@@ -319,6 +319,9 @@ | @@ -319,6 +319,9 @@ | ||
319 | </ul> | 319 | </ul> |
320 | </div> | 320 | </div> |
321 | <div id="utilisateurs"> | 321 | <div id="utilisateurs"> |
322 | + <h4>{{ moi.login }}</h4> | ||
323 | + <umodifier :utilisateur="moi"></umodifier> | ||
324 | + | ||
322 | <h4>Liste des utilisateurs</h4> | 325 | <h4>Liste des utilisateurs</h4> |
323 | <button @click="actuUtilisateurs">Rafraîchir</button> | 326 | <button @click="actuUtilisateurs">Rafraîchir</button> |
324 | <ul class="collapsible popout" data-collapsible="accordion"> | 327 | <ul class="collapsible popout" data-collapsible="accordion"> |
@@ -329,39 +332,7 @@ | @@ -329,39 +332,7 @@ | ||
329 | <i class="material-icons" v-if="utilisateur.droit == 3">supervisor_account</i> {{ utilisateur.login }} | 332 | <i class="material-icons" v-if="utilisateur.droit == 3">supervisor_account</i> {{ utilisateur.login }} |
330 | </div> | 333 | </div> |
331 | <div class="collapsible-body"> | 334 | <div class="collapsible-body"> |
332 | - <h5>Changer de droit</h5> | ||
333 | - <form @change="u_droit(utilisateur)"> | ||
334 | - <p> | ||
335 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_1'" v-model="utilisateur.droit" value="1" /> | ||
336 | - <label :for="'droit_' + utilisateur.login + '_1'">BDE</label> | ||
337 | - </p> | ||
338 | - <p> | ||
339 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_2'" v-model="utilisateur.droit" value="2" /> | ||
340 | - <label :for="'droit_' + utilisateur.login + '_2'">Bar</label> | ||
341 | - </p> | ||
342 | - <p> | ||
343 | - <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_3'" v-model="utilisateur.droit" value="3" /> | ||
344 | - <label :for="'droit_' + utilisateur.login + '_3'">Président</label> | ||
345 | - </p> | ||
346 | - </form> | ||
347 | - <h5>Changer de mot de passe</h5> | ||
348 | - <form @submit="u_mdp(utilisateur)"> | ||
349 | - <div class="input-field"> | ||
350 | - <i class="material-icons prefix">vpn_key</i> | ||
351 | - <input type="password" name="mdp" v-model="utilisateur.mdp" length="72"> | ||
352 | - <label for="utilisateur.mdp">Mot de passe</label> | ||
353 | - </div> | ||
354 | - <button :disabled="!utilisateur.mdp">Changer de mot de passe</button> | ||
355 | - </form> | ||
356 | - <h5> Changer de carte </h5> | ||
357 | - <form @submit="u_carte(utilisateur)"> | ||
358 | - <div class="input-field"> | ||
359 | - <i class="material-icons prefix">credit_card</i> | ||
360 | - <input type="text" name="carte" length="8" v-model="utilisateur.idCarte"> | ||
361 | - <label for="utilisateur.idCarte">Carte</label> | ||
362 | - </div> | ||
363 | - <button :disabled="!utilisateur.idCarte">Changer de carte</button> | ||
364 | - </form> | 335 | + <umodifier :utilisateur="utilisateur"></umodifier> |
365 | 336 | ||
366 | <h5>Transactions</h5> | 337 | <h5>Transactions</h5> |
367 | <todo></todo> | 338 | <todo></todo> |
@@ -393,11 +364,52 @@ | @@ -393,11 +364,52 @@ | ||
393 | </div> | 364 | </div> |
394 | </footer> | 365 | </footer> |
395 | 366 | ||
367 | + <!-- Modèles --> | ||
368 | + <script type="text/template" id="todo"> | ||
369 | + <div class="chip green"> | ||
370 | + Prochainement | ||
371 | + </div> | ||
372 | + </script> | ||
373 | + <script type="text/template" id="u_modifier"> | ||
374 | + <h5>Changer de droit</h5> | ||
375 | + <form @change="u_droit(utilisateur)"> | ||
376 | + <p> | ||
377 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_1'" v-model="utilisateur.droit" value="1" :disabled="moi.droit < 3"/> | ||
378 | + <label :for="'droit_' + utilisateur.login + '_1'">BDE</label> | ||
379 | + </p> | ||
380 | + <p> | ||
381 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_2'" v-model="utilisateur.droit" value="2" :disabled="moi.droit < 3"/> | ||
382 | + <label :for="'droit_' + utilisateur.login + '_2'">Bar</label> | ||
383 | + </p> | ||
384 | + <p> | ||
385 | + <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_3'" v-model="utilisateur.droit" value="3" :disabled="moi.droit < 3"/> | ||
386 | + <label :for="'droit_' + utilisateur.login + '_3'">Président</label> | ||
387 | + </p> | ||
388 | + </form> | ||
389 | + <h5>Changer de mot de passe</h5> | ||
390 | + <form @submit="u_mdp(utilisateur)"> | ||
391 | + <div class="input-field"> | ||
392 | + <i class="material-icons prefix">vpn_key</i> | ||
393 | + <input type="password" name="mdp" v-model="utilisateur.mdp" length="72"> | ||
394 | + <label for="utilisateur.mdp">Mot de passe</label> | ||
395 | + </div> | ||
396 | + <button :disabled="!utilisateur.mdp">Changer de mot de passe</button> | ||
397 | + </form> | ||
398 | + <h5> Changer de carte </h5> | ||
399 | + <form @submit="u_carte(utilisateur)"> | ||
400 | + <div class="input-field"> | ||
401 | + <i class="material-icons prefix">credit_card</i> | ||
402 | + <input type="text" name="carte" length="8" v-model="utilisateur.idCarte"> | ||
403 | + <label for="utilisateur.idCarte">Carte</label> | ||
404 | + </div> | ||
405 | + <button :disabled="!utilisateur.idCarte">Changer de carte</button> | ||
406 | + </form> | ||
407 | + </script> | ||
396 | 408 | ||
397 | <!-- Scripts--> | 409 | <!-- Scripts--> |
398 | <script src="lib/jquery/dist/jquery.min.js"></script> | 410 | <script src="lib/jquery/dist/jquery.min.js"></script> |
399 | <script src="lib/Materialize/dist/js/materialize.min.js"></script> | 411 | <script src="lib/Materialize/dist/js/materialize.min.js"></script> |
400 | - <script src="lib/vue/dist/vue.min.js"></script> | 412 | + <script src="lib/vue/dist/vue.js"></script> |
401 | <script src="js/init.js"></script> | 413 | <script src="js/init.js"></script> |
402 | 414 | ||
403 | </body> | 415 | </body> |
js/init.js
@@ -39,11 +39,18 @@ var app = new Vue({ | @@ -39,11 +39,18 @@ var app = new Vue({ | ||
39 | jeton: '', | 39 | jeton: '', |
40 | connecte: false, | 40 | connecte: false, |
41 | date: 1, | 41 | date: 1, |
42 | + // Champs (à remplacer par des objets) | ||
43 | + mdp: '', | ||
44 | + idCarte: '', | ||
45 | + solde: 0, | ||
46 | + credit: 0, | ||
47 | + prix: 0, | ||
48 | + moi: {}, | ||
49 | + u_nouveau: {}, | ||
42 | // Données | 50 | // Données |
43 | clients: [], | 51 | clients: [], |
44 | transactions: [], | 52 | transactions: [], |
45 | utilisateurs: [], | 53 | utilisateurs: [], |
46 | - u_nouveau: {}, | ||
47 | }, | 54 | }, |
48 | methods: { | 55 | methods: { |
49 | // API | 56 | // API |
@@ -223,10 +230,13 @@ var app = new Vue({ | @@ -223,10 +230,13 @@ var app = new Vue({ | ||
223 | that.mdp = '' | 230 | that.mdp = '' |
224 | switch(retour) { | 231 | switch(retour) { |
225 | case "ok": | 232 | case "ok": |
233 | + // TODO Virer les variables non-objet globales | ||
226 | that.login = donnees.login | 234 | that.login = donnees.login |
227 | that.droit = donnees.droit | 235 | that.droit = donnees.droit |
228 | that.jeton = donnees.jeton | 236 | that.jeton = donnees.jeton |
229 | that.connecte = that.date | 237 | that.connecte = that.date |
238 | + | ||
239 | + that.moi = {login: donnees.login, droit: donnees.droit, jeton: donnees.jeton, connecte: that.date} | ||
230 | that.toast("Correctement identifié en tant que " + that.login + " pour " + JETON_DUREE/60+ " minutes") | 240 | that.toast("Correctement identifié en tant que " + that.login + " pour " + JETON_DUREE/60+ " minutes") |
231 | that.page = 'operations' | 241 | that.page = 'operations' |
232 | break; | 242 | break; |
@@ -310,7 +320,22 @@ var app = new Vue({ | @@ -310,7 +320,22 @@ var app = new Vue({ | ||
310 | } | 320 | } |
311 | }, | 321 | }, |
312 | components: { | 322 | components: { |
313 | - 'todo': Vue.extend({template: '<div class="chip green"> Prochainement </div>'}), | 323 | + 'todo': Vue.extend({ |
324 | + template: $('#todo').html(), | ||
325 | + }), | ||
326 | + 'umodifier': Vue.extend({ | ||
327 | + props: ['utilisateur'], | ||
328 | + template: $('#u_modifier').html(), | ||
329 | + methods: { // TODO Pas bien | ||
330 | + u_droit: function(data) { return this.$parent.u_droit(data) }, | ||
331 | + u_mdp: function(data) { return this.$parent.u_mdp(data) }, | ||
332 | + u_carte: function(data) { return this.$parent.u_carte(data) }, | ||
333 | + }, | ||
334 | + computed: { | ||
335 | + moi: function() { return this.$parent.moi }, | ||
336 | + }, | ||
337 | + }), | ||
338 | + | ||
314 | }, | 339 | }, |
315 | watch: { | 340 | watch: { |
316 | utilisateurs: function() { | 341 | utilisateurs: function() { |
@@ -319,10 +344,12 @@ var app = new Vue({ | @@ -319,10 +344,12 @@ var app = new Vue({ | ||
319 | } | 344 | } |
320 | }) | 345 | }) |
321 | 346 | ||
347 | +// Filtres | ||
322 | Vue.filter('date', function(timestamp) { | 348 | Vue.filter('date', function(timestamp) { |
323 | return Date(timestamp).toLocaleString(); | 349 | return Date(timestamp).toLocaleString(); |
324 | }) | 350 | }) |
325 | 351 | ||
352 | +// Actualisation du timer | ||
326 | setInterval(function actualiserDate() { | 353 | setInterval(function actualiserDate() { |
327 | app.$data.date = Math.floor(Date.now()/1000) | 354 | app.$data.date = Math.floor(Date.now()/1000) |
328 | }, 1000); | 355 | }, 1000); |