Add loading bar to Server power operations page

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: I823279c6865fa1ecff2f0443d735477e03fbf417
diff --git a/src/views/Control/ServerPowerOperations/BootSettings.vue b/src/views/Control/ServerPowerOperations/BootSettings.vue
index 0558a1b..16d567a 100644
--- a/src/views/Control/ServerPowerOperations/BootSettings.vue
+++ b/src/views/Control/ServerPowerOperations/BootSettings.vue
@@ -60,10 +60,11 @@
 <script>
 import { mapState } from 'vuex';
 import BVToastMixin from '../../../components/Mixins/BVToastMixin';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
 
 export default {
   name: 'BootSettings',
-  mixins: [BVToastMixin],
+  mixins: [BVToastMixin, LoadingBarMixin],
   data() {
     return {
       form: {
@@ -102,11 +103,14 @@
     }
   },
   created() {
-    this.$store.dispatch('hostBootSettings/getBootSettings');
-    this.$store.dispatch('hostBootSettings/getTpmPolicy');
+    Promise.all([
+      this.$store.dispatch('hostBootSettings/getBootSettings'),
+      this.$store.dispatch('hostBootSettings/getTpmPolicy')
+    ]).finally(() => this.endLoader());
   },
   methods: {
     handleSubmit() {
+      this.startLoader();
       const bootSettingsChanged =
         this.$v.form.bootOption.$dirty || this.$v.form.oneTimeBoot.$dirty;
       const tpmPolicyChanged = this.$v.form.tpmPolicyOn.$dirty;
@@ -130,6 +134,7 @@
         .catch(({ message }) => this.errorToast(message))
         .finally(() => {
           this.$v.form.$reset();
+          this.endLoader();
         });
     },
     onChangeSelect(selectedOption) {
diff --git a/src/views/Control/ServerPowerOperations/ServerPowerOperations.vue b/src/views/Control/ServerPowerOperations/ServerPowerOperations.vue
index 01fc661..441217f 100644
--- a/src/views/Control/ServerPowerOperations/ServerPowerOperations.vue
+++ b/src/views/Control/ServerPowerOperations/ServerPowerOperations.vue
@@ -108,11 +108,12 @@
 import PageSection from '../../../components/Global/PageSection';
 import BVToastMixin from '../../../components/Mixins/BVToastMixin';
 import BootSettings from './BootSettings';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
 
 export default {
   name: 'ServerPowerOperations',
   components: { PageTitle, PageSection, BootSettings },
-  mixins: [BVToastMixin],
+  mixins: [BVToastMixin, LoadingBarMixin],
   data() {
     return {
       form: {
@@ -132,6 +133,13 @@
       return this.$store.getters['hostBootSettings/overrideEnabled'];
     }
   },
+  created() {
+    this.startLoader();
+  },
+  beforeRouteLeave(to, from, next) {
+    this.hideLoader();
+    next();
+  },
   methods: {
     powerOn() {
       this.$store.dispatch('controls/hostPowerOn');