blob: db1a4c7e1a3f17b35a34c65f9177c3fae16bf59b [file] [log] [blame]
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -07001<template>
2 <b-container fluid="xl">
Yoshie Muranaka33d755f2021-02-18 15:24:14 -08003 <page-title />
4 <alerts-server-power
5 v-if="isServerPowerOffRequired"
Derick Montague71114fe2021-05-06 18:17:34 -05006 :is-server-off="isServerOff"
Yoshie Muranaka33d755f2021-02-18 15:24:14 -08007 />
Yoshie Muranaka98bb24e2020-10-06 10:00:19 -07008
Yoshie Muranaka33d755f2021-02-18 15:24:14 -08009 <!-- Firmware cards -->
10 <b-row>
11 <b-col xl="10">
12 <!-- BMC Firmware -->
Kenneth Fullbrightc3cf3612022-01-27 18:55:00 -060013 <bmc-cards
14 :is-page-disabled="isPageDisabled"
15 :is-server-off="isServerOff"
16 />
Yoshie Muranaka98bb24e2020-10-06 10:00:19 -070017
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080018 <!-- Host Firmware -->
19 <host-cards v-if="!isSingleFileUploadEnabled" />
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070020 </b-col>
21 </b-row>
22
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080023 <!-- Update firmware-->
24 <page-section
25 :section-title="$t('pageFirmware.sectionTitleUpdateFirmware')"
26 >
27 <b-row>
28 <b-col sm="8" md="6" xl="4">
29 <!-- Update form -->
30 <form-update
Derick Montague71114fe2021-05-06 18:17:34 -050031 :is-server-off="isServerOff"
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080032 :is-page-disabled="isPageDisabled"
33 />
34 </b-col>
35 </b-row>
36 </page-section>
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070037 </b-container>
38</template>
39
40<script>
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080041import AlertsServerPower from './FirmwareAlertServerPower';
42import BmcCards from './FirmwareCardsBmc';
43import FormUpdate from './FirmwareFormUpdate';
44import HostCards from './FirmwareCardsHost';
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070045import PageSection from '@/components/Global/PageSection';
46import PageTitle from '@/components/Global/PageTitle';
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070047
SurenNewareba91c492020-10-27 14:18:54 +053048import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
Surya Vde23ea22024-07-11 15:19:46 +053049import { useI18n } from 'vue-i18n';
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070050
51export default {
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080052 name: 'FirmwareSingleImage',
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070053 components: {
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080054 AlertsServerPower,
55 BmcCards,
56 FormUpdate,
57 HostCards,
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070058 PageSection,
Derick Montague602e98a2020-10-21 16:20:00 -050059 PageTitle,
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070060 },
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080061 mixins: [LoadingBarMixin],
Derick Montague602e98a2020-10-21 16:20:00 -050062 beforeRouteLeave(to, from, next) {
63 this.hideLoader();
Derick Montague602e98a2020-10-21 16:20:00 -050064 next();
65 },
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070066 data() {
67 return {
Surya Vde23ea22024-07-11 15:19:46 +053068 $t: useI18n().t,
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080069 loading,
70 isServerPowerOffRequired:
71 process.env.VUE_APP_SERVER_OFF_REQUIRED === 'true',
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070072 };
73 },
74 computed: {
Derick Montague71114fe2021-05-06 18:17:34 -050075 serverStatus() {
76 return this.$store.getters['global/serverStatus'];
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080077 },
Derick Montague71114fe2021-05-06 18:17:34 -050078 isServerOff() {
79 return this.serverStatus === 'off' ? true : false;
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080080 },
81 isSingleFileUploadEnabled() {
82 return this.$store.getters['firmware/isSingleFileUploadEnabled'];
83 },
84 isPageDisabled() {
85 if (this.isServerPowerOffRequired) {
Derick Montague71114fe2021-05-06 18:17:34 -050086 return !this.isServerOff || this.loading || this.isOperationInProgress;
Yoshie Muranaka33d755f2021-02-18 15:24:14 -080087 }
88 return this.loading || this.isOperationInProgress;
Derick Montague602e98a2020-10-21 16:20:00 -050089 },
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070090 },
91 created() {
92 this.startLoader();
Yoshie Muranaka98bb24e2020-10-06 10:00:19 -070093 this.$store
94 .dispatch('firmware/getFirmwareInformation')
95 .finally(() => this.endLoader());
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070096 },
Yoshie Muranaka92a0a4a2020-07-15 10:30:31 -070097};
98</script>