summaryrefslogtreecommitdiff
path: root/src/views/Health/HardwareStatus/HardwareStatus.vue
blob: 2860e5997ca8ed0fb5c11504d5fd15d05de1831c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<template>
  <b-container fluid="xl">
    <page-title />

    <!-- System table -->
    <table-system />

    <!-- Power supplies table -->
    <table-power-supplies />
  </b-container>
</template>

<script>
import PageTitle from '@/components/Global/PageTitle';
import TableSystem from './HardwareStatusTableStystem';
import TablePowerSupplies from './HardwareStatusTablePowerSupplies';
import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';

export default {
  components: { PageTitle, TablePowerSupplies, TableSystem },
  mixins: [LoadingBarMixin],
  created() {
    this.startLoader();
    const systemTablePromise = new Promise(resolve => {
      this.$root.$on('hardwareStatus::system::complete', () => resolve());
    });
    const powerSuppliesTablePromise = new Promise(resolve => {
      this.$root.$on('hardwareStatus::powerSupplies::complete', () =>
        resolve()
      );
    });
    // Combine all child component Promises to indicate
    // when page data load complete
    Promise.all([systemTablePromise, powerSuppliesTablePromise]).finally(() =>
      this.endLoader()
    );
  },
  beforeRouteLeave(to, from, next) {
    // Hide loader if user navigates away from page
    // before requests complete
    this.hideLoader();
    next();
  }
};
</script>