Add DumpsStore API calls

Ties in API requests to the Dumps page and adds ability to:
- Create new System or BMC dump
- Delete single or multiple BMC dumps. Uses ClearLog service to
  delete all and DELETE request for single dump deletion

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: Iae928fa3b8fab00e549c33c0ab914a4b04de0f40
diff --git a/src/env/components/Dumps/Dumps.vue b/src/env/components/Dumps/Dumps.vue
index eba90b7..3bf5579 100644
--- a/src/env/components/Dumps/Dumps.vue
+++ b/src/env/components/Dumps/Dumps.vue
@@ -3,14 +3,14 @@
     <page-title />
     <b-row>
       <b-col sm="6" lg="5" xl="4">
-        <page-section :section-title="$t('pageDumps.newDump')">
+        <page-section :section-title="$t('pageDumps.initiateDump')">
           <dumps-form />
         </page-section>
       </b-col>
     </b-row>
     <b-row>
       <b-col xl="10">
-        <page-section :section-title="$t('pageDumps.dumpHistory')">
+        <page-section :section-title="$t('pageDumps.dumpsAvailableOnBmc')">
           <b-row class="align-items-start">
             <b-col sm="8" xl="6" class="d-sm-flex align-items-end">
               <search
@@ -41,6 +41,7 @@
             hover
             sort-icon-left
             no-sort-reset
+            sort-desc
             selectable
             no-select-on-click
             responsive="md"
@@ -121,6 +122,7 @@
   tableHeaderCheckboxModel,
   tableHeaderCheckboxIndeterminate,
 } from '@/components/Mixins/BVTableSelectableMixin';
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
 import SearchFilterMixin, {
   searchFilter,
@@ -141,6 +143,7 @@
   },
   mixins: [
     BVTableSelectableMixin,
+    BVToastMixin,
     LoadingBarMixin,
     SearchFilterMixin,
     TableFilterMixin,
@@ -202,7 +205,7 @@
   },
   computed: {
     dumps() {
-      return this.$store.getters['dumps/allDumps'];
+      return this.$store.getters['dumps/bmcDumps'];
     },
     tableItems() {
       return this.dumps.map((item) => {
@@ -246,7 +249,7 @@
       this.filterStartDate = fromDate;
       this.filterEndDate = toDate;
     },
-    onTableRowAction(action) {
+    onTableRowAction(action, dump) {
       if (action === 'delete') {
         this.$bvModal
           .msgBoxConfirm(this.$tc('pageDumps.modal.deleteDumpConfirmation'), {
@@ -255,7 +258,19 @@
             cancelTitle: this.$t('global.action.cancel'),
           })
           .then((deleteConfrimed) => {
-            if (deleteConfrimed); // delete dump
+            if (deleteConfrimed) {
+              this.$store
+                .dispatch('dumps/deleteDumps', [dump])
+                .then((messages) => {
+                  messages.forEach(({ type, message }) => {
+                    if (type === 'success') {
+                      this.successToast(message);
+                    } else if (type === 'error') {
+                      this.errorToast(message);
+                    }
+                  });
+                });
+            }
           });
       }
     },
@@ -280,7 +295,26 @@
             }
           )
           .then((deleteConfrimed) => {
-            if (deleteConfrimed); // delete dump
+            if (deleteConfrimed) {
+              if (this.selectedRows.length === this.dumps.length) {
+                this.$store
+                  .dispatch('dumps/deleteAllDumps')
+                  .then((success) => this.successToast(success))
+                  .catch(({ message }) => this.errorToast(message));
+              } else {
+                this.$store
+                  .dispatch('dumps/deleteDumps', this.selectedRows)
+                  .then((messages) => {
+                    messages.forEach(({ type, message }) => {
+                      if (type === 'success') {
+                        this.successToast(message);
+                      } else if (type === 'error') {
+                        this.errorToast(message);
+                      }
+                    });
+                  });
+              }
+            }
           });
       }
     },