diff --git a/package-lock.json b/package-lock.json index 26c6129..7cc7c99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -741,6 +741,12 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" + }, "node_modules/@levischuck/tiny-cbor": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/@levischuck/tiny-cbor/-/tiny-cbor-0.2.11.tgz", @@ -3117,6 +3123,18 @@ "node": ">=8" } }, + "node_modules/chart.js": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz", + "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -8658,6 +8676,16 @@ } } }, + "node_modules/vue-chartjs": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.2.tgz", + "integrity": "sha512-NrkbRRoYshbXbWqJkTN6InoDVwVb90C0R7eAVgMWcB9dPikbruaOoTFjFYHE/+tNPdIe6qdLCDjfjPHQ0fw4jw==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "vue": "^3.0.0-0 || ^2.7.0" + } + }, "node_modules/vue-i18n": { "version": "9.14.4", "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.14.4.tgz", @@ -9091,7 +9119,7 @@ }, "packages/frontend": { "name": "@nexus-terminal/frontend", - "version": "0.4.1", + "version": "0.4.3", "dependencies": { "@fortawesome/fontawesome-free": "^6.7.2", "@hcaptcha/vue3-hcaptcha": "^1.3.0", @@ -9103,6 +9131,7 @@ "@xterm/addon-search": "^0.15.0", "axios": "^1.8.4", "buffer": "^6.0.3", + "chart.js": "^4.4.9", "date-fns": "^4.1.0", "guacamole-common-js": "^1.5.0", "iconv-lite": "^0.6.3", @@ -9113,6 +9142,7 @@ "splitpanes": "^4.0.3", "vite-plugin-monaco-editor": "^1.1.0", "vue": "^3.3.0", + "vue-chartjs": "^5.3.2", "vue-i18n": "^9.14.4", "vue-recaptcha-v3": "^2.0.1", "vue-router": "^4.5.0", diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 57ddaf9..d021055 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -19,6 +19,7 @@ "@xterm/addon-search": "^0.15.0", "axios": "^1.8.4", "buffer": "^6.0.3", + "chart.js": "^4.4.9", "date-fns": "^4.1.0", "guacamole-common-js": "^1.5.0", "iconv-lite": "^0.6.3", @@ -29,6 +30,7 @@ "splitpanes": "^4.0.3", "vite-plugin-monaco-editor": "^1.1.0", "vue": "^3.3.0", + "vue-chartjs": "^5.3.2", "vue-i18n": "^9.14.4", "vue-recaptcha-v3": "^2.0.1", "vue-router": "^4.5.0", diff --git a/packages/frontend/src/components/StatusCharts.vue b/packages/frontend/src/components/StatusCharts.vue new file mode 100644 index 0000000..b22d808 --- /dev/null +++ b/packages/frontend/src/components/StatusCharts.vue @@ -0,0 +1,282 @@ + + + \ No newline at end of file diff --git a/packages/frontend/src/components/StatusMonitor.vue b/packages/frontend/src/components/StatusMonitor.vue index d32491e..1f07713 100644 --- a/packages/frontend/src/components/StatusMonitor.vue +++ b/packages/frontend/src/components/StatusMonitor.vue @@ -104,12 +104,16 @@ + + +