diff --git a/src/views/Operations/ServerPowerOperations/BootSettings.vue b/src/views/Operations/ServerPowerOperations/BootSettings.vue
index 4896286..c74fd01 100644
--- a/src/views/Operations/ServerPowerOperations/BootSettings.vue
+++ b/src/views/Operations/ServerPowerOperations/BootSettings.vue
@@ -98,7 +98,7 @@
     this.$store
       .dispatch('serverBootSettings/getTpmPolicy')
       .finally(() =>
-        this.$root.$emit('server-power-operations-boot-settings-complete')
+        this.$root.$emit('server-power-operations-boot-settings-complete'),
       );
   },
   methods: {
diff --git a/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue b/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
index ba9ebce..e3864b4 100644
--- a/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
+++ b/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
@@ -189,9 +189,8 @@
       return this.$store.getters['serverBootSettings/overrideEnabled'];
     },
     hasBootSourceOptions() {
-      let bootOptions = this.$store.getters[
-        'serverBootSettings/bootSourceOptions'
-      ];
+      let bootOptions =
+        this.$store.getters['serverBootSettings/bootSourceOptions'];
       return bootOptions.length !== 0;
     },
   },
@@ -199,7 +198,7 @@
     this.startLoader();
     const bootSettingsPromise = new Promise((resolve) => {
       this.$root.$on('server-power-operations-boot-settings-complete', () =>
-        resolve()
+        resolve(),
       );
     });
     Promise.all([
@@ -214,7 +213,7 @@
     },
     rebootServer() {
       const modalMessage = this.$t(
-        'pageServerPowerOperations.modal.confirmRebootMessage'
+        'pageServerPowerOperations.modal.confirmRebootMessage',
       );
       const modalOptions = {
         title: this.$t('pageServerPowerOperations.modal.confirmRebootTitle'),
@@ -238,7 +237,7 @@
     },
     shutdownServer() {
       const modalMessage = this.$t(
-        'pageServerPowerOperations.modal.confirmShutdownMessage'
+        'pageServerPowerOperations.modal.confirmShutdownMessage',
       );
       const modalOptions = {
         title: this.$t('pageServerPowerOperations.modal.confirmShutdownTitle'),
