refactor(js): 4. Iteration – Card-Preview-Helper, Button-Loading, Stream-Events vereinfacht
Neue Helper: - _renderCardPreview(): Gemeinsamer Helper für Agent/Session-Card-Vorschau (ersetzt renderAgentInCard + renderSessionSelectCard Duplikate) - withButtonLoading(btn, text, fn): Eliminiert ~15x identisches disable/text/try/finally/reset Pattern in allen Pages - formatDate(): Nach ui-helpers.js verschoben (war in dashboard.js) - createMDE(): maxHeight-Option hinzugefügt Dedupliziert: - handleStreamEvent: 12 Preparer/Review/Finalizer cases → 7 durch case-Grouping (start/text/tool_use shared) - _escCmdAttr() entfernt → nutzt jetzt esc() aus ui-helpers.js - feInitEasyMDE() nutzt jetzt createMDE() statt eigener EasyMDE-Init Betroffene Dateien: ui-helpers.js, chat.js, commands-ui.js, file-explorer.js, dashboard.js, session-page.js, cronjob-page.js, profile-page.js, admin-page.js, server-settings-page.js, settings-page.js
This commit is contained in:
1 parent
e4ccaf9dee
commit
e930268476
11 files changed
+137
-196
No files matched your search
@@ -99,9 +99,7 @@ registerPage('server-settings', {
|
||||
}
|
||||
|
||||
// Speichern
|
||||
saveBtn.addEventListener('click', async function() {
|
||||
saveBtn.disabled = true;
|
||||
|
||||
saveBtn.addEventListener('click', () => withButtonLoading(saveBtn, 'Speichern...', async () => {
|
||||
try {
|
||||
var data = {};
|
||||
for (var j = 0; j < settings.length; j++) {
|
||||
@@ -122,10 +120,8 @@ registerPage('server-settings', {
|
||||
showToast(result.hint || 'Einstellungen gespeichert');
|
||||
} catch (err) {
|
||||
showToast(err.message, 'error');
|
||||
} finally {
|
||||
saveBtn.disabled = false;
|
||||
}
|
||||
});
|
||||
}));
|
||||
|
||||
} catch (err) {
|
||||
container.innerHTML = '<p class="form-error">Fehler beim Laden: ' + esc(err.message) + '</p>';
|
||||
|
||||
Reference in new issue
Block a user