comparison client/src/views/Users.vue @ 379:0a9aaf21f69f

feat: usermanagement Togglable userdetails card
author Thomas Junk <thomas.junk@intevation.de>
date Fri, 10 Aug 2018 14:49:29 +0200
parents e42f42eb9353
children e7d5383bc358
comparison
equal deleted inserted replaced
376:e42f42eb9353 379:0a9aaf21f69f
1 <template> 1 <template>
2 <div class="main d-flex"> 2 <div class="main d-flex">
3 <Sidebar v-bind:isOverlay="false"></Sidebar> 3 <Sidebar v-bind:isOverlay="false"></Sidebar>
4 <div class="d-flex flex-row content"> 4 <div class="d-flex content flex-column">
5 <div class="d-flex flex-column">
6 <div> 5 <div>
7 <h1>User Management</h1> 6 <h1>User Management</h1>
8 </div> 7 </div>
9 <div class="userlist shadow"> 8 <div class="d-flex flex-row">
10 <div class="card" style="width: 85rem;"> 9 <div class="userlist shadow">
11 <div class="card-header text-white bg-info mb-3"> 10 <div class="card">
12 users 11 <div class="card-header text-white bg-info mb-3">
12 users
13 </div>
14 <div class="card-body">
15 <table class="table table-hover">
16 <thead>
17 <tr>
18 <th scope="col">Username</th>
19 <th scope="col">Country</th>
20 <th scope="col">Email</th>
21 <th scope="col">Role</th>
22 </tr>
23 </thead>
24 <tbody>
25 <tr v-for="user in users" :key="user.user" @click="selectUser(user.user)">
26 <td>{{ user.user }}</td>
27 <td>{{ user.country }}</td>
28 <td>{{ user.email}}</td>
29 <td>{{ user.role }}</td>
30 </tr>
31 </tbody>
32 </table>
13 </div> 33 </div>
14 <div class="card-body">
15 <table class="table table-hover">
16 <thead>
17 <tr>
18 <th scope="col">Username</th>
19 <th scope="col">Country</th>
20 <th scope="col">Email</th>
21 <th scope="col">Role</th>
22 </tr>
23 </thead>
24 <tbody>
25 <tr v-for="user in users" :key="user.user" @click="selectUser(user.user)">
26 <td>{{ user.user }}</td>
27 <td>{{ user.country }}</td>
28 <td>{{ user.email}}</td>
29 <td>{{ user.role }}</td>
30 </tr>
31 </tbody>
32 </table>
33 </div> 34 </div>
34 </div> 35 </div>
35 </div> 36 <Userdetail v-if="isUserDetailsVisible"></Userdetail>
36 <Userdetail></Userdetail>
37 </div> 37 </div>
38 </div> 38 </div>
39 </div> 39 </div>
40 </template> 40 </template>
41 41
51 margin-right: auto; 51 margin-right: auto;
52 } 52 }
53 53
54 .userlist { 54 .userlist {
55 margin-top: $large-offset; 55 margin-top: $large-offset;
56 width: 50vw;
57 margin-right: $large-offset;
56 } 58 }
57 .shadow { 59 .shadow {
58 box-shadow: $basic-shadow-light !important; 60 box-shadow: $basic-shadow-light !important;
59 } 61 }
60 62
83 components: { 85 components: {
84 Sidebar, 86 Sidebar,
85 Userdetail 87 Userdetail
86 }, 88 },
87 computed: { 89 computed: {
88 ...mapGetters("usermanagement", ["users"]) 90 ...mapGetters("usermanagement", ["users", "isUserDetailsVisible"])
89 }, 91 },
90 methods: { 92 methods: {
91 selectUser(name) { 93 selectUser(name) {
92 const user = this.$store.getters["usermanagement/getUserByName"](name); 94 const user = this.$store.getters["usermanagement/getUserByName"](name);
93 this.$store.commit("usermanagement/setCurrentUser", user); 95 this.$store.commit("usermanagement/setCurrentUser", user);