Commit graph

1026 commits

Author SHA1 Message Date
SergeantPanda
874e981449 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nick4810/761 2025-12-26 12:37:57 -06:00
SergeantPanda
f5c6d2b576 Enhancement: Implement event-driven logo loading orchestration on Channels page
Introduce gated logo loading system that ensures logos render after both
ChannelsTable and StreamsTable have completed their initial data fetch,
preventing visual race conditions and ensuring proper paint order.

Changes:
- Add `allowLogoRendering` flag to logos store to gate logo fetching
- Implement `onReady` callbacks in ChannelsTable and StreamsTable
- Add orchestration logic in Channels.jsx to coordinate table readiness
- Use double requestAnimationFrame to defer logo loading until after browser paint
- Remove background logo loading from App.jsx (now page-specific)
- Simplify fetchChannelAssignableLogos to reuse fetchAllLogos
- Remove logos dependency from ChannelsTable columns to prevent re-renders

This ensures visual loading order: Channels → EPG → Streams → Logos,
regardless of network speed or data size, without timer-based hacks.
2025-12-26 12:30:08 -06:00
SergeantPanda
5481b18d8a
Merge pull request #779 from damien-alt-sudo/feature/ui-network-access-clientip 2025-12-24 15:39:31 -06:00
Damien
bfca663870 Feature: Add client_ip response from settings check api to UI 2025-12-24 19:30:03 +00:00
SergeantPanda
44a122924f advanced filtering for hiding disabled channels and viewing only empty channels
Some checks are pending
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
(cherry picked from commit ea38c0b4b8)
Closes #182
2025-12-23 17:37:38 -06:00
Nick Sandstrom
9c9cbab94c Reverted lazy load of StreamsTable 2025-12-23 12:27:29 -08:00
drnikcuk
eea84cfd8b
Update Stats.jsx (#773)
* Update Stats.jsx

Adds fix for stats control arrows direction swap
2025-12-22 17:33:26 -06:00
Nick Sandstrom
1029eb5b5c Table length checking if data is already set 2025-12-19 19:19:04 -08:00
nick4810
63daa3ddf2
Merge branch 'dev' into enhancement/component-cleanup 2025-12-19 16:35:26 -08:00
Nick Sandstrom
4cd63bc898 Reverted LoadingOverlay 2025-12-19 16:33:21 -08:00
SergeantPanda
20182c7ebf
Merge branch 'main' into dev 2025-12-19 17:53:06 -06:00
nick4810
097551ccf7
Merge branch 'dev' into enhancement/component-cleanup 2025-12-19 14:11:01 -08:00
Nick Sandstrom
22527b085d Checking if data has been fetched before displaying empty channels 2025-12-19 14:09:17 -08:00
SergeantPanda
944736612b Bug Fix: M3U profile form resets local state for search and replace patterns after saving, preventing validation errors when adding multiple profiles in a row 2025-12-19 15:49:18 -06:00
SergeantPanda
abc6ae94e5 Enhancement: Update SuperuserForm to include logo, version info, and improved layout 2025-12-19 10:44:39 -06:00
SergeantPanda
b83f12809f Enhancement: Add HEADER_HEIGHT and ERROR_HEIGHT constants for improved layout calculations in FloatingVideo component 2025-12-18 17:18:44 -06:00
SergeantPanda
73956924f5 Enhancement: Stream group as available hash option: Users can now select 'Group' as a hash key option in Settings → Stream Settings → M3U Hash Key, allowing streams to be differentiated by their group membership in addition to name, URL, TVG-ID, and M3U ID 2025-12-18 15:26:08 -06:00
Dispatcharr
1510197bf0 Floating Video
Added handles on the corners of FloatingVideo to resize
2025-12-18 14:19:51 -06:00
Nick Sandstrom
2b1d5622a6 Setting User before fetch settings completes 2025-12-18 07:47:18 -08:00
Nick Sandstrom
bd148a7f14 Reverted Channels change for initial render 2025-12-18 07:46:21 -08:00
SergeantPanda
2558ea0b0b Enhancement: Add VOD client stop functionality to Stats page 2025-12-17 16:54:10 -06:00
Nick Sandstrom
2a0df81c59 Lazy loading components 2025-12-17 13:35:12 -08:00
Nick Sandstrom
1906c9955e Updated to default export 2025-12-17 13:34:53 -08:00
Nick Sandstrom
4c60ce0c28 Extracted Series and Movie components 2025-12-17 13:34:20 -08:00
Dispatcharr
865ba432d3 Updated url path
#697 Encode tvg_id for DVR series rule deletions
2025-12-16 23:06:49 -06:00
Dispatcharr
7ea843956b Updated FloatingVideo.jsx
Added resizing of the floating video
Fixed floating video dragging
2025-12-16 21:52:35 -06:00
Nick Sandstrom
36ec2fb1b0 Extracted component and util logic 2025-12-16 13:46:24 -08:00
Nick Sandstrom
dd75b5b21a Added correct import for Text component 2025-12-16 13:46:24 -08:00
Nick Sandstrom
38033da90f Fixed component syntax 2025-12-16 13:46:24 -08:00
Nick Sandstrom
7c45542332 Fixed cache_url fallback 2025-12-16 13:46:24 -08:00
Nick Sandstrom
6c1b0f9a60 Extracted component and util logic 2025-12-16 11:55:22 -08:00
Nick Sandstrom
ffd8d9fe6b Using util for getPosterUrl 2025-12-16 11:53:45 -08:00
Nick Sandstrom
0ba22df233 Updated Component syntax 2025-12-16 11:53:26 -08:00
SergeantPanda
4878e92f44
Merge pull request #488 from stlalpha/feature/automated-backups
Enhancement: Add automated configuration backups
2025-12-15 16:17:33 -06:00
Nick Sandstrom
3bf8ddf376 Removed unused imports 2025-12-15 09:19:54 -08:00
Nick Sandstrom
65dbc5498d Fixed handler arrow functions 2025-12-15 08:21:00 -08:00
Nick Sandstrom
85390a078c Removed unused imports 2025-12-15 07:48:24 -08:00
Jim McBride
662c5ff89a Reorganize simple mode backup scheduler layout
- Row 1: Frequency, Day (if weekly), Hour, Minute, Period (if 12h)
- Row 2: Retention, Save button
- Use wrap=nowrap to keep time selectors on same row
2025-12-13 18:49:36 -06:00
Jim McBride
1dc7700a62
Add timezone support for backup scheduling
- Set CrontabSchedule timezone to system timezone for accurate scheduling
  - Replace time TextInput with hour/minute Select dropdowns for cleaner UX
  - Remove UTC/local time conversion logic (handled by Celery)
  - Add tests for timezone functionality in simple and advanced modes
2025-12-13 13:27:56 -06:00
Nick Sandstrom
d97f0c907f Updated DVR for extracted logic 2025-12-13 06:33:28 -08:00
Nick Sandstrom
ae60f81314 Extracted DVR utils 2025-12-13 06:32:16 -08:00
Nick Sandstrom
bfcc47c331 Extracted DVR components 2025-12-13 06:31:56 -08:00
dekzter
c51916b40c
Revert "Advanced Filtering" 2025-12-12 08:30:17 -05:00
dekzter
ea38c0b4b8 advanced filtering for hiding disabled channels and viewing only empty channels 2025-12-11 11:54:41 -05:00
Nick Sandstrom
dd5ae8450d Updated pages to utilize error boundary 2025-12-10 22:31:04 -08:00
Nick Sandstrom
0070d9e500 Added ErrorBoundary component 2025-12-10 22:29:48 -08:00
Nick Sandstrom
aea888238a Removed unused pages 2025-12-10 21:38:46 -08:00
Nick Sandstrom
700d0d2383 Moved error logic to separate component 2025-12-10 20:38:28 -08:00
Jim McBride
795934dafe
Give Created column flexible width to prevent wrapping
Changed Created column from fixed size (160px) to flexible minSize (180px)
with whiteSpace: nowrap to ensure date/time displays on a single line.

The column can now expand as needed while maintaining readability of
timestamps in various date/time format combinations.
2025-12-09 08:58:38 -06:00
Jim McBride
3c76c72479
Add Enabled/Disabled label to Advanced toggle
Added dynamic label to the Advanced (Cron Expression) switch to match
the Scheduled Backups toggle above it.

Now displays:
  Scheduled Backups          [Enabled]
  Advanced (Cron Expression) [Enabled]

Provides consistent UI pattern and clearer status indication.
2025-12-09 08:38:57 -06:00