1<template>
2  <b-container fluid="xl">
3    <page-title />
4    <overview-quick-links class="mb-4" />
5    <page-section
6      :section-title="$t('pageOverview.systemInformation')"
7      class="mb-1"
8    >
9      <b-card-group deck>
10        <overview-server />
11        <overview-firmware />
12      </b-card-group>
13      <b-card-group deck>
14        <overview-network />
15        <overview-power />
16      </b-card-group>
17    </page-section>
18    <page-section :section-title="$t('pageOverview.statusInformation')">
19      <b-card-group deck>
20        <overview-events />
21        <overview-inventory />
22        <overview-dumps v-if="showDumps" />
23      </b-card-group>
24    </page-section>
25  </b-container>
26</template>
27
28<script>
29import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
30import OverviewDumps from './OverviewDumps.vue';
31import OverviewEvents from './OverviewEvents.vue';
32import OverviewFirmware from './OverviewFirmware.vue';
33import OverviewInventory from './OverviewInventory.vue';
34import OverviewNetwork from './OverviewNetwork';
35import OverviewPower from './OverviewPower';
36import OverviewQuickLinks from './OverviewQuickLinks';
37import OverviewServer from './OverviewServer';
38import PageSection from '@/components/Global/PageSection';
39import PageTitle from '@/components/Global/PageTitle';
40
41export default {
42  name: 'Overview',
43  components: {
44    OverviewDumps,
45    OverviewEvents,
46    OverviewFirmware,
47    OverviewInventory,
48    OverviewNetwork,
49    OverviewPower,
50    OverviewQuickLinks,
51    OverviewServer,
52    PageSection,
53    PageTitle,
54  },
55  mixins: [LoadingBarMixin],
56  data() {
57    return {
58      showDumps: process.env.VUE_APP_ENV_NAME === 'ibm',
59    };
60  },
61  created() {
62    this.startLoader();
63    const dumpsPromise = new Promise((resolve) => {
64      this.$root.$on('overview-dumps-complete', () => resolve());
65    });
66    const eventsPromise = new Promise((resolve) => {
67      this.$root.$on('overview-events-complete', () => resolve());
68    });
69    const firmwarePromise = new Promise((resolve) => {
70      this.$root.$on('overview-firmware-complete', () => resolve());
71    });
72    const inventoryPromise = new Promise((resolve) => {
73      this.$root.$on('overview-inventory-complete', () => resolve());
74    });
75    const networkPromise = new Promise((resolve) => {
76      this.$root.$on('overview-network-complete', () => resolve());
77    });
78    const powerPromise = new Promise((resolve) => {
79      this.$root.$on('overview-power-complete', () => resolve());
80    });
81    const quicklinksPromise = new Promise((resolve) => {
82      this.$root.$on('overview-quicklinks-complete', () => resolve());
83    });
84    const serverPromise = new Promise((resolve) => {
85      this.$root.$on('overview-server-complete', () => resolve());
86    });
87
88    const promises = [
89      eventsPromise,
90      firmwarePromise,
91      inventoryPromise,
92      networkPromise,
93      powerPromise,
94      quicklinksPromise,
95      serverPromise,
96    ];
97    if (this.showDumps) promises.push(dumpsPromise);
98    Promise.all(promises).finally(() => this.endLoader());
99  },
100};
101</script>
102