blob: 2860e5997ca8ed0fb5c11504d5fd15d05de1831c [file] [log] [blame]
Yoshie Muranaka56ee7692020-05-28 13:28:29 -07001<template>
2 <b-container fluid="xl">
3 <page-title />
4
5 <!-- System table -->
6 <table-system />
Yoshie Muranaka5918b482020-06-08 08:18:23 -07007
8 <!-- Power supplies table -->
9 <table-power-supplies />
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070010 </b-container>
11</template>
12
13<script>
14import PageTitle from '@/components/Global/PageTitle';
15import TableSystem from './HardwareStatusTableStystem';
Yoshie Muranaka5918b482020-06-08 08:18:23 -070016import TablePowerSupplies from './HardwareStatusTablePowerSupplies';
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070017import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
18
19export default {
Yoshie Muranaka5918b482020-06-08 08:18:23 -070020 components: { PageTitle, TablePowerSupplies, TableSystem },
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070021 mixins: [LoadingBarMixin],
22 created() {
23 this.startLoader();
24 const systemTablePromise = new Promise(resolve => {
25 this.$root.$on('hardwareStatus::system::complete', () => resolve());
26 });
Yoshie Muranaka5918b482020-06-08 08:18:23 -070027 const powerSuppliesTablePromise = new Promise(resolve => {
28 this.$root.$on('hardwareStatus::powerSupplies::complete', () =>
29 resolve()
30 );
31 });
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070032 // Combine all child component Promises to indicate
33 // when page data load complete
Yoshie Muranaka5918b482020-06-08 08:18:23 -070034 Promise.all([systemTablePromise, powerSuppliesTablePromise]).finally(() =>
35 this.endLoader()
36 );
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070037 },
38 beforeRouteLeave(to, from, next) {
39 // Hide loader if user navigates away from page
40 // before requests complete
41 this.hideLoader();
42 next();
43 }
44};
45</script>