diff options
Diffstat (limited to 'src/env/components/Dumps/Dumps.vue')
-rw-r--r-- | src/env/components/Dumps/Dumps.vue | 332 |
1 files changed, 0 insertions, 332 deletions
diff --git a/src/env/components/Dumps/Dumps.vue b/src/env/components/Dumps/Dumps.vue deleted file mode 100644 index 8181c5ba..00000000 --- a/src/env/components/Dumps/Dumps.vue +++ /dev/null @@ -1,332 +0,0 @@ -<template> - <b-container fluid="xl"> - <page-title /> - <b-row> - <b-col sm="6" lg="5" xl="4"> - <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.dumpsAvailableOnBmc')"> - <b-row class="align-items-start"> - <b-col sm="8" xl="6" class="d-sm-flex align-items-end"> - <search - :placeholder="$t('pageDumps.table.searchDumps')" - @change-search="onChangeSearchInput" - @clear-search="onClearSearchInput" - /> - <div class="ml-sm-4"> - <table-cell-count - :filtered-items-count="filteredItemCount" - :total-number-of-cells="tableItems.length" - ></table-cell-count> - </div> - </b-col> - <b-col sm="8" md="7" xl="6"> - <table-date-filter @change="onChangeDateTimeFilter" /> - </b-col> - </b-row> - <table-toolbar - :selected-items-count="selectedRows.length" - :actions="batchActions" - @clear-selected="clearSelectedRows($refs.table)" - @batch-action="onTableBatchAction" - /> - <b-table - ref="table" - show-empty - hover - sort-icon-left - no-sort-reset - sort-desc - selectable - no-select-on-click - responsive="md" - sort-by="dateTime" - :fields="fields" - :items="filteredTableItems" - :empty-text="$t('global.table.emptyMessage')" - :empty-filtered-text="$t('global.table.emptySearchMessage')" - :filter="searchFilter" - @filtered="onChangeSearchFilter" - @row-selected="onRowSelected($event, filteredTableItems.length)" - > - <!-- Checkbox column --> - <template #head(checkbox)> - <b-form-checkbox - v-model="tableHeaderCheckboxModel" - :indeterminate="tableHeaderCheckboxIndeterminate" - @change="onChangeHeaderCheckbox($refs.table)" - > - <span class="sr-only">{{ $t('global.table.selectAll') }}</span> - </b-form-checkbox> - </template> - <template #cell(checkbox)="row"> - <b-form-checkbox - v-model="row.rowSelected" - @change="toggleSelectRow($refs.table, row.index)" - > - <span class="sr-only">{{ $t('global.table.selectItem') }}</span> - </b-form-checkbox> - </template> - - <!-- Date and Time column --> - <template #cell(dateTime)="{ value }"> - <p class="mb-0">{{ value | formatDate }}</p> - <p class="mb-0">{{ value | formatTime }}</p> - </template> - - <!-- Size column --> - <template #cell(size)="{ value }"> - {{ convertBytesToMegabytes(value) }} MB - </template> - - <!-- Actions column --> - <template #cell(actions)="row"> - <table-row-action - v-for="(action, index) in row.item.actions" - :key="index" - :value="action.value" - :title="action.title" - :download-location="row.item.data" - :export-name="`${row.item.dumpType} ${row.item.id}`" - @click-table-action="onTableRowAction($event, row.item)" - > - <template #icon> - <icon-download v-if="action.value === 'download'" /> - <icon-delete v-if="action.value === 'delete'" /> - </template> - </table-row-action> - </template> - </b-table> - </page-section> - </b-col> - </b-row> - </b-container> -</template> - -<script> -import IconDelete from '@carbon/icons-vue/es/trash-can/20'; -import IconDownload from '@carbon/icons-vue/es/download/20'; - -import DumpsForm from './DumpsForm'; -import PageSection from '@/components/Global/PageSection'; -import PageTitle from '@/components/Global/PageTitle'; -import Search from '@/components/Global/Search'; -import TableCellCount from '@/components/Global/TableCellCount'; -import TableDateFilter from '@/components/Global/TableDateFilter'; -import TableRowAction from '@/components/Global/TableRowAction'; -import TableToolbar from '@/components/Global/TableToolbar'; - -import BVTableSelectableMixin, { - selectedRows, - tableHeaderCheckboxModel, - tableHeaderCheckboxIndeterminate, -} from '@/components/Mixins/BVTableSelectableMixin'; -import BVToastMixin from '@/components/Mixins/BVToastMixin'; -import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; -import SearchFilterMixin, { - searchFilter, -} from '@/components/Mixins/SearchFilterMixin'; -import TableFilterMixin from '@/components/Mixins/TableFilterMixin'; - -export default { - components: { - DumpsForm, - IconDelete, - IconDownload, - PageSection, - PageTitle, - Search, - TableCellCount, - TableDateFilter, - TableRowAction, - TableToolbar, - }, - mixins: [ - BVTableSelectableMixin, - BVToastMixin, - LoadingBarMixin, - SearchFilterMixin, - TableFilterMixin, - ], - beforeRouteLeave(to, from, next) { - // Hide loader if the user navigates to another page - // before request is fulfilled. - this.hideLoader(); - next(); - }, - data() { - return { - fields: [ - { - key: 'checkbox', - sortable: false, - }, - { - key: 'dateTime', - label: this.$t('pageDumps.table.dateAndTime'), - sortable: true, - }, - { - key: 'dumpType', - label: this.$t('pageDumps.table.dumpType'), - sortable: true, - }, - { - key: 'id', - label: this.$t('pageDumps.table.id'), - sortable: true, - }, - { - key: 'size', - label: this.$t('pageDumps.table.size'), - sortable: true, - }, - { - key: 'actions', - sortable: false, - label: '', - tdClass: 'text-right text-nowrap', - }, - ], - batchActions: [ - { - value: 'delete', - label: this.$t('global.action.delete'), - }, - ], - filterEndDate: null, - filterStartDate: null, - searchFilter, - searchFilteredItemsCount: 0, - selectedRows, - tableHeaderCheckboxIndeterminate, - tableHeaderCheckboxModel, - }; - }, - computed: { - dumps() { - return this.$store.getters['dumps/bmcDumps']; - }, - tableItems() { - return this.dumps.map((item) => { - return { - ...item, - actions: [ - { - value: 'download', - title: this.$t('global.action.download'), - }, - { - value: 'delete', - title: this.$t('global.action.delete'), - }, - ], - }; - }); - }, - filteredTableItems() { - return this.getFilteredTableDataByDate( - this.tableItems, - this.filterStartDate, - this.filterEndDate, - 'dateTime' - ); - }, - filteredItemCount() { - return this.searchFilter - ? this.searchFilteredItemsCount - : this.filteredTableItems.length; - }, - }, - created() { - this.startLoader(); - this.$store.dispatch('dumps/getBmcDumps').finally(() => this.endLoader()); - }, - methods: { - convertBytesToMegabytes(bytes) { - return parseFloat((bytes / 1000000).toFixed(3)); - }, - onChangeSearchFilter(items) { - this.searchFilteredItemsCount = items.length; - }, - onChangeDateTimeFilter({ fromDate, toDate }) { - this.filterStartDate = fromDate; - this.filterEndDate = toDate; - }, - onTableRowAction(action, dump) { - if (action === 'delete') { - this.$bvModal - .msgBoxConfirm(this.$tc('pageDumps.modal.deleteDumpConfirmation'), { - title: this.$tc('pageDumps.modal.deleteDump'), - okTitle: this.$tc('pageDumps.modal.deleteDump'), - cancelTitle: this.$t('global.action.cancel'), - }) - .then((deleteConfrimed) => { - 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); - } - }); - }); - } - }); - } - }, - onTableBatchAction(action) { - if (action === 'delete') { - this.$bvModal - .msgBoxConfirm( - this.$tc( - 'pageDumps.modal.deleteDumpConfirmation', - this.selectedRows.length - ), - { - title: this.$tc( - 'pageDumps.modal.deleteDump', - this.selectedRows.length - ), - okTitle: this.$tc( - 'pageDumps.modal.deleteDump', - this.selectedRows.length - ), - cancelTitle: this.$t('global.action.cancel'), - } - ) - .then((deleteConfrimed) => { - 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); - } - }); - }); - } - } - }); - } - }, - }, -}; -</script> |