blob: 8e9ed8fd149fa6f92afdcf28aee9b4c69d10e82d [file] [log] [blame]
Derick Montagueda9f0a62021-02-14 19:21:44 -06001<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>
jason westoverd36ac8a2025-11-03 20:58:59 -060023 <b-form-text id="reset-bios" class="ms-4 mb-3">
Derick Montagueda9f0a62021-02-14 19:21:44 -060024 {{ $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>
jason westoverd36ac8a2025-11-03 20:58:59 -060035 <b-form-text id="reset-to-defaults" class="ms-4 mb-3">
Derick Montagueda9f0a62021-02-14 19:21:44 -060036 {{
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 -->
jason westoverd36ac8a2025-11-03 20:58:59 -060054 <modal-reset
55 v-model="showResetModal"
56 :reset-type="resetOption"
57 @ok-confirm="onOkConfirm"
58 />
Derick Montagueda9f0a62021-02-14 19:21:44 -060059 </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';
Surya Vde23ea22024-07-11 15:19:46 +053067import { useI18n } from 'vue-i18n';
Derick Montagueda9f0a62021-02-14 19:21:44 -060068
69export default {
70 name: 'FactoryReset',
71 components: { PageTitle, ModalReset },
72 mixins: [LoadingBarMixin, BVToastMixin],
73 data() {
74 return {
Surya Vde23ea22024-07-11 15:19:46 +053075 $t: useI18n().t,
jason westoverd36ac8a2025-11-03 20:58:59 -060076 showResetModal: false,
Derick Montagueda9f0a62021-02-14 19:21:44 -060077 resetOption: 'resetBios',
78 };
79 },
80 created() {
81 this.hideLoader();
82 },
83 methods: {
84 onResetSubmit() {
jason westoverd36ac8a2025-11-03 20:58:59 -060085 this.showResetModal = true;
Derick Montagueda9f0a62021-02-14 19:21:44 -060086 },
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>