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    Promise.all([
89      dumpsPromise,
90      eventsPromise,
91      firmwarePromise,
92      inventoryPromise,
93      networkPromise,
94      powerPromise,
95      quicklinksPromise,
96      serverPromise,
97    ]).finally(() => this.endLoader());
98  },
99};
100</script>
101