diff --git a/public/components/assistant.html b/public/components/assistant.html
index 404a516..3c71aa5 100644
--- a/public/components/assistant.html
+++ b/public/components/assistant.html
@@ -64,7 +64,6 @@
-
diff --git a/public/css/assistant.css b/public/css/assistant.css
index 796bc6b..728bb3c 100644
--- a/public/css/assistant.css
+++ b/public/css/assistant.css
@@ -306,3 +306,5 @@ body.assistant-workspace .assistant-learning-view { min-height: 0; height: 100vh
.assistant-model-pill[hidden] { display:none; }
.assistant-model-control { border:1px solid var(--g200); background:white; border-radius:999px; padding:3px 10px; font-size:11px; color:var(--g600); cursor:pointer; max-width:220px; }
.assistant-model-pick { display:block; }
+/* Send button becomes a red stop while the assistant works */
+.btn-send.busy { background:var(--danger,#dc2626); }
diff --git a/public/js/clinicalAssistant.js b/public/js/clinicalAssistant.js
index a6e4439..95afb74 100644
--- a/public/js/clinicalAssistant.js
+++ b/public/js/clinicalAssistant.js
@@ -126,7 +126,7 @@ import {
function bindEvents() {
var form = document.getElementById('assistant-form');
var clearBtn = document.getElementById('btn-assistant-clear');
- var cancelBtn = document.getElementById('btn-assistant-cancel');
+
var exportBtn = document.getElementById('btn-assistant-export-pdf');
var attachInput = document.getElementById('assistant-attach-input');
var input = document.getElementById('assistant-input');
@@ -144,6 +144,11 @@ import {
});
if (form) form.addEventListener('submit', onAsk);
+ var sendBtn = document.getElementById('btn-assistant-send');
+ if (sendBtn) sendBtn.addEventListener('click', function(e) {
+ // Open WebUI behavior: the send button becomes Stop while working.
+ if (assistantBusy) { e.preventDefault(); cancelAssistantSearch(); }
+ });
if (clearBtn) clearBtn.addEventListener('click', clearConversation);
document.getElementById('btn-assistant-download-chat').addEventListener('click', downloadTranscript);
if (goBackBtn) goBackBtn.addEventListener('click', goBackToMainMenu);
@@ -151,7 +156,7 @@ import {
input.addEventListener('input', updateConversationBudget);
input.addEventListener('input', resizeAssistantInput);
}
- if (cancelBtn) cancelBtn.addEventListener('click', cancelAssistantSearch);
+
if (exportBtn) exportBtn.addEventListener('click', exportAnswerPdf);
var takehomeBtn = document.getElementById('btn-assistant-takehome');
if (takehomeBtn) takehomeBtn.addEventListener('click', openPatientTakehome);
@@ -1053,6 +1058,11 @@ import {
resizeAssistantInput();
if (status) status.textContent = 'Asking…';
var send = document.getElementById('btn-assistant-send');
+ if (send) {
+ send.classList.toggle('busy', !!isBusy);
+ var sendIcon = send.querySelector('i');
+ if (sendIcon) sendIcon.className = isBusy ? 'fas fa-stop' : 'fas fa-arrow-up';
+ }
if (send) send.click();
}
@@ -2001,7 +2011,6 @@ import {
var status = document.getElementById('assistant-status');
var label = document.getElementById('assistant-status-text');
var send = document.getElementById('btn-assistant-send');
- var cancel = document.getElementById('btn-assistant-cancel');
var input = document.getElementById('assistant-input');
var attachInput = document.getElementById('assistant-attach-input');
if (status) {
@@ -2013,13 +2022,6 @@ import {
send.disabled = !!isBusy;
send.innerHTML = isBusy ? ' Searching' : ' Ask';
}
- if (cancel) {
- var canCancel = !!isBusy && !!activeAssistantRequest;
- if (canCancel) cancel.removeAttribute('hidden');
- else cancel.setAttribute('hidden', '');
- cancel.disabled = !canCancel;
- cancel.style.display = canCancel ? 'inline-flex' : 'none';
- }
if (input) input.disabled = !!isBusy;
if (attachInput) attachInput.disabled = !!isBusy;
}