63 lines
2.3 KiB
Python
63 lines
2.3 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 tab activation listener
|
|
tab_refresh_code = '''
|
|
// Phase 7: Tab activation listener - refresh data when returning to Home
|
|
scope.$on('$destroy', function() {
|
|
if (scope.tabRefreshInterval) {
|
|
clearInterval(scope.tabRefreshInterval);
|
|
}
|
|
});
|
|
|
|
// Request current state when tab becomes visible
|
|
scope.refreshHomeData = function() {
|
|
scope.send({ action: "get-current-state" });
|
|
};
|
|
|
|
// Poll for updates when on Home tab (every 2 seconds)
|
|
// This ensures UI stays fresh when returning from other tabs
|
|
scope.tabRefreshInterval = setInterval(function() {
|
|
// Only refresh if we're on the Home tab (check if element is visible)
|
|
var homeElement = document.getElementById('oee');
|
|
if (homeElement && homeElement.offsetParent !== null) {
|
|
scope.refreshHomeData();
|
|
}
|
|
}, 2000);
|
|
'''
|
|
|
|
# Find Home Template and add the tab refresh code
|
|
for node in flows:
|
|
if node.get('name') == 'Home Template':
|
|
template = node.get('format', '')
|
|
|
|
# Check if already has tab refresh code
|
|
if 'tabRefreshInterval' in template:
|
|
print("⚠ Tab refresh code already exists - skipping")
|
|
else:
|
|
# Find a good place to insert - after gotoTab function definition
|
|
goto_idx = template.find('scope.gotoTab = function(tabName)')
|
|
if goto_idx != -1:
|
|
# Find the end of the gotoTab function (closing brace and semicolon)
|
|
end_idx = template.find('};', goto_idx)
|
|
if end_idx != -1:
|
|
# Insert after the gotoTab function
|
|
insert_pos = end_idx + 2 # After '};'
|
|
template = template[:insert_pos] + '\n' + tab_refresh_code + template[insert_pos:]
|
|
|
|
node['format'] = template
|
|
print("✓ Added tab refresh listener to Home Template")
|
|
else:
|
|
print("✗ Could not find end of gotoTab function")
|
|
else:
|
|
print("✗ Could not find gotoTab function")
|
|
break
|
|
|
|
with open('/home/mdares/.node-red/flows.json', 'w') as f:
|
|
json.dump(flows, f, indent=4)
|
|
|
|
print("✓ flows.json updated")
|