This commit is contained in:
Dobromir Popov
2025-10-24 14:20:40 +03:00
parent b970c4ca4d
commit d4ed894a92
4 changed files with 62 additions and 56 deletions

View File

@@ -305,14 +305,19 @@ class ChartManager {
// Add click handler for annotations
plotElement.on('plotly_clickannotation', (eventData) => {
console.log('Annotation clicked:', eventData);
console.log('=== plotly_clickannotation event fired ===');
console.log('Event data:', eventData);
console.log('Annotation:', eventData.annotation);
const annotationName = eventData.annotation.name;
console.log('Annotation name:', annotationName);
if (annotationName) {
const parts = annotationName.split('_');
const action = parts[0]; // 'entry', 'exit', or 'delete'
const annotationId = parts[1];
console.log(`Annotation action: ${action}, ID: ${annotationId}`);
console.log(`Parsed - Action: ${action}, ID: ${annotationId}`);
if (action === 'delete') {
this.handleAnnotationClick(annotationId, 'delete');
@@ -694,15 +699,27 @@ class ChartManager {
* Handle annotation click for editing/deleting
*/
handleAnnotationClick(annotationId, action) {
console.log(`Annotation ${action}:`, annotationId);
console.log(`=== handleAnnotationClick called ===`);
console.log(` Action: ${action}`);
console.log(` Annotation ID: ${annotationId}`);
console.log(` window.deleteAnnotation type: ${typeof window.deleteAnnotation}`);
if (action === 'delete') {
console.log('Delete action confirmed, showing confirm dialog...');
if (confirm('Delete this annotation?')) {
console.log('User confirmed deletion');
if (window.deleteAnnotation) {
console.log('Calling window.deleteAnnotation...');
window.deleteAnnotation(annotationId);
} else {
console.error('window.deleteAnnotation is not available!');
alert('Delete function not available. Please refresh the page.');
}
} else {
console.log('User cancelled deletion');
}
} else if (action === 'edit') {
console.log('Edit action');
if (window.appState && window.appState.chartManager) {
window.appState.chartManager.editAnnotation(annotationId);
}

View File

@@ -369,6 +369,10 @@
}
function setupGlobalFunctions() {
console.log('=== setupGlobalFunctions called ===');
console.log('deleteAnnotation function exists:', typeof deleteAnnotation);
console.log('highlightAnnotation function exists:', typeof highlightAnnotation);
// Make functions globally available
window.showError = showError;
window.showSuccess = showSuccess;
@@ -382,6 +386,14 @@
console.log(' - window.renderAnnotationsList:', typeof window.renderAnnotationsList);
console.log(' - window.showError:', typeof window.showError);
console.log(' - window.showSuccess:', typeof window.showSuccess);
// Test call
console.log('Testing window.deleteAnnotation availability...');
if (typeof window.deleteAnnotation === 'function') {
console.log('✓ window.deleteAnnotation is ready');
} else {
console.error('✗ window.deleteAnnotation is NOT a function!');
}
}
function renderAnnotationsList(annotations) {

View File

@@ -74,11 +74,11 @@
<!-- jQuery (for convenience) -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Custom JavaScript -->
<script src="{{ url_for('static', filename='js/chart_manager.js') }}"></script>
<script src="{{ url_for('static', filename='js/annotation_manager.js') }}"></script>
<script src="{{ url_for('static', filename='js/time_navigator.js') }}"></script>
<script src="{{ url_for('static', filename='js/training_controller.js') }}"></script>
<!-- Custom JavaScript with cache busting -->
<script src="{{ url_for('static', filename='js/chart_manager.js') }}?v={{ range(1, 10000) | random }}"></script>
<script src="{{ url_for('static', filename='js/annotation_manager.js') }}?v={{ range(1, 10000) | random }}"></script>
<script src="{{ url_for('static', filename='js/time_navigator.js') }}?v={{ range(1, 10000) | random }}"></script>
<script src="{{ url_for('static', filename='js/training_controller.js') }}?v={{ range(1, 10000) | random }}"></script>
{% block extra_js %}{% endblock %}