blob: dfa4865dd9994aaa8116bc94da1a49ba240d51b4 [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';
Ed Tanous9c729792024-03-23 14:56:34 -070028import { useVuelidate } from '@vuelidate/core';
29
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053030import BVToastMixin from '@/components/Mixins/BVToastMixin';
31
32export default {
33 name: 'PowerRestorePolicy',
34 components: { PageTitle },
35 mixins: [VuelidateMixin, BVToastMixin, LoadingBarMixin],
36 beforeRouteLeave(to, from, next) {
37 this.hideLoader();
38 next();
39 },
Ed Tanous9c729792024-03-23 14:56:34 -070040 setup() {
41 return {
42 v$: useVuelidate(),
43 };
44 },
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053045 data() {
46 return {
47 policyValue: null,
Kenneth Fullbright80a87852022-01-07 13:12:30 -060048 options: [],
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053049 };
50 },
51 computed: {
52 powerRestorePolicies() {
53 return this.$store.getters['powerPolicy/powerRestorePolicies'];
54 },
55 currentPowerRestorePolicy: {
56 get() {
57 return this.$store.getters['powerPolicy/powerRestoreCurrentPolicy'];
58 },
59 set(policy) {
60 this.policyValue = policy;
61 },
62 },
63 },
64 created() {
65 this.startLoader();
Kenneth Fullbright80a87852022-01-07 13:12:30 -060066 this.renderPowerRestoreSettings();
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053067 },
68 methods: {
Kenneth Fullbright80a87852022-01-07 13:12:30 -060069 renderPowerRestoreSettings() {
70 Promise.all([
71 this.$store.dispatch('powerPolicy/getPowerRestorePolicies'),
72 this.$store.dispatch('powerPolicy/getPowerRestoreCurrentPolicy'),
73 ]).finally(() => {
74 this.options.length = 0;
75 this.powerRestorePolicies.map((item) => {
76 this.options.push({
77 text: this.$t(`pagePowerRestorePolicy.policiesDesc.${item.state}`),
78 value: `${item.state}`,
79 });
80 });
81 this.endLoader();
82 });
83 },
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053084 submitForm() {
85 this.startLoader();
86 this.$store
87 .dispatch(
88 'powerPolicy/setPowerRestorePolicy',
Ed Tanous81323992024-02-27 11:26:24 -080089 this.policyValue || this.currentPowerRestorePolicy,
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053090 )
91 .then((message) => this.successToast(message))
92 .catch(({ message }) => this.errorToast(message))
Kenneth Fullbright80a87852022-01-07 13:12:30 -060093 .finally(() => {
94 this.renderPowerRestoreSettings();
95 });
Sukanya Pandeybe6858c2020-12-16 20:08:01 +053096 },
97 },
98};
99</script>