From 0fc91e798d058c1c98dcfec0c6c5bffbcab3e15e Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Wed, 5 Feb 2020 11:23:06 -0800 Subject: Add toast component interactions Include boostrap toast component to communicate success and error requests on the local user management page. - Created BVToastMixin to share initialization options - Used async/await pattern to make sure toasts are shown after asynchronous calls are complete - Followed current AngularJS pattern of manual dismiss for error toast and automatic dismiss for success toast Signed-off-by: Yoshie Muranaka Change-Id: I5d5c037b5f41781972106fb5e9a2096cc72c39ab --- .../AccessControl/LocalUserMangementStore.js | 35 +++++++++++++++------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'src/store/modules/AccessControl/LocalUserMangementStore.js') diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js index 815c1661..bc14c734 100644 --- a/src/store/modules/AccessControl/LocalUserMangementStore.js +++ b/src/store/modules/AccessControl/LocalUserMangementStore.js @@ -25,21 +25,28 @@ const LocalUserManagementStore = { const userData = users.map(user => user.data); commit('setUsers', userData); }) - .catch(error => console.log(error)); + .catch(error => { + console.log(error); + throw new Error('Error loading local users.'); + }); }, - createUser({ dispatch }, { username, password, privilege, status }) { + async createUser({ dispatch }, { username, password, privilege, status }) { const data = { UserName: username, Password: password, RoleId: privilege, Enabled: status }; - api + return await api .post('/redfish/v1/AccountService/Accounts', data) .then(() => dispatch('getUsers')) - .catch(error => console.log(error)); + .then(() => `Created user '${username}'.`) + .catch(error => { + console.log(error); + throw new Error(`Error creating user '${username}'.`); + }); }, - updateUser( + async updateUser( { dispatch }, { originalUsername, username, password, privilege, status } ) { @@ -48,16 +55,24 @@ const LocalUserManagementStore = { if (password) data.Password = password; if (privilege) data.RoleId = privilege; if (status !== undefined) data.Enabled = status; - api + return await api .patch(`/redfish/v1/AccountService/Accounts/${originalUsername}`, data) .then(() => dispatch('getUsers')) - .catch(error => console.log(error)); + .then(() => `Updated user '${originalUsername}'.`) + .catch(error => { + console.log(error); + throw new Error(`Error updating user '${originalUsername}'.`); + }); }, - deleteUser({ dispatch }, username) { - api + async deleteUser({ dispatch }, username) { + return await api .delete(`/redfish/v1/AccountService/Accounts/${username}`) .then(() => dispatch('getUsers')) - .catch(error => console.log(error)); + .then(() => `Deleted user '${username}'.`) + .catch(error => { + console.log(error); + throw new Error(`Error deleting user '${username}'.`); + }); } } }; -- cgit v1.2.3