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 | 319 | </ul> |
320 | 320 | </div> |
321 | 321 | <div id="utilisateurs"> |
322 | + <h4>{{ moi.login }}</h4> | |
323 | + <umodifier :utilisateur="moi"></umodifier> | |
324 | + | |
322 | 325 | <h4>Liste des utilisateurs</h4> |
323 | 326 | <button @click="actuUtilisateurs">Rafraîchir</button> |
324 | 327 | <ul class="collapsible popout" data-collapsible="accordion"> |
... | ... | @@ -329,39 +332,7 @@ |
329 | 332 | <i class="material-icons" v-if="utilisateur.droit == 3">supervisor_account</i> {{ utilisateur.login }} |
330 | 333 | </div> |
331 | 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 | 337 | <h5>Transactions</h5> |
367 | 338 | <todo></todo> |
... | ... | @@ -393,11 +364,52 @@ |
393 | 364 | </div> |
394 | 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 | 409 | <!-- Scripts--> |
398 | 410 | <script src="lib/jquery/dist/jquery.min.js"></script> |
399 | 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 | 413 | <script src="js/init.js"></script> |
402 | 414 | |
403 | 415 | </body> | ... | ... |
js/init.js
... | ... | @@ -39,11 +39,18 @@ var app = new Vue({ |
39 | 39 | jeton: '', |
40 | 40 | connecte: false, |
41 | 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 | 50 | // Données |
43 | 51 | clients: [], |
44 | 52 | transactions: [], |
45 | 53 | utilisateurs: [], |
46 | - u_nouveau: {}, | |
47 | 54 | }, |
48 | 55 | methods: { |
49 | 56 | // API |
... | ... | @@ -223,10 +230,13 @@ var app = new Vue({ |
223 | 230 | that.mdp = '' |
224 | 231 | switch(retour) { |
225 | 232 | case "ok": |
233 | + // TODO Virer les variables non-objet globales | |
226 | 234 | that.login = donnees.login |
227 | 235 | that.droit = donnees.droit |
228 | 236 | that.jeton = donnees.jeton |
229 | 237 | that.connecte = that.date |
238 | + | |
239 | + that.moi = {login: donnees.login, droit: donnees.droit, jeton: donnees.jeton, connecte: that.date} | |
230 | 240 | that.toast("Correctement identifié en tant que " + that.login + " pour " + JETON_DUREE/60+ " minutes") |
231 | 241 | that.page = 'operations' |
232 | 242 | break; |
... | ... | @@ -310,7 +320,22 @@ var app = new Vue({ |
310 | 320 | } |
311 | 321 | }, |
312 | 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 | 340 | watch: { |
316 | 341 | utilisateurs: function() { |
... | ... | @@ -319,10 +344,12 @@ var app = new Vue({ |
319 | 344 | } |
320 | 345 | }) |
321 | 346 | |
347 | +// Filtres | |
322 | 348 | Vue.filter('date', function(timestamp) { |
323 | 349 | return Date(timestamp).toLocaleString(); |
324 | 350 | }) |
325 | 351 | |
352 | +// Actualisation du timer | |
326 | 353 | setInterval(function actualiserDate() { |
327 | 354 | app.$data.date = Math.floor(Date.now()/1000) |
328 | 355 | }, 1000); | ... | ... |