blob: 7e2602e1152078105d5f1bc32063258ac5b25161 [file] [log] [blame]
<template>
<div class="quicklinks form-background">
<div>
<dl>
<dt>{{ $t('pageOverview.quicklinks.bmcTime') }}</dt>
<dd v-if="bmcTime" data-test-id="overviewQuickLinks-text-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="indicatorLedActiveState"
data-test-id="overviewQuickLinks-checkbox-serverLed"
name="check-button"
switch
@change="onChangeServerLed"
>
<span v-if="indicatorLedActiveState">
{{ $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"
>
{{ $t('pageOverview.quicklinks.editNetworkSettings') }}
<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"
>
{{ $t('pageOverview.quicklinks.solConsole') }}
<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'];
},
indicatorLedActiveState: {
get() {
return this.$store.getters['serverLed/getIndicatorLedActiveState'];
},
set(value) {
return value;
},
},
},
created() {
Promise.all([
this.$store.dispatch('global/getBmcTime'),
this.$store.dispatch('serverLed/getIndicatorLedActiveState'),
]).finally(() => {
this.$root.$emit('overview-quicklinks-complete');
});
},
methods: {
onChangeServerLed(indicatorLedActiveState) {
this.$store
.dispatch(
'serverLed/saveIndicatorLedActiveState',
indicatorLedActiveState
)
.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>