feat(org-detail): Widerrufen-Knopf entfernt, Warnschwelle 0 = aus

Zwei Rückmeldungen des Nutzers.

- Der Widerrufen-Knopf in der Lizenz-Tabelle ist raus. Eine neue Lizenz
  widerruft die alte automatisch, und einen Kunden abschalten erledigt
  der prominente Org-Status-Umschalter. Der API-Endpoint /revoke bleibt.
- Die Warnschwelle lässt sich jetzt abschalten, 0 = aus, in allen drei
  Formularen (Budget, Neue Lizenz, Org-Anlage) samt Modell- und
  Endpoint-Validierung. Gegenstück im Monitor ist Commit 17b1886
  (bisher fiel eine 0 dort still auf die Voreinstellung 80 zurück).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-07-25 15:52:40 +00:00
Ursprung db0a8c1d9e
Commit 83af0d6897
5 geänderte Dateien mit 20 neuen und 25 gelöschten Zeilen

Datei anzeigen

@@ -561,7 +561,6 @@ async function loadOrgLicenses(orgId) {
<td>
${l.status === "active" ? `
<button class="btn btn-secondary btn-small" onclick="extendLicense(${l.id})">Verlängern</button>
<button class="btn btn-danger btn-small" onclick="confirmRevokeLicense(${l.id})">Widerrufen</button>
` : ""}
</td>
</tr>
@@ -602,20 +601,9 @@ document.addEventListener("DOMContentLoaded", function () {
});
});
function confirmRevokeLicense(licId) {
showConfirm(
"Lizenz widerrufen",
"Soll die Lizenz wirklich widerrufen werden? Nutzer können dann nur noch lesen.",
async () => {
try {
await API.put(`/api/licenses/${licId}/revoke`);
if (currentOrgId) loadOrgLicenses(currentOrgId);
} catch (err) {
showToast(err.message, "error");
}
}
);
}
// Der Widerrufen-Knopf ist bewusst entfernt. Eine neue Lizenz widerruft die
// alte automatisch, und einen Kunden abschalten erledigt der Org-Status-
// Umschalter in der Kopfzeile. Der API-Endpoint /revoke bleibt bestehen.
// --- Expiring Licenses (global view) ---
async function loadExpiringLicenses() {