mirror of
https://github.com/thecyberlearn/quantum-ai-v2.git
synced 2026-08-18 15:13:00 +00:00
✨ Implement shared utility functions across all agents
- Added copyResults(), downloadResults(), resetForm() to WorkflowsCore class - Removed duplicate functions from data-analyzer template - All agents now automatically get consistent copy/download/reset functionality - Social ads generator and other agents now have these features without code duplication - Enhanced error handling and toast notifications - Maintains backward compatibility with global convenience functions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
08094a91e3
commit
0495cf252c
@ -349,6 +349,74 @@ class WorkflowsCore {
|
|||||||
this.hideProcessing();
|
this.hideProcessing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy agent results to clipboard (common agent function)
|
||||||
|
*/
|
||||||
|
static copyResults() {
|
||||||
|
const content = document.getElementById('resultsContent') || document.querySelector('.results-content');
|
||||||
|
if (content) {
|
||||||
|
const text = content.textContent || content.innerText || '';
|
||||||
|
this.copyToClipboard(text, 'Results copied to clipboard!');
|
||||||
|
} else {
|
||||||
|
this.showToast('❌ No results to copy', 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download agent results as file (common agent function)
|
||||||
|
*/
|
||||||
|
static downloadResults(filename = 'analysis-results.txt') {
|
||||||
|
const content = document.getElementById('resultsContent') || document.querySelector('.results-content');
|
||||||
|
if (content) {
|
||||||
|
const text = content.textContent || content.innerText || '';
|
||||||
|
this.downloadAsFile(text, filename, 'Results downloaded!');
|
||||||
|
} else {
|
||||||
|
this.showToast('❌ No results to download', 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset agent form and hide results (common agent function)
|
||||||
|
*/
|
||||||
|
static resetForm() {
|
||||||
|
const form = document.getElementById('agentForm');
|
||||||
|
if (form) {
|
||||||
|
form.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
const resultsContainer = document.getElementById('resultsContainer');
|
||||||
|
const processingStatus = document.getElementById('processingStatus');
|
||||||
|
|
||||||
|
if (resultsContainer) resultsContainer.style.display = 'none';
|
||||||
|
if (processingStatus) processingStatus.style.display = 'none';
|
||||||
|
|
||||||
|
// Reset file upload areas
|
||||||
|
const uploadAreas = document.querySelectorAll('.file-upload-area');
|
||||||
|
uploadAreas.forEach(area => {
|
||||||
|
area.classList.remove('file-selected');
|
||||||
|
const uploadText = area.querySelector('.upload-text');
|
||||||
|
if (uploadText) {
|
||||||
|
uploadText.innerHTML = `
|
||||||
|
<div class="upload-icon">📁</div>
|
||||||
|
<div><strong>Click to upload</strong> or drag and drop</div>
|
||||||
|
<div>PDF files only</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Reset radio selections to first option
|
||||||
|
const radioCards = document.querySelectorAll('.radio-card');
|
||||||
|
radioCards.forEach(card => card.classList.remove('selected'));
|
||||||
|
const firstCard = document.querySelector('.radio-card');
|
||||||
|
if (firstCard) {
|
||||||
|
firstCard.classList.add('selected');
|
||||||
|
const input = firstCard.querySelector('input[type="radio"]');
|
||||||
|
if (input) input.checked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.showToast('🔄 Form reset', 'info');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup drag and drop for file inputs (enhanced from prototype)
|
* Setup drag and drop for file inputs (enhanced from prototype)
|
||||||
*/
|
*/
|
||||||
@ -461,6 +529,19 @@ function downloadAsFile(content, filename, successMessage) {
|
|||||||
WorkflowsCore.downloadAsFile(content, filename, successMessage);
|
WorkflowsCore.downloadAsFile(content, filename, successMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Global convenience functions for common agent actions
|
||||||
|
function copyResults() {
|
||||||
|
WorkflowsCore.copyResults();
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadResults(filename) {
|
||||||
|
WorkflowsCore.downloadResults(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetForm() {
|
||||||
|
WorkflowsCore.resetForm();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize on DOM load
|
// Initialize on DOM load
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
// Initialize form validation for all forms
|
// Initialize form validation for all forms
|
||||||
|
|||||||
1031
workflows/templates/workflows/data-analyzer.html
Normal file
1031
workflows/templates/workflows/data-analyzer.html
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user