Commit Graph
310 Commits
Author SHA1 Message Date
Claude fc72c84b3c Fix session lockout being interrupted by rotation
Critical fix:
- Rotation now pauses completely when session is locked
- Previously rotation would continue running in background while lockout screen displayed
- This caused the lockout screen to disappear after ~1 minute when rotation occurred
- Added sessionLocked check to rotation logic (line 3888)
- Added sessionLocked check to inactivity prompt logic (line 3836)
- Password lockout screen now stays visible until correct password is entered
2025-11-17 00:05:03 +00:00
Claude 6a285cc5a5 Fix v0.9.9: Menu reorganization and inactivity popup fixes
Major improvements:
- Moved Session Lockout configuration from Sites menu to Core Settings menu
  - Now accessible as option 7 in Core Settings for easier access
  - Removed from Sites menu to reduce clutter

- Fixed critical inactivity popup bug on rotation sites
  - Popup now appears on ALL sites where user has interacted
  - Previously only worked on manual (0-timed) sites
  - Inactivity check now happens BEFORE rotation check
  - Prevents sites from rotating away before popup can appear
  - Rotation pauses while inactivity prompt is displayed

Version bump: v0.9.8 → v0.9.9
2025-11-17 00:01:47 +00:00
outis1one 68839149a7 Merge pull request #4 from outis1one/claude/fix-ui-addon-loading-019pwrrwUcVr7L13Mj4ELkKu
Fix v0.9.8 UI improvements and bug fixes
2025-11-16 18:06:28 -05:00
Claude 57ad896a27 Fix v0.9.8 UI improvements and bug fixes
This commit addresses multiple user-reported issues:

1. UI Improvements:
   - Replace box-drawing characters (╔ ╗) with simple equals signs (=)
   - Updated addon status display header
   - Updated timer logging format
   - Updated Squeezelite audio fix header

2. Performance Optimization:
   - Removed redundant systemctl calls from show_addon_status()
   - Addon status now uses fast file-based checks only
   - Eliminates slow service status queries that delayed menu display

3. Password Lock Feature Visibility:
   - Added session lockout configuration to initial setup flow
   - Users can now set password protection during first-time configuration
   - Previously only available in edit menu after setup

4. Return to Rotation (RTR) Popup Fix:
   - Fixed RTR popup not appearing on rotation sites
   - Removed requirement for Home URL to be configured
   - Inactivity prompt now works with or without Home URL
   - When typing on rotation site, popup appears after inactivity timeout
   - "Return to Rotation" works correctly in both configurations

Bug fixes ensure expected behavior across all use cases.
2025-11-16 22:54:01 +00:00
outis1one 3a8e969d8d Merge pull request #3 from outis1one/claude/review-features-013n4p1tkxg6yqcqft3pdqoq-01QzXyegqWrFRC2iJiDQGcbk
Claude/review features 013n4p1tkxg6yqcqft3pdqoq 01 qz xyegq wr frc2i ji dq gcbk
2025-11-16 17:08:32 -05:00
Claude 4cc1646738 Implement consistent Return to Rotation UX across all sites
This update provides a unified, predictable inactivity prompt behavior
regardless of how the user navigated to a page.

Changes:
- Added userInteractedWithCurrentSite flag to track user touch on each site
- Modified markActivity() to set flag when user interacts (tap, swipe, scroll)
- Modified attachView() to clear flag when site changes
- Updated inactivity check to use interaction flag instead of navigation mode

New Behavior (Consistent UX):

 Scenario A: Auto-rotation to recipe → user taps → prompt after timeout
   - Site auto-rotates to recipe page
   - User taps screen to scroll/interact
   - userInteractedWithCurrentSite = true
   - After 2 min idle → prompt appears
   - User can extend time or return to rotation

 Scenario B: User swiping through photos every 30 seconds
   - Each swipe resets inactivity timer via markActivity()
   - No prompt appears (user is actively interacting)
   - Prompt only appears after they stop swiping for timeout period

 Scenario C: Sites auto-rotating with no user interaction
   - userInteractedWithCurrentSite = false on each site
   - No prompt appears
   - Rotation continues normally

Technical Details:
- Single-finger swipes (in-page content): Reset timer via markActivity()
- Two-finger swipes (tab navigation): Also sets manualNavigationMode
- Both types of interaction trigger the flag
- Flag cleared on every site change (auto or manual)
- If manual swipe, markActivity() re-sets it immediately

Use Cases:
- Recipe viewing: User can interact with page, get timeout prompt, extend time
- Photo browsing: Continuous swiping prevents timeout
- Digital signage: No interaction = no prompt = smooth rotation
- MagicMirror modules: Single-finger swipes keep resetting timer

This provides the consistent UX requested where ANY user interaction
on ANY site enables the inactivity prompt logic.
2025-11-16 21:44:36 +00:00
Claude 785c74b0d1 Update v0.9.8: Rename "Return to Home" to "Return to Rotation"
Changed the inactivity prompt behavior based on user feedback:

Changes:
- Renamed button from "🏠 Return to home now" to "🔄 Return to rotation"
- Reverted inactivity check to work on ALL pages (including home screen)
- Updated returnToHome() function comments to clarify rotation behavior

Behavior:
- Inactivity prompt now appears on home screen AND other pages
- If user is viewing a recipe (or any page), they can extend time
- Clicking "Return to Rotation":
  * If NOT on home page: goes to home page first, then starts rotation
  * If on home page: just starts the rotation
- This allows users to get "30 extra minutes" before touching the screen
  with dirty hands (e.g., when following a recipe)

Use Case:
User navigates to a recipe on menu app, inactivity prompt appears,
they can click "30 more minutes" to read the recipe without any
further screen interaction needed.
2025-11-16 20:22:52 +00:00
Claude d586792108 Release v0.9.8 - Password Lock & Bug Fixes
This release adds password-protected session lockout and fixes several
reported bugs from v0.9.9.1 testing.

New Features:
- Password-protected session lockout
  * Configurable lockout password (separate from sudo user)
  * Auto-lock after configurable timeout (default 30 minutes)
  * Black lockout screen with password prompt
  * Session unlocks with correct password
  * New "Configure Session Lockout" menu option

Bug Fixes:
- Fixed return-to-home popup appearing on home screen
  * Popup now only appears on timed sites
  * Home screen no longer triggers inactivity prompt
  * Updated logic: only check inactivity when NOT on home page

- Fixed site edit menu flow
  * Edit site URL function now returns properly to menu
  * Added explicit return statement to prevent bail
  * Added blank line for better UX

Version Updates:
- Updated to semantic versioning: v0.9.8
- Updated all version references in header and script
- Updated changelog with new features and fixes

Technical Changes:
- Added LOCKOUT_ENABLED, LOCKOUT_PASSWORD, LOCKOUT_TIMEOUT config vars
- Created lockout.html template with black screen and password entry
- Added lockout state tracking in main.js
- Implemented showLockout() and hideLockout() functions
- Added unlock-session IPC handler
- Integrated lockout check into master timer
- Updated save_config() to persist lockout settings
- Updated loadConfig() to load lockout settings

Addresses user feedback from testing:
- Time extensions now work correctly
- Return to home popup fixed
- Site edit menu no longer bails
2025-11-16 18:56:07 +00:00
outis1one 673d2d7124 Add files via upload 2025-11-16 10:51:18 -05:00
outis1one 738a2a038b Add files via upload 2025-11-14 16:52:06 -05:00