summaryrefslogtreecommitdiff
path: root/src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue')
-rw-r--r--src/env/components/FirmwareSingleImage/FirmwareFormUpdate.vue235
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>