1<template> 2 <b-container fluid="xl"> 3 <page-title :description="$t('pageFactoryReset.description')" /> 4 5 <!-- Reset Form --> 6 <b-form id="factory-reset" @submit.prevent="onResetSubmit"> 7 <b-row> 8 <b-col md="8"> 9 <b-form-group :label="$t('pageFactoryReset.form.resetOptionsLabel')"> 10 <b-form-radio-group 11 id="factory-reset-options" 12 v-model="resetOption" 13 stacked 14 > 15 <b-form-radio 16 class="mb-1" 17 value="resetBios" 18 aria-describedby="reset-bios" 19 data-test-id="factoryReset-radio-resetBios" 20 > 21 {{ $t('pageFactoryReset.form.resetBiosOptionLabel') }} 22 </b-form-radio> 23 <b-form-text id="reset-bios" class="ms-4 mb-3"> 24 {{ $t('pageFactoryReset.form.resetBiosOptionHelperText') }} 25 </b-form-text> 26 27 <b-form-radio 28 class="mb-1" 29 value="resetToDefaults" 30 aria-describedby="reset-to-defaults" 31 data-test-id="factoryReset-radio-resetToDefaults" 32 > 33 {{ $t('pageFactoryReset.form.resetToDefaultsOptionLabel') }} 34 </b-form-radio> 35 <b-form-text id="reset-to-defaults" class="ms-4 mb-3"> 36 {{ 37 $t('pageFactoryReset.form.resetToDefaultsOptionHelperText') 38 }} 39 </b-form-text> 40 </b-form-radio-group> 41 </b-form-group> 42 <b-button 43 type="submit" 44 variant="primary" 45 data-test-id="factoryReset-button-submit" 46 > 47 {{ $t('global.action.reset') }} 48 </b-button> 49 </b-col> 50 </b-row> 51 </b-form> 52 53 <!-- Modals --> 54 <modal-reset 55 v-model="showResetModal" 56 :reset-type="resetOption" 57 @ok-confirm="onOkConfirm" 58 /> 59 </b-container> 60</template> 61 62<script> 63import PageTitle from '@/components/Global/PageTitle'; 64import BVToastMixin from '@/components/Mixins/BVToastMixin'; 65import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; 66import ModalReset from './FactoryResetModal'; 67import { useI18n } from 'vue-i18n'; 68 69export default { 70 name: 'FactoryReset', 71 components: { PageTitle, ModalReset }, 72 mixins: [LoadingBarMixin, BVToastMixin], 73 data() { 74 return { 75 $t: useI18n().t, 76 showResetModal: false, 77 resetOption: 'resetBios', 78 }; 79 }, 80 created() { 81 this.hideLoader(); 82 }, 83 methods: { 84 onResetSubmit() { 85 this.showResetModal = true; 86 }, 87 onOkConfirm() { 88 if (this.resetOption == 'resetBios') { 89 this.onResetBiosConfirm(); 90 } else { 91 this.onResetToDefaultsConfirm(); 92 } 93 }, 94 onResetBiosConfirm() { 95 this.$store 96 .dispatch('factoryReset/resetBios') 97 .then((title) => { 98 this.successToast('', { 99 title, 100 }); 101 }) 102 .catch(({ message }) => { 103 this.errorToast('', { 104 title: message, 105 }); 106 }); 107 }, 108 onResetToDefaultsConfirm() { 109 this.$store 110 .dispatch('factoryReset/resetToDefaults') 111 .then((title) => { 112 this.successToast('', { 113 title, 114 }); 115 }) 116 .catch(({ message }) => { 117 this.errorToast('', { 118 title: message, 119 }); 120 }); 121 }, 122 }, 123}; 124</script> 125