diff --git a/frontend/src/assets/profile-avatar.jpg b/frontend/src/assets/profile-avatar.jpg index ec44f5d..d1fc8dd 100644 Binary files a/frontend/src/assets/profile-avatar.jpg and b/frontend/src/assets/profile-avatar.jpg differ diff --git a/frontend/src/components/MetricRow.vue b/frontend/src/components/MetricRow.vue index 975b6ad..92db70d 100644 --- a/frontend/src/components/MetricRow.vue +++ b/frontend/src/components/MetricRow.vue @@ -47,6 +47,6 @@ defineProps({ .note { color: var(--text-muted); font-size: 13px; - white-space: pre-line; + white-space: pre-wrap; } diff --git a/frontend/src/views/AboutView.vue b/frontend/src/views/AboutView.vue index 0307d5c..fb37d7b 100644 --- a/frontend/src/views/AboutView.vue +++ b/frontend/src/views/AboutView.vue @@ -195,6 +195,8 @@ const timeline = [ .portrait { width: 120px; height: 120px; + flex: 0 0 120px; + aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.12); diff --git a/frontend/src/views/HomeView.vue b/frontend/src/views/HomeView.vue index a9b776d..a63bd9f 100644 --- a/frontend/src/views/HomeView.vue +++ b/frontend/src/views/HomeView.vue @@ -99,12 +99,16 @@ const atlasPillClass = computed(() => (props.labStatus?.atlas?.up ? "pill-ok" : const oceanusPillClass = computed(() => (props.labStatus?.oceanus?.up ? "pill-ok" : "pill-bad")); const metricItems = computed(() => { - return [ - { label: "Lab nodes", value: "25", note: "26 total (titan-16 is down)\nWorkers: 8 rpi5, 7 rpi4, 2 jetsons, 1 minipc\nControl plane: 3 rpi5\nDedicated: titan-db, oceanus, tethys, theia" }, - { label: "CPU cores", value: "142", note: "arm + jetson + x86 mix" }, - { label: "Memory", value: "552 GB", note: "nominal (includes titan-16 even though it is down)" }, + const items = [ + { label: "Lab nodes", value: "25", note: "26 total (titan-16 is down)\nWorkers: 8 rpi5s, 8 rpi4s, 2 jetsons,\n\t\t\t\t 1 minipc\nControl plane: 3 rpi5\nDedicated Hosts: oceanus, titan-db,\n\t\t\t\t\t\t\t\t tethys, theia" }, + { label: "CPU cores", value: "142", note: "32 arm64 cores @ 1.5Ghz\n12 arm64 cores @ 1.9Ghz\n52 arm64 cores @ 2.4Ghz\n10 amd64 cores @ 5.00Ghz\n12 amd64 cores @ 4.67Ghz\n24 amd64 cores @ 4.04Ghz" }, + { label: "Memory", value: "552 GB", note: "nominal\n(includes downed titan-16)" }, { label: "Atlas storage", value: "80 TB", note: "Longhorn astreae + asteria" }, ]; + return items.map((item) => ({ + ...item, + note: item.note ? item.note.replaceAll("\t", " ") : "", + })); }); const displayServices = computed(() => { diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 7022d34..19f32c8 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -1,8 +1,14 @@ import { defineConfig } from "vite"; +import path from "node:path"; import vue from "@vitejs/plugin-vue"; export default defineConfig({ plugins: [vue()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, server: { proxy: { "/api": {