| <template> |
| <b-container fluid="xl"> |
| <page-title /> |
| <alerts-server-power |
| v-if="isServerPowerOffRequired" |
| :is-server-off="isServerOff" |
| /> |
| |
| <!-- Firmware cards --> |
| <b-row> |
| <b-col xl="10"> |
| <!-- BMC Firmware --> |
| <bmc-cards |
| :is-page-disabled="isPageDisabled" |
| :is-server-off="isServerOff" |
| /> |
| |
| <!-- Host Firmware --> |
| <host-cards v-if="!isSingleFileUploadEnabled" /> |
| </b-col> |
| </b-row> |
| |
| <!-- Update firmware--> |
| <page-section |
| :section-title="$t('pageFirmware.sectionTitleUpdateFirmware')" |
| > |
| <b-row> |
| <b-col sm="8" md="6" xl="4"> |
| <!-- Update form --> |
| <form-update |
| :is-server-off="isServerOff" |
| :is-page-disabled="isPageDisabled" |
| /> |
| </b-col> |
| </b-row> |
| </page-section> |
| </b-container> |
| </template> |
| |
| <script> |
| import AlertsServerPower from './FirmwareAlertServerPower'; |
| import BmcCards from './FirmwareCardsBmc'; |
| import FormUpdate from './FirmwareFormUpdate'; |
| import HostCards from './FirmwareCardsHost'; |
| import PageSection from '@/components/Global/PageSection'; |
| import PageTitle from '@/components/Global/PageTitle'; |
| |
| import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin'; |
| |
| export default { |
| name: 'FirmwareSingleImage', |
| components: { |
| AlertsServerPower, |
| BmcCards, |
| FormUpdate, |
| HostCards, |
| PageSection, |
| PageTitle, |
| }, |
| mixins: [LoadingBarMixin], |
| beforeRouteLeave(to, from, next) { |
| this.hideLoader(); |
| next(); |
| }, |
| data() { |
| return { |
| loading, |
| isServerPowerOffRequired: |
| process.env.VUE_APP_SERVER_OFF_REQUIRED === 'true', |
| }; |
| }, |
| computed: { |
| serverStatus() { |
| return this.$store.getters['global/serverStatus']; |
| }, |
| isServerOff() { |
| return this.serverStatus === 'off' ? true : false; |
| }, |
| isSingleFileUploadEnabled() { |
| return this.$store.getters['firmware/isSingleFileUploadEnabled']; |
| }, |
| isPageDisabled() { |
| if (this.isServerPowerOffRequired) { |
| return !this.isServerOff || this.loading || this.isOperationInProgress; |
| } |
| return this.loading || this.isOperationInProgress; |
| }, |
| }, |
| created() { |
| this.startLoader(); |
| this.$store |
| .dispatch('firmware/getFirmwareInformation') |
| .finally(() => this.endLoader()); |
| }, |
| }; |
| </script> |