diff --git a/package.json b/package.json index 8d2965f2..0592c05b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ }, "dependencies": { "@babel/plugin-transform-class-static-block": "7.29.7", + "@novnc/novnc": "1.7.0", "@rancher/shell": "3.0.13", "@vue-flow/background": "^1.3.0", "@vue-flow/controls": "^1.1.1", @@ -27,6 +28,7 @@ "yaml": "^2.5.1" }, "resolutions": { + "@novnc/novnc": "1.7.0", "@types/node": "25.9.6", "cronstrue": "2.59.0", "d3-color": "3.1.0", diff --git a/pkg/harvester/components/novnc/NovncConsole.vue b/pkg/harvester/components/novnc/NovncConsole.vue index 7142648f..be7dc988 100644 --- a/pkg/harvester/components/novnc/NovncConsole.vue +++ b/pkg/harvester/components/novnc/NovncConsole.vue @@ -1,153 +1,540 @@ - - - - - - - - {{ t('generic.notification.title.warning') }} - - - {{ t('vncConsole.error.message') }} - - - - - - - - - {{ t('vncConsole.reconnecting.message') }}:{{ retryTimes }} of {{ maximumRetryTimes }} - - - - - - - - + + + + + + + + {{ failureTitle }} + + + {{ statusDetail }} + + + {{ t('harvester.action.reconnect') }} + + + {{ t('harvester.virtualMachine.detail.console.takeOver.label') }} + + + + + + {{ t('vncConsole.reconnecting.message') }}:{{ retryTimes }} of {{ maximumRetryTimes }} + + + {{ statusDetail }} + + + + + + + {{ t('harvester.virtualMachine.detail.console.takeOver.title') }} + + + + {{ t('harvester.virtualMachine.detail.console.takeOver.confirm') }} + + + + + + {{ t('generic.cancel') }} + + + {{ t('harvester.virtualMachine.detail.console.takeOver.label') }} + + + + + + + + + diff --git a/pkg/harvester/components/novnc/NovncConsoleWrapper.vue b/pkg/harvester/components/novnc/NovncConsoleWrapper.vue index bad750aa..8dcf9e74 100644 --- a/pkg/harvester/components/novnc/NovncConsoleWrapper.vue +++ b/pkg/harvester/components/novnc/NovncConsoleWrapper.vue @@ -1,5 +1,6 @@ - + - - - {{ t("harvester.virtualMachine.detail.console.shortcutKeys") }} - - - - - - - - - {{ t("harvester.action.softreboot") }} - - - - {{ t("harvester.action.reconnect") }} - - - - - {{ t("harvester.virtualMachine.detail.console.customShortcutKeys") }} - - - - - - {{ t("harvester.virtualMachine.detail.console.management") }} - - - - - - + + - - {{ keys.label }} - - - - + {{ t("harvester.virtualMachine.detail.console.shortcutKeys") }} + - + + + + + + + {{ t("harvester.virtualMachine.detail.console.ctrlAltDel") }} + + + + + {{ t("harvester.virtualMachine.detail.console.customShortcutKeys") }} + + + + + + {{ t("harvester.virtualMachine.detail.console.management") }} + + + + + + + + {{ keys.label }} + + + + + + + + {{ t("harvester.virtualMachine.detail.console.settings.label") }} + + + + + {{ t('harvester.virtualMachine.detail.console.settings.viewMode.label') }} + + + + {{ option.label }} + + + + + {{ t('harvester.virtualMachine.detail.console.settings.zoom') }} + {{ settings.zoomPercent }}% + + + + + + {{ t('harvester.virtualMachine.detail.console.settings.viewOnly') }} + + + + {{ t('harvester.virtualMachine.detail.console.settings.quality') }} + {{ settings.qualityLevel }} + + + + + {{ t('harvester.virtualMachine.detail.console.settings.compression') }} + {{ settings.compressionLevel }} + + + + + + + + + {{ statusLabel }} + + + {{ t("harvester.action.softreboot") }} + + + + {{ t("harvester.action.reconnect") }} + + + + {{ isFullscreen ? t('harvester.virtualMachine.detail.console.fullscreen.exit') : t('harvester.virtualMachine.detail.console.fullscreen.enter') }} + + + {{ t("harvester.virtualMachine.detail.console.down") }} + + + + {{ t(`harvester.virtualMachine.detail.console.confirm.${ confirmAction }.title`) }} + + + + {{ t(`harvester.virtualMachine.detail.console.confirm.${ confirmAction }.message`) }} + + + + + + {{ t('generic.cancel') }} + + + {{ t(`harvester.virtualMachine.detail.console.confirm.${ confirmAction }.button`) }} + + + + + +
+ {{ statusDetail }} +
{{ t('harvester.virtualMachine.detail.console.takeOver.confirm') }}
{{ t("harvester.virtualMachine.detail.console.down") }}
{{ t(`harvester.virtualMachine.detail.console.confirm.${ confirmAction }.message`) }}