blob: a729aaa2aa28802ea343853b529e8c5b9ca00b35 [file] [log] [blame]
Yoshie Muranaka56ee7692020-05-28 13:28:29 -07001<template>
2 <b-container fluid="xl">
3 <page-title />
4
Sukanya Pandey05388962021-06-10 15:35:21 +05305 <!-- Service indicators -->
6 <service-indicator />
7
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -05008 <!-- Quicklinks section -->
Sandeepa Singh7affc522021-07-06 16:29:10 +05309 <page-section :section-title="$t('pageInventory.quicklinkTitle')">
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050010 <b-row class="w-75">
11 <b-col v-for="column in quicklinkColumns" :key="column.id" xl="4">
12 <div v-for="item in column" :key="item.id">
13 <b-link
14 :href="item.href"
15 :data-ref="item.dataRef"
16 @click.prevent="scrollToOffset"
17 >
18 <jump-link /> {{ item.linkText }}
19 </b-link>
20 </div>
21 </b-col>
22 </b-row>
23 </page-section>
24
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070025 <!-- System table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050026 <table-system ref="system" />
Yoshie Muranaka5918b482020-06-08 08:18:23 -070027
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070028 <!-- BMC manager table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050029 <table-bmc-manager ref="bmc" />
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070030
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070031 <!-- Chassis table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050032 <table-chassis ref="chassis" />
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070033
Yoshie Muranakae24b17d2020-06-08 11:03:11 -070034 <!-- DIMM slot table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050035 <table-dimm-slot ref="dimms" />
Yoshie Muranakae24b17d2020-06-08 11:03:11 -070036
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070037 <!-- Fans table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050038 <table-fans ref="fans" />
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070039
Yoshie Muranaka5918b482020-06-08 08:18:23 -070040 <!-- Power supplies table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050041 <table-power-supplies ref="powerSupply" />
SurenNewaredc3fa2e2020-08-04 20:45:25 +053042
43 <!-- Processors table -->
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050044 <table-processors ref="processors" />
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070045 </b-container>
46</template>
47
48<script>
49import PageTitle from '@/components/Global/PageTitle';
Sukanya Pandey05388962021-06-10 15:35:21 +053050import ServiceIndicator from './InventoryServiceIndicator';
Sandeepa Singh7affc522021-07-06 16:29:10 +053051import TableSystem from './InventoryTableSystem';
52import TablePowerSupplies from './InventoryTablePowerSupplies';
53import TableDimmSlot from './InventoryTableDimmSlot';
54import TableFans from './InventoryTableFans';
55import TableBmcManager from './InventoryTableBmcManager';
56import TableChassis from './InventoryTableChassis';
57import TableProcessors from './InventoryTableProcessors';
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070058import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050059import PageSection from '@/components/Global/PageSection';
60import JumpLink16 from '@carbon/icons-vue/es/jump-link/16';
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050061import JumpLinkMixin from '@/components/Mixins/JumpLinkMixin';
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050062import { chunk } from 'lodash';
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070063
64export default {
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070065 components: {
66 PageTitle,
Sukanya Pandey05388962021-06-10 15:35:21 +053067 ServiceIndicator,
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070068 TableDimmSlot,
69 TablePowerSupplies,
70 TableSystem,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070071 TableFans,
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -070072 TableBmcManager,
SurenNewaredc3fa2e2020-08-04 20:45:25 +053073 TableChassis,
Derick Montague602e98a2020-10-21 16:20:00 -050074 TableProcessors,
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050075 PageSection,
76 JumpLink: JumpLink16,
Yoshie Muranakab89a53c2020-06-15 13:25:46 -070077 },
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050078 mixins: [LoadingBarMixin, JumpLinkMixin],
Derick Montague602e98a2020-10-21 16:20:00 -050079 beforeRouteLeave(to, from, next) {
80 // Hide loader if user navigates away from page
81 // before requests complete
82 this.hideLoader();
83 next();
84 },
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050085 data() {
86 return {
87 links: [
88 {
Dixsie Wolmers0a7a4992021-06-25 08:18:23 -050089 id: 'system',
90 dataRef: 'system',
91 href: '#system',
Sandeepa Singh7affc522021-07-06 16:29:10 +053092 linkText: this.$t('pageInventory.system'),
Dixsie Wolmers0a7a4992021-06-25 08:18:23 -050093 },
94 {
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050095 id: 'bmc',
96 dataRef: 'bmc',
97 href: '#bmc',
Sandeepa Singh7affc522021-07-06 16:29:10 +053098 linkText: this.$t('pageInventory.bmcManager'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -050099 },
100 {
101 id: 'chassis',
102 dataRef: 'chassis',
103 href: '#chassis',
Sandeepa Singh7affc522021-07-06 16:29:10 +0530104 linkText: this.$t('pageInventory.chassis'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500105 },
106 {
107 id: 'dimms',
108 dataRef: 'dimms',
109 href: '#dimms',
Sandeepa Singh7affc522021-07-06 16:29:10 +0530110 linkText: this.$t('pageInventory.dimmSlot'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500111 },
112 {
113 id: 'fans',
114 dataRef: 'fans',
115 href: '#fans',
Sandeepa Singh7affc522021-07-06 16:29:10 +0530116 linkText: this.$t('pageInventory.fans'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500117 },
118 {
119 id: 'powerSupply',
120 dataRef: 'powerSupply',
121 href: '#powerSupply',
Sandeepa Singh7affc522021-07-06 16:29:10 +0530122 linkText: this.$t('pageInventory.powerSupplies'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500123 },
124 {
125 id: 'processors',
126 dataRef: 'processors',
127 href: '#processors',
Sandeepa Singh7affc522021-07-06 16:29:10 +0530128 linkText: this.$t('pageInventory.processors'),
129 },
130 {
131 id: 'system',
132 dataRef: 'system',
133 href: '#system',
134 linkText: this.$t('pageInventory.system'),
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500135 },
Dixsie Wolmersdc6b3cd2021-05-20 19:01:42 -0500136 ],
137 };
138 },
139 computed: {
140 quicklinkColumns() {
141 // Chunk links array to 3 array's to display 3 items per column
142 return chunk(this.links, 3);
143 },
144 },
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700145 created() {
146 this.startLoader();
Derick Montague602e98a2020-10-21 16:20:00 -0500147 const bmcManagerTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530148 this.$root.$on('hardware-status-bmc-manager-complete', () => resolve());
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -0700149 });
Derick Montague602e98a2020-10-21 16:20:00 -0500150 const chassisTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530151 this.$root.$on('hardware-status-chassis-complete', () => resolve());
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -0700152 });
Derick Montague602e98a2020-10-21 16:20:00 -0500153 const dimmSlotTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530154 this.$root.$on('hardware-status-dimm-slot-complete', () => resolve());
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700155 });
Derick Montague602e98a2020-10-21 16:20:00 -0500156 const fansTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530157 this.$root.$on('hardware-status-fans-complete', () => resolve());
Yoshie Muranakab89a53c2020-06-15 13:25:46 -0700158 });
Derick Montague602e98a2020-10-21 16:20:00 -0500159 const powerSuppliesTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530160 this.$root.$on('hardware-status-power-supplies-complete', () =>
Yoshie Muranaka5918b482020-06-08 08:18:23 -0700161 resolve()
162 );
163 });
Derick Montague602e98a2020-10-21 16:20:00 -0500164 const processorsTablePromise = new Promise((resolve) => {
Sukanya Pandeyedb8a772020-10-29 11:33:42 +0530165 this.$root.$on('hardware-status-processors-complete', () => resolve());
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530166 });
Sukanya Pandey05388962021-06-10 15:35:21 +0530167 const serviceIndicatorPromise = new Promise((resolve) => {
168 this.$root.$on('hardware-status-service-complete', () => resolve());
169 });
170 const systemTablePromise = new Promise((resolve) => {
171 this.$root.$on('hardware-status-system-complete', () => resolve());
172 });
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700173 // Combine all child component Promises to indicate
174 // when page data load complete
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700175 Promise.all([
Yoshie Muranaka54c6bfc2020-06-12 08:29:42 -0700176 bmcManagerTablePromise,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -0700177 chassisTablePromise,
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700178 dimmSlotTablePromise,
Yoshie Muranakab89a53c2020-06-15 13:25:46 -0700179 fansTablePromise,
SurenNewaredc3fa2e2020-08-04 20:45:25 +0530180 powerSuppliesTablePromise,
Derick Montague602e98a2020-10-21 16:20:00 -0500181 processorsTablePromise,
Sukanya Pandey05388962021-06-10 15:35:21 +0530182 serviceIndicatorPromise,
183 systemTablePromise,
Yoshie Muranakae24b17d2020-06-08 11:03:11 -0700184 ]).finally(() => this.endLoader());
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700185 },
Yoshie Muranaka56ee7692020-05-28 13:28:29 -0700186};
187</script>