diff --git a/public/index.html b/public/index.html
index c5eb7a5..adc005a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -2169,25 +2169,31 @@
return;
}
+ let definition;
+ try {
+ definition = JSON.parse(definitionText);
+ } catch (error) {
+ alert('Invalid JSON definition: ' + error.message);
+ return;
+ }
+
try {
- const definition = JSON.parse(definitionText);
-
const response = await fetch('/api/workflows', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, description, definition })
});
-
+
if (response.ok) {
- alert('Workflow created!');
closeModal('createWorkflowModal');
switchTab('workflows');
+ showTerminalNotification('Workflow created successfully!', 'success');
refreshData();
} else {
alert('Failed to create workflow');
}
} catch (error) {
- alert('Invalid JSON definition: ' + error.message);
+ alert('Error creating workflow: ' + error.message);
}
}
@@ -2350,11 +2356,30 @@
document.getElementById(tabName).classList.add('active');
}
- function refreshData() {
- loadWorkers();
- loadWorkflows();
- loadExecutions();
- loadSchedules();
+ async function refreshData() {
+ try {
+ await loadWorkers();
+ } catch (e) {
+ console.error('Error loading workers:', e);
+ }
+
+ try {
+ await loadWorkflows();
+ } catch (e) {
+ console.error('Error loading workflows:', e);
+ }
+
+ try {
+ await loadExecutions();
+ } catch (e) {
+ console.error('Error loading executions:', e);
+ }
+
+ try {
+ await loadSchedules();
+ } catch (e) {
+ console.error('Error loading schedules:', e);
+ }
}
// Terminal beep sound (Web Audio API)