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="font-weight-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="ml-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="ml-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="ml-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';
72
73export default {
74  name: 'KeyClear',
75  components: { PageTitle, Alert },
76  mixins: [LoadingBarMixin, BVToastMixin],
77  data() {
78    return {
79      keyOption: 'NONE',
80      username: this.$store.getters['global/username'],
81    };
82  },
83  created() {
84    this.hideLoader();
85  },
86  methods: {
87    onKeyClearSubmit(valueSelected) {
88      this.$bvModal
89        .msgBoxConfirm(this.$t('pageKeyClear.modal.clearAllMessage'), {
90          title: this.$t('pageKeyClear.modal.clearAllTitle'),
91          okTitle: this.$t('pageKeyClear.modal.clear'),
92          okVariant: 'danger',
93          cancelTitle: this.$t('global.action.cancel'),
94          autoFocusButton: 'cancel',
95        })
96        .then((clearConfirmed) => {
97          if (clearConfirmed) {
98            this.$store
99              .dispatch('keyClear/clearEncryptionKeys', valueSelected)
100              .then((message) => this.successToast(message))
101              .catch(({ message }) => this.errorToast(message));
102          }
103        });
104    },
105  },
106};
107</script>
108