Update
Some checks failed
DevPlace CI / test (push) Has been cancelled

This commit is contained in:
retoor 2026-06-12 21:28:54 +02:00
parent 5d314292fb
commit 575bde1ff5
3 changed files with 9 additions and 8 deletions

View File

@ -164,8 +164,6 @@ async def service_config(request: Request, name: str):
result = service_manager.save_config(name, dict(form))
if result is None:
return JSONResponse({"ok": False, "error": "unknown service"}, status_code=404)
if not result["ok"]:
return JSONResponse(result, status_code=400)
after = svc.get_config() if svc is not None else {}
for key, new_value in after.items():
old_value = before.get(key)
@ -183,4 +181,6 @@ async def service_config(request: Request, name: str):
summary=f"admin {admin['username']} updated {key} of service {name}",
links=[audit.service_link(name), audit.setting(key)],
)
if not result["ok"]:
return JSONResponse(result, status_code=400)
return JSONResponse(result)

View File

@ -68,12 +68,13 @@ class ServiceManager:
valid[field.key] = field.to_storage(field.coerce(raw))
except ValueError as e:
errors[field.key] = str(e)
if errors:
return {"ok": False, "errors": errors}
for key, value in valid.items():
set_setting(key, value)
logger.info(f"Service {name} config saved ({len(valid)} fields)")
return {"ok": True, "errors": {}}
if valid:
logger.info(f"Service {name} config saved ({len(valid)} fields)")
if errors:
return {"ok": False, "errors": errors, "saved": list(valid.keys())}
return {"ok": True, "errors": {}, "saved": list(valid.keys())}
def supervise(self) -> None:
for svc in self._services.values():

View File

@ -41,7 +41,7 @@
</section>
<section class="svc-tabpane" data-tab-pane="config">
<form class="service-config" data-config-form data-service="{{ svc.name }}">
<form class="service-config" data-config-form data-service="{{ svc.name }}" autocomplete="off">
{% for group in svc.field_groups %}
<fieldset class="config-section">
<legend>{{ group.name }}</legend>
@ -62,7 +62,7 @@
{% elif field.type == "text" %}
<textarea id="{{ svc.name }}_{{ field.key }}" name="{{ field.key }}" rows="3">{{ field.value }}</textarea>
{% elif field.type == "password" %}
<input type="password" id="{{ svc.name }}_{{ field.key }}" name="{{ field.key }}" value="" placeholder="{% if field.is_set %}Set - leave blank to keep current{% else %}Not set{% endif %}">
<input type="password" id="{{ svc.name }}_{{ field.key }}" name="{{ field.key }}" value="" autocomplete="new-password" data-lpignore="true" data-1p-ignore data-form-type="other" placeholder="{% if field.is_set %}Set - leave blank to keep current{% else %}Not set{% endif %}">
{% elif field.type == "int" %}
<input type="number" id="{{ svc.name }}_{{ field.key }}" name="{{ field.key }}" value="{{ field.value }}"{% if field.minimum is not none %} min="{{ field.minimum }}"{% endif %}{% if field.maximum is not none %} max="{{ field.maximum }}"{% endif %} style="max-width: 160px;">
{% elif field.type == "float" %}