#!/bin/bash

viewLogs()
{
    isHeader "View Logs for Installed Apps"
    
    # List installed apps and add them as numbered options
    local app_list=($(sqlite3 "$docker_dir/$db_file" "SELECT name FROM apps WHERE status = 1;"))
    for ((i = 0; i < ${#app_list[@]}; i++)); do
        isOption "$((i + 1)). View logs for ${app_list[i]}"
    done
    
    isOption "e. View libreportal.log"
    isOption "x. Exit"
    echo ""
    
    isQuestion "Enter your choice (1-${#app_list[@]}, e or 'x' to exit): "
    read -p "" log_choice
    
    case "$log_choice" in
        [1-9]|[1-9][0-9]|10)
            index=$((log_choice - 1))
            if [ "$index" -ge 0 ] && [ "$index" -lt "${#app_list[@]}" ]; then
                local app_name="${app_list[index]}"
                viewLogsAppMenu "$app_name"  # Call the app-specific menu
            else
                echo ""
                isNotice "Invalid app selection. Please select a valid app."
                viewLogs;
            fi
        ;;
        e)
            isNotice "Viewing libreportal.log:"
            $CFG_TEXT_EDITOR "$logs_dir/libreportal.log"
            viewLogs;
        ;;
        x)
            isNotice "Exiting"
        ;;
        *)
            isNotice "Invalid choice. Please select a valid option (1-${#app_list[@]}, e or 'x' to exit)."
            viewLogs;
        ;;
    esac
}
