From 1bbb14470c54c140072c85f2e9aa517f3b432926 Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 30 Aug 2026 02:05:27 +0200 Subject: [PATCH] fix: align domain creation fields --- Dockerfile | 2 +- README.md | 2 +- UPDATE.md | 6 +++--- compose.yml | 2 +- internal/appupdate/manager_test.go | 6 +++--- internal/buildinfo/version.go | 2 +- internal/web/server_test.go | 2 +- internal/web/static/styles.css | 1 + internal/web/templates/domain_new.html | 2 +- internal/web/templates/domains.html | 2 +- internal/web/templates/layout.html | 4 ++-- 11 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index e0fd617..6505f75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.7 -ARG VERSION=v1.4.2 +ARG VERSION=v1.4.3 ARG MINIMUM_UPDATE_VERSION=v1.4.0 ARG MINIMUM_AGENT_PROTOCOL=2 ARG RUNTIME_CONTRACT_VERSION=2 diff --git a/README.md b/README.md index d41f364..f6814df 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Beim ersten Start werden Datenbank und Verschlüsselungsschlüssel automatisch i ```yaml services: dyndns: - image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.2 + image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3 restart: unless-stopped stop_grace_period: 20s ports: ["9090:8080"] diff --git a/UPDATE.md b/UPDATE.md index 9572074..33a78dd 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,6 +1,6 @@ # Domain Control aktualisieren -Die aktuelle Compose-Version ist `v1.4.2`. Datenbank, Einstellungen und +Die aktuelle Compose-Version ist `v1.4.3`. Datenbank, Einstellungen und verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei den folgenden Verfahren erhalten. @@ -34,7 +34,7 @@ In `compose.yml` wird nur die zentrale, konkret gepinnte Image-Zeile geändert: ```yaml services: dyndns: - image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.2 + image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3 update-agent: image: *image ``` @@ -68,7 +68,7 @@ Die erwartete Antwort lautet `ok`. ## Portainer oder Dockge 1. Den bestehenden Stack bearbeiten. -2. Nur den Tag der zentralen Image-Zeile auf `v1.4.2` setzen. +2. Nur den Tag der zentralen Image-Zeile auf `v1.4.3` setzen. 3. Den Stack mit vorherigem Image-Pull erneut bereitstellen. 4. Kontrollieren, dass beide Container laufen und die Web-App `healthy` ist. diff --git a/compose.yml b/compose.yml index e8804bb..ab7fffd 100644 --- a/compose.yml +++ b/compose.yml @@ -1,6 +1,6 @@ services: dyndns: - image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.2 + image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.3 restart: unless-stopped stop_grace_period: 20s ports: ["9090:8080"] diff --git a/internal/appupdate/manager_test.go b/internal/appupdate/manager_test.go index 71e47f0..5ac3aa3 100644 --- a/internal/appupdate/manager_test.go +++ b/internal/appupdate/manager_test.go @@ -34,7 +34,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) { return } w.Header().Set("Content-Type", "application/json") - _, _ = w.Write([]byte(`{"tag_name":"v1.4.3","html_url":"https://example.invalid/releases/v1.4.3","draft":false,"prerelease":false}`)) + _, _ = w.Write([]byte(`{"tag_name":"v1.4.4","html_url":"https://example.invalid/releases/v1.4.4","draft":false,"prerelease":false}`)) })) defer api.Close() @@ -67,7 +67,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) { t.Fatal(err) } state := manager.State() - if !state.UpdateAvailable || state.LatestVersion != "v1.4.3" || state.LastError != "" || state.CredentialUsername != "registry-user" { + if !state.UpdateAvailable || state.LatestVersion != "v1.4.4" || state.LastError != "" || state.CredentialUsername != "registry-user" { t.Fatalf("new release was not detected: %#v", state) } settings, err := database.GetSoftwareUpdateSettings(ctx) @@ -83,7 +83,7 @@ func TestManagerKeepsUpdateReminderWhenGiteaBecomesUnavailable(t *testing.T) { t.Fatal("unavailable Gitea endpoint was reported as successful") } state = manager.State() - if !state.UpdateAvailable || state.LatestVersion != "v1.4.3" || state.LastError == "" { + if !state.UpdateAvailable || state.LatestVersion != "v1.4.4" || state.LastError == "" { t.Fatalf("temporary outage removed the last known update reminder: %#v", state) } } diff --git a/internal/buildinfo/version.go b/internal/buildinfo/version.go index 7e39b5e..2fbf267 100644 --- a/internal/buildinfo/version.go +++ b/internal/buildinfo/version.go @@ -18,4 +18,4 @@ const ( // Version is replaced through -ldflags for release images. The source fallback // keeps local builds and tests honest about the currently checked-out release. -var Version = "v1.4.2" +var Version = "v1.4.3" diff --git a/internal/web/server_test.go b/internal/web/server_test.go index 8cc02e1..aa66787 100644 --- a/internal/web/server_test.go +++ b/internal/web/server_test.go @@ -292,7 +292,7 @@ func TestDashboardRendersLiveUpdateHooks(t *testing.T) { `data-dashboard-ipv6`, `data-recent-runs aria-live="polite" aria-busy="true"`, `Aktualisierung läuft`, - `features-27`, + `features-28`, `data-local-time="1788001920"`, `dashboard-zone-item`, `DNS-Zone · example.de`, diff --git a/internal/web/static/styles.css b/internal/web/static/styles.css index 13caa88..cf8359a 100644 --- a/internal/web/static/styles.css +++ b/internal/web/static/styles.css @@ -209,6 +209,7 @@ h3 { margin-bottom: 2px; font-size: 14px; line-height: 1.35; } .zone-card { display: flex; min-height: 220px; flex-direction: column; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); } .zone-card:hover { border-color: #b6c4d4; } .zone-card-top { display: flex; align-items: center; justify-content: space-between; } +.domain-service-label { display: inline-flex; min-height: 22px; align-items: center; padding: 0 7px; border: 1px solid #c7d6e8; border-radius: 5px; background: #f1f6fd; color: #315eaa; font-family: var(--mono); font-size: 8px; font-weight: 800; letter-spacing: .03em; } .zone-card h2 { margin: 26px 0 12px; overflow-wrap: anywhere; font-size: 17px; } .zone-card dl { display: grid; gap: 5px; margin-bottom: 14px; } .zone-card dl div { display: flex; justify-content: space-between; gap: 12px; } diff --git a/internal/web/templates/domain_new.html b/internal/web/templates/domain_new.html index 3dea977..45a7ec3 100644 --- a/internal/web/templates/domain_new.html +++ b/internal/web/templates/domain_new.html @@ -4,7 +4,7 @@
-
+
Automatischer ImportNach dem Verbinden liest die Anwendung alle A-/AAAA-RRsets ein. Kein importierter Record wird automatisch für DynDNS aktiviert.
Abbrechen
diff --git a/internal/web/templates/domains.html b/internal/web/templates/domains.html index f4f6d43..9130391 100644 --- a/internal/web/templates/domains.html +++ b/internal/web/templates/domains.html @@ -8,7 +8,7 @@ {{if .Zones}} {{range .Zones}}
-
DNS{{if .LastError}}Verbindungsfehler{{else}}Verbunden{{end}}
+
DynDNS{{if .LastError}}Verbindungsfehler{{else}}Verbunden{{end}}

{{.Name}}

Letzter Import
Provider
Hetzner Cloud DNS
{{if .LastError}}

{{.LastError}}

{{end}} diff --git a/internal/web/templates/layout.html b/internal/web/templates/layout.html index 99bb020..aa16d99 100644 --- a/internal/web/templates/layout.html +++ b/internal/web/templates/layout.html @@ -6,8 +6,8 @@ {{.Title}} · DNS Control - - + +