diff --git a/src/views/Operations/FactoryReset/FactoryResetModal.vue b/src/views/Operations/FactoryReset/FactoryResetModal.vue
index 170bf28..55ac176 100644
--- a/src/views/Operations/FactoryReset/FactoryResetModal.vue
+++ b/src/views/Operations/FactoryReset/FactoryResetModal.vue
@@ -12,7 +12,7 @@
     <ul class="pl-3 mb-4">
       <li
         v-for="(item, index) in $t(
-          `pageFactoryReset.modal.${resetType}SettingsList`
+          `pageFactoryReset.modal.${resetType}SettingsList`,
         )"
         :key="index"
         class="mt-1 mb-1"
diff --git a/src/views/Operations/Firmware/FirmwareCardsBmc.vue b/src/views/Operations/Firmware/FirmwareCardsBmc.vue
index 8fb31aa..bfca14c 100644
--- a/src/views/Operations/Firmware/FirmwareCardsBmc.vue
+++ b/src/views/Operations/Firmware/FirmwareCardsBmc.vue
@@ -128,7 +128,7 @@
         .then(() =>
           this.infoToast(this.$t('pageFirmware.toast.rebootStartedMessage'), {
             title: this.$t('pageFirmware.toast.rebootStarted'),
-          })
+          }),
         )
         .catch(({ message }) => {
           this.errorToast(message);
diff --git a/src/views/Operations/Kvm/KvmConsole.vue b/src/views/Operations/Kvm/KvmConsole.vue
index 8483c4f..62dd47a 100644
--- a/src/views/Operations/Kvm/KvmConsole.vue
+++ b/src/views/Operations/Kvm/KvmConsole.vue
@@ -112,7 +112,7 @@
       this.rfb = new RFB(
         this.$refs.panel,
         `wss://${window.location.host}/kvm/0`,
-        { wsProtocols: [token] }
+        { wsProtocols: [token] },
       );
 
       this.rfb.scaleViewport = true;
@@ -166,7 +166,7 @@
       this.$eventBus.$consoleWindow = window.open(
         '#/console/kvm',
         'kvmConsoleWindow',
-        'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=700,height=550'
+        'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=700,height=550',
       );
     },
   },
diff --git a/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue b/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
index fc80739..ca81385 100644
--- a/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
+++ b/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
@@ -135,7 +135,7 @@
             'websocket console/default closed. code: ' +
               event.code +
               ' reason: ' +
-              event.reason
+              event.reason,
           );
         };
       } catch (error) {
@@ -153,7 +153,7 @@
       window.open(
         '#/console/serial-over-lan-console',
         '_blank',
-        'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=600,height=550'
+        'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=600,height=550',
       );
     },
   },
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'),
diff --git a/src/views/Operations/VirtualMedia/VirtualMedia.vue b/src/views/Operations/VirtualMedia/VirtualMedia.vue
index 80dff5b..9ad1b1e 100644
--- a/src/views/Operations/VirtualMedia/VirtualMedia.vue
+++ b/src/views/Operations/VirtualMedia/VirtualMedia.vue
@@ -141,7 +141,7 @@
         `wss://${window.location.host}${device.websocket}`,
         device.file,
         device.id,
-        token
+        token,
       );
       device.nbd.socketStarted = () =>
         this.successToast(this.$t('pageVirtualMedia.toast.serverRunning'));
@@ -150,11 +150,11 @@
       device.nbd.socketClosed = (code) => {
         if (code === 1000)
           this.successToast(
-            this.$t('pageVirtualMedia.toast.serverClosedSuccessfully')
+            this.$t('pageVirtualMedia.toast.serverClosedSuccessfully'),
           );
         else
           this.errorToast(
-            this.$t('pageVirtualMedia.toast.serverClosedWithErrors')
+            this.$t('pageVirtualMedia.toast.serverClosedWithErrors'),
           );
         device.file = null;
         device.isActive = false;
@@ -180,7 +180,7 @@
         })
         .then(() => {
           this.successToast(
-            this.$t('pageVirtualMedia.toast.serverConnectionEstablished')
+            this.$t('pageVirtualMedia.toast.serverConnectionEstablished'),
           );
           connectionData.isActive = true;
         })
@@ -195,12 +195,12 @@
         .dispatch('virtualMedia/unmountImage', connectionData.id)
         .then(() => {
           this.successToast(
-            this.$t('pageVirtualMedia.toast.serverClosedSuccessfully')
+            this.$t('pageVirtualMedia.toast.serverClosedSuccessfully'),
           );
           connectionData.isActive = false;
         })
         .catch(() =>
-          this.errorToast(this.$t('pageVirtualMedia.toast.errorUnmounting'))
+          this.errorToast(this.$t('pageVirtualMedia.toast.errorUnmounting')),
         )
         .finally(() => this.endLoader());
     },
