diff --git a/CHANGELOG.md b/CHANGELOG.md index 656c7b4..60728d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,41 @@ This project follows [Semantic Versioning](https://semver.org/). --- +## v4.5.0 - 2026-02-15 + +### Added +- **Client-side search and pagination to logs view** + - Added search bar to filter log entries by keyword + - Added filter buttons to show all logs, activity logs, or security logs + - Added pagination controls with customizable page size (10, 25, 50, 100 entries per page) + - Log entries are now categorized as 'activity' or 'security' types for easy filtering +- **System theme auto-detection** + - Added "Auto (System)" option to theme menu + - Automatically detects dark/light mode preference via CSS `prefers-color-scheme` + - Dynamically switches theme when system preference changes + - Auto-detects system theme on first visit when no saved preference exists +- **Last login tracking** + - Added `last_login` column to user database + - Display last login timestamp in admin user management panel + - Automatically updates timestamp on successful login + - Shows "Never" for users who haven't logged in yet + +### Changed +- Enhanced logs.html template with interactive filtering and pagination controls +- Improved user experience when viewing large log files +- Updated theme.js with system theme detection and dynamic switching +- Updated manage_users.html to display last login information + +### Fixed +- Fixed scrolling issue on About, Logs, Tuner Management, and Manage Users pages + - Scoped overflow-y rule to guide page only to prevent breaking other pages +- Added database temp files (*.db-shm, *.db-wal) to .gitignore +- Fixed LOG_PATH permission issues in test environments +- Added accessibility improvements (aria-labels) to search inputs +- Added guard against division by zero in pagination logic + +--- + ## v4.4.0 - 2026-02-05 ### Added diff --git a/INSTALL.md b/INSTALL.md index b8eed00..2a94727 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ # Installation Guide -**Version:** v4.4.0 +**Version:** v4.5.0 **Last Updated:** 2026-02-05 --- diff --git a/README.md b/README.md index a0e2702..8f627d8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# 📺 RetroIPTVGuide v4.4.0 +# 📺 RetroIPTVGuide v4.5.0

- Version + Version GHCR diff --git a/ROADMAP.md b/ROADMAP.md index 215d980..a3f0094 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,7 +4,7 @@ This document tracks **planned upgrades** and ideas for improving the IPTV Flask These are **not yet implemented**, partially implemented, or completed in previous releases. --- -# Current Version: **v4.4.0 (2026-02-05)** +# Current Version: **v4.5.0 (2026-02-15)** ## 🔮 Feature Upgrades @@ -21,7 +21,7 @@ These are **not yet implemented**, partially implemented, or completed in previo ### 2. Logging & Monitoring - [ ] Move logs from flat file (`activity.log`) into **SQLite DB** for better querying. -- [ ] Add filtering and pagination in logs view. +- [x] Add filtering and pagination in logs view. *(v4.5.0)* - [ ] Add system health checks (tuner reachability, XMLTV freshness). - [x] Admin log management: clear logs + size indicator (v2.3.1). - [x] Post-install HTTP service verification in Pi installer (v3.1.0). @@ -45,7 +45,7 @@ These are **not yet implemented**, partially implemented, or completed in previo - [x] Add manage_users.html (v4.0.0) - [-] Role-based access control (basic admin-only gates exist, no RBAC roles). - [ ] Add email or 2FA support for login. -- [ ] Show last login time in admin panel. +- [x] Show last login time in admin panel. *(v4.5.0)* - [ ] User role/channel restrictions. --- @@ -58,11 +58,12 @@ These are **not yet implemented**, partially implemented, or completed in previo - [x] Modular CSS and JS added (v4.1.0). - [x] Introduced new JS modules: `auto-scroll.js`, `tuner-settings.js`. - [x] Mobile responsive layout and navigation (v4.2.0). -- [ ] Add dark/light theme auto-detect. +- [x] Add dark/light theme auto-detect. *(v4.5.0)* - [x] Frozen header timeline to prevent scrolling with channel listing (v4.3.0). - [x] About page under Settings menu (v2.3.1). - [x] Added new mobile-specific CSS and JS (v4.3.0). -- [x] Added new templates: change_tuner.html, manage_users.html, logs.html. (v4.3.0) +- [x] Added new templates: change_tuner.html, manage_users.html, logs.html. (v4.3.0) +- [x] Fixed scrolling on About, Logs, Tuner Management, and Manage Users pages. *(v4.5.0)* --- diff --git a/app.py b/app.py index 76c879e..86ecfe3 100644 --- a/app.py +++ b/app.py @@ -1,6 +1,6 @@ # app.py — merged version (features from both sources) -APP_VERSION = "v4.4.0" -APP_RELEASE_DATE = "2026-02-05" +APP_VERSION = "v4.5.0" +APP_RELEASE_DATE = "2026-02-15" from flask import Flask, render_template, request, redirect, url_for, flash, session, jsonify, abort from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user diff --git a/retroiptv_linux.sh b/retroiptv_linux.sh index 15c0897..fd9b88a 100644 --- a/retroiptv_linux.sh +++ b/retroiptv_linux.sh @@ -3,7 +3,7 @@ # License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) set -euo pipefail -VERSION="4.4.0" +VERSION="4.5.0" TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S") LOGFILE="retroiptv_${TIMESTAMP}.log" exec > >(tee -a "$LOGFILE") 2>&1 diff --git a/retroiptv_rpi.sh b/retroiptv_rpi.sh index da8e2ac..ee68a2e 100644 --- a/retroiptv_rpi.sh +++ b/retroiptv_rpi.sh @@ -1,5 +1,5 @@ #!/bin/bash -VERSION="4.4.0" +VERSION="4.5.0" # RetroIPTVGuide Raspberry Pi Installer (Headless, Pi3/4/5) # Installs to /home/iptv/iptv-server for consistency with Debian/Windows # Logs to /var/log/retroiptvguide/install-YYYYMMDD-HHMMSS.log diff --git a/retroiptv_windows.bat b/retroiptv_windows.bat index eb2ab0a..81e4245 100644 --- a/retroiptv_windows.bat +++ b/retroiptv_windows.bat @@ -3,7 +3,7 @@ mode con: cols=160 lines=50 REM ============================================================ REM RetroIPTVGuide Windows Unified Installer / Uninstaller -REM Version: v4.4.0 +REM Version: v4.5.0 REM License: Creative Commons BY-NC-SA 4.0 REM ============================================================ @@ -31,7 +31,7 @@ if /i "%choice%"=="Y" ( :continue setlocal -set "VERSION=4.4.0" +set "VERSION=4.5.0" set "REPO_URL=https://github.com/thehack904/RetroIPTVGuide.git" set "ZIP_URL=https://github.com/thehack904/RetroIPTVGuide/archive/refs/heads/main.zip" set "INSTALL_DIR=%~dp0RetroIPTVGuide" diff --git a/retroiptv_windows.ps1 b/retroiptv_windows.ps1 index a306f31..4bf98e7 100755 --- a/retroiptv_windows.ps1 +++ b/retroiptv_windows.ps1 @@ -1,7 +1,7 @@ <# RetroIPTVGuide Windows Installer/Uninstaller Filename: retroiptv_windows.ps1 -Version: 4.4.0 +Version: 4.5.0 License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International https://creativecommons.org/licenses/by-nc-sa/4.0/ @@ -55,7 +55,7 @@ if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdent $ErrorActionPreference = 'Stop' $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8' -$VERSION = "4.4.0" +$VERSION = "4.5.0" $ScriptDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Path Set-Location $ScriptDir