blob: f8e20cfd556e1d3959b5c8096a14d5cdee77206f [file] [log] [blame]
Yoshie Muranakaf415a082020-12-07 13:04:11 -08001<template>
2 <b-modal
3 id="modal-confirmation"
4 ref="modal"
5 :title="$t('pageDumps.modal.initiateSystemDump')"
6 @hidden="resetForm"
7 >
8 <p>
9 <strong>
10 {{ $t('pageDumps.modal.initiateSystemDumpMessage1') }}
11 </strong>
12 </p>
13 <p>
14 {{ $t('pageDumps.modal.initiateSystemDumpMessage2') }}
15 </p>
16 <p>
17 <status-icon status="danger" />
18 {{ $t('pageDumps.modal.initiateSystemDumpMessage3') }}
19 </p>
20 <b-form-checkbox v-model="confirmed" @input="$v.confirmed.$touch()">
21 {{ $t('pageDumps.modal.initiateSystemDumpMessage4') }}
22 </b-form-checkbox>
23 <b-form-invalid-feedback
24 :state="getValidationState($v.confirmed)"
25 role="alert"
26 >
27 {{ $t('global.form.required') }}
28 </b-form-invalid-feedback>
29 <template #modal-footer="{ cancel }">
30 <b-button variant="secondary" @click="cancel()">
31 {{ $t('global.action.cancel') }}
32 </b-button>
33 <b-button variant="danger" @click="handleSubmit">
34 {{ $t('pageDumps.form.initiateDump') }}
35 </b-button>
36 </template>
37 </b-modal>
38</template>
39
40<script>
41import StatusIcon from '@/components/Global/StatusIcon';
42import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
43
44export default {
45 components: { StatusIcon },
46 mixins: [VuelidateMixin],
47 data() {
48 return {
49 confirmed: false,
50 };
51 },
52 validations: {
53 confirmed: {
54 mustBeTrue: (value) => value === true,
55 },
56 },
57 methods: {
58 closeModal() {
59 this.$nextTick(() => {
60 this.$refs.modal.hide();
61 });
62 },
63 handleSubmit() {
64 this.$v.$touch();
65 if (this.$v.$invalid) return;
66 this.$emit('ok');
67 this.closeModal();
68 },
69 resetForm() {
70 this.confirmed = false;
71 this.$v.$reset();
72 },
73 },
74};
75</script>