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(', ')} )}