From 4a0577d3f46f55c99b5e9f3d8269c81f08dcfe0c Mon Sep 17 00:00:00 2001 From: Claude Dev Date: Sun, 15 Mar 2026 13:29:05 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Vollbild-Modus=20f=C3=BCr=20Chat-Assist?= =?UTF-8?q?ent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neuer Button zwischen Reload und Schließen. Toggled zwischen normalem Fenster und Vollbild. Icon wechselt zwischen Expand/Collapse. Schließen und Reset beenden Vollbild automatisch. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/static/css/style.css | 13 +++++++++++++ src/static/dashboard.html | 5 ++++- src/static/js/chat.js | 25 +++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/static/css/style.css b/src/static/css/style.css index d9c973f..dc4f859 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -4841,6 +4841,19 @@ a.map-popup-article:hover { } } +/* Fullscreen */ +.chat-window.fullscreen { + bottom: 0; + right: 0; + left: 0; + top: 0; + width: 100%; + height: 100%; + border-radius: 0; + border: none; + z-index: 10000; +} + /* Light Theme */ [data-theme="light"] .chat-window { box-shadow: 0 8px 32px rgba(0,0,0,0.12); diff --git a/src/static/dashboard.html b/src/static/dashboard.html index 849d203..ff3d583 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -595,7 +595,10 @@ - + +
diff --git a/src/static/js/chat.js b/src/static/js/chat.js index ccc822d..ff6c54f 100644 --- a/src/static/js/chat.js +++ b/src/static/js/chat.js @@ -6,6 +6,7 @@ const Chat = { _isOpen: false, _isLoading: false, _hasGreeted: false, + _isFullscreen: false, init() { const btn = document.getElementById('chat-toggle-btn'); @@ -21,6 +22,9 @@ const Chat = { const resetBtn = document.getElementById('chat-reset-btn'); if (resetBtn) resetBtn.addEventListener('click', () => this.reset()); + const fsBtn = document.getElementById('chat-fullscreen-btn'); + if (fsBtn) fsBtn.addEventListener('click', () => this.toggleFullscreen()); + form.addEventListener('submit', (e) => { e.preventDefault(); this.send(); @@ -74,8 +78,15 @@ const Chat = { const btn = document.getElementById('chat-toggle-btn'); if (!win) return; win.classList.remove('open'); + win.classList.remove('fullscreen'); btn.classList.remove('active'); this._isOpen = false; + this._isFullscreen = false; + const fsBtn = document.getElementById('chat-fullscreen-btn'); + if (fsBtn) { + fsBtn.title = 'Vollbild'; + fsBtn.innerHTML = ''; + } }, reset() { @@ -88,6 +99,20 @@ const Chat = { this.open(); }, + toggleFullscreen() { + const win = document.getElementById('chat-window'); + const btn = document.getElementById('chat-fullscreen-btn'); + if (!win) return; + this._isFullscreen = !this._isFullscreen; + win.classList.toggle('fullscreen', this._isFullscreen); + if (btn) { + btn.title = this._isFullscreen ? 'Vollbild beenden' : 'Vollbild'; + btn.innerHTML = this._isFullscreen + ? '' + : ''; + } + }, + _updateResetBtn() { const btn = document.getElementById('chat-reset-btn'); if (btn) btn.style.display = this._conversationId ? '' : 'none';