blob: 11870a87aee5609da12e75ed32f90e531c846ba6 [file] [log] [blame]
Sukanya Pandeybe6858c2020-12-16 20:08:01 +05301<template>
2 <b-container fluid="xl">
3 <page-title :description="$t('pagePowerRestorePolicy.description')" />
4
5 <b-row>
6 <b-col sm="8" md="6" xl="12">
7 <b-form-group :label="$t('pagePowerRestorePolicy.powerPoliciesLabel')">
Kenneth Fullbright80a87852022-01-07 13:12:30 -06008 <b-form-radio-group
Sukanya Pandeybe6858c2020-12-16 20:08:01 +05309 v-model="currentPowerRestorePolicy"
Kenneth Fullbright80a87852022-01-07 13:12:30 -060010 :options="options"
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053011 name="power-restore-policy"
Nikhil Ashoka07368132024-05-09 14:02:19 +053012 stacked
Kenneth Fullbright80a87852022-01-07 13:12:30 -060013 ></b-form-radio-group>
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053014 </b-form-group>
15 </b-col>
16 </b-row>
17
18 <b-button variant="primary" type="submit" @click="submitForm">
19 {{ $t('global.action.saveSettings') }}
20 </b-button>
21 </b-container>
22</template>
23
24<script>
25import PageTitle from '@/components/Global/PageTitle';
26import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
27import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
28import BVToastMixin from '@/components/Mixins/BVToastMixin';
29
30export default {
31 name: 'PowerRestorePolicy',
32 components: { PageTitle },
33 mixins: [VuelidateMixin, BVToastMixin, LoadingBarMixin],
34 beforeRouteLeave(to, from, next) {
35 this.hideLoader();
36 next();
37 },
38 data() {
39 return {
40 policyValue: null,
Kenneth Fullbright80a87852022-01-07 13:12:30 -060041 options: [],
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053042 };
43 },
44 computed: {
45 powerRestorePolicies() {
46 return this.$store.getters['powerPolicy/powerRestorePolicies'];
47 },
48 currentPowerRestorePolicy: {
49 get() {
50 return this.$store.getters['powerPolicy/powerRestoreCurrentPolicy'];
51 },
52 set(policy) {
53 this.policyValue = policy;
54 },
55 },
56 },
57 created() {
58 this.startLoader();
Kenneth Fullbright80a87852022-01-07 13:12:30 -060059 this.renderPowerRestoreSettings();
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053060 },
61 methods: {
Kenneth Fullbright80a87852022-01-07 13:12:30 -060062 renderPowerRestoreSettings() {
63 Promise.all([
64 this.$store.dispatch('powerPolicy/getPowerRestorePolicies'),
65 this.$store.dispatch('powerPolicy/getPowerRestoreCurrentPolicy'),
66 ]).finally(() => {
67 this.options.length = 0;
68 this.powerRestorePolicies.map((item) => {
69 this.options.push({
70 text: this.$t(`pagePowerRestorePolicy.policiesDesc.${item.state}`),
71 value: `${item.state}`,
72 });
73 });
74 this.endLoader();
75 });
76 },
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053077 submitForm() {
78 this.startLoader();
79 this.$store
80 .dispatch(
81 'powerPolicy/setPowerRestorePolicy',
Ed Tanous81323992024-02-27 11:26:24 -080082 this.policyValue || this.currentPowerRestorePolicy,
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053083 )
84 .then((message) => this.successToast(message))
85 .catch(({ message }) => this.errorToast(message))
Kenneth Fullbright80a87852022-01-07 13:12:30 -060086 .finally(() => {
87 this.renderPowerRestoreSettings();
88 });
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053089 },
90 },
91};
92</script>