annotate client/src/stores/usermanagement.js @ 289:aee175e3f82c usermanagement

feat: Listing of users on management page Prototypical implementation of listing of all users on management page implemented. Data is fetched before route is entered. Unless the data isn't available the route is not changed. After data is available currently a simple unstyled table with data is rendered.
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 31 Jul 2018 12:02:48 +0200
parents
children 6b4df87a7ccc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 import { HTTP } from "../lib/http";
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
2
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 const UserManagement = {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
4 namespaced: true,
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
5 state: {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
6 users: null
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
7 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
8 getters: {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
9 users: state => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
10 return state.users;
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
11 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
12 getUserByName: state => name => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
13 return state.users[name];
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 mutations: {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17 usersLoaded: (state, data) => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 state.users = data.users;
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
20 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
21 actions: {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
22 loadUsers({ commit }) {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 return new Promise((resolve, reject) => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 HTTP.get("/users", {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 })
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
27 .then(response => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
28 commit("usersLoaded", response.data);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
29 resolve(response);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
30 })
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
31 .catch(error => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 console.log(error);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 reject(error);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34 });
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
35 });
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
38 };
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
39
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
40 export default UserManagement;