diff --git a/web/templates/vm_detail.html b/web/templates/vm_detail.html index 33ca2a1..dbc6a02 100644 --- a/web/templates/vm_detail.html +++ b/web/templates/vm_detail.html @@ -14,8 +14,35 @@ .vm-four-grid .compact-actions { justify-content: flex-start; } .vm-four-grid .vm-control-panel { display: grid; grid-template-columns: 1fr; gap: 12px; } .vm-four-grid .autostart-indicator { width: 100%; } - @media (max-width: 1500px) { .vm-four-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } - @media (max-width: 980px) { .vm-four-grid { grid-template-columns: 1fr; } } + .vm-visual-grid { grid-template-columns: 1.15fr 1fr 1fr; align-items: stretch; margin-bottom: 14px; } + .visual-card-body { display: grid; gap: 12px; } + .metric-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } + .metric-tile { padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(2,6,23,.32); min-width: 0; } + .metric-tile strong { display: block; margin-top: 5px; font-size: 20px; line-height: 1.1; letter-spacing: -.04em; overflow-wrap: anywhere; } + .metric-tile span { color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; } + .chart-row { display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: center; } + .donut { --value: 0; --donut-color: var(--accent); width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--donut-color) calc(var(--value) * 1%), rgba(148,163,184,.16) 0); position: relative; } + .donut::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--panel-solid); opacity: .95; } + .donut-value { position: relative; z-index: 1; font-size: 18px; font-weight: 950; } + .bar-list { display: grid; gap: 10px; } + .bar-item { display: grid; gap: 6px; } + .bar-head { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; font-weight: 800; } + .mini-bar { height: 9px; overflow: hidden; border: 1px solid var(--line); border-radius: 999px; background: rgba(148,163,184,.12); } + .mini-bar span { display: block; height: 100%; width: var(--value, 0%); border-radius: inherit; background: linear-gradient(90deg, var(--accent), var(--green)); } + .visual-list { display: grid; gap: 9px; } + .visual-item { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 15px; background: rgba(2,6,23,.32); } + .visual-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: rgba(56,189,248,.13); color: var(--accent); font-weight: 950; } + .visual-item b { display: block; font-size: 14px; overflow-wrap: anywhere; } + .visual-item small { color: var(--muted); line-height: 1.35; } + .visual-empty { padding: 12px; border: 1px dashed var(--line-strong); border-radius: 15px; color: var(--muted); } + .raw-details { margin-top: 12px; } + .raw-details summary { cursor: pointer; color: var(--muted); font-weight: 900; } + .raw-details pre { max-height: 260px; } + html[data-theme="macos"] .metric-tile, html[data-theme="macos"] .visual-item { background: #f7f7fa; border-color: rgba(60,60,67,.10); } + html[data-theme="macos"] .donut::before { background: #fff; } + html[data-theme="macos"] .visual-empty { border-color: rgba(60,60,67,.18); } + @media (max-width: 1500px) { .vm-four-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vm-visual-grid { grid-template-columns: 1fr; } } + @media (max-width: 980px) { .vm-four-grid, .metric-strip { grid-template-columns: 1fr; } .chart-row { grid-template-columns: 1fr; } } @@ -179,61 +206,69 @@ -
+

Информация

- dominfo + overview
-
{{ vm.dominfo }}
+
+
+ Технический вывод dominfo +
{{ vm.dominfo }}
+
-
-
-

Консоль

- noVNC ↗ -
-
-
VNC display{{ vm.vnc }}
-
Host{{ host_ip }}
-
Web console/vm/{{ vm.name }}/console
-
-

Консоль открывается в новой вкладке и занимает всё окно браузера. VNC наружу открывать не нужно.

-
-
- -

Диски

- domblklist + storage
-
{{ vm.disks }}
+
+
+ Технический вывод domblklist +
{{ vm.disks }}
+

Сеть

- domiflist + network
-
{{ vm.interfaces }}
+
+
+ Технический вывод domiflist +
{{ vm.interfaces }}
+
+ +
+
+

Консоль

+ noVNC ↗ +
+
+
VNC display{{ vm.vnc }}
+
Host{{ host_ip }}
+
Web console/vm/{{ vm.name }}/console
+
+

Консоль открывается в новой вкладке и занимает всё окно браузера. VNC наружу открывать не нужно.

+
+ + + +