46 Commits

Author SHA1 Message Date
Matt Walsh
30ec847ed5 Hide cursor in kiosk
via @iapetusz
2026-04-09 11:22:36 -05:00
Matt Walsh
6f97e3d2b9 add volume control slider and overhaul settings close #109 2025-11-10 12:54:54 -06:00
Matt Walsh
650dda7b61 allow for latLon only in query string #154 2025-10-21 04:12:21 +00:00
Mitchell Scott
93af84cbd8 fix: geolookup if only latLonQuery is provided 2025-10-20 13:37:18 -06:00
Matt Walsh
190e50e2f3 add debugging information to forecast info box 2025-08-11 22:15:16 -05:00
Eddy G
2a975d4d6d Fix auto-play logic for sticky kiosk mode
The previous logic only checked URL parameters for kiosk mode,
but sticky kiosk can enable kiosk mode from localStorage without
URL parameters. Now checks actual kiosk setting value.

Fix typo in scan line settings name.
2025-07-04 14:55:57 -04:00
Eddy G
67dfd7ec08 Add "Sticky Kiosk" setting that stores "Kiosk" mode when activate
- This setting is important to allow creation ofa Home Screen app on iOS/iPadOS
- If kiosk mode is accidentally made sticky, it can be cleared by adding '&kiosk=false` to the URL
- Ctrl-K will now also exit kiosk mode

This adds a `stickyRead` parameter to settings, that means "read it if it's there, but don't write it"
2025-07-02 08:11:52 -04:00
Eddy G
13621b6f46 Stop Mobile Safari from trying to auto-fill the location box
This change prevents the "No items to show" popup that obscures the first
couple suggested matches.
2025-07-02 08:11:52 -04:00
Eddy G
b49433f5ff Add responsive scaling; improve scanlines and Mobile Safari support
- Replace CSS zoom with CSS transform scaling for better mobile compatibility
- Implement wrapper-based scaling approach that includes both content and navigation bar
- Replace Almanac layout with CSS Grid for better cross-browser layout
- Greatly improve scanline algorithm to handle a wide variety of displays
- Add setting to override automatic scanlines to user-specified scale factor
- Remove scanline scaling debug functions
- Refactor settings module: initialize settings upfront and improve change handler declarations
- Enhance scanline SCSS with repeating-linear-gradient for better performance
- Add app icon for iOS/iPadOS
- Add 'fullscreen' event listener
- De-bounce 'resize' event listener
- Add 'orientationchange' event listener
- Implement three resize scaling algorithms:
  - Baseline (when no scaling is needed, like on the index page)
  - Mobile scaling (except Mobile Safari kiosk mode)
  - Mobile Safari kiosk mode (using manual offset calculations)
  - Standard fullscreen/kiosk mode (using CSS centering)
2025-07-02 00:22:06 -04:00
Eddy G
517cafe40a Refactor data loading: move from inline JSON to client-side fetch
- Remove large JSON data injection from EJS templates
- Add client-side data-loader utility with cache-busting support
- Create server endpoints for JSON data with long-term caching
- Add graceful failure handling if core data fails to load
- Copy JSON data files to dist/data for static hosting
- Update app initialization to load data asynchronously
- Set serverAvailable flag for static builds in gulp task

This reduces HTML payload size and enables better caching strategies
for both server and static deployment modes.
2025-06-26 20:10:15 -04:00
Eddy G
ebface1749 Add comment about not needing to use safeJson()
- Fix indentation in media.mjs
2025-06-24 23:53:44 -04:00
Eddy G
65944dc3b5 Add comprehensive responsive scanline scaling system with anti-aliasing
- Attempt pixel-perfect scanline rendering for scaled displays and zoom scenarios
- Implement dynamic scanline thickness calculation to prevent sub-pixel rendering issues
- Add enhanced kiosk detection via isKioskLike for better fullscreen optimization
- Optimize scanlines for specific kiosk resolutions (1024x768, 1023x767)
- Add responsive SCSS media queries for different display densities
- Include extensive debugging utilities for scanline troubleshooting
- Improve noSleep error handling with proper promise rejection handling
- Update to modern fullscreen API method names
- Add async/await error handling for fullscreen requests
- Trigger resize after fullscreen engagement to apply optimal scaling
2025-06-24 22:38:25 -04:00
Matt Walsh
1b9a1dcb22 don't clobber browser alt-left/right shortcuts 2025-05-29 23:08:04 -05:00
Matt Walsh
7efd2e8db7 add scanlines 2025-05-29 17:03:50 -05:00
Matt Walsh
a83afa71cd code cleanup 2025-05-29 08:30:01 -05:00
Matt Walsh
8cb8873760 add hooks for geoip lookup 2025-05-21 13:49:49 -05:00
Matt Walsh
7a129c1cd3 autocomplete cleanup 2025-05-16 11:17:35 -05:00
Matt Walsh
b031934022 autocomplete working 2025-05-13 13:57:50 -05:00
Matt Walsh
4cc2312ffd Merge branch 'main' into remove-jquery 2025-05-12 13:35:01 -05:00
Matt Walsh
f0166ec2df removed existing auto-reload 2025-03-24 22:57:30 -05:00
Matt Walsh
1983d025a4 only load custom.js if present 2025-03-24 22:55:07 -05:00
Matt Walsh
c7eb56f60c non-jquery autocomplete, needs more keyboard integration 2024-10-21 23:03:34 -05:00
Matt Walsh
e2d7a96971 linting cleanup 2024-10-21 19:21:05 -05:00
Matt Walsh
94249560f2 hide mouse cursor in full screen after timeout 2024-07-11 16:06:43 -05:00
Matt Walsh
c5f5c101f9 clean up full screen enter/exit close #48 2024-07-07 21:14:07 -05:00
Matt Walsh
240cc416b2 complete kiosk mode and permalink close #33 2024-04-12 16:16:01 -05:00
Matt Walsh
eb69df8b80 set display checkboxes (todo widescreen, refresh) 2024-04-12 00:03:21 -05:00
Matt Walsh
941bcacfad generate and parse querystring 2024-04-11 23:42:51 -05:00
Matt Walsh
53ad8eb317 add "share" link 2024-01-08 10:12:52 -06:00
Matt Walsh
bf8bd2ff46 add images and widescreen cleanup close #32 2023-12-19 23:43:37 -06:00
Matt Walsh
3743c45de6 additional eslint rules 2023-01-06 14:39:39 -06:00
Matt Walsh
a440990696 update top form html and css 2022-12-21 16:20:31 -06:00
Matt Walsh
5d891fb38f switch to 2x image sizes 2022-12-19 15:21:38 -06:00
Matt Walsh
97e0fda709 key navigation 2022-12-19 11:48:59 -06:00
Matt Walsh
7cf9dd6466 almanac delivers data when disabled 2022-12-19 11:27:02 -06:00
Matt Walsh
111f077e20 add hazards 2022-12-14 16:28:33 -06:00
Matt Walsh
4c1481abaf filter stations that do not have usable data 2022-12-13 16:31:18 -06:00
Matt Walsh
5fd79f0b19 remember gps setting on load 2022-12-13 15:43:06 -06:00
Matt Walsh
e5a18ea073 index.ejs cleanup 2022-12-12 14:47:53 -06:00
Matt Walsh
c3e38b4077 remove geoquery when there's a saved location 2022-12-12 14:13:39 -06:00
Matt Walsh
5edf5cc947 cleanup 2022-12-08 15:05:51 -06:00
Matt Walsh
1a7734b620 add hourly graph 2022-12-07 15:36:02 -06:00
Matt Walsh
8e6fd04b3a remove metric 2022-12-06 16:25:28 -06:00
Matt Walsh
6933e7b7f1 modular 2022-12-06 16:14:56 -06:00
Matt Walsh
cc61d2c6d1 weather displays complete 2022-11-22 16:19:10 -06:00
Matt Walsh
6e2abf6720 index module 2022-11-22 10:45:17 -06:00