diff --git a/src/aggregator/web/index.html b/src/aggregator/web/index.html
index 3996ba9..ca1688e 100644
--- a/src/aggregator/web/index.html
+++ b/src/aggregator/web/index.html
@@ -589,9 +589,19 @@
}
};
+ let isSubmitting = false;
document.getElementById('new-task-form').onsubmit = async (e) => {
e.preventDefault();
+ // Prevent double submission
+ if (isSubmitting) return;
+ isSubmitting = true;
+
+ const submitBtn = e.target.querySelector('button[type="submit"]');
+ const originalText = submitBtn.textContent;
+ submitBtn.textContent = 'Creating...';
+ submitBtn.disabled = true;
+
const projectPath = document.getElementById('task-project').value;
const title = document.getElementById('task-title').value;
const description = document.getElementById('task-description').value;
@@ -626,6 +636,10 @@
} catch (err) {
console.error('Create error:', err);
showToast(err.message || 'Failed to create task', 'error');
+ } finally {
+ isSubmitting = false;
+ submitBtn.textContent = originalText;
+ submitBtn.disabled = false;
}
};