blob: 0056af4a5d741e37bdddc8c051e6cb7bd18f540b [file] [log] [blame]
Dixsie Wolmers97d86b32019-12-02 05:07:57 -06001<template>
Dixsie Wolmers6a192d52021-09-02 15:26:58 -05002 <overview-card
3 :data="eventLogData"
4 :disabled="eventLogData.length === 0"
5 :export-button="true"
6 :file-name="exportFileNameByDate()"
7 :title="$t('pageOverview.eventLogs')"
8 :to="`/logs/event-logs`"
9 >
10 <b-row class="mt-3">
11 <b-col sm="6">
12 <dl>
13 <dt>{{ $t('pageOverview.criticalEvents') }}</dt>
14 <dd class="h3">
Dixsie Wolmers9726f9a2021-09-07 15:33:16 -050015 {{ dataFormatter(criticalEvents.length) }}
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050016 <status-icon status="danger" />
17 </dd>
18 </dl>
19 </b-col>
20 <b-col sm="6">
21 <dl>
22 <dt>{{ $t('pageOverview.warningEvents') }}</dt>
23 <dd class="h3">
Dixsie Wolmers9726f9a2021-09-07 15:33:16 -050024 {{ dataFormatter(warningEvents.length) }}
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050025 <status-icon status="warning" />
26 </dd>
27 </dl>
28 </b-col>
29 </b-row>
30 </overview-card>
Dixsie Wolmers97d86b32019-12-02 05:07:57 -060031</template>
32
33<script>
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050034import OverviewCard from './OverviewCard';
Yoshie Muranakace9a3ef2020-05-06 14:33:22 -070035import StatusIcon from '@/components/Global/StatusIcon';
Dixsie Wolmers9726f9a2021-09-07 15:33:16 -050036import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
Ed Tanousdbd37e02024-03-23 14:56:34 -070037import { useI18n } from 'vue-i18n';
Yoshie Muranakace9a3ef2020-05-06 14:33:22 -070038
Dixsie Wolmers97d86b32019-12-02 05:07:57 -060039export default {
Derick Montague09e45cd2020-01-23 15:45:57 -060040 name: 'Events',
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050041 components: { OverviewCard, StatusIcon },
Dixsie Wolmers9726f9a2021-09-07 15:33:16 -050042 mixins: [DataFormatterMixin],
Ed Tanousdbd37e02024-03-23 14:56:34 -070043 data() {
44 return {
45 $t: useI18n().t,
46 };
47 },
Dixsie Wolmersf65ee342020-01-22 19:47:56 -060048 computed: {
49 eventLogData() {
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050050 return this.$store.getters['eventLog/allEvents'];
51 },
52 criticalEvents() {
53 return this.eventLogData
Glukhov Mikhail8890db82023-03-21 14:11:40 +030054 .filter(
55 (log) =>
Ed Tanous81323992024-02-27 11:26:24 -080056 log.severity === 'Critical' && log.filterByStatus === 'Unresolved',
Glukhov Mikhail8890db82023-03-21 14:11:40 +030057 )
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050058 .map((log) => {
59 return log;
60 });
61 },
62 warningEvents() {
63 return this.eventLogData
Glukhov Mikhail8890db82023-03-21 14:11:40 +030064 .filter(
65 (log) =>
Ed Tanous81323992024-02-27 11:26:24 -080066 log.severity === 'Warning' && log.filterByStatus === 'Unresolved',
Glukhov Mikhail8890db82023-03-21 14:11:40 +030067 )
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050068 .map((log) => {
69 return log;
70 });
Derick Montague602e98a2020-10-21 16:20:00 -050071 },
Dixsie Wolmersf65ee342020-01-22 19:47:56 -060072 },
Derick Montague09e45cd2020-01-23 15:45:57 -060073 created() {
Yoshie Muranaka598bf7e2020-05-01 12:26:00 -070074 this.$store.dispatch('eventLog/getEventLogData').finally(() => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +053075 this.$root.$emit('overview-events-complete');
Yoshie Muranaka598bf7e2020-05-01 12:26:00 -070076 });
Derick Montague602e98a2020-10-21 16:20:00 -050077 },
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050078 methods: {
79 exportFileNameByDate() {
80 // Create export file name based on date
81 let date = new Date();
82 date =
83 date.toISOString().slice(0, 10) +
84 '_' +
85 date.toString().split(':').join('-').split(' ')[4];
86 let fileName = 'all_event_logs_';
87 return fileName + date;
88 },
89 },
Dixsie Wolmers97d86b32019-12-02 05:07:57 -060090};
91</script>
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050092
93<style lang="scss" scoped>
Ed Tanous9c729792024-03-23 14:56:34 -070094@import '@/assets/styles/bmc/helpers/_index.scss';
95@import '@/assets/styles/bootstrap/_helpers.scss';
96
Dixsie Wolmers6a192d52021-09-02 15:26:58 -050097.status-icon {
98 vertical-align: text-top;
99}
100</style>