fix(system): render-configs rendert jetzt ALLE Dienste, nicht nur HAProxy
- SystemHandler.ExtraReloaders: neues Feld für nftables, wireguard,
squid, unbound, chrony Reloader
- WithAllReloaders(): Wire-Methode; main.go bindet alle Reloader nach
Initialisierung ein
- RenderConfigs: läuft alle Reloader durch, sammelt Fehler, antwortet
mit {ok, rendered[], errors{}} — partiell OK wird als warning gemeldet
- UI: Settings-Button-Label "Re-render all configs"; partial-error
Toast zeigt welche Dienste fehlschlugen
- Timeout: 30s statt 10s (alle Dienste brauchen mehr Zeit)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -125,7 +125,15 @@ export default function SettingsPage() {
|
||||
})
|
||||
const renderConfigs = useMutation({
|
||||
mutationFn: async () => apiClient.post('/system/render-configs'),
|
||||
onSuccess: () => msg.success(t('settings.renderConfigsOk')),
|
||||
onSuccess: (r) => {
|
||||
const d = r.data?.data as { ok: boolean; rendered: string[]; errors: Record<string, string> } | undefined
|
||||
if (d && !d.ok && d.errors && Object.keys(d.errors).length > 0) {
|
||||
const failed = Object.entries(d.errors).map(([k, v]) => `${k}: ${v}`).join('; ')
|
||||
msg.warning(t('settings.renderConfigsPartial', { failed }))
|
||||
} else {
|
||||
msg.success(t('settings.renderConfigsOk'))
|
||||
}
|
||||
},
|
||||
onError: (e: Error) => msg.error(t('settings.renderConfigsFailed') + ': ' + e.message),
|
||||
})
|
||||
const triggerBackup = useMutation({
|
||||
|
||||
Reference in New Issue
Block a user