1<template> 2 <b-container fluid="xl"> 3 <page-title /> 4 <div class="quicklinks-section"> 5 <overview-quick-links /> 6 </div> 7 <b-row> 8 <b-col> 9 <page-section :section-title="$t('pageOverview.bmcInformation')"> 10 <b-row> 11 <b-col> 12 <dl> 13 <dt>{{ $t('pageOverview.firmwareVersion') }}</dt> 14 <dd>{{ bmcFirmwareVersion }}</dd> 15 </dl> 16 </b-col> 17 </b-row> 18 </page-section> 19 <b-row> 20 <b-col> 21 <page-section 22 :section-title="$t('pageOverview.networkInformation')" 23 > 24 <overview-network /> 25 </page-section> 26 </b-col> 27 </b-row> 28 </b-col> 29 <b-col> 30 <page-section :section-title="$t('pageOverview.serverInformation')"> 31 <b-row> 32 <b-col sm="6"> 33 <dl> 34 <dt>{{ $t('pageOverview.model') }}</dt> 35 <dd>{{ serverModel }}</dd> 36 </dl> 37 </b-col> 38 <b-col sm="6"> 39 <dl> 40 <dt>{{ $t('pageOverview.manufacturer') }}</dt> 41 <dd>{{ serverManufacturer }}</dd> 42 </dl> 43 </b-col> 44 <b-col sm="6"> 45 <dl> 46 <dt>{{ $t('pageOverview.serialNumber') }}</dt> 47 <dd>{{ serverSerialNumber }}</dd> 48 </dl> 49 </b-col> 50 <b-col sm="6"> 51 <dl> 52 <dt>{{ $t('pageOverview.firmwareVersion') }}</dt> 53 <dd>{{ hostFirmwareVersion }}</dd> 54 </dl> 55 </b-col> 56 </b-row> 57 </page-section> 58 <page-section :section-title="$t('pageOverview.powerConsumption')"> 59 <b-row> 60 <b-col sm="6"> 61 <dl> 62 <dt>{{ $t('pageOverview.powerConsumption') }}</dt> 63 <dd v-if="powerConsumptionValue == null"> 64 {{ $t('global.status.notAvailable') }} 65 </dd> 66 <dd v-else>{{ powerConsumptionValue }} W</dd> 67 </dl> 68 </b-col> 69 <b-col sm="6"> 70 <dl> 71 <dt>{{ $t('pageOverview.powerCap') }}</dt> 72 <dd v-if="powerCapValue == null"> 73 {{ $t('global.status.disabled') }} 74 </dd> 75 <dd v-else>{{ powerCapValue }} W</dd> 76 </dl> 77 </b-col> 78 </b-row> 79 </page-section> 80 </b-col> 81 </b-row> 82 <page-section :section-title="$t('pageOverview.highPriorityEvents')"> 83 <overview-events /> 84 </page-section> 85 </b-container> 86</template> 87 88<script> 89import OverviewQuickLinks from './OverviewQuickLinks'; 90import OverviewEvents from './OverviewEvents'; 91import OverviewNetwork from './OverviewNetwork'; 92import PageTitle from '@/components/Global/PageTitle'; 93import PageSection from '@/components/Global/PageSection'; 94import { mapState } from 'vuex'; 95import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; 96 97export default { 98 name: 'Overview', 99 components: { 100 OverviewQuickLinks, 101 OverviewEvents, 102 OverviewNetwork, 103 PageTitle, 104 PageSection, 105 }, 106 mixins: [LoadingBarMixin], 107 data() { 108 return { 109 firmwareStoreModuleName: this.$store.hasModule('firmwareSingleImage') 110 ? 'firmwareSingleImage' 111 : 'firmware', 112 }; 113 }, 114 computed: { 115 ...mapState({ 116 server: (state) => state.system.systems[0], 117 powerCapValue: (state) => state.powerControl.powerCapValue, 118 powerConsumptionValue: (state) => 119 state.powerControl.powerConsumptionValue, 120 serverManufacturer() { 121 if (this.server) return this.server.manufacturer || '--'; 122 return '--'; 123 }, 124 serverModel() { 125 if (this.server) return this.server.model || '--'; 126 return '--'; 127 }, 128 serverSerialNumber() { 129 if (this.server) return this.server.serialNumber || '--'; 130 return '--'; 131 }, 132 hostFirmwareVersion() { 133 if (this.server) return this.server.firmwareVersion || '--'; 134 return '--'; 135 }, 136 }), 137 bmcFirmwareVersion() { 138 return this.$store.getters[ 139 `${this.firmwareStoreModuleName}/bmcFirmwareCurrentVersion` 140 ]; 141 }, 142 }, 143 created() { 144 this.startLoader(); 145 const quicklinksPromise = new Promise((resolve) => { 146 this.$root.$on('overview-quicklinks-complete', () => resolve()); 147 }); 148 const networkPromise = new Promise((resolve) => { 149 this.$root.$on('overview-network-complete', () => resolve()); 150 }); 151 const eventsPromise = new Promise((resolve) => { 152 this.$root.$on('overview-events-complete', () => resolve()); 153 }); 154 Promise.all([ 155 this.$store.dispatch('system/getSystem'), 156 this.$store.dispatch( 157 `${this.firmwareStoreModuleName}/getFirmwareInformation` 158 ), 159 this.$store.dispatch('powerControl/getPowerControl'), 160 quicklinksPromise, 161 networkPromise, 162 eventsPromise, 163 ]).finally(() => this.endLoader()); 164 }, 165}; 166</script> 167 168<style lang="scss" scoped> 169.quicklinks-section { 170 margin-bottom: $spacer * 2; 171 margin-left: $spacer * -1; 172} 173 174dd { 175 white-space: nowrap; 176 overflow: hidden; 177 text-overflow: ellipsis; 178} 179</style> 180