annotate client/src/components/usermanagement/Usermanagement.vue @ 2384:c06b001dc26b

client: improved popup implementation For deleting users and templates there was a more or less quick n' dirty implementation of a confirmation dialog/popup. Since we need this kind of dialog in several more places I generalized the implementation a bit and made it more robust.
author Markus Kottlaender <markus@intevation.de>
date Mon, 25 Feb 2019 13:11:30 +0100
parents 7b79d4966a87
children f185503ef35a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 <template>
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
2 <div class="main d-flex flex-row" style="position: relative;">
1606
a4d8f284db93 spacer in admin interface added
Thomas Junk <thomas.junk@intevation.de>
parents: 1604
diff changeset
3 <Spacer></Spacer>
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
4 <div class="d-flex content py-3">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
5 <div :class="userlistStyle">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
6 <div class="card shadow-xs">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
7 <h6
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
8 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
9 >
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
10 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
11 icon="users-cog"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
12 class="mr-2 fa-fw"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
13 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
14 <translate class="headline">Users</translate>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
15 </h6>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
16 <div class="card-body">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
17 <table id="datatable" :class="tableStyle">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
18 <thead>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
19 <tr>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
20 <th scope="col" @click="sortBy('role')">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
21 <span
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
22 >Role&nbsp;
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
23 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
24 v-if="sortCriterion == 'role'"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
25 icon="angle-down"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
26 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
27 </span>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
28 </th>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
29 <th scope="col" @click="sortBy('user')">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
30 <span
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
31 >Username&nbsp;
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
32 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
33 v-if="sortCriterion == 'user'"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
34 icon="angle-down"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
35 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
36 </span>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
37 </th>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
38 <th scope="col" @click="sortBy('country')">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
39 <span
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
40 >Country&nbsp;
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
41 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
42 v-if="sortCriterion == 'country'"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
43 icon="angle-down"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
44 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
45 </span>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
46 </th>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
47 <th scope="col" @click="sortBy('email')">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
48 <span
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
49 >Email&nbsp;
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
50 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
51 v-if="sortCriterion == 'email'"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
52 icon="angle-down"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
53 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
54 </span>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
55 </th>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
56 <th scope="col"></th>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
57 </tr>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
58 </thead>
2384
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
59 <transition-group name="fade" tag="tbody">
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
60 <tr v-for="user in users" :key="user.user">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
61 <td @click="selectUser(user.user)">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
62 <font-awesome-icon
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
63 v-tooltip="roleLabel(user.role)"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
64 :icon="roleIcon(user.role)"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
65 class="fa-lg"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
66 ></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
67 </td>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
68 <td @click="selectUser(user.user)">{{ user.user }}</td>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
69 <td @click="selectUser(user.user)">{{ user.country }}</td>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
70 <td @click="selectUser(user.user)">{{ user.email }}</td>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
71 <td class="text-right">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
72 <button
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
73 @click="sendTestMail(user.user)"
2330
7b79d4966a87 client: unified buttons styles in tables
Markus Kottlaender <markus@intevation.de>
parents: 2322
diff changeset
74 class="btn btn-sm btn-dark mr-1"
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
75 v-tooltip="$gettext('Send testmail')"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
76 v-if="user.email"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
77 >
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
78 <font-awesome-icon icon="paper-plane"></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
79 </button>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
80 <button
2384
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
81 @click="deleteUser(user.user)"
2330
7b79d4966a87 client: unified buttons styles in tables
Markus Kottlaender <markus@intevation.de>
parents: 2322
diff changeset
82 class="btn btn-sm btn-dark"
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
83 v-tooltip="$gettext('Delete user')"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
84 >
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
85 <font-awesome-icon icon="trash" />
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
86 </button>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
87 </td>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
88 </tr>
2384
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
89 </transition-group>
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
90 </table>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
91 </div>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
92 <div class="d-flex mx-auto align-items-center">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
93 <button
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
94 @click="prevPage"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
95 v-if="this.currentPage !== 1"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
96 class="mr-2 btn btn-sm btn-light align-self-center"
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1460
diff changeset
97 >
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
98 <font-awesome-icon icon="angle-left"></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
99 </button>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
100 {{ this.currentPage }} / {{ this.pages }}
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
101 <button
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
102 @click="nextPage"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
103 v-if="this.currentPage !== this.pages"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
104 class="ml-2 btn btn-sm btn-light align-self-center"
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
105 >
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
106 <font-awesome-icon icon="angle-right"></font-awesome-icon>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
107 </button>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
108 </div>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
109 <div class="mr-3 py-3 text-right">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
110 <button @click="addUser" class="btn btn-info addbutton shadow-sm">
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
111 <translate>Add User</translate>
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
112 </button>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
113 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
114 </div>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
115 </div>
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
116 <Userdetail v-if="isUserDetailsVisible"></Userdetail>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
117 </div>
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
118
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
119 <div
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
120 :class="[
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
121 'box popup ui-element rounded bg-white',
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
122 { show: showDeleteUserPrompt }
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
123 ]"
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
124 >
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
125 <div>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
126 <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
127 <font-awesome-icon icon="trash" class="mr-2"></font-awesome-icon>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
128 <translate>Delete user</translate>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
129 <font-awesome-icon
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
130 icon="times"
2154
a08e0f532304 staging: improve UI
Thomas Junk <thomas.junk@intevation.de>
parents: 2124
diff changeset
131 class="ml-auto text-muted pointer"
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
132 @click="showDeleteUserPrompt = false"
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
133 ></font-awesome-icon>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
134 </h6>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
135 <div class="p-3 text-left">
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
136 <translate class="text-center d-block"
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
137 >Do you really want to delete the following user account:</translate
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
138 >
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
139 <h5 class="mt-3 text-center">{{ userToDelete }}</h5>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
140 </div>
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
141 <div
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
142 class="py-2 px-3 border-top d-flex align-items-center justify-content-between"
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
143 >
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
144 <button
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
145 class="btn btn-sm btn-warning"
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
146 @click="showDeleteUserPrompt = false"
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
147 >
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
148 no
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
149 </button>
2124
af136b1a854e linting
Markus Kottlaender <markus@intevation.de>
parents: 2122
diff changeset
150 <button class="btn btn-sm btn-info" @click="deleteUser(userToDelete)">
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
151 yes
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
152 </button>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
153 </div>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
154 </div>
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
155 </div>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
156 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
157 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
158
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
159 <style lang="scss" scoped>
1542
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
160 .addbutton {
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
161 position: absolute;
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
162 bottom: $offset;
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
163 right: $offset;
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
164 }
31c6c7bd6190 layout issues
Thomas Junk <thomas.junk@intevation.de>
parents: 1529
diff changeset
165
1529
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
166 .content {
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
167 width: 100%;
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
168 }
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
169
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
170 .userdetails {
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
171 width: 50%;
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
172 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
173
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
174 .main {
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
175 height: 100%;
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
176 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
177
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
178 .icon {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
179 font-size: large;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
180 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
181
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
182 .userlist {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
183 min-width: 520px;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
184 height: 100%;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
185 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
186
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
187 .userlistsmall {
1529
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
188 width: 100%;
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
189 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
190
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
191 .userlistextended {
1529
Thomas Junk <thomas.junk@intevation.de>
parents: 1517
diff changeset
192 width: 100%;
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
193 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
194
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
195 .table {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
196 margin: auto;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
197 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
198
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
199 .table th {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
200 cursor: pointer;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
201 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
202
2320
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
203 .table th:first-child {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
204 width: 50px;
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
205 }
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
206
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
207 .table th,
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
208 td {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
209 font-size: $smaller;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
210 border-top: 0px !important;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
211 text-align: left;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
212 padding: $small-offset !important;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
213 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
214
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
215 .table td {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
216 font-size: $smaller;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
217 cursor: pointer;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
218 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
219
1448
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
220 tr span {
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
221 display: flex;
ef388dcbb946 refac: reverting unecessary port from scss to sass
Thomas Junk <thomas.junk@intevation.de>
parents: 1416
diff changeset
222 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
223 </style>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
224
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
225 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1361
diff changeset
226 /* This is Free Software under GNU Affero General Public License v >= 3.0
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
227 * without warranty, see README.md and license for details.
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
228 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
229 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
230 * License-Filename: LICENSES/AGPL-3.0.txt
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
231 *
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
232 * Copyright (C) 2018 by via donau
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
233 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
234 * Software engineering by Intevation GmbH
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
235 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
236 * Author(s):
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
237 * Thomas Junk <thomas.junk@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
238 */
1613
f2d24dceecc7 refac: cleanup import paths
Thomas Junk <thomas.junk@intevation.de>
parents: 1606
diff changeset
239 import store from "@/store";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
240 import { mapGetters, mapState } from "vuex";
2320
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
241 import { displayError, displayInfo } from "@/lib/errors.js";
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
242 import { HTTP } from "@/lib/http";
1674
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
243 import Vue from "vue";
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
244 import { VTooltip, VPopover, VClosePopover } from "v-tooltip";
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
245
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
246 Vue.directive("tooltip", VTooltip);
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
247 Vue.directive("close-popover", VClosePopover);
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
248 Vue.component("v-popover", VPopover);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
249
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
250 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
251 name: "userview",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
252 data() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
253 return {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
254 sortCriterion: "user",
1604
32a34151d9d7 20 users per page
Thomas Junk <thomas.junk@intevation.de>
parents: 1558
diff changeset
255 pageSize: 20,
2122
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
256 currentPage: 1,
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
257 userToDelete: "",
2cec685c6519 show confirm dialog when deleting user
Markus Kottlaender <markus@intevation.de>
parents: 2115
diff changeset
258 showDeleteUserPrompt: false
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
259 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
260 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
261 components: {
1669
16fb9667ddf8 refac: use dynamic imports for components
Thomas Junk <thomas.junk@intevation.de>
parents: 1613
diff changeset
262 Userdetail: () => import("./Userdetail"),
16fb9667ddf8 refac: use dynamic imports for components
Thomas Junk <thomas.junk@intevation.de>
parents: 1613
diff changeset
263 Spacer: () => import("@/components/Spacer")
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
264 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
265 computed: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
266 ...mapGetters("usermanagement", ["isUserDetailsVisible"]),
1455
33dda08d67be unified layout for adminsection
Thomas Junk <thomas.junk@intevation.de>
parents: 1448
diff changeset
267 ...mapState("application", ["showSidebar"]),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
268 users() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
269 let users = [...this.$store.getters["usermanagement/users"]];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
270 users.sort((a, b) => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
271 if (
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
272 a[this.sortCriterion].toLowerCase() <
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
273 b[this.sortCriterion].toLowerCase()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
274 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
275 return -1;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
276 if (
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
277 a[this.sortCriterion].toLowerCase() >
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
278 b[this.sortCriterion].toLowerCase()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
279 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
280 return 1;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
281 return 0;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
282 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
283 const start = (this.currentPage - 1) * this.pageSize;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
284 return users.slice(start, start + this.pageSize);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
285 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
286 pages() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
287 let users = [...this.$store.getters["usermanagement/users"]];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
288 return Math.ceil(users.length / this.pageSize);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
289 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
290 tableStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
291 return {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
292 table: true,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
293 "table-hover": true,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
294 "table-sm": this.isUserDetailsVisible,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
295 fadeIn: true,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
296 animated: true
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
297 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
298 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
299 userlistStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
300 return [
2322
a25b4988eb0c client: fixed usermanagement styles
Markus Kottlaender <markus@intevation.de>
parents: 2320
diff changeset
301 "userlist mr-3",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
302 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
303 userlistsmall: this.isUserDetailsVisible,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
304 userlistextended: !this.isUserDetailsVisible
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
305 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
306 ];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
307 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
308 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
309 methods: {
2320
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
310 sendTestMail(user) {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
311 HTTP.get("/testmail/" + user, {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
312 headers: {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
313 "X-Gemma-Auth": localStorage.getItem("token"),
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
314 "Content-type": "text/xml; charset=UTF-8"
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
315 }
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
316 })
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
317 .then(() => {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
318 displayInfo({
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
319 message: this.$gettext("Testmail sent")
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
320 });
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
321 })
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
322 .catch(error => {
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
323 this.loginFailed = true;
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
324 const { status, data } = error.response;
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
325 displayError({
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
326 title: this.$gettext("Backend Error"),
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
327 message: `${status}: ${data.message || data}`
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
328 });
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
329 });
f2c67ebeaabb moved test mail button to table
Markus Kottlaender <markus@intevation.de>
parents: 2290
diff changeset
330 },
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
331 tween() {},
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
332 nextPage() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
333 if (this.currentPage < this.pages) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
334 document.querySelector("#datatable").classList.add("fadeOut");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
335 setTimeout(() => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
336 document.querySelector("#datatable").classList.remove("fadeOut");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
337 this.currentPage += 1;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
338 }, 10);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
339 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
340 return;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
341 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
342 prevPage() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
343 if (this.currentPage > 0) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
344 document.querySelector("#datatable").classList.add("fadeOut");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
345 setTimeout(() => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
346 document.querySelector("#datatable").classList.remove("fadeOut");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
347 this.currentPage -= 1;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
348 }, 10);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
349 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
350 return;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
351 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
352 sortBy(criterion) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353 this.sortCriterion = criterion;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
354 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 deleteUser(name) {
2384
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
356 this.$store.commit("application/popup", {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
357 icon: "trash",
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
358 title: this.$gettext("Delete User"),
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
359 content:
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
360 this.$gettext(
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
361 "Do you really want to delete the following user account:"
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
362 ) +
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
363 `<br>
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
364 <b>${name}</b>`,
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
365 confirm: {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
366 label: this.$gettext("Delete"),
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
367 icon: "trash",
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
368 callback: () => {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
369 this.$store
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
370 .dispatch("usermanagement/deleteUser", { name })
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
371 .then(() => {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
372 this.$store
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
373 .dispatch("usermanagement/loadUsers")
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
374 .catch(error => {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
375 const { status, data } = error.response;
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
376 displayError({
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
377 title: this.$gettext("Backend Error"),
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
378 message: `${status}: ${data.message || data}`
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
379 });
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
380 });
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
381 })
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
382 .catch(error => {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
383 const { status, data } = error.response;
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
384 displayError({
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
385 title: this.$gettext("Backend Error"),
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
386 message: `${status}: ${data.message || data}`
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
387 });
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
388 });
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
389 }
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
390 },
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
391 cancel: {
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
392 label: this.$gettext("Cancel"),
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
393 icon: "times"
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
394 }
c06b001dc26b client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents: 2330
diff changeset
395 });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
396 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
397 addUser() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
398 this.$store.commit("usermanagement/clearCurrentUser");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
399 this.$store.commit("usermanagement/setUserDetailsVisible");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
400 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
401 selectUser(name) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
402 const user = this.$store.getters["usermanagement/getUserByName"](name);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
403 this.$store.commit("usermanagement/setCurrentUser", user);
1299
2738a6ae9ad8 fontawesome 4 -> 5
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
404 },
2738a6ae9ad8 fontawesome 4 -> 5
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
405 roleIcon(role) {
2738a6ae9ad8 fontawesome 4 -> 5
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
406 if (role === "sys_admin") return "star";
2738a6ae9ad8 fontawesome 4 -> 5
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
407 if (role === "waterway_admin") return ["fab", "adn"];
2738a6ae9ad8 fontawesome 4 -> 5
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
408 return "user";
1674
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
409 },
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
410 roleLabel(role) {
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
411 const labels = {
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
412 sys_admin: this.$gettext("System-Administrator"),
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
413 waterway_admin: this.$gettext("Waterway Admin"),
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
414 waterway_user: this.$gettext("Waterway User")
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
415 };
54f7493e5d36 fix: Tooltips are working again
Thomas Junk <thomas.junk@intevation.de>
parents: 1669
diff changeset
416 return labels[role];
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
417 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
418 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
419 beforeRouteEnter(to, from, next) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
420 store
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
421 .dispatch("usermanagement/loadUsers")
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
422 .then(next)
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
423 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
424 const { status, data } = error.response;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
425 displayError({
1460
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1455
diff changeset
426 title: this.$gettext("Backend Error"),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
427 message: `${status}: ${data}`
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
428 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
429 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
430 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
431 beforeRouteLeave(to, from, next) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
432 store.commit("usermanagement/clearCurrentUser");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
433 store.commit("usermanagement/setUserDetailsInvisible");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
434 next();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
435 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
436 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
437 </script>