blob: 0e37f6e8ec76529ec98eb809309f1542432ba726 [file] [log] [blame]
Yoshie Muranaka56ee7692020-05-28 13:28:29 -07001<template>
2 <b-container fluid="xl">
3 <page-title />
4
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -05005 <!-- Quicklinks section -->
6 <page-section :section-title="$t('pageHardwareStatus.quicklinkTitle')">
7 <b-row class="w-75">
8 <b-col v-for="column in quicklinkColumns" :key="column.id" xl="4">
9 <div v-for="item in column" :key="item.id">
10 <b-link
11 :href="item.href"
12 :data-ref="item.dataRef"
13 @click.prevent="scrollToOffset"
14 >
15 <jump-link /> {{ item.linkText }}
16 </b-link>
17 </div>
18 </b-col>
19 </b-row>
20 </page-section>
21
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070022 <!-- System table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050023 <table-system ref="system" />
Yoshie Muranaka5918b482020-06-08 08:18:23 -070024
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070025 <!-- BMC manager table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050026 <table-bmc-manager ref="bmc" />
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070027
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070028 <!-- Chassis table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050029 <table-chassis ref="chassis" />
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070030
Yoshie Muranakae24b17d2020-06-08 11:03:11 -070031 <!-- DIMM slot table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050032 <table-dimm-slot ref="dimms" />
Yoshie Muranakae24b17d2020-06-08 11:03:11 -070033
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070034 <!-- Fans table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050035 <table-fans ref="fans" />
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070036
Yoshie Muranaka5918b482020-06-08 08:18:23 -070037 <!-- Power supplies table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050038 <table-power-supplies ref="powerSupply" />
SurenNewaredc3fa2e2020-08-04 20:45:25 +053039
40 <!-- Processors table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050041 <table-processors ref="processors" />
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070042 </b-container>
43</template>
44
45<script>
46import PageTitle from '@/components/Global/PageTitle';
47import TableSystem from './HardwareStatusTableStystem';
Yoshie Muranaka5918b482020-06-08 08:18:23 -070048import TablePowerSupplies from './HardwareStatusTablePowerSupplies';
Yoshie Muranakae24b17d2020-06-08 11:03:11 -070049import TableDimmSlot from './HardwareStatusTableDimmSlot';
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070050import TableFans from './HardwareStatusTableFans';
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070051import TableBmcManager from './HardwareStatusTableBmcManager';
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070052import TableChassis from './HardwareStatusTableChassis';
SurenNewaredc3fa2e2020-08-04 20:45:25 +053053import TableProcessors from './HardwareStatusTableProcessors';
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070054import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050055import PageSection from '@/components/Global/PageSection';
56import JumpLink16 from '@carbon/icons-vue/es/jump-link/16';
57
58import JumpLinkMixin from '@/components/Mixins/JumpLinkMixin';
59
60import { chunk } from 'lodash';
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070061
62export default {
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070063 components: {
64 PageTitle,
65 TableDimmSlot,
66 TablePowerSupplies,
67 TableSystem,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070068 TableFans,
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070069 TableBmcManager,
SurenNewaredc3fa2e2020-08-04 20:45:25 +053070 TableChassis,
Derick Montague602e98a2020-10-21 16:20:00 -050071 TableProcessors,
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050072 PageSection,
73 JumpLink: JumpLink16,
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070074 },
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050075 mixins: [LoadingBarMixin, JumpLinkMixin],
Derick Montague602e98a2020-10-21 16:20:00 -050076 beforeRouteLeave(to, from, next) {
77 // Hide loader if user navigates away from page
78 // before requests complete
79 this.hideLoader();
80 next();
81 },
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050082 data() {
83 return {
84 links: [
85 {
86 id: 'bmc',
87 dataRef: 'bmc',
88 href: '#bmc',
89 linkText: this.$t('pageHardwareStatus.bmcManager'),
90 },
91 {
92 id: 'chassis',
93 dataRef: 'chassis',
94 href: '#chassis',
95 linkText: this.$t('pageHardwareStatus.chassis'),
96 },
97 {
98 id: 'dimms',
99 dataRef: 'dimms',
100 href: '#dimms',
101 linkText: this.$t('pageHardwareStatus.dimmSlot'),
102 },
103 {
104 id: 'fans',
105 dataRef: 'fans',
106 href: '#fans',
107 linkText: this.$t('pageHardwareStatus.fans'),
108 },
109 {
110 id: 'powerSupply',
111 dataRef: 'powerSupply',
112 href: '#powerSupply',
113 linkText: this.$t('pageHardwareStatus.powerSupplies'),
114 },
115 {
116 id: 'processors',
117 dataRef: 'processors',
118 href: '#processors',
119 linkText: this.$t('pageHardwareStatus.processors'),
120 },
121 {
122 id: 'system',
123 dataRef: 'system',
124 href: '#system',
125 linkText: this.$t('pageHardwareStatus.system'),
126 },
127 ],
128 };
129 },
130 computed: {
131 quicklinkColumns() {
132 // Chunk links array to 3 array's to display 3 items per column
133 return chunk(this.links, 3);
134 },
135 },
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700136 created() {
137 this.startLoader();
Derick Montague602e98a2020-10-21 16:20:00 -0500138 const systemTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530139 this.$root.$on('hardware-status-system-complete', () => resolve());
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700140 });
Derick Montague602e98a2020-10-21 16:20:00 -0500141 const bmcManagerTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530142 this.$root.$on('hardware-status-bmc-manager-complete', () => resolve());
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -0700143 });
Derick Montague602e98a2020-10-21 16:20:00 -0500144 const chassisTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530145 this.$root.$on('hardware-status-chassis-complete', () => resolve());
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -0700146 });
Derick Montague602e98a2020-10-21 16:20:00 -0500147 const dimmSlotTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530148 this.$root.$on('hardware-status-dimm-slot-complete', () => resolve());
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700149 });
Derick Montague602e98a2020-10-21 16:20:00 -0500150 const fansTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530151 this.$root.$on('hardware-status-fans-complete', () => resolve());
Yoshie Muranakab89a53c2020-06-15 13:25:46 -0700152 });
Derick Montague602e98a2020-10-21 16:20:00 -0500153 const powerSuppliesTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530154 this.$root.$on('hardware-status-power-supplies-complete', () =>
Yoshie Muranaka5918b482020-06-08 08:18:23 -0700155 resolve()
156 );
157 });
Derick Montague602e98a2020-10-21 16:20:00 -0500158 const processorsTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530159 this.$root.$on('hardware-status-processors-complete', () => resolve());
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530160 });
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700161 // Combine all child component Promises to indicate
162 // when page data load complete
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700163 Promise.all([
164 systemTablePromise,
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -0700165 bmcManagerTablePromise,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -0700166 chassisTablePromise,
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700167 dimmSlotTablePromise,
Yoshie Muranakab89a53c2020-06-15 13:25:46 -0700168 fansTablePromise,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530169 powerSuppliesTablePromise,
Derick Montague602e98a2020-10-21 16:20:00 -0500170 processorsTablePromise,
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700171 ]).finally(() => this.endLoader());
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700172 },
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700173};
174</script>