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 <yoshiemuranaka@gmail.com>
Change-Id: I5d5c037b5f41781972106fb5e9a2096cc72c39ab
diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js
index 815c166..bc14c73 100644
--- a/src/store/modules/AccessControl/LocalUserMangementStore.js
+++ b/src/store/modules/AccessControl/LocalUserMangementStore.js
@@ -25,21 +25,28 @@
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 @@
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}'.`);
+ });
}
}
};