blob: 69545a57951fe5c5babca0181676cd0730e8c6f1 [file] [log] [blame]
Yoshie Muranaka6f102342020-05-05 09:45:39 -07001<template>
2 <b-container fluid="xl">
3 <page-title />
SurenNeware787635a2020-11-24 22:42:42 +05304 <b-row class="align-items-start">
5 <b-col sm="8" xl="6" class="d-sm-flex align-items-end">
Yoshie Muranaka193c22a2020-06-30 20:54:10 -07006 <search
7 :placeholder="$t('pageEventLogs.table.searchLogs')"
Sandeepa Singh99e20d82021-02-09 17:37:59 +05308 data-test-id="eventLogs-input-searchLogs"
Sukanya Pandeyedb8a772020-10-29 11:33:42 +05309 @change-search="onChangeSearchInput"
10 @clear-search="onClearSearchInput"
Yoshie Muranaka193c22a2020-06-30 20:54:10 -070011 />
SurenNeware787635a2020-11-24 22:42:42 +053012 <div class="ml-sm-4">
13 <table-cell-count
14 :filtered-items-count="filteredRows"
15 :total-number-of-cells="allLogs.length"
16 ></table-cell-count>
17 </div>
Yoshie Muranaka193c22a2020-06-30 20:54:10 -070018 </b-col>
SurenNeware787635a2020-11-24 22:42:42 +053019 <b-col sm="8" md="7" xl="6">
Yoshie Muranaka68bbba22020-05-18 09:49:37 -070020 <table-date-filter @change="onChangeDateTimeFilter" />
21 </b-col>
22 </b-row>
Yoshie Muranaka6f102342020-05-05 09:45:39 -070023 <b-row>
24 <b-col class="text-right">
Sukanya Pandeyedb8a772020-10-29 11:33:42 +053025 <table-filter :filters="tableFilters" @filter-change="onFilterChange" />
Yoshie Muranaka6f102342020-05-05 09:45:39 -070026 </b-col>
27 </b-row>
28 <b-row>
29 <b-col>
Yoshie Muranakabe3af332020-05-11 08:23:04 -070030 <table-toolbar
31 ref="toolbar"
32 :selected-items-count="selectedRows.length"
33 :actions="batchActions"
Sukanya Pandeyedb8a772020-10-29 11:33:42 +053034 @clear-selected="clearSelectedRows($refs.table)"
35 @batch-action="onBatchAction"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070036 >
Derick Montague602e98a2020-10-21 16:20:00 -050037 <template #export>
Yoshie Muranakabe3af332020-05-11 08:23:04 -070038 <table-toolbar-export
39 :data="batchExportData"
SurenNeware96ebb0d2020-09-08 17:42:39 +053040 :file-name="exportFileNameByDate()"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070041 />
42 </template>
43 </table-toolbar>
Yoshie Muranaka6f102342020-05-05 09:45:39 -070044 <b-table
Yoshie Muranakaf9832b02020-05-12 12:04:46 -070045 id="table-event-logs"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070046 ref="table"
SurenNeware5e25e282020-07-08 15:57:23 +053047 responsive="md"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070048 selectable
49 no-select-on-click
Yoshie Muranaka6f102342020-05-05 09:45:39 -070050 sort-icon-left
Sukanya Pandeyfde429e2020-09-14 20:48:39 +053051 hover
Yoshie Muranaka6f102342020-05-05 09:45:39 -070052 no-sort-reset
53 sort-desc
54 show-empty
Derick Montague6b140ba2020-09-03 16:26:33 -050055 sort-by="id"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070056 :fields="fields"
57 :items="filteredLogs"
Yoshie Muranaka6f102342020-05-05 09:45:39 -070058 :sort-compare="onSortCompare"
SurenNeware307382e2020-07-27 20:45:14 +053059 :empty-text="$t('global.table.emptyMessage')"
SurenNeware156a0e62020-08-28 19:20:03 +053060 :empty-filtered-text="$t('global.table.emptySearchMessage')"
Yoshie Muranakaf9832b02020-05-12 12:04:46 -070061 :per-page="perPage"
62 :current-page="currentPage"
Yoshie Muranaka193c22a2020-06-30 20:54:10 -070063 :filter="searchFilter"
Sukanya Pandey99010962020-07-27 21:44:47 +053064 @filtered="onFiltered"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070065 @row-selected="onRowSelected($event, filteredLogs.length)"
Yoshie Muranaka6f102342020-05-05 09:45:39 -070066 >
Yoshie Muranakabe3af332020-05-11 08:23:04 -070067 <!-- Checkbox column -->
Derick Montague602e98a2020-10-21 16:20:00 -050068 <template #head(checkbox)>
Yoshie Muranakabe3af332020-05-11 08:23:04 -070069 <b-form-checkbox
70 v-model="tableHeaderCheckboxModel"
Yoshie Muranakaed06dc12020-06-16 12:12:27 -070071 data-test-id="eventLogs-checkbox-selectAll"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070072 :indeterminate="tableHeaderCheckboxIndeterminate"
73 @change="onChangeHeaderCheckbox($refs.table)"
Dixsie Wolmersc42ad712020-11-19 17:29:24 -060074 >
75 <span class="sr-only">{{ $t('global.table.selectAll') }}</span>
76 </b-form-checkbox>
Yoshie Muranakabe3af332020-05-11 08:23:04 -070077 </template>
Derick Montague602e98a2020-10-21 16:20:00 -050078 <template #cell(checkbox)="row">
Yoshie Muranakabe3af332020-05-11 08:23:04 -070079 <b-form-checkbox
80 v-model="row.rowSelected"
Yoshie Muranakaed06dc12020-06-16 12:12:27 -070081 :data-test-id="`eventLogs-checkbox-selectRow-${row.index}`"
Yoshie Muranakabe3af332020-05-11 08:23:04 -070082 @change="toggleSelectRow($refs.table, row.index)"
Dixsie Wolmersc42ad712020-11-19 17:29:24 -060083 >
84 <span class="sr-only">{{ $t('global.table.selectItem') }}</span>
85 </b-form-checkbox>
Yoshie Muranakabe3af332020-05-11 08:23:04 -070086 </template>
87
Sukanya Pandey47b047c2020-12-23 13:18:55 +053088 <!-- Expand chevron icon -->
89 <template #cell(expandRow)="row">
90 <b-button
91 variant="link"
92 :aria-label="expandRowLabel"
93 :title="expandRowLabel"
94 class="btn-icon-only"
95 @click="toggleRowDetails(row)"
96 >
97 <icon-chevron />
98 </b-button>
99 </template>
100
101 <template #row-details="{ item }">
102 <b-container fluid>
103 <b-row>
104 <b-col sm="6" xl="4">
105 <dl>
106 <!-- Name -->
107 <dt>{{ $t('pageEventLogs.table.name') }}:</dt>
108 <dd>{{ tableFormatter(item.name) }}</dd>
109 </dl>
110 </b-col>
111 <b-col sm="6" xl="4">
112 <dl>
113 <!-- Modified date -->
114 <dt>{{ $t('pageEventLogs.table.modifiedDate') }}:</dt>
115 <dd v-if="item.modifiedDate">
116 {{ item.modifiedDate | formatDate }}
117 {{ item.modifiedDate | formatTime }}
118 </dd>
119 <dd v-else>--</dd>
120 </dl>
121 </b-col>
122 </b-row>
123 </b-container>
124 </template>
125
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700126 <!-- Severity column -->
Derick Montague602e98a2020-10-21 16:20:00 -0500127 <template #cell(severity)="{ value }">
Mateusz Gapskib1f12532020-07-24 08:15:23 +0200128 <status-icon v-if="value" :status="statusIcon(value)" />
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700129 {{ value }}
130 </template>
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700131
132 <!-- Date column -->
Derick Montague602e98a2020-10-21 16:20:00 -0500133 <template #cell(date)="{ value }">
Dixsie Wolmers949cdd52020-08-24 21:36:37 -0500134 <p class="mb-0">{{ value | formatDate }}</p>
135 <p class="mb-0">{{ value | formatTime }}</p>
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700136 </template>
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700137
138 <!-- Actions column -->
Derick Montague602e98a2020-10-21 16:20:00 -0500139 <template #cell(actions)="row">
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700140 <table-row-action
Yoshie Muranakaed06dc12020-06-16 12:12:27 -0700141 v-for="(action, index) in row.item.actions"
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700142 :key="index"
143 :value="action.value"
144 :title="action.title"
Yoshie Muranakaed06dc12020-06-16 12:12:27 -0700145 :row-data="row.item"
SurenNeware96ebb0d2020-09-08 17:42:39 +0530146 :export-name="exportFileNameByDate()"
Yoshie Muranakaed06dc12020-06-16 12:12:27 -0700147 :data-test-id="`eventLogs-button-deleteRow-${row.index}`"
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530148 @click-table-action="onTableRowAction($event, row.item)"
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700149 >
Derick Montague602e98a2020-10-21 16:20:00 -0500150 <template #icon>
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700151 <icon-export v-if="action.value === 'export'" />
152 <icon-trashcan v-if="action.value === 'delete'" />
153 </template>
154 </table-row-action>
155 </template>
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700156 </b-table>
157 </b-col>
158 </b-row>
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700159
160 <!-- Table pagination -->
161 <b-row>
SurenNewarea35b5a12020-10-13 17:08:20 +0530162 <b-col sm="6">
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700163 <b-form-group
164 class="table-pagination-select"
165 :label="$t('global.table.itemsPerPage')"
166 label-for="pagination-items-per-page"
167 >
168 <b-form-select
169 id="pagination-items-per-page"
170 v-model="perPage"
171 :options="itemsPerPageOptions"
172 />
173 </b-form-group>
SurenNewarea35b5a12020-10-13 17:08:20 +0530174 </b-col>
175 <b-col sm="6">
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700176 <b-pagination
177 v-model="currentPage"
178 first-number
179 last-number
180 :per-page="perPage"
181 :total-rows="getTotalRowCount(filteredLogs.length)"
182 aria-controls="table-event-logs"
183 />
184 </b-col>
185 </b-row>
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700186 </b-container>
187</template>
188
189<script>
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700190import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
Sukanya Pandeyb2ca0c02020-07-20 23:23:29 +0530191import IconExport from '@carbon/icons-vue/es/document--export/20';
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530192import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700193import { omit } from 'lodash';
194
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700195import PageTitle from '@/components/Global/PageTitle';
196import StatusIcon from '@/components/Global/StatusIcon';
Derick Montagued853fba2020-07-16 11:24:10 -0500197import Search from '@/components/Global/Search';
Sukanya Pandey99010962020-07-27 21:44:47 +0530198import TableCellCount from '@/components/Global/TableCellCount';
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700199import TableDateFilter from '@/components/Global/TableDateFilter';
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700200import TableFilter from '@/components/Global/TableFilter';
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700201import TableRowAction from '@/components/Global/TableRowAction';
202import TableToolbar from '@/components/Global/TableToolbar';
203import TableToolbarExport from '@/components/Global/TableToolbarExport';
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700204
205import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
206import TableFilterMixin from '@/components/Mixins/TableFilterMixin';
SurenNewareba91c492020-10-27 14:18:54 +0530207import BVPaginationMixin, {
208 currentPage,
209 perPage,
210 itemsPerPageOptions,
211} from '@/components/Mixins/BVPaginationMixin';
212import BVTableSelectableMixin, {
213 selectedRows,
214 tableHeaderCheckboxModel,
215 tableHeaderCheckboxIndeterminate,
216} from '@/components/Mixins/BVTableSelectableMixin';
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700217import BVToastMixin from '@/components/Mixins/BVToastMixin';
Yoshie Muranaka73e419a2020-06-18 13:08:19 -0700218import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
219import TableSortMixin from '@/components/Mixins/TableSortMixin';
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530220import TableRowExpandMixin, {
221 expandRowLabel,
222} from '@/components/Mixins/TableRowExpandMixin';
SurenNewareba91c492020-10-27 14:18:54 +0530223import SearchFilterMixin, {
224 searchFilter,
225} from '@/components/Mixins/SearchFilterMixin';
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700226
227export default {
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700228 components: {
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700229 IconExport,
230 IconTrashcan,
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530231 IconChevron,
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700232 PageTitle,
Yoshie Muranaka193c22a2020-06-30 20:54:10 -0700233 Search,
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700234 StatusIcon,
Sukanya Pandey99010962020-07-27 21:44:47 +0530235 TableCellCount,
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700236 TableFilter,
237 TableRowAction,
238 TableToolbar,
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700239 TableToolbarExport,
Derick Montague602e98a2020-10-21 16:20:00 -0500240 TableDateFilter,
Yoshie Muranakaf9832b02020-05-12 12:04:46 -0700241 },
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700242 mixins: [
243 BVPaginationMixin,
244 BVTableSelectableMixin,
245 BVToastMixin,
246 LoadingBarMixin,
Yoshie Muranaka73e419a2020-06-18 13:08:19 -0700247 TableFilterMixin,
248 TableDataFormatterMixin,
Dixsie Wolmers9b22b492020-09-07 21:26:06 -0500249 TableSortMixin,
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530250 TableRowExpandMixin,
Derick Montague602e98a2020-10-21 16:20:00 -0500251 SearchFilterMixin,
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700252 ],
Derick Montague602e98a2020-10-21 16:20:00 -0500253 beforeRouteLeave(to, from, next) {
254 // Hide loader if the user navigates to another page
255 // before request is fulfilled.
256 this.hideLoader();
257 next();
258 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700259 data() {
260 return {
261 fields: [
262 {
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530263 key: 'expandRow',
264 label: '',
265 tdClass: 'table-row-expand',
266 },
267 {
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700268 key: 'checkbox',
Derick Montague602e98a2020-10-21 16:20:00 -0500269 sortable: false,
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700270 },
271 {
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700272 key: 'id',
273 label: this.$t('pageEventLogs.table.id'),
Derick Montague602e98a2020-10-21 16:20:00 -0500274 sortable: true,
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700275 },
276 {
277 key: 'severity',
278 label: this.$t('pageEventLogs.table.severity'),
Dixsie Wolmersa04d46f2020-10-22 06:34:56 -0500279 sortable: true,
Derick Montague602e98a2020-10-21 16:20:00 -0500280 tdClass: 'text-nowrap',
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700281 },
282 {
283 key: 'type',
284 label: this.$t('pageEventLogs.table.type'),
Derick Montague602e98a2020-10-21 16:20:00 -0500285 sortable: true,
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700286 },
287 {
288 key: 'date',
289 label: this.$t('pageEventLogs.table.date'),
Derick Montague602e98a2020-10-21 16:20:00 -0500290 sortable: true,
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700291 },
292 {
293 key: 'description',
Derick Montague602e98a2020-10-21 16:20:00 -0500294 label: this.$t('pageEventLogs.table.description'),
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700295 },
296 {
297 key: 'actions',
298 sortable: false,
299 label: '',
Derick Montague602e98a2020-10-21 16:20:00 -0500300 tdClass: 'text-right text-nowrap',
301 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700302 ],
303 tableFilters: [
304 {
Yoshie Muranaka00454002020-06-22 09:14:05 -0700305 key: 'severity',
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700306 label: this.$t('pageEventLogs.table.severity'),
Derick Montague602e98a2020-10-21 16:20:00 -0500307 values: ['OK', 'Warning', 'Critical'],
308 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700309 ],
Sukanya Pandey47b047c2020-12-23 13:18:55 +0530310 expandRowLabel,
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700311 activeFilters: [],
312 batchActions: [
313 {
314 value: 'delete',
Derick Montague602e98a2020-10-21 16:20:00 -0500315 label: this.$t('global.action.delete'),
316 },
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700317 ],
SurenNewareba91c492020-10-27 14:18:54 +0530318 currentPage: currentPage,
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700319 filterStartDate: null,
Yoshie Muranaka193c22a2020-06-30 20:54:10 -0700320 filterEndDate: null,
SurenNewareba91c492020-10-27 14:18:54 +0530321 itemsPerPageOptions: itemsPerPageOptions,
322 perPage: perPage,
323 searchFilter: searchFilter,
Derick Montague602e98a2020-10-21 16:20:00 -0500324 searchTotalFilteredRows: 0,
SurenNewareba91c492020-10-27 14:18:54 +0530325 selectedRows: selectedRows,
326 tableHeaderCheckboxModel: tableHeaderCheckboxModel,
327 tableHeaderCheckboxIndeterminate: tableHeaderCheckboxIndeterminate,
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700328 };
329 },
330 computed: {
Sukanya Pandey99010962020-07-27 21:44:47 +0530331 filteredRows() {
332 return this.searchFilter
333 ? this.searchTotalFilteredRows
334 : this.filteredLogs.length;
335 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700336 allLogs() {
Derick Montague602e98a2020-10-21 16:20:00 -0500337 return this.$store.getters['eventLog/allEvents'].map((event) => {
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700338 return {
339 ...event,
340 actions: [
341 {
342 value: 'export',
Derick Montague602e98a2020-10-21 16:20:00 -0500343 title: this.$t('global.action.export'),
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700344 },
345 {
346 value: 'delete',
Derick Montague602e98a2020-10-21 16:20:00 -0500347 title: this.$t('global.action.delete'),
348 },
349 ],
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700350 };
351 });
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700352 },
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700353 batchExportData() {
Derick Montague602e98a2020-10-21 16:20:00 -0500354 return this.selectedRows.map((row) => omit(row, 'actions'));
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700355 },
356 filteredLogsByDate() {
357 return this.getFilteredTableDataByDate(
358 this.allLogs,
359 this.filterStartDate,
360 this.filterEndDate
361 );
362 },
363 filteredLogs() {
364 return this.getFilteredTableData(
365 this.filteredLogsByDate,
366 this.activeFilters
367 );
Derick Montague602e98a2020-10-21 16:20:00 -0500368 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700369 },
370 created() {
371 this.startLoader();
372 this.$store
373 .dispatch('eventLog/getEventLogData')
374 .finally(() => this.endLoader());
375 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700376 methods: {
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700377 deleteLogs(uris) {
Derick Montague602e98a2020-10-21 16:20:00 -0500378 this.$store
379 .dispatch('eventLog/deleteEventLogs', uris)
380 .then((messages) => {
381 messages.forEach(({ type, message }) => {
382 if (type === 'success') {
383 this.successToast(message);
384 } else if (type === 'error') {
385 this.errorToast(message);
386 }
387 });
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700388 });
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700389 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700390 onFilterChange({ activeFilters }) {
391 this.activeFilters = activeFilters;
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700392 },
393 onSortCompare(a, b, key) {
394 if (key === 'severity') {
Yoshie Muranaka73e419a2020-06-18 13:08:19 -0700395 return this.sortStatus(a, b, key);
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700396 }
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700397 },
398 onTableRowAction(action, { uri }) {
399 if (action === 'delete') {
400 this.$bvModal
401 .msgBoxConfirm(this.$tc('pageEventLogs.modal.deleteMessage'), {
402 title: this.$tc('pageEventLogs.modal.deleteTitle'),
Derick Montague602e98a2020-10-21 16:20:00 -0500403 okTitle: this.$t('global.action.delete'),
Sukanya Pandey38357132020-12-22 13:40:59 +0530404 cancelTitle: this.$t('global.action.cancel'),
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700405 })
Derick Montague602e98a2020-10-21 16:20:00 -0500406 .then((deleteConfirmed) => {
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700407 if (deleteConfirmed) this.deleteLogs([uri]);
408 });
409 }
410 },
411 onBatchAction(action) {
412 if (action === 'delete') {
Derick Montague602e98a2020-10-21 16:20:00 -0500413 const uris = this.selectedRows.map((row) => row.uri);
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700414 this.$bvModal
415 .msgBoxConfirm(
416 this.$tc(
417 'pageEventLogs.modal.deleteMessage',
418 this.selectedRows.length
419 ),
420 {
421 title: this.$tc(
422 'pageEventLogs.modal.deleteTitle',
423 this.selectedRows.length
424 ),
Derick Montague602e98a2020-10-21 16:20:00 -0500425 okTitle: this.$t('global.action.delete'),
Sukanya Pandey38357132020-12-22 13:40:59 +0530426 cancelTitle: this.$t('global.action.cancel'),
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700427 }
428 )
Derick Montague602e98a2020-10-21 16:20:00 -0500429 .then((deleteConfirmed) => {
Sukanya Pandey2f6d5522020-10-28 10:38:00 +0530430 if (deleteConfirmed) {
431 if (this.selectedRows.length === this.allLogs.length) {
432 this.$store
433 .dispatch(
434 'eventLog/deleteAllEventLogs',
435 this.selectedRows.length
436 )
437 .then((message) => this.successToast(message))
438 .catch(({ message }) => this.errorToast(message));
439 } else {
440 this.deleteLogs(uris);
441 }
442 }
Yoshie Muranakabe3af332020-05-11 08:23:04 -0700443 });
444 }
Yoshie Muranaka68bbba22020-05-18 09:49:37 -0700445 },
446 onChangeDateTimeFilter({ fromDate, toDate }) {
447 this.filterStartDate = fromDate;
448 this.filterEndDate = toDate;
Yoshie Muranaka193c22a2020-06-30 20:54:10 -0700449 },
Sukanya Pandey99010962020-07-27 21:44:47 +0530450 onFiltered(filteredItems) {
451 this.searchTotalFilteredRows = filteredItems.length;
452 },
SurenNeware96ebb0d2020-09-08 17:42:39 +0530453 // Create export file name based on date
454 exportFileNameByDate() {
455 let date = new Date();
456 date =
457 date.toISOString().slice(0, 10) +
458 '_' +
Derick Montague602e98a2020-10-21 16:20:00 -0500459 date.toString().split(':').join('-').split(' ')[4];
SurenNeware96ebb0d2020-09-08 17:42:39 +0530460 return this.$t('pageEventLogs.exportFilePrefix') + date;
Derick Montague602e98a2020-10-21 16:20:00 -0500461 },
462 },
Yoshie Muranaka6f102342020-05-05 09:45:39 -0700463};
464</script>