Files
2025-12-02 16:27:21 +00:00

67 lines
2.2 KiB
Python

#!/usr/bin/env python3
import json
with open('/home/mdares/.node-red/flows.json', 'r') as f:
flows = json.load(f)
# JavaScript code to add initial load and tab refresh
graphs_refresh_code = '''
// Initial load and tab refresh for Graphs
scope.refreshGraphData = function() {
// Get current filter selection or default to 24h
var currentFilter = scope.currentFilter || '24h';
scope.send({
topic: 'fetch-graph-data',
action: 'fetch-graph-data',
payload: { range: currentFilter }
});
};
// Load data immediately on initialization
setTimeout(function() {
scope.refreshGraphData();
}, 500);
// Set up tab refresh interval (every 5 seconds when Graphs tab is visible)
scope.graphsRefreshInterval = setInterval(function() {
// Check if Graphs tab is visible
var graphsElement = document.querySelector('.graphs-wrapper');
if (graphsElement && graphsElement.offsetParent !== null) {
scope.refreshGraphData();
}
}, 5000);
// Cleanup on destroy
scope.$on('$destroy', function() {
if (scope.graphsRefreshInterval) {
clearInterval(scope.graphsRefreshInterval);
}
});
'''
for node in flows:
if node.get('id') == 'f3a4b5c6d7e8f9a0' and node.get('name') == 'Graphs Template':
template = node.get('format', '')
# Check if refresh code already exists
if 'refreshGraphData' in template:
print("⚠ Graph refresh code already exists - skipping")
else:
# Find a good place to insert - look for scope.gotoTab or similar initialization code
# If not found, insert before the closing </script> tag
script_close = template.rfind('</script>')
if script_close != -1:
# Insert before closing script tag
template = template[:script_close] + '\n' + graphs_refresh_code + '\n' + template[script_close:]
node['format'] = template
print("✓ Added initial load and tab refresh to Graphs Template")
else:
print("✗ Could not find </script> tag")
break
with open('/home/mdares/.node-red/flows.json', 'w') as f:
json.dump(flows, f, indent=4)
print("✓ flows.json updated")