annotate client/src/stores/usermanagement.js @ 376:e42f42eb9353

refactor: Userdetails refactored to card model Primitive user editing etd.
author Thomas Junk <thomas.junk@intevation.de>
date Fri, 10 Aug 2018 13:15:32 +0200
parents 7e7e978d1cac
children 0a9aaf21f69f
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
376
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
3 const newUser = () => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
4 return {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
5 user: "",
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
6 email: "",
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
7 country: null,
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
8 role: null,
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
9 isNew: true
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
10 };
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
11 };
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
12
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
13 const UserManagement = {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14 namespaced: true,
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 state: {
376
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
16 users: null,
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
17 currentUser: null
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 getters: {
376
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
20 currentUser: state => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
21 return state.currentUser;
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
22 },
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 users: state => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 return state.users;
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 getUserByName: state => name => {
300
af29878be602 feat: User table selectable
Thomas Junk <thomas.junk@intevation.de>
parents: 299
diff changeset
27 return state.users.find(user => {
af29878be602 feat: User table selectable
Thomas Junk <thomas.junk@intevation.de>
parents: 299
diff changeset
28 return user.user === name;
af29878be602 feat: User table selectable
Thomas Junk <thomas.junk@intevation.de>
parents: 299
diff changeset
29 });
289
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 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 mutations: {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 usersLoaded: (state, data) => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34 state.users = data.users;
376
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
35 },
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
36 setCurrentUser: (state, data) => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
37 state.currentUser = data;
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
38 },
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
39 clearCurrentUser: state => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
40 state.currentUser = newUser();
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
41 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
42 },
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
43 actions: {
376
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
44 saveCurrentUser({ commit }, data) {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
45 console.log(data);
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
46 const { path, user } = data;
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
47 return new Promise((resolve, reject) => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
48 HTTP.put("/users/" + path, user, {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
49 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
50 })
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
51 .then(response => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
52 commit("usersLoaded", response.data);
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
53 resolve(response);
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
54 })
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
55 .catch(error => {
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
56 reject(error);
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
57 });
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
58 });
e42f42eb9353 refactor: Userdetails refactored to card model
Thomas Junk <thomas.junk@intevation.de>
parents: 373
diff changeset
59 },
289
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
60 loadUsers({ commit }) {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
61 return new Promise((resolve, reject) => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
62 HTTP.get("/users", {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
63 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
64 })
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
65 .then(response => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
66 commit("usersLoaded", response.data);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
67 resolve(response);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
68 })
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
69 .catch(error => {
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
70 reject(error);
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
71 });
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
72 });
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
73 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
74 }
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
75 };
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
76
aee175e3f82c feat: Listing of users on management page
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
77 export default UserManagement;