| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 1 | <template> | 
 | 2 |   <div class="form-background p-3"> | 
 | 3 |     <b-form id="form-new-dump" novalidate @submit.prevent="handleSubmit"> | 
 | 4 |       <b-form-group | 
 | 5 |         :label="$t('pageDumps.form.selectDumpType')" | 
 | 6 |         label-for="selectDumpType" | 
 | 7 |       > | 
 | 8 |         <b-form-select | 
 | 9 |           id="selectDumpType" | 
 | 10 |           v-model="selectedDumpType" | 
 | 11 |           :options="dumpTypeOptions" | 
 | 12 |           :state="getValidationState($v.selectedDumpType)" | 
 | 13 |         > | 
 | 14 |           <template #first> | 
 | 15 |             <b-form-select-option :value="null" disabled> | 
 | 16 |               {{ $t('global.form.selectAnOption') }} | 
 | 17 |             </b-form-select-option> | 
 | 18 |           </template> | 
 | 19 |         </b-form-select> | 
 | 20 |         <b-form-invalid-feedback role="alert"> | 
 | 21 |           {{ $t('global.form.required') }} | 
 | 22 |         </b-form-invalid-feedback> | 
 | 23 |       </b-form-group> | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 24 |       <alert variant="info" class="mb-3" :show="selectedDumpType === 'system'"> | 
 | 25 |         {{ $t('pageDumps.form.systemDumpInfo') }} | 
 | 26 |       </alert> | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 27 |       <b-button variant="primary" type="submit" form="form-new-dump"> | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 28 |         {{ $t('pageDumps.form.initiateDump') }} | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 29 |       </b-button> | 
 | 30 |     </b-form> | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 31 |     <modal-confirmation @ok="createSystemDump" /> | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 32 |   </div> | 
 | 33 | </template> | 
 | 34 |  | 
 | 35 | <script> | 
 | 36 | import { required } from 'vuelidate/lib/validators'; | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 37 | import ModalConfirmation from './DumpsModalConfirmation'; | 
 | 38 | import Alert from '@/components/Global/Alert'; | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 39 | import BVToastMixin from '@/components/Mixins/BVToastMixin'; | 
 | 40 | import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; | 
 | 41 |  | 
 | 42 | export default { | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 43 |   components: { Alert, ModalConfirmation }, | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 44 |   mixins: [BVToastMixin, VuelidateMixin], | 
 | 45 |   data() { | 
 | 46 |     return { | 
 | 47 |       selectedDumpType: null, | 
 | 48 |       dumpTypeOptions: [ | 
 | 49 |         { value: 'bmc', text: this.$t('pageDumps.form.bmcDump') }, | 
 | 50 |         { value: 'system', text: this.$t('pageDumps.form.systemDump') }, | 
 | 51 |       ], | 
 | 52 |     }; | 
 | 53 |   }, | 
 | 54 |   validations() { | 
 | 55 |     return { | 
 | 56 |       selectedDumpType: { required }, | 
 | 57 |     }; | 
 | 58 |   }, | 
 | 59 |   methods: { | 
 | 60 |     handleSubmit() { | 
 | 61 |       this.$v.$touch(); | 
 | 62 |       if (this.$v.$invalid) return; | 
| Sukanya Pandey | e39b95d | 2021-08-23 18:11:02 +0530 | [diff] [blame] | 63 |  | 
 | 64 |       // System dump initiation | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 65 |       if (this.selectedDumpType === 'system') { | 
 | 66 |         this.showConfirmationModal(); | 
| Sukanya Pandey | e39b95d | 2021-08-23 18:11:02 +0530 | [diff] [blame] | 67 |       } | 
 | 68 |       // BMC dump initiation | 
 | 69 |       else if (this.selectedDumpType === 'bmc') { | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 70 |         this.$store | 
 | 71 |           .dispatch('dumps/createBmcDump') | 
 | 72 |           .then(() => | 
| Yoshie Muranaka | f92e296 | 2021-02-09 12:41:53 -0800 | [diff] [blame] | 73 |             this.infoToast(this.$t('pageDumps.toast.successStartBmcDump'), { | 
 | 74 |               title: this.$t('pageDumps.toast.successStartBmcDumpTitle'), | 
 | 75 |               timestamp: true, | 
 | 76 |             }) | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 77 |           ) | 
 | 78 |           .catch(({ message }) => this.errorToast(message)); | 
 | 79 |       } | 
 | 80 |     }, | 
 | 81 |     showConfirmationModal() { | 
 | 82 |       this.$bvModal.show('modal-confirmation'); | 
 | 83 |     }, | 
 | 84 |     createSystemDump() { | 
 | 85 |       this.$store | 
 | 86 |         .dispatch('dumps/createSystemDump') | 
 | 87 |         .then(() => | 
| Yoshie Muranaka | f92e296 | 2021-02-09 12:41:53 -0800 | [diff] [blame] | 88 |           this.infoToast(this.$t('pageDumps.toast.successStartSystemDump'), { | 
 | 89 |             title: this.$t('pageDumps.toast.successStartSystemDumpTitle'), | 
 | 90 |             timestamp: true, | 
 | 91 |           }) | 
| Yoshie Muranaka | f415a08 | 2020-12-07 13:04:11 -0800 | [diff] [blame] | 92 |         ) | 
 | 93 |         .catch(({ message }) => this.errorToast(message)); | 
| Yoshie Muranaka | 22d4d52 | 2020-12-03 10:58:35 -0800 | [diff] [blame] | 94 |     }, | 
 | 95 |   }, | 
 | 96 | }; | 
 | 97 | </script> |