Added toast notification for identify LEDs

- Added success toast notification messages for identify
  LEDs present at Inventory and LEDs page and Overview.

- Import of Toast was not present in Overview's Inventory
  card and DIMM slot table, fixed it.

Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
Change-Id: If9ad84e66f6f15616cb8af51b1e84d8d06b1afd0
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index ab63075..8ba7ac9 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -452,7 +452,9 @@
         },
         "toast": {
             "errorDisableIdentifyLed": "Error disabling Identify LED.",
-            "errorEnableIdentifyLed": "Error enabling Identify LED."
+            "errorEnableIdentifyLed": "Error enabling Identify LED.",
+            "successDisableIdentifyLed": "Successfully disabled Identify LED.",
+            "successEnableIdentifyLed": "Successfully enabled Identify LED."
         }
     },
     "pageKeyClear": {
diff --git a/src/store/modules/HardwareStatus/AssemblyStore.js b/src/store/modules/HardwareStatus/AssemblyStore.js
index c6ab7cf..13cdbbc 100644
--- a/src/store/modules/HardwareStatus/AssemblyStore.js
+++ b/src/store/modules/HardwareStatus/AssemblyStore.js
@@ -54,17 +54,28 @@
         ],
       };
 
-      return await api.patch(uri, updatedIdentifyLedValue).catch((error) => {
-        dispatch('getAssemblyInfo');
-        console.log('error', error);
-        if (led.identifyLed) {
-          throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed'));
-        } else {
-          throw new Error(
-            i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
-          );
-        }
-      });
+      return await api
+        .patch(uri, updatedIdentifyLedValue)
+        .then(() => {
+          if (led.identifyLed) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
+        .catch((error) => {
+          dispatch('getAssemblyInfo');
+          console.log('error', error);
+          if (led.identifyLed) {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorEnableIdentifyLed'),
+            );
+          } else {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
+            );
+          }
+        });
     },
   },
 };
diff --git a/src/store/modules/HardwareStatus/BmcStore.js b/src/store/modules/HardwareStatus/BmcStore.js
index f225e92..d96926e 100644
--- a/src/store/modules/HardwareStatus/BmcStore.js
+++ b/src/store/modules/HardwareStatus/BmcStore.js
@@ -58,7 +58,14 @@
       };
       return await api
         .patch(uri, updatedIdentifyLedValue)
-        .then(() => dispatch('getBmcInfo'))
+        .then(() => {
+          dispatch('getBmcInfo');
+          if (led.identifyLed) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
         .catch((error) => {
           dispatch('getBmcInfo');
           console.log('error', error);
diff --git a/src/store/modules/HardwareStatus/ChassisStore.js b/src/store/modules/HardwareStatus/ChassisStore.js
index 6f2d74a..7e591ad 100644
--- a/src/store/modules/HardwareStatus/ChassisStore.js
+++ b/src/store/modules/HardwareStatus/ChassisStore.js
@@ -72,7 +72,14 @@
       };
       return await api
         .patch(uri, updatedIdentifyLedValue)
-        .then(() => dispatch('getChassisInfo'))
+        .then(() => {
+          dispatch('getChassisInfo');
+          if (led.identifyLed) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
         .catch((error) => {
           dispatch('getChassisInfo');
           console.log('error', error);
diff --git a/src/store/modules/HardwareStatus/MemoryStore.js b/src/store/modules/HardwareStatus/MemoryStore.js
index 86b77c0..787a050 100644
--- a/src/store/modules/HardwareStatus/MemoryStore.js
+++ b/src/store/modules/HardwareStatus/MemoryStore.js
@@ -73,17 +73,28 @@
       const updatedIdentifyLedValue = {
         LocationIndicatorActive: led.identifyLed,
       };
-      return await api.patch(uri, updatedIdentifyLedValue).catch((error) => {
-        dispatch('getDimms');
-        console.log('error', error);
-        if (led.identifyLed) {
-          throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed'));
-        } else {
-          throw new Error(
-            i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
-          );
-        }
-      });
+      return await api
+        .patch(uri, updatedIdentifyLedValue)
+        .then(() => {
+          if (led.identifyLed) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
+        .catch((error) => {
+          dispatch('getDimms');
+          console.log('error', error);
+          if (led.identifyLed) {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorEnableIdentifyLed'),
+            );
+          } else {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
+            );
+          }
+        });
     },
   },
 };
diff --git a/src/store/modules/HardwareStatus/ProcessorStore.js b/src/store/modules/HardwareStatus/ProcessorStore.js
index 29fb998..49f9620 100644
--- a/src/store/modules/HardwareStatus/ProcessorStore.js
+++ b/src/store/modules/HardwareStatus/ProcessorStore.js
@@ -81,17 +81,28 @@
       const updatedIdentifyLedValue = {
         LocationIndicatorActive: led.identifyLed,
       };
-      return await api.patch(uri, updatedIdentifyLedValue).catch((error) => {
-        dispatch('getProcessorsInfo');
-        console.log('error', error);
-        if (led.identifyLed) {
-          throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed'));
-        } else {
-          throw new Error(
-            i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
-          );
-        }
-      });
+      return await api
+        .patch(uri, updatedIdentifyLedValue)
+        .then(() => {
+          if (led.identifyLed) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
+        .catch((error) => {
+          dispatch('getProcessorsInfo');
+          console.log('error', error);
+          if (led.identifyLed) {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorEnableIdentifyLed'),
+            );
+          } else {
+            throw new Error(
+              i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
+            );
+          }
+        });
     },
   },
 };
diff --git a/src/store/modules/HardwareStatus/SystemStore.js b/src/store/modules/HardwareStatus/SystemStore.js
index f138234..ea519d7 100644
--- a/src/store/modules/HardwareStatus/SystemStore.js
+++ b/src/store/modules/HardwareStatus/SystemStore.js
@@ -49,6 +49,13 @@
         .patch('/redfish/v1/Systems/system', {
           LocationIndicatorActive: ledState,
         })
+        .then(() => {
+          if (ledState) {
+            return i18n.t('pageInventory.toast.successEnableIdentifyLed');
+          } else {
+            return i18n.t('pageInventory.toast.successDisableIdentifyLed');
+          }
+        })
         .catch((error) => {
           commit('setSystemInfo', this.state.system.systems[0]);
           console.log('error', error);
diff --git a/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue b/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
index 01f4a44..0825ad7 100644
--- a/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
@@ -69,6 +69,7 @@
     toggleIdentifyLedSwitch(state) {
       this.$store
         .dispatch('system/changeIdentifyLedState', state)
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
   },
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue b/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
index b4010bf..b9f59cc 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
@@ -143,6 +143,7 @@
           memberId: row.id,
           identifyLed: row.identifyLed,
         })
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
     hasIdentifyLed(identifyLed) {
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
index 48b914f..cf3ee2b 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
@@ -233,6 +233,7 @@
           uri: row.uri,
           identifyLed: row.identifyLed,
         })
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
     // TO DO: remove hasIdentifyLed method once the following story is merged:
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue b/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
index 4c557fa..18ddfba 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
@@ -186,6 +186,7 @@
           uri: row.uri,
           identifyLed: row.identifyLed,
         })
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
     // TO DO: Remove this method when the LocationIndicatorActive is added from backend.
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
index 6aa1578..f3db133 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
@@ -193,6 +193,7 @@
 import StatusIcon from '@/components/Global/StatusIcon';
 import TableCellCount from '@/components/Global/TableCellCount';
 
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import Search from '@/components/Global/Search';
@@ -206,6 +207,7 @@
 export default {
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
+    BVToastMixin,
     TableRowExpandMixin,
     DataFormatterMixin,
     TableSortMixin,
@@ -287,6 +289,7 @@
           uri: row.uri,
           identifyLed: row.identifyLed,
         })
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
     hasIdentifyLed(identifyLed) {
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue b/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
index 07376a5..2887fc4 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
@@ -257,6 +257,7 @@
           uri: row.uri,
           identifyLed: row.identifyLed,
         })
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
     // TO DO: remove hasIdentifyLed when the following is merged:
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue b/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
index 3eb7ca2..8ac1a25 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
@@ -202,6 +202,7 @@
     toggleIdentifyLedSwitch(state) {
       this.$store
         .dispatch('system/changeIdentifyLedState', state)
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
   },
diff --git a/src/views/Overview/OverviewInventory.vue b/src/views/Overview/OverviewInventory.vue
index 575cb7b..1da5685 100644
--- a/src/views/Overview/OverviewInventory.vue
+++ b/src/views/Overview/OverviewInventory.vue
@@ -29,12 +29,14 @@
 
 <script>
 import OverviewCard from './OverviewCard';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
 
 export default {
   name: 'Inventory',
   components: {
     OverviewCard,
   },
+  mixins: [BVToastMixin],
   computed: {
     systems() {
       let systemData = this.$store.getters['system/systems'][0];
@@ -50,6 +52,7 @@
     toggleIdentifyLedSwitch(state) {
       this.$store
         .dispatch('system/changeIdentifyLedState', state)
+        .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
   },