Updated websocket handler
This commit is contained in:
@@ -892,7 +892,9 @@
|
||||
}
|
||||
|
||||
document.getElementById('executionDetails').innerHTML = html;
|
||||
document.getElementById('viewExecutionModal').classList.add('show');
|
||||
const modal = document.getElementById('viewExecutionModal');
|
||||
modal.dataset.executionId = executionId;
|
||||
modal.classList.add('show');
|
||||
} catch (error) {
|
||||
console.error('Error viewing execution:', error);
|
||||
alert('Error loading execution details');
|
||||
@@ -1060,13 +1062,70 @@
|
||||
function connectWebSocket() {
|
||||
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
|
||||
ws = new WebSocket(`${protocol}//${window.location.host}`);
|
||||
|
||||
|
||||
ws.onmessage = (event) => {
|
||||
const data = JSON.parse(event.data);
|
||||
console.log('WebSocket message:', data);
|
||||
refreshData();
|
||||
|
||||
// Handle specific message types
|
||||
if (data.type === 'command_result') {
|
||||
// Display command result in real-time
|
||||
console.log(`Command result received for execution ${data.execution_id}`);
|
||||
console.log(`Success: ${data.success}`);
|
||||
console.log(`Output: ${data.stdout}`);
|
||||
if (data.stderr) {
|
||||
console.log(`Error: ${data.stderr}`);
|
||||
}
|
||||
|
||||
// If viewing execution details, refresh that specific execution
|
||||
const executionModal = document.getElementById('viewExecutionModal');
|
||||
if (executionModal && executionModal.classList.contains('show')) {
|
||||
// Reload execution details to show new logs
|
||||
const executionId = executionModal.dataset.executionId;
|
||||
if (executionId === data.execution_id) {
|
||||
viewExecution(executionId);
|
||||
}
|
||||
}
|
||||
|
||||
// Refresh execution list to show updated status
|
||||
loadExecutions();
|
||||
}
|
||||
|
||||
if (data.type === 'workflow_result') {
|
||||
console.log(`Workflow ${data.status} for execution ${data.execution_id}`);
|
||||
|
||||
// Refresh execution list
|
||||
loadExecutions();
|
||||
|
||||
// If viewing this execution, refresh details
|
||||
const executionModal = document.getElementById('viewExecutionModal');
|
||||
if (executionModal && executionModal.classList.contains('show')) {
|
||||
const executionId = executionModal.dataset.executionId;
|
||||
if (executionId === data.execution_id) {
|
||||
viewExecution(executionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (data.type === 'worker_update') {
|
||||
console.log(`Worker ${data.worker_id} status: ${data.status}`);
|
||||
loadWorkers();
|
||||
}
|
||||
|
||||
if (data.type === 'execution_started' || data.type === 'execution_status') {
|
||||
loadExecutions();
|
||||
}
|
||||
|
||||
if (data.type === 'workflow_created' || data.type === 'workflow_deleted') {
|
||||
loadWorkflows();
|
||||
}
|
||||
|
||||
// Generic refresh for other message types
|
||||
if (!['command_result', 'workflow_result', 'worker_update', 'execution_started', 'execution_status', 'workflow_created', 'workflow_deleted'].includes(data.type)) {
|
||||
refreshData();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
ws.onclose = () => {
|
||||
console.log('WebSocket closed, reconnecting...');
|
||||
setTimeout(connectWebSocket, 5000);
|
||||
|
||||
Reference in New Issue
Block a user