diff options
Diffstat (limited to 'src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue')
-rw-r--r-- | src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue b/src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue deleted file mode 100644 index f13b8e00..00000000 --- a/src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue +++ /dev/null @@ -1,235 +0,0 @@ -<template> - <div> - <div class="form-background p-3"> - <b-form @submit.prevent="onSubmitUpload"> - <b-form-group - v-if="isTftpUploadAvailable" - :label=" - $t('pageFirmware.singleFileUpload.form.updateFirmware.fileSource') - " - :disabled="isPageDisabled" - > - <b-form-radio v-model="isWorkstationSelected" :value="true"> - {{ - $t( - 'pageFirmware.singleFileUpload.form.updateFirmware.workstation' - ) - }} - </b-form-radio> - <b-form-radio v-model="isWorkstationSelected" :value="false"> - {{ - $t('pageFirmware.singleFileUpload.form.updateFirmware.tftpServer') - }} - </b-form-radio> - </b-form-group> - - <!-- Workstation Upload --> - <template v-if="isWorkstationSelected"> - <b-form-group - :label=" - $t('pageFirmware.singleFileUpload.form.updateFirmware.imageFile') - " - label-for="image-file" - > - <b-form-text id="image-file-help-block"> - {{ - $t( - 'pageFirmware.singleFileUpload.form.updateFirmware.imageFileHelperText' - ) - }} - </b-form-text> - <form-file - id="image-file" - accept=".tar" - :disabled="isPageDisabled" - :state="getValidationState($v.file)" - aria-describedby="image-file-help-block" - @input="onFileUpload($event)" - > - <template #invalid> - <b-form-invalid-feedback role="alert"> - {{ $t('global.form.required') }} - </b-form-invalid-feedback> - </template> - </form-file> - </b-form-group> - </template> - - <!-- TFTP Server Upload --> - <template v-else> - <b-form-group - :label=" - $t( - 'pageFirmware.singleFileUpload.form.updateFirmware.fileAddress' - ) - " - label-for="tftp-address" - > - <b-form-input - id="tftp-address" - v-model="tftpFileAddress" - type="text" - :state="getValidationState($v.tftpFileAddress)" - :disabled="isPageDisabled" - @input="$v.tftpFileAddress.$touch()" - /> - <b-form-invalid-feedback role="alert"> - {{ $t('global.form.fieldRequired') }} - </b-form-invalid-feedback> - </b-form-group> - </template> - <b-btn - data-test-id="firmware-button-startUpdate" - type="submit" - variant="primary" - :disabled="isPageDisabled" - > - {{ - $t('pageFirmware.singleFileUpload.form.updateFirmware.startUpdate') - }} - </b-btn> - <alert - v-if="isServerPowerOffRequired && !isHostOff" - variant="warning" - :small="true" - class="mt-4" - > - <p class="col-form-label"> - {{ - $t( - 'pageFirmware.singleFileUpload.alert.serverMustBePoweredOffToUpdateFirmware' - ) - }} - </p> - </alert> - </b-form> - </div> - - <!-- Modals --> - <modal-update-firmware @ok="updateFirmware" /> - </div> -</template> - -<script> -import { requiredIf } from 'vuelidate/lib/validators'; - -import BVToastMixin from '@/components/Mixins/BVToastMixin'; -import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin'; -import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; - -import Alert from '@/components/Global/Alert'; -import FormFile from '@/components/Global/FormFile'; -import ModalUpdateFirmware from './FirmwareModalUpdateFirmware'; - -export default { - components: { Alert, FormFile, ModalUpdateFirmware }, - mixins: [BVToastMixin, LoadingBarMixin, VuelidateMixin], - props: { - isPageDisabled: { - required: true, - type: Boolean, - default: false, - }, - isHostOff: { - required: true, - type: Boolean, - }, - }, - data() { - return { - loading, - isWorkstationSelected: true, - file: null, - tftpFileAddress: null, - isServerPowerOffRequired: - process.env.VUE_APP_SERVER_OFF_REQUIRED === 'true', - }; - }, - computed: { - isTftpUploadAvailable() { - return this.$store.getters['firmwareSingleImage/isTftpUploadAvailable']; - }, - }, - watch: { - isWorkstationSelected: function () { - this.$v.$reset(); - this.file = null; - this.tftpFileAddress = null; - }, - }, - validations() { - return { - file: { - required: requiredIf(function () { - return this.isWorkstationSelected; - }), - }, - tftpFileAddress: { - required: requiredIf(function () { - return !this.isWorkstationSelected; - }), - }, - }; - }, - created() { - this.$store.dispatch('firmwareSingleImage/getUpdateServiceSettings'); - }, - methods: { - updateFirmware() { - this.startLoader(); - const timerId = setTimeout(() => { - this.endLoader(); - this.infoToast( - this.$t('pageFirmware.singleFileUpload.toast.verifyUpdateMessage'), - { - title: this.$t('pageFirmware.singleFileUpload.toast.verifyUpdate'), - refreshAction: true, - } - ); - }, 360000); - this.infoToast( - this.$t('pageFirmware.singleFileUpload.toast.updateStartedMessage'), - { - title: this.$t('pageFirmware.singleFileUpload.toast.updateStarted'), - timestamp: true, - } - ); - if (this.isWorkstationSelected) { - this.dispatchWorkstationUpload(timerId); - } else { - this.dispatchTftpUpload(timerId); - } - }, - dispatchWorkstationUpload(timerId) { - this.$store - .dispatch('firmwareSingleImage/uploadFirmware', this.file) - .catch(({ message }) => { - this.endLoader(); - this.errorToast(message); - clearTimeout(timerId); - }); - }, - dispatchTftpUpload(timerId) { - this.$store - .dispatch( - 'firmwareSingleImage/uploadFirmwareTFTP', - this.tftpFileAddress - ) - .catch(({ message }) => { - this.endLoader(); - this.errorToast(message); - clearTimeout(timerId); - }); - }, - onSubmitUpload() { - this.$v.$touch(); - if (this.$v.$invalid) return; - this.$bvModal.show('modal-update-firmware'); - }, - onFileUpload(file) { - this.file = file; - this.$v.file.$touch(); - }, - }, -}; -</script> |