diff --git a/VERSION b/VERSION
index 5754e86..1674756 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.1.80
+1.1.81
diff --git a/cmd/edgeguard-api/main.go b/cmd/edgeguard-api/main.go
index dbc3dda..e993711 100644
--- a/cmd/edgeguard-api/main.go
+++ b/cmd/edgeguard-api/main.go
@@ -60,7 +60,7 @@ import (
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
)
-var version = "1.1.80"
+var version = "1.1.81"
func main() {
addr := os.Getenv("EDGEGUARD_API_ADDR")
diff --git a/cmd/edgeguard-ctl/main.go b/cmd/edgeguard-ctl/main.go
index 9face29..14d09f5 100644
--- a/cmd/edgeguard-ctl/main.go
+++ b/cmd/edgeguard-ctl/main.go
@@ -11,7 +11,7 @@ import (
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
)
-var version = "1.1.80"
+var version = "1.1.81"
const usage = `edgeguard-ctl — EdgeGuard CLI
diff --git a/cmd/edgeguard-scheduler/main.go b/cmd/edgeguard-scheduler/main.go
index 160aac5..e952b0a 100644
--- a/cmd/edgeguard-scheduler/main.go
+++ b/cmd/edgeguard-scheduler/main.go
@@ -35,7 +35,7 @@ import (
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
)
-var version = "1.1.80"
+var version = "1.1.81"
const (
// renewTickInterval — how often we re-evaluate expiring certs.
diff --git a/management-ui/src/i18n/locales/de/common.json b/management-ui/src/i18n/locales/de/common.json
index e056843..5a5c9d3 100644
--- a/management-ui/src/i18n/locales/de/common.json
+++ b/management-ui/src/i18n/locales/de/common.json
@@ -367,7 +367,8 @@
"backup": "Backup",
"backupHint": "Backup-Server werden nur angesprochen, wenn alle primären Server (non-backup) down sind.",
"empty": "Noch keine Server im Pool. „Server hinzufügen\" startet damit.",
- "deleteConfirm": "Server {{name}} wirklich löschen?"
+ "deleteConfirm": "Server {{name}} wirklich löschen?",
+ "live": "Live"
}
},
"routing": {
@@ -868,7 +869,10 @@
"dnssec": "DNSSEC validieren",
"qnameMin": "QName-Minimisation (privacy)",
"cacheMin": "Cache min-TTL",
- "cacheMax": "Cache max-TTL"
+ "cacheMax": "Cache max-TTL",
+ "allIPv4": "alle IPv4-Interfaces",
+ "allIPv6": "alle IPv6-Interfaces",
+ "loopback": "Loopback"
}
},
"fwd": {
@@ -934,6 +938,8 @@
"copied": "Kopiert",
"close": "Schließen",
"refresh": "Aktualisieren",
+ "up": "UP",
+ "down": "DOWN",
"relTime": {
"Xs": "vor {{n}}s",
"Xm": "vor {{n}}m",
diff --git a/management-ui/src/i18n/locales/en/common.json b/management-ui/src/i18n/locales/en/common.json
index 1abd747..dcbe41c 100644
--- a/management-ui/src/i18n/locales/en/common.json
+++ b/management-ui/src/i18n/locales/en/common.json
@@ -367,7 +367,8 @@
"backup": "Backup",
"backupHint": "Backup servers receive traffic only when every primary (non-backup) server is down.",
"empty": "No servers in the pool yet. Click “Add server” to get started.",
- "deleteConfirm": "Really delete server {{name}}?"
+ "deleteConfirm": "Really delete server {{name}}?",
+ "live": "Live"
}
},
"routing": {
@@ -868,7 +869,10 @@
"dnssec": "DNSSEC validation",
"qnameMin": "QName minimisation (privacy)",
"cacheMin": "Cache min-TTL",
- "cacheMax": "Cache max-TTL"
+ "cacheMax": "Cache max-TTL",
+ "allIPv4": "all IPv4 interfaces",
+ "allIPv6": "all IPv6 interfaces",
+ "loopback": "Loopback"
}
},
"fwd": {
@@ -934,6 +938,8 @@
"copied": "Copied",
"close": "Close",
"refresh": "Refresh",
+ "up": "UP",
+ "down": "DOWN",
"relTime": {
"Xs": "{{n}}s ago",
"Xm": "{{n}}m ago",
diff --git a/management-ui/src/pages/Backends/Detail.tsx b/management-ui/src/pages/Backends/Detail.tsx
index b8ae25f..2876437 100644
--- a/management-ui/src/pages/Backends/Detail.tsx
+++ b/management-ui/src/pages/Backends/Detail.tsx
@@ -309,7 +309,7 @@ function ServerPanel({ backendID, haproxyStats }: { backendID: number; haproxySt
),
},
{
- title: 'Live', key: 'live', width: 160,
+ title: t('backends.server.live'), key: 'live', width: 160,
render: (_, r) => {
const stat = haproxyStats.find(
s => s.backend === `eg_backend_${backendID}` && s.server === r.name
diff --git a/management-ui/src/pages/DNS/index.tsx b/management-ui/src/pages/DNS/index.tsx
index 87993aa..a18b836 100644
--- a/management-ui/src/pages/DNS/index.tsx
+++ b/management-ui/src/pages/DNS/index.tsx
@@ -442,10 +442,10 @@ function SettingsTab() {
// Mode "tags" damit der Operator notfalls auch eine IP eintippen kann
// die der Kernel noch nicht meldet (z.B. eine geplante VIP).
const ipOptions: { value: string; label: string }[] = []
- ipOptions.push({ value: '0.0.0.0', label: '0.0.0.0 — alle IPv4-Interfaces' })
- ipOptions.push({ value: '::', label: ':: — alle IPv6-Interfaces' })
- ipOptions.push({ value: '127.0.0.1', label: '127.0.0.1 — Loopback IPv4' })
- ipOptions.push({ value: '::1', label: '::1 — Loopback IPv6' })
+ ipOptions.push({ value: '0.0.0.0', label: `0.0.0.0 — ${t('dns.settings.allIPv4')}` })
+ ipOptions.push({ value: '::', label: `:: — ${t('dns.settings.allIPv6')}` })
+ ipOptions.push({ value: '127.0.0.1', label: `127.0.0.1 — ${t('dns.settings.loopback')} IPv4` })
+ ipOptions.push({ value: '::1', label: `::1 — ${t('dns.settings.loopback')} IPv6` })
for (const i of sys ?? []) {
if (i.ifname === 'lo') continue
for (const a of i.addr_info ?? []) {
diff --git a/management-ui/src/pages/RoutingRules/index.tsx b/management-ui/src/pages/RoutingRules/index.tsx
index 203bff4..08852e0 100644
--- a/management-ui/src/pages/RoutingRules/index.tsx
+++ b/management-ui/src/pages/RoutingRules/index.tsx
@@ -106,6 +106,7 @@ export default function RoutingRulesPage() {
form.resetFields()
void qc.invalidateQueries({ queryKey: ['routing-rules'] })
},
+ onError: (e: Error) => message.error(e.message),
})
const update = useMutation({
mutationFn: async ({ id, v }: { id: number; v: RuleFormValues }) => {
@@ -117,6 +118,7 @@ export default function RoutingRulesPage() {
form.resetFields()
void qc.invalidateQueries({ queryKey: ['routing-rules'] })
},
+ onError: (e: Error) => message.error(e.message),
})
const del = useMutation({
mutationFn: async (id: number) => { await apiClient.delete(`/routing-rules/${id}`) },
@@ -144,7 +146,7 @@ export default function RoutingRulesPage() {
{backendLabel(id)}
{h && (
- {h.up ? 'UP' : 'DOWN'}
+ {h.up ? t('common.up') : t('common.down')}
)}
diff --git a/management-ui/src/pages/Settings/index.tsx b/management-ui/src/pages/Settings/index.tsx
index 2c481ba..d0d5277 100644
--- a/management-ui/src/pages/Settings/index.tsx
+++ b/management-ui/src/pages/Settings/index.tsx
@@ -326,8 +326,8 @@ export default function SettingsPage() {
{dbSize.top_tables.length > 0 && (
{t('settings.dbSizeTop')}:{' '}
- {dbSize.top_tables.slice(0, 3).map(t =>
- `${t.name} (${t.human_size})`
+ {dbSize.top_tables.slice(0, 3).map(tbl =>
+ `${tbl.name} (${tbl.human_size})`
).join(', ')}
)}