blob: 823e6dccb10626868e48f052bd6daa4612b4780f [file] [log] [blame]
Derick Montagueda9f0a62021-02-14 19:21:44 -06001<template>
2 <b-modal
3 id="modal-reset"
4 ref="modal"
5 :title="$t(`pageFactoryReset.modal.${resetType}Title`)"
6 title-tag="h2"
7 @hidden="resetConfirm"
8 >
9 <p class="mb-2">
10 <strong>{{ $t(`pageFactoryReset.modal.${resetType}Header`) }}</strong>
11 </p>
Surya Venkatesanf1ccca32024-09-23 11:00:39 +053012 <ul v-if="resetType == 'resetBios'" class="pl-3 mb-4">
13 <li class="mt-1 mb-1">
14 {{ $t('pageFactoryReset.modal.resetBiosSettingsList.item1') }}
15 </li>
16 <li class="mt-1 mb-1">
17 {{ $t('pageFactoryReset.modal.resetBiosSettingsList.item2') }}
18 </li>
19 </ul>
20 <ul v-else-if="resetType == 'resetToDefaults'" class="pl-3 mb-4">
21 <li class="mt-1 mb-1">
22 {{ $t('pageFactoryReset.modal.resetToDefaultsSettingsList.item1') }}
23 </li>
24 <li class="mt-1 mb-1">
25 {{ $t('pageFactoryReset.modal.resetToDefaultsSettingsList.item2') }}
26 </li>
27 <li class="mt-1 mb-1">
28 {{ $t('pageFactoryReset.modal.resetToDefaultsSettingsList.item3') }}
29 </li>
30 <li class="mt-1 mb-1">
31 {{ $t('pageFactoryReset.modal.resetToDefaultsSettingsList.item4') }}
Derick Montagueda9f0a62021-02-14 19:21:44 -060032 </li>
33 </ul>
34
35 <!-- Warning message -->
Derick Montague71114fe2021-05-06 18:17:34 -050036 <template v-if="!isServerOff">
Derick Montagueda9f0a62021-02-14 19:21:44 -060037 <p class="d-flex mb-2">
38 <status-icon status="danger" />
39 <span id="reset-to-default-warning" class="ml-1">
40 {{ $t(`pageFactoryReset.modal.resetWarningMessage`) }}
41 </span>
42 </p>
43 <b-form-checkbox
44 v-model="confirm"
45 aria-describedby="reset-to-default-warning"
Surya Vde23ea22024-07-11 15:19:46 +053046 @input="v$.confirm.$touch()"
Derick Montagueda9f0a62021-02-14 19:21:44 -060047 >
48 {{ $t(`pageFactoryReset.modal.resetWarningCheckLabel`) }}
49 </b-form-checkbox>
50 <b-form-invalid-feedback
51 role="alert"
Surya Vde23ea22024-07-11 15:19:46 +053052 :state="getValidationState(v$.confirm)"
Derick Montagueda9f0a62021-02-14 19:21:44 -060053 >
54 {{ $t('global.form.fieldRequired') }}
55 </b-form-invalid-feedback>
56 </template>
57
58 <template #modal-footer="{ cancel }">
59 <b-button
60 variant="secondary"
61 data-test-id="factoryReset-button-cancel"
62 @click="cancel()"
63 >
64 {{ $t('global.action.cancel') }}
65 </b-button>
66 <b-button
67 type="sumbit"
68 variant="primary"
69 data-test-id="factoryReset-button-confirm"
70 @click="handleConfirm"
71 >
72 {{ $t(`pageFactoryReset.modal.${resetType}SubmitText`) }}
73 </b-button>
74 </template>
75 </b-modal>
76</template>
77<script>
78import StatusIcon from '@/components/Global/StatusIcon';
79import VuelidateMixin from '@/components/Mixins/VuelidateMixin';
Surya Venkatesanf1ccca32024-09-23 11:00:39 +053080import { useVuelidate } from '@vuelidate/core';
Surya Vde23ea22024-07-11 15:19:46 +053081import { useI18n } from 'vue-i18n';
Derick Montagueda9f0a62021-02-14 19:21:44 -060082
83export default {
84 components: { StatusIcon },
85 mixins: [VuelidateMixin],
86 props: {
87 resetType: {
88 type: String,
89 default: null,
90 },
91 },
Surya Venkatesanf1ccca32024-09-23 11:00:39 +053092 setup() {
93 return {
94 v$: useVuelidate(),
95 };
96 },
Derick Montagueda9f0a62021-02-14 19:21:44 -060097 data() {
98 return {
Surya Vde23ea22024-07-11 15:19:46 +053099 $t: useI18n().t,
Derick Montagueda9f0a62021-02-14 19:21:44 -0600100 confirm: false,
101 };
102 },
103 computed: {
Derick Montague71114fe2021-05-06 18:17:34 -0500104 serverStatus() {
105 return this.$store.getters['global/serverStatus'];
Derick Montagueda9f0a62021-02-14 19:21:44 -0600106 },
Derick Montague71114fe2021-05-06 18:17:34 -0500107 isServerOff() {
108 return this.serverStatus === 'off' ? true : false;
Derick Montagueda9f0a62021-02-14 19:21:44 -0600109 },
110 },
111 validations: {
112 confirm: {
113 mustBeTrue: function (value) {
Derick Montague71114fe2021-05-06 18:17:34 -0500114 return this.isServerOff || value === true;
Derick Montagueda9f0a62021-02-14 19:21:44 -0600115 },
116 },
117 },
118 methods: {
119 handleConfirm() {
Surya Vde23ea22024-07-11 15:19:46 +0530120 this.v$.$touch();
121 if (this.v$.$invalid) return;
Derick Montagueda9f0a62021-02-14 19:21:44 -0600122 this.$emit('okConfirm');
123 this.$nextTick(() => this.$refs.modal.hide());
124 this.resetConfirm();
125 },
126 resetConfirm() {
127 this.confirm = false;
Surya Vde23ea22024-07-11 15:19:46 +0530128 this.v$.$reset();
Derick Montagueda9f0a62021-02-14 19:21:44 -0600129 },
130 },
131};
132</script>