From 1e443755b03232b452b3b9cf8c2672aa6b354a97 Mon Sep 17 00:00:00 2001
From: FMSMITH91 <12152698+FMSMITH91@users.noreply.github.com>
Date: Sat, 8 Aug 2026 22:05:57 -0500
Subject: [PATCH] fix: stop the Details tab repeating what the page header
already says
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
"Installed: Yes" could never say anything else — server_detail redirects a
server that is still installing, so the row was decoration. Pulling that
thread, most of the card was a second copy of the header:
Name the
two inches above it
Game Type header subtitle
Port header subtitle
Status the header badge — and worse, the badge is the one the poll
keeps current, so this copy went STALE the moment the server
changed state while you were looking at it
Installed always Yes, see above
What is left is what you cannot read anywhere else: the three switches, plus
Short Name — and that only when it differs from the display name, which is
the case worth pointing out (a custom-named instance whose Linux user is
something else). The card is titled Server Settings now, because that is what
it is.
Same thing in the Host card: "Public IP: 147.135.70.122" sat directly above
"Connect: 147.135.70.122:28960". The Connect row is the same address plus the
port AND the one you can click to copy, so Public IP now appears only while
the address is still resolving, where "resolving…" is real information.
Measured on a rendered page: the public IP went from appearing twice to once,
Status from twice to once, Installed and Game Type from once to not at all.
Port still appears twice and should — once as metadata, once inside the
copyable connect string.
Co-Authored-By: Claude Opus 5
---
templates/server_detail.html | 43 ++++++++++++++----------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/templates/server_detail.html b/templates/server_detail.html
index cdfc85b..c0ffe28 100644
--- a/templates/server_detail.html
+++ b/templates/server_detail.html
@@ -287,36 +287,21 @@ {{ server.name }}
-
+
+ {# Name, Game Type, Port and Status all live in the page header a few lines up, and the
+ header's badge is the one the poll keeps current — this table's copy of Status went
+ stale the moment the server changed state while you were looking at it. "Installed"
+ could only ever say Yes: the route redirects a server that is still installing. What is
+ left is the part you cannot read anywhere else — the switches. #}
+ {% if server.short_name != server.name %}
- | Name |
- {{ server.name }} |
-
-
- | Short Name |
- {{ server.short_name }} |
-
-
- | Game Type |
- {{ server.game_display or server.game_type }} |
-
-
- | Port |
- {{ server.port }} |
-
-
- | Status |
-
-
- {{ server.status|title }}
- |
-
-
- | Installed |
- {{ "Yes" if server.installed else "No" }} |
+ Short Name
+ (the Linux user) |
+ {{ server.short_name }} |
+ {% endif %}
| Auto-start & recover
(monitor, every 5 min) |
@@ -373,10 +358,14 @@ {{ server.name }}
Machine |
{{ remote.name }}{% if remote.is_local %} this panel{% endif %} |
+ {# Only while there is nothing to connect to yet. Once resolved, the Connect row below is
+ the same address plus the port — and it is the one you can click to copy. #}
+ {% if not public_host %}
| Public IP |
- {{ public_host or 'resolving…' }} |
+ resolving… |
+ {% endif %}
| Connect |
{% set caddr = (public_host ~ ':' ~ server.port) if public_host else (':' ~ server.port) %}
|