diff --git a/api/src/main/resources/static/js/chat.js b/api/src/main/resources/static/js/chat.js
index ba4450c1..64ca585c 100644
--- a/api/src/main/resources/static/js/chat.js
+++ b/api/src/main/resources/static/js/chat.js
@@ -271,8 +271,12 @@ export function switchToAgent(agentName,agentId, sessionId, agentHost) {
appendToChatWindow(msg.sender, msg.message);
});
- container.classList.remove("hidden");
- container.style.display = "block";
+ // Show container with animation
+ container.style.display = "flex";
+ setTimeout(() => {
+ container.classList.remove("hidden");
+ }, 10);
+
console.log("Chat container displayed");
}
@@ -307,14 +311,49 @@ export function appendToChatWindow(sender, message) {
const chatBox = document.getElementById("chat-messages");
const div = document.createElement("div");
div.classList.add("chat-message");
- div.innerHTML = `${sender}: ${message}`;
+
+ // Determine if message is from user or agent
+ const isUser = sender === "You" || sender === "user";
+ div.classList.add(isUser ? "user" : "agent");
+
+ // Create message content with modern styling
+ const messageContent = document.createElement("div");
+ messageContent.classList.add("chat-message-content");
+ messageContent.textContent = message;
+
+ // Add sender name (smaller, less prominent)
+ const senderElement = document.createElement("strong");
+ senderElement.textContent = sender;
+
+ div.appendChild(senderElement);
+ div.appendChild(messageContent);
+
chatBox.appendChild(div);
chatBox.scrollTop = chatBox.scrollHeight;
}
export function toggleChat() {
const container = document.getElementById("chat-container");
- container.classList.toggle("hidden");
+
+ if (container.classList.contains("hidden")) {
+ container.style.display = "flex";
+ // Small delay to ensure display change is processed
+ setTimeout(() => {
+ container.classList.remove("hidden");
+ }, 10);
+
+ // Focus input when opening
+ setTimeout(() => {
+ const input = document.getElementById("chat-input");
+ if (input) input.focus();
+ }, 300);
+ } else {
+ container.classList.add("hidden");
+ // Hide after animation completes
+ setTimeout(() => {
+ container.style.display = "none";
+ }, 300);
+ }
}
// =========================
@@ -344,4 +383,5 @@ export async function fetchAvailableAgents() {
}
}
-window.sendMessage = sendMessage;
\ No newline at end of file
+window.sendMessage = sendMessage;
+window.toggleChat = toggleChat;
\ No newline at end of file
diff --git a/api/src/main/resources/templates/fragments/chat.html b/api/src/main/resources/templates/fragments/chat.html
index a4204ad1..df88cdeb 100644
--- a/api/src/main/resources/templates/fragments/chat.html
+++ b/api/src/main/resources/templates/fragments/chat.html
@@ -6,83 +6,164 @@
let chatFocus = false;
let chatConnection = null;
- function toggleChat() {
- let chatContainer = document.getElementById("chat-container");
- if (chatContainer.style.display === "none" || chatContainer.style.display === "") {
- chatContainer.style.display = "flex";
- document.getElementById("chat-input").focus();
- termFocus = false;
- chatFocus = true;
- enableSessionChat();
- } else {
- chatContainer.style.display = (chatContainer.style.display === "none" || chatContainer.style.display === "") ? "flex" : "none";
- }
- //
+ function toggleChat() {
+ let chatContainer = document.getElementById("chat-container");
+
+ if (chatContainer.style.display === "none" || chatContainer.style.display === "") {
+ chatContainer.style.display = "flex";
+ // Small delay to ensure display change is processed
+ setTimeout(() => {
+ chatContainer.classList.remove("hidden");
+ }, 10);
+
+ // Focus input when opening
+ setTimeout(() => {
+ const input = document.getElementById("chat-input");
+ if (input) input.focus();
+ }, 300);
+
+ termFocus = false;
+ chatFocus = true;
+ enableSessionChat();
+ } else {
+ chatContainer.classList.add("hidden");
+ // Hide after animation completes
+ setTimeout(() => {
+ chatContainer.style.display = "none";
+ }, 300);
+ }
}
-
diff --git a/api/src/main/resources/templates/sso/dashboard.html b/api/src/main/resources/templates/sso/dashboard.html
index 999b4b9c..60006ff0 100755
--- a/api/src/main/resources/templates/sso/dashboard.html
+++ b/api/src/main/resources/templates/sso/dashboard.html
@@ -351,35 +351,168 @@
});
-