Mercurial > gemma
view client/src/components/Userdetail.vue @ 374:650f0dca5608
Backed out changeset c63200982ce7
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Fri, 10 Aug 2018 11:21:34 +0200 |
parents | 7e7e978d1cac |
children | 112527683ee9 |
line wrap: on
line source
<template> <div class="userdetail card"> <div @click="showDetails" class="card-header bg-light" id="headingOne"> <h5 class="mb-0"> <div class="btn" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> <div class="d-flex d-flex-row"> <div class="name">Name: {{this.user.user}}</div> <div class="mail">Email: {{this.user.email}}</div> <div class="country">Country: {{this.user.country}}</div> <div class="role">Role: {{this.user.role}}</div> </div> </div> </h5> </div> <div id="collapseOne" :class="collapseStyle" aria-labelledby="headingOne" data-parent="#accordion"> <div class="card-body"> <div> <form class="details" @submit.prevent="editUser"> <div class="form-group"><label for="user">User</label><input class="form-control" id="user" v-model="currentUser.user"></div> <div class="form-group"><label for="email">Email</label><input class="form-control" id="email" v-model="currentUser.email"></div> <div class="form-group"> <label for="country">Country</label> <select id="country" class="form-control" v-model="currentUser.country"> <option disabled value="">Please select one</option> <option>AT</option> <option>RO</option> <option>BG</option> </select> </div> <div class="form-group"> <label for="role">Role</label> <select id="role" class="form-control" v-model="currentUser.role"> <option disabled value="">Please select one</option> <option value="sys_admin">Sysadmin</option> <option value="waterway_admin">Waterway Admin</option> <option value="waterway_user">Waterway User</option> </select> </div> <button class="btn btn-primary pull-right">Submit</button> </form> </div> </div> </div> </div> </template> <style lang="scss"> @import "../assets/application.scss"; .userdetail { text-align: left !important; } .details { width: 30vw; height: 45vh; } .name, .mail, .country, .role { padding-right: $large-offset; } </style> <script> import { HTTP } from "../lib/http"; import app from "../main"; import store from "../store"; export default { name: "userdetail", props: ["user"], data() { return { currentUser: Object.assign({}, this.user), show: false }; }, computed: { collapseStyle() { return { collapse: true, show: this.show }; } }, methods: { editUser() { HTTP.put("/users/" + this.user.user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(() => { this.show = false; store.dispatch("usermanagement/loadUsers").catch(error => { const { status, data } = error.response; app.$toast.error({ title: "Backend Error", message: `${status}: ${data}` }); }); }) .catch(error => { const { status, data } = error.response; app.$toast.error({ title: "Backend Error", message: `${status}: ${data}` }); }); }, showDetails() { this.show = !this.show; } } }; </script>