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
-
+
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