Add settings page tabs and show env API keys with last four digits.
System settings now use the same CSS tab layout as env config; sensitive env fields display masked values from .env while keeping save-on-empty behavior. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -179,10 +179,24 @@
|
||||
} else {
|
||||
input = document.createElement("input");
|
||||
input.id = "env-f-" + field.key;
|
||||
input.type = field.sensitive ? "password" : "text";
|
||||
if (field.sensitive && field.has_value) {
|
||||
input.placeholder = field.masked || "留空不修改";
|
||||
input.type = "password";
|
||||
input.autocomplete = "off";
|
||||
if (field.sensitive) {
|
||||
if (field.has_value) {
|
||||
const cur = document.createElement("div");
|
||||
cur.className = "env-sensitive-current muted";
|
||||
const labelSpan = document.createElement("span");
|
||||
labelSpan.textContent = "已配置 ";
|
||||
const masked = document.createElement("span");
|
||||
masked.className = "env-masked-value";
|
||||
masked.textContent = field.masked || "";
|
||||
cur.appendChild(labelSpan);
|
||||
cur.appendChild(masked);
|
||||
row.appendChild(cur);
|
||||
}
|
||||
input.placeholder = field.has_value ? "修改时填写新值,留空不修改" : "请输入";
|
||||
} else {
|
||||
input.type = "text";
|
||||
input.value = field.current || field.default || "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2306,6 +2306,53 @@ html[data-theme="light"] .journal-detail-img-thumb {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#settings-sec-0:checked ~ .env-config-tabs label[for="settings-sec-0"],
|
||||
#settings-sec-1:checked ~ .env-config-tabs label[for="settings-sec-1"],
|
||||
#settings-sec-2:checked ~ .env-config-tabs label[for="settings-sec-2"],
|
||||
#settings-sec-3:checked ~ .env-config-tabs label[for="settings-sec-3"],
|
||||
#settings-sec-4:checked ~ .env-config-tabs label[for="settings-sec-4"],
|
||||
#settings-sec-5:checked ~ .env-config-tabs label[for="settings-sec-5"],
|
||||
#settings-sec-6:checked ~ .env-config-tabs label[for="settings-sec-6"] {
|
||||
color: #e8ecff;
|
||||
border-bottom-color: var(--accent, #7c6cf0);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#settings-sec-0:checked ~ .env-config-panels .env-panel--0,
|
||||
#settings-sec-1:checked ~ .env-config-panels .env-panel--1,
|
||||
#settings-sec-2:checked ~ .env-config-panels .env-panel--2,
|
||||
#settings-sec-3:checked ~ .env-config-panels .env-panel--3,
|
||||
#settings-sec-4:checked ~ .env-config-panels .env-panel--4,
|
||||
#settings-sec-5:checked ~ .env-config-panels .env-panel--5,
|
||||
#settings-sec-6:checked ~ .env-config-panels .env-panel--6 {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.env-sensitive-current {
|
||||
margin: 0 0 6px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.env-masked-value {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
letter-spacing: 0.04em;
|
||||
color: #c5cae0;
|
||||
}
|
||||
|
||||
.settings-tab-panel h2 {
|
||||
margin: 0 0 8px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.settings-tab-inner h2 {
|
||||
margin: 0 0 8px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.settings-config-body {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.env-config-panels {
|
||||
padding: 14px 16px 16px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user