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:
@@ -263,8 +263,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="editWarnPercent">Warnschwelle (%)</label>
|
||||
<input type="number" id="editWarnPercent" min="1" max="100" placeholder="80">
|
||||
<label for="editWarnPercent">Warnschwelle (%, 0 = aus)</label>
|
||||
<input type="number" id="editWarnPercent" min="0" max="100" placeholder="80">
|
||||
</div>
|
||||
<details class="adv-section">
|
||||
<summary>
|
||||
@@ -625,8 +625,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newOrgLicWarnPercent">Warnschwelle (%)</label>
|
||||
<input type="number" id="newOrgLicWarnPercent" value="80" min="1" max="100">
|
||||
<label for="newOrgLicWarnPercent">Warnschwelle (%, 0 = aus)</label>
|
||||
<input type="number" id="newOrgLicWarnPercent" value="80" min="0" max="100">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newOrgLicCostPerCredit">Kosten pro Credit (USD)</label>
|
||||
@@ -724,8 +724,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newLicWarnPercent">Warnschwelle (%)</label>
|
||||
<input type="number" id="newLicWarnPercent" value="80" min="1" max="100">
|
||||
<label for="newLicWarnPercent">Warnschwelle (%, 0 = aus)</label>
|
||||
<input type="number" id="newLicWarnPercent" value="80" min="0" max="100">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newLicCostPerCredit">Kosten pro Credit (USD)</label>
|
||||
@@ -1162,7 +1162,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/static/js/a11y.js?v=20260725a"></script>
|
||||
<script src="/static/js/app.js?v=20260725j"></script>
|
||||
<script src="/static/js/app.js?v=20260725k"></script>
|
||||
<script src="/static/js/sources.js?v=20260522x2"></script>
|
||||
<script src="/static/js/x-scraper.js?v=20260522a"></script>
|
||||
<script src="/static/js/source-health.js?v=20260509l"></script>
|
||||
|
||||
@@ -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() {
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren