diff --git a/AppImage/scripts/build_appimage.sh b/AppImage/scripts/build_appimage.sh index bbf806ca..36db3a9c 100644 --- a/AppImage/scripts/build_appimage.sh +++ b/AppImage/scripts/build_appimage.sh @@ -98,6 +98,7 @@ cp "$SCRIPT_DIR/notification_events.py" "$APP_DIR/usr/bin/" 2>/dev/null || echo cp "$SCRIPT_DIR/flask_notification_routes.py" "$APP_DIR/usr/bin/" 2>/dev/null || echo "⚠️ flask_notification_routes.py not found" cp "$SCRIPT_DIR/oci_manager.py" "$APP_DIR/usr/bin/" 2>/dev/null || echo "⚠️ oci_manager.py not found" cp "$SCRIPT_DIR/flask_oci_routes.py" "$APP_DIR/usr/bin/" 2>/dev/null || echo "⚠️ flask_oci_routes.py not found" +cp "$SCRIPT_DIR/oci/description_templates.py" "$APP_DIR/usr/bin/" 2>/dev/null || echo "⚠️ description_templates.py not found" echo "📋 Adding translation support..." cat > "$APP_DIR/usr/bin/translate_cli.py" << 'PYEOF' diff --git a/AppImage/scripts/health_monitor.py b/AppImage/scripts/health_monitor.py index bfeb73eb..5ec041ac 100644 --- a/AppImage/scripts/health_monitor.py +++ b/AppImage/scripts/health_monitor.py @@ -1177,8 +1177,9 @@ class HealthMonitor: existing['status'] = 'CRITICAL' # Append detail if different new_detail = val.get('reason', '') - if new_detail and new_detail not in existing.get('detail', ''): - existing['detail'] = f"{existing['detail']}; {new_detail}".strip('; ') + existing_detail = existing.get('detail', '') + if new_detail and new_detail not in existing_detail: + existing['detail'] = f"{existing_detail}; {new_detail}".strip('; ') continue # Don't add raw disk error entry, we'll add consolidated later # Non-disk entries go directly to checks @@ -1306,25 +1307,26 @@ class HealthMonitor: model = disk_info.get('model', '') # Get worst_health from persistence + current_status = error_info.get('status', 'WARNING') try: health_status = health_persistence.get_disk_health_status(device_name, serial if serial else None) worst_health = health_status.get('worst_health', 'healthy') # Final health = max(current, worst) health_order = {'healthy': 0, 'ok': 0, 'warning': 1, 'critical': 2} - current_level = health_order.get(error_info['status'].lower(), 1) + current_level = health_order.get(current_status.lower(), 1) worst_level = health_order.get(worst_health.lower(), 0) if worst_level > current_level: # worst_health is worse, use it final_status = worst_health.upper() else: - final_status = error_info['status'] + final_status = current_status except Exception: - final_status = error_info['status'] + final_status = current_status # Build detail string with serial/model if available - detail = error_info['detail'] + detail = error_info.get('detail', error_info.get('reason', 'Unknown error')) if serial and serial not in detail: detail = f"{serial} - {detail}" diff --git a/AppImage/scripts/oci/description_templates.py b/AppImage/scripts/oci/description_templates.py index c340d808..64ea6493 100644 --- a/AppImage/scripts/oci/description_templates.py +++ b/AppImage/scripts/oci/description_templates.py @@ -190,7 +190,7 @@ def generate_vm_description(

{vm_name}

-

Created with ProxMenuX

+

Created with ProxMenux

{version_html} diff --git a/AppImage/scripts/oci_manager.py b/AppImage/scripts/oci_manager.py index b8fc3ff7..63194901 100644 --- a/AppImage/scripts/oci_manager.py +++ b/AppImage/scripts/oci_manager.py @@ -925,7 +925,7 @@ def _generate_html_description(app_def: Dict, container_def: Dict, hostname: str

{app_name}

-

Created with ProxMenuX

+

Created with ProxMenux