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 computed: mapState({ 108 server: state => state.system.systems[0], 109 bmcFirmwareVersion: state => state.firmware.bmcFirmwareVersion, 110 powerCapValue: state => state.powerControl.powerCapValue, 111 powerConsumptionValue: state => state.powerControl.powerConsumptionValue, 112 serverManufacturer() { 113 return this.server ? this.server.manufacturer : '--'; 114 }, 115 serverModel() { 116 return this.server ? this.server.model : '--'; 117 }, 118 serverSerialNumber() { 119 return this.server ? this.server.serialNumber : '--'; 120 }, 121 hostFirmwareVersion() { 122 return this.server ? this.server.firmwareVersion : '--'; 123 } 124 }), 125 created() { 126 this.startLoader(); 127 const quicklinksPromise = new Promise(resolve => { 128 this.$root.$on('overview::quicklinks::complete', () => resolve()); 129 }); 130 const networkPromise = new Promise(resolve => { 131 this.$root.$on('overview::network::complete', () => resolve()); 132 }); 133 const eventsPromise = new Promise(resolve => { 134 this.$root.$on('overview::events::complete', () => resolve()); 135 }); 136 Promise.all([ 137 this.$store.dispatch('system/getSystem'), 138 this.$store.dispatch('firmware/getBmcFirmware'), 139 this.$store.dispatch('powerControl/getPowerControl'), 140 quicklinksPromise, 141 networkPromise, 142 eventsPromise 143 ]).finally(() => this.endLoader()); 144 }, 145 beforeRouteLeave(to, from, next) { 146 this.hideLoader(); 147 next(); 148 } 149}; 150</script> 151 152<style lang="scss" scoped> 153@import 'src/assets/styles/helpers'; 154.quicklinks-section { 155 margin-bottom: $spacer * 2; 156 margin-left: $spacer * -1; 157} 158 159dd { 160 white-space: nowrap; 161 overflow: hidden; 162 text-overflow: ellipsis; 163} 164</style> 165