comparison client/src/components/usermanagement/Usermanagement.vue @ 2122:2cec685c6519

show confirm dialog when deleting user
author Markus Kottlaender <markus@intevation.de>
date Tue, 05 Feb 2019 13:55:59 +0100
parents 46d175097c22
children af136b1a854e
comparison
equal deleted inserted replaced
2121:bd4370badbf7 2122:2cec685c6519
56 </th> 56 </th>
57 <th scope="col"></th> 57 <th scope="col"></th>
58 </tr> 58 </tr>
59 </thead> 59 </thead>
60 <tbody> 60 <tbody>
61 <tr 61 <tr v-for="user in users" :key="user.user">
62 v-for="user in users" 62 <td @click="selectUser(user.user)">{{ user.user }}</td>
63 :key="user.user" 63 <td @click="selectUser(user.user)">{{ user.country }}</td>
64 @click="selectUser(user.user)" 64 <td @click="selectUser(user.user)">{{ user.email }}</td>
65 > 65 <td @click="selectUser(user.user)">
66 <td>{{ user.user }}</td>
67 <td>{{ user.country }}</td>
68 <td>{{ user.email }}</td>
69 <td>
70 <font-awesome-icon 66 <font-awesome-icon
71 v-tooltip="roleLabel(user.role)" 67 v-tooltip="roleLabel(user.role)"
72 :icon="roleIcon(user.role)" 68 :icon="roleIcon(user.role)"
73 ></font-awesome-icon> 69 ></font-awesome-icon>
74 </td> 70 </td>
75 <td> 71 <td>
76 <font-awesome-icon 72 <font-awesome-icon
77 icon="trash" 73 icon="trash"
78 @click="deleteUser(user.user)" 74 @click="showDeleteUserPrompt = true; userToDelete = user.user"
79 ></font-awesome-icon> 75 ></font-awesome-icon>
80 </td> 76 </td>
81 </tr> 77 </tr>
82 </tbody> 78 </tbody>
83 </table> 79 </table>
110 class="d-flex userdetails" 106 class="d-flex userdetails"
111 v-if="isUserDetailsVisible" 107 v-if="isUserDetailsVisible"
112 ></Userdetail> 108 ></Userdetail>
113 </div> 109 </div>
114 </div> 110 </div>
111
112 <div
113 :class="[
114 'box popup ui-element rounded bg-white',
115 { show: showDeleteUserPrompt }
116 ]"
117 >
118 <div>
119 <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
120 <font-awesome-icon icon="trash" class="mr-2"></font-awesome-icon>
121 <translate>Delete user</translate>
122 <font-awesome-icon
123 icon="times"
124 class="ml-auto text-muted"
125 @click="showDeleteUserPrompt = false;"
126 ></font-awesome-icon>
127 </h6>
128 <div class="p-3 text-left">
129 <translate class="text-center d-block">Do you really want to delete the following user account:</translate>
130 <h5 class="mt-3 text-center">{{ userToDelete }}</h5>
131 </div>
132 <div class="py-2 px-3 border-top d-flex align-items-center justify-content-between">
133 <button
134 class="btn btn-sm btn-warning"
135 @click="showDeleteUserPrompt = false;">
136 no
137 </button>
138 <button
139 class="btn btn-sm btn-info"
140 @click="deleteUser(userToDelete)">
141 yes
142 </button>
143 </div>
144 </div>
145 </div>
115 </div> 146 </div>
116 </template> 147 </template>
117 148
118 <style lang="scss"> 149 <style lang="scss">
119 @import "@/assets/tooltip.scss"; 150 @import "@/assets/tooltip.scss";
208 name: "userview", 239 name: "userview",
209 data() { 240 data() {
210 return { 241 return {
211 sortCriterion: "user", 242 sortCriterion: "user",
212 pageSize: 20, 243 pageSize: 20,
213 currentPage: 1 244 currentPage: 1,
245 userToDelete: "",
246 showDeleteUserPrompt: false
214 }; 247 };
215 }, 248 },
216 components: { 249 components: {
217 Userdetail: () => import("./Userdetail"), 250 Userdetail: () => import("./Userdetail"),
218 Spacer: () => import("@/components/Spacer") 251 Spacer: () => import("@/components/Spacer")
288 }, 321 },
289 deleteUser(name) { 322 deleteUser(name) {
290 this.$store 323 this.$store
291 .dispatch("usermanagement/deleteUser", { name: name }) 324 .dispatch("usermanagement/deleteUser", { name: name })
292 .then(() => { 325 .then(() => {
326 this.showDeleteUserPrompt = false;
293 this.submitted = false; 327 this.submitted = false;
294 this.$store.dispatch("usermanagement/loadUsers").catch(error => { 328 this.$store.dispatch("usermanagement/loadUsers").catch(error => {
295 const { status, data } = error.response; 329 const { status, data } = error.response;
296 displayError({ 330 displayError({
297 title: this.$gettext("Backend Error"), 331 title: this.$gettext("Backend Error"),