Mercurial > gemma
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 |
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; |