Mercurial > gemma
view client/src/usermanagement/store.js @ 904:e4b72a199258
New default bottleneck colors
Mainly to make the stroke color one actually selectable in the ui.
In addition the pink does better match the collors used on the ECDIS layer.
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Tue, 02 Oct 2018 13:34:59 +0200 |
parents | ef307bd6b5d8 |
children | ca628dce90dd |
line wrap: on
line source
import { HTTP } from "../application/lib/http"; const newUser = () => { return { user: "", email: "", country: null, role: null, isNew: true, password: "", roleLabel: "" }; }; const UserManagement = { namespaced: true, state: { users: null, currentUser: null, userDetailsVisible: false }, getters: { isUserDetailsVisible: state => { return state.userDetailsVisible; }, currentUser: state => { return state.currentUser; }, users: state => { return state.users; }, getUserByName: state => name => { return state.users.find(user => { return user.user === name; }); } }, mutations: { setUserDetailsInvisible: state => { state.userDetailsVisible = false; }, setUserDetailsVisible: state => { state.userDetailsVisible = true; }, usersLoaded: (state, data) => { const resolveLabel = x => { const labels = { waterway_user: "Waterway User", waterway_admin: "Waterway Administrator", sys_admin: "System Admininistrator" }; return labels[x]; }; let users = data.users.map(u => { u["roleLabel"] = resolveLabel(u["role"]); return u; }); state.users = users; }, setCurrentUser: (state, data) => { state.currentUser = data; state.userDetailsVisible = true; }, clearCurrentUser: state => { state.currentUser = newUser(); } }, actions: { deleteUser({ commit }, data) { const { name } = data; return new Promise((resolve, reject) => { HTTP.delete("/users/" + name, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("clearCurrentUser"); commit("setUserDetailsInvisible"); resolve(response); }) .catch(error => { reject(error); }); }); }, saveCurrentUser({ commit }, data) { const { path, user } = data; if (user.isNew) { return new Promise((resolve, reject) => { HTTP.post("/users", user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setUserDetailsInvisible"); commit("clearCurrentUser"); resolve(response); }) .catch(error => { reject(error); }); }); } else { return new Promise((resolve, reject) => { HTTP.put("/users/" + path, user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setUserDetailsInvisible"); commit("clearCurrentUser"); resolve(response); }) .catch(error => { reject(error); }); }); } }, loadUsers({ commit }) { return new Promise((resolve, reject) => { HTTP.get("/users", { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("usersLoaded", response.data); resolve(response); }) .catch(error => { reject(error); }); }); } } }; export default UserManagement;