- Neues Setting chatUsageBadge (default: false) blendet Usage-Badge im Chat ein/aus - Dashboard-Links durch 3-Dot-Header-Menü ersetzt (einheitlich mit Chat) - Admin-Items über admin-only Attribut gesteuert, dashboard-links CSS entfernt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
88 lines
2.9 KiB
JavaScript
88 lines
2.9 KiB
JavaScript
// ── Settings Page ──
|
|
|
|
registerPage('settings', {
|
|
init() {
|
|
const slider = document.getElementById('settingPageWidth');
|
|
const display = document.getElementById('settingPageWidthValue');
|
|
const toolCallSelect = document.getElementById('settingToolCallDisplay');
|
|
const chainMetaSelect = document.getElementById('settingChainMetaDisplay');
|
|
const showDeletedToggle = document.getElementById('settingShowDeletedMessages');
|
|
const chatUsageBadgeToggle = document.getElementById('settingChatUsageBadge');
|
|
const resetBtn = document.getElementById('settingsResetBtn');
|
|
const backupSection = document.getElementById('settingsBackupSection');
|
|
|
|
// Backup nur für Admins
|
|
if (currentUser && currentUser.isAdmin) {
|
|
backupSection.hidden = false;
|
|
}
|
|
|
|
const s = loadSettings();
|
|
slider.value = s.pageWidth;
|
|
display.textContent = s.pageWidth + 'px';
|
|
toolCallSelect.value = s.toolCallDisplay;
|
|
chainMetaSelect.value = s.chainMetaDisplay;
|
|
showDeletedToggle.checked = s.showDeletedMessages;
|
|
chatUsageBadgeToggle.checked = s.chatUsageBadge;
|
|
|
|
slider.addEventListener('input', () => {
|
|
display.textContent = slider.value + 'px';
|
|
});
|
|
|
|
slider.addEventListener('change', () => {
|
|
var s = loadSettings();
|
|
s.pageWidth = parseInt(slider.value, 10);
|
|
saveSettings(s);
|
|
});
|
|
|
|
toolCallSelect.addEventListener('change', () => {
|
|
var s = loadSettings();
|
|
s.toolCallDisplay = toolCallSelect.value;
|
|
saveSettings(s);
|
|
});
|
|
|
|
chainMetaSelect.addEventListener('change', () => {
|
|
var s = loadSettings();
|
|
s.chainMetaDisplay = chainMetaSelect.value;
|
|
saveSettings(s);
|
|
});
|
|
|
|
showDeletedToggle.addEventListener('change', () => {
|
|
var s = loadSettings();
|
|
s.showDeletedMessages = showDeletedToggle.checked;
|
|
saveSettings(s);
|
|
});
|
|
|
|
chatUsageBadgeToggle.addEventListener('change', () => {
|
|
var s = loadSettings();
|
|
s.chatUsageBadge = chatUsageBadgeToggle.checked;
|
|
saveSettings(s);
|
|
});
|
|
|
|
const backupBtn = document.getElementById('settingsBackupBtn');
|
|
if (backupBtn) backupBtn.addEventListener('click', () => withButtonLoading(backupBtn, 'Wird erstellt...', async () => {
|
|
try {
|
|
await apiBackupDb();
|
|
} catch (e) {
|
|
console.error('Backup fehlgeschlagen:', e);
|
|
}
|
|
}));
|
|
|
|
resetBtn.addEventListener('click', async () => {
|
|
if (!confirm('Alle Einstellungen auf Standard zurücksetzen?')) return;
|
|
await saveSettings(Object.assign({}, SETTINGS_DEFAULTS));
|
|
// Update UI
|
|
slider.value = SETTINGS_DEFAULTS.pageWidth;
|
|
display.textContent = SETTINGS_DEFAULTS.pageWidth + 'px';
|
|
toolCallSelect.value = SETTINGS_DEFAULTS.toolCallDisplay;
|
|
chainMetaSelect.value = SETTINGS_DEFAULTS.chainMetaDisplay;
|
|
showDeletedToggle.checked = SETTINGS_DEFAULTS.showDeletedMessages;
|
|
chatUsageBadgeToggle.checked = SETTINGS_DEFAULTS.chatUsageBadge;
|
|
});
|
|
|
|
|
|
},
|
|
destroy() {}
|
|
});
|
|
|
|
|