API-Keys: Source-URL, einheitliches Status-Schema, passive Usage-Erfassung, Usage-Bars
- SourceUrl-Feld in api_keys: GitHub-URL bei adoptierten Scan-Keys gespeichert - HandleAdopt: Name = user/repo (aus URL extrahiert), SourceUrl = vollständige URL - Status-Schema vereinheitlicht: überall 'valid' statt 'ok'/'usage_limited' - AnthropicKeyChecker.ExtractMetaFromHeaders(): passive Header-Auswertung - AnthropicService: TryUpdateKeyMeta() nach jedem Chat-Request (fire-and-forget) - DatabaseService: UpdateApiKeyMetaByToken() für passive Updates per Token - Frontend: formatKeyStatus() zentrale Status-Labels für API-Keys + Scanned-Keys - Frontend: createUsageBadge() zweizeiliger Balken (Sitzung/Woche) mit Farbstufen - CSS: Usage-Badge mit Track/Fill, warn (>=70%) und danger (>=90%) Klassen
This commit is contained in:
1 parent
608118a823
commit
de388806cb
8 files changed
+226
-32
No files matched your search
@@ -597,6 +597,13 @@ label.skill-item {
|
||||
opacity: var(--semi-transparent);
|
||||
}
|
||||
|
||||
a.admin-user-meta {
|
||||
opacity: unset;
|
||||
font-size: var(--font-size);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.admin-user-actions {
|
||||
display: flex;
|
||||
gap: var(--badge-spacing);
|
||||
@@ -665,3 +672,57 @@ label.skill-item {
|
||||
font-size: 0.85em;
|
||||
padding: 0.4em 0.8em;
|
||||
}
|
||||
|
||||
/* ── Usage Bars (API Keys) ── */
|
||||
|
||||
.usage-badge {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
padding: var(--badge-padding);
|
||||
background: var(--f3-bg);
|
||||
border: var(--border-width) solid var(--f2-border);
|
||||
border-radius: var(--border-radius);
|
||||
font-size: var(--font-size);
|
||||
width: 20em;
|
||||
margin-top: var(--badge-spacing);
|
||||
}
|
||||
|
||||
.usage-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.usage-label {
|
||||
width: 5em;
|
||||
opacity: var(--semi-transparent);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.usage-track {
|
||||
flex: 1;
|
||||
height: 6px;
|
||||
background: var(--f1-bg);
|
||||
border-radius: 3px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.usage-fill {
|
||||
height: 100%;
|
||||
border-radius: 3px;
|
||||
background: var(--secondary);
|
||||
transition: width .3s;
|
||||
}
|
||||
|
||||
.usage-fill.warn {
|
||||
background: var(--warning);
|
||||
}
|
||||
|
||||
.usage-fill.danger {
|
||||
background: var(--dangerous);
|
||||
}
|
||||
|
||||
.usage-pct {
|
||||
width: 3em;
|
||||
text-align: right;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
Reference in new issue
Block a user