blob: 24f02953a86a614af6aebc3bd35dd458e9b03d74 [file] [log] [blame]
<template>
<b-container fluid="xl">
<page-title />
<!-- System table -->
<table-system />
<!-- BMC manager table -->
<table-bmc-manager />
<!-- Chassis table -->
<table-chassis />
<!-- DIMM slot table -->
<table-dimm-slot />
<!-- Fans table -->
<table-fans />
<!-- Power supplies table -->
<table-power-supplies />
<!-- Processors table -->
<table-processors />
</b-container>
</template>
<script>
import PageTitle from '@/components/Global/PageTitle';
import TableSystem from './HardwareStatusTableStystem';
import TablePowerSupplies from './HardwareStatusTablePowerSupplies';
import TableDimmSlot from './HardwareStatusTableDimmSlot';
import TableFans from './HardwareStatusTableFans';
import TableBmcManager from './HardwareStatusTableBmcManager';
import TableChassis from './HardwareStatusTableChassis';
import TableProcessors from './HardwareStatusTableProcessors';
import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
export default {
components: {
PageTitle,
TableDimmSlot,
TablePowerSupplies,
TableSystem,
TableFans,
TableBmcManager,
TableChassis,
TableProcessors,
},
mixins: [LoadingBarMixin],
beforeRouteLeave(to, from, next) {
// Hide loader if user navigates away from page
// before requests complete
this.hideLoader();
next();
},
created() {
this.startLoader();
const systemTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::system::complete', () => resolve());
});
const bmcManagerTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::bmcManager::complete', () => resolve());
});
const chassisTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::chassis::complete', () => resolve());
});
const dimmSlotTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::dimmSlot::complete', () => resolve());
});
const fansTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::fans::complete', () => resolve());
});
const powerSuppliesTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::powerSupplies::complete', () =>
resolve()
);
});
const processorsTablePromise = new Promise((resolve) => {
this.$root.$on('hardwareStatus::processors::complete', () => resolve());
});
// Combine all child component Promises to indicate
// when page data load complete
Promise.all([
systemTablePromise,
bmcManagerTablePromise,
chassisTablePromise,
dimmSlotTablePromise,
fansTablePromise,
powerSuppliesTablePromise,
processorsTablePromise,
]).finally(() => this.endLoader());
},
};
</script>