blob: 1cbc64d585feeb6bfa729f51c3264694609428ac [file] [log] [blame]
<template>
<div class="quicklinks form-background">
<div>
<dl>
<dt>{{ $t('pageOverview.quicklinks.bmcTime') }}</dt>
<dd v-if="bmcTime">
{{ bmcTime | formatDate }} {{ bmcTime | formatTime }}
</dd>
<dd v-else>--</dd>
</dl>
</div>
<div>
<dl>
<dt>{{ $t('pageOverview.quicklinks.serverLed') }}</dt>
<dd>
<b-form-checkbox
v-model="serverLedChecked"
data-test-id="overviewQuickLinks-checkbox-serverLed"
name="check-button"
switch
value="Lit"
unchecked-value="Off"
@change="onChangeServerLed"
>
<span v-if="serverLedChecked !== 'Off'">
{{ $t('global.status.on') }}
</span>
<span v-else>{{ $t('global.status.off') }}</span>
</b-form-checkbox>
</dd>
</dl>
</div>
<div>
<b-button
to="/configuration/network-settings"
variant="secondary"
data-test-id="overviewQuickLinks-button-networkSettings"
class="d-flex justify-content-between align-items-center"
>
<span>{{ $t('pageOverview.quicklinks.editNetworkSettings') }}</span>
<icon-arrow-right />
</b-button>
</div>
<div>
<b-button
to="/control/serial-over-lan"
variant="secondary"
data-test-id="overviewQuickLinks-button-solConsole"
class="d-flex justify-content-between align-items-center"
>
<span>{{ $t('pageOverview.quicklinks.solConsole') }}</span>
<icon-arrow-right />
</b-button>
</div>
</div>
</template>
<script>
import ArrowRight16 from '@carbon/icons-vue/es/arrow--right/16';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
export default {
name: 'QuickLinks',
components: {
IconArrowRight: ArrowRight16,
},
mixins: [BVToastMixin],
computed: {
bmcTime() {
return this.$store.getters['global/bmcTime'];
},
serverLedChecked: {
get() {
return this.$store.getters['serverLed/getIndicatorValue'];
},
set(value) {
return value;
},
},
},
created() {
Promise.all([
this.$store.dispatch('global/getBmcTime'),
this.$store.dispatch('serverLed/getIndicatorValue'),
]).finally(() => {
this.$root.$emit('overview::quicklinks::complete');
});
},
methods: {
onChangeServerLed(value) {
this.$store
.dispatch('serverLed/saveIndicatorLedValue', value)
.then((message) => this.successToast(message))
.catch(({ message }) => this.errorToast(message));
},
},
};
</script>
<style lang="scss" scoped>
dd,
dl {
margin: 0;
}
.quicklinks {
display: grid;
grid-gap: 1rem;
padding: 1rem;
white-space: nowrap;
align-items: center;
}
@include media-breakpoint-up(sm) {
.quicklinks {
grid-template-columns: repeat(2, 1fr);
}
}
@include media-breakpoint-up(xl) {
.quicklinks {
grid-template-columns: repeat(4, 1fr);
}
}
</style>