feat(orgs): Pipeline-Sprache als Org-Setting im Verwaltungsportal

- OrgCreate / OrgUpdate / OrgResponse um output_language (de | en).
- routers/organizations.py persistiert die Sprache nach create/update
  via shared.services.org_settings.set_org_setting.
- _enrich_org liest output_language aus organization_settings (Default de).
- Frontend: Dropdown im Modal Neue Organisation und im Org-Edit-Formular,
  Auto-Befuellung aus org.output_language. Cache-Buster auf app.js gebumpt.

Phase 7 von 8 (eng_demo / Org-Sprache).
Dieser Commit ist enthalten in:
claude-dev
2026-05-13 21:18:07 +00:00
Ursprung 521633bde9
Commit d3e5fa7079
4 geänderte Dateien mit 42 neuen und 1 gelöschten Zeilen

Datei anzeigen

@@ -213,6 +213,8 @@ async function openOrg(orgId) {
document.getElementById("editOrgName").value = org.name;
document.getElementById("editOrgActive").value = org.is_active ? "true" : "false";
const langEl = document.getElementById("editOrgLanguage");
if (langEl) langEl.value = org.output_language || "de";
loadOrgUsers(orgId);
loadOrgLicenses(orgId);
@@ -424,6 +426,7 @@ function setupForms() {
await API.post("/api/orgs", {
name: document.getElementById("newOrgName").value,
slug: document.getElementById("newOrgSlug").value,
output_language: document.getElementById("newOrgLanguage").value || "de",
});
closeModal("modalNewOrg");
document.getElementById("newOrgForm").reset();
@@ -518,6 +521,7 @@ function setupForms() {
await API.put(`/api/orgs/${currentOrgId}`, {
name: document.getElementById("editOrgName").value,
is_active: document.getElementById("editOrgActive").value === "true",
output_language: document.getElementById("editOrgLanguage").value || "de",
});
openOrg(currentOrgId);
loadOrgs();