1<template> 2 <b-container fluid="xl"> 3 <page-title :description="$t('pageKeyClear.description')" /> 4 <b-row> 5 <b-col md="8" xl="6"> 6 <alert variant="info" class="mb-4"> 7 <div class="fw-bold"> 8 {{ $t('pageKeyClear.alert.title') }} 9 </div> 10 <div> 11 {{ $t('pageKeyClear.alert.description') }} 12 </div> 13 </alert> 14 </b-col> 15 </b-row> 16 <!-- Reset Form --> 17 <b-form id="key-clear" @submit.prevent="onKeyClearSubmit(keyOption)"> 18 <b-row> 19 <b-col md="8"> 20 <b-form-group :label="$t('pageKeyClear.form.keyClearOptionsLabel')"> 21 <b-form-radio-group 22 id="key-clear-options" 23 v-model="keyOption" 24 stacked 25 > 26 <b-form-radio class="mb-1" value="NONE"> 27 {{ $t('pageKeyClear.form.none') }} 28 </b-form-radio> 29 <b-form-text id="key-clear-not-requested" class="ms-4 mb-3"> 30 {{ $t('pageKeyClear.form.keyClearNotRequested') }} 31 </b-form-text> 32 <b-form-radio class="mb-1" value="ALL"> 33 {{ $t('pageKeyClear.form.clearAllLabel') }} 34 </b-form-radio> 35 <b-form-text id="clear-all" class="ms-4 mb-3"> 36 {{ $t('pageKeyClear.form.clearAllHeperText') }} 37 </b-form-text> 38 <b-form-radio class="mb-1" value="POWERVM_SYSKEY"> 39 {{ $t('pageKeyClear.form.clearHypervisorSystemKeyLabel') }} 40 </b-form-radio> 41 <b-form-text id="clear-hypervisor-key" class="ms-4 mb-3"> 42 {{ $t('pageKeyClear.form.clearHypervisorSystemKeyHelperText') }} 43 </b-form-text> 44 <template v-if="username == 'service'"> 45 <b-form-radio class="mb-1" value="MFG_ALL"> 46 {{ $t('pageKeyClear.form.clearAllSetGenesisIPL') }} 47 </b-form-radio> 48 <b-form-radio class="mb-1" value="MFG"> 49 {{ $t('pageKeyClear.form.setFactoryDefault') }} 50 </b-form-radio> 51 </template> 52 </b-form-radio-group> 53 </b-form-group> 54 <b-button 55 type="submit" 56 variant="primary" 57 data-test-id="keyClear-button-submit" 58 > 59 {{ $t('pageKeyClear.form.clear') }} 60 </b-button> 61 </b-col> 62 </b-row> 63 </b-form> 64 </b-container> 65</template> 66 67<script> 68import PageTitle from '@/components/Global/PageTitle'; 69import BVToastMixin from '@/components/Mixins/BVToastMixin'; 70import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; 71import Alert from '@/components/Global/Alert'; 72import { useI18n } from 'vue-i18n'; 73import i18n from '@/i18n'; 74import { useModal } from 'bootstrap-vue-next'; 75 76export default { 77 name: 'KeyClear', 78 components: { PageTitle, Alert }, 79 mixins: [LoadingBarMixin, BVToastMixin], 80 setup() { 81 const bvModal = useModal(); 82 return { bvModal }; 83 }, 84 data() { 85 return { 86 $t: useI18n().t, 87 keyOption: 'NONE', 88 username: this.$store.getters['global/username'], 89 }; 90 }, 91 created() { 92 this.hideLoader(); 93 }, 94 methods: { 95 onKeyClearSubmit(valueSelected) { 96 this.$confirm(i18n.global.t('pageKeyClear.modal.clearAllMessage'), { 97 title: i18n.global.t('pageKeyClear.modal.clearAllTitle'), 98 okTitle: i18n.global.t('pageKeyClear.modal.clear'), 99 okVariant: 'danger', 100 cancelTitle: i18n.global.t('global.action.cancel'), 101 autoFocusButton: 'cancel', 102 }).then((clearConfirmed) => { 103 if (clearConfirmed) { 104 this.$store 105 .dispatch('keyClear/clearEncryptionKeys', valueSelected) 106 .then((message) => this.successToast(message)) 107 .catch(({ message }) => this.errorToast(message)); 108 } 109 }); 110 }, 111 }, 112}; 113</script> 114