Session-Menü: Agent/Session bearbeiten + Rücksprung zum Chat

Zwei neue Menü-Einträge im Session-Header-Menü (rechts oben):
- Sparte "Agent" → "Agent bearbeiten" (Sprung zur Agent-Edit-Page)
- Sparte "Session" → "Session bearbeiten" (Sprung zur Session-Edit-Page)
Beide Sparten sind jetzt immer sichtbar (vorher nur bei vorhandenen
Custom-Commands).

Speichern/Abbrechen auf beiden Edit-Pages springt kontextabhängig zurück:
zum Chat, wenn die Page von dort geöffnet wurde (returnTo/returnId),
sonst wie bisher zum Dashboard. Löschen bleibt → Dashboard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MelekiandClaude Opus 4.8 committed 2026-07-06 16:18:56 +02:00
1 parent 4d29b09488
commit 1a0f3b507e
3 files changed
+50 -11

No files matched your search

+11 -2
View File
@@ -93,6 +93,15 @@ registerPage('agent', {
const saveBtn = document.getElementById('agentSaveBtn');
const cancelBtn = document.getElementById('agentCancelBtn');
const deleteBtn = document.getElementById('agentDeleteBtn');
// Rücksprung nach Speichern/Abbrechen: zurück zum Chat, wenn von dort geöffnet – sonst Dashboard
const goBack = () => {
if (params.returnTo === 'chat' && params.returnId) {
navigateTo('chat', { id: params.returnId });
} else {
navigateTo('dashboard');
}
};
const commandsList = document.getElementById('agentCommandsList');
const addCommandBtn = document.getElementById('agentAddCommandBtn');
const skillsSection = document.getElementById('agentSkillsSection');
@@ -200,11 +209,11 @@ registerPage('agent', {
const selectedSlugs = getSelectedSkills(skillList);
await apiSetAgentSkills(agentId, selectedSlugs);
}
navigateTo('dashboard');
goBack();
});
// Abbrechen
cancelBtn.addEventListener('click', () => navigateTo('dashboard'));
cancelBtn.addEventListener('click', () => goBack());
// Löschen
deleteBtn.addEventListener('click', async () => {
+28 -7
View File
@@ -472,9 +472,8 @@ registerPage('chat', {
let sessionCmds = [];
try { sessionCmds = JSON.parse(session.customCommands || '[]') || []; } catch(e) {}
const addCmdSection = (cmds, label) => {
const validCmds = cmds.filter(c => c.name && c.command);
if (validCmds.length === 0) return;
// Sektions-Kopf (Separator + Label)
const addSectionHeader = (label) => {
const sep = document.createElement('div');
sep.className = 'header-menu-separator';
chatMenuDropdown.appendChild(sep);
@@ -482,8 +481,23 @@ registerPage('chat', {
lbl.className = 'header-menu-label';
lbl.textContent = label;
chatMenuDropdown.appendChild(lbl);
validCmds.forEach(cmd => {
if (!cmd.name || !cmd.command) return;
};
// Navigations-Eintrag (z.B. "Agent bearbeiten" → Sprung zur Edit-Page)
const addNavItem = (label, icon, target, targetParams) => {
const btn = document.createElement('button');
btn.className = 'header-menu-item';
btn.innerHTML = `<i class="fa ${icon}"></i> ${label}`;
btn.addEventListener('click', () => {
chatMenuDropdown.hidden = true;
navigateTo(target, targetParams);
});
chatMenuDropdown.appendChild(btn);
};
// Custom-Command-Buttons einer Sparte anhängen
const addCmdButtons = (cmds) => {
cmds.filter(c => c.name && c.command).forEach(cmd => {
const type = cmd.type || 'background';
const btn = document.createElement('button');
btn.className = 'header-menu-item header-menu-cmd';
@@ -519,8 +533,15 @@ registerPage('chat', {
});
};
addCmdSection(agentCmds, 'Agent');
addCmdSection(sessionCmds, 'Session');
// Sparte "Agent": bearbeiten + Agent-Befehle
addSectionHeader('Agent');
if (currentAgentId) addNavItem('Agent bearbeiten', 'fa-pencil', 'agent', { id: currentAgentId, returnTo: 'chat', returnId: sessionId });
addCmdButtons(agentCmds);
// Sparte "Session": bearbeiten + Session-Befehle
addSectionHeader('Session');
addNavItem('Session bearbeiten', 'fa-pencil', 'session', { id: sessionId, returnTo: 'chat', returnId: sessionId });
addCmdButtons(sessionCmds);
}
// Zurück zum Dashboard
+11 -2
View File
@@ -36,6 +36,15 @@ registerPage('session', {
const saveBtn = document.getElementById('sessionSaveBtn');
const cancelBtn = document.getElementById('sessionCancelBtn');
const deleteBtn = document.getElementById('sessionDeleteBtn');
// Rücksprung nach Speichern/Abbrechen: zurück zum Chat, wenn von dort geöffnet – sonst Dashboard
const goBack = () => {
if (params.returnTo === 'chat' && params.returnId) {
navigateTo('chat', { id: params.returnId });
} else {
navigateTo('dashboard');
}
};
const commandsList = document.getElementById('customCommandsList');
const addCommandBtn = document.getElementById('addCommandBtn');
const mcpServersList = document.getElementById('mcpServersList');
@@ -246,11 +255,11 @@ registerPage('session', {
return;
}
}
navigateTo('dashboard');
goBack();
});
// Abbrechen
cancelBtn.addEventListener('click', () => navigateTo('dashboard'));
cancelBtn.addEventListener('click', () => goBack());
// Löschen
deleteBtn.addEventListener('click', async () => {