Dispatcharr
c7e079959e
Merge branch 'dev' into Media-Server
2026-02-10 08:05:08 -06:00
SergeantPanda
631f3d4528
Switch to LF line endings and apply prettier formatting.
2026-02-09 17:01:35 -06:00
SergeantPanda
dc51ab4dd1
Enhancement: Added a "Reset to Defaults" button to the Network Access settings form, matching the functionality in Proxy Settings. Users can now quickly restore recommended network access settings with one click.
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Frontend Tests / test (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-01-31 20:35:48 -06:00
SergeantPanda
3c556494c1
Enhancement: Updated default network access settings for M3U and EPG endpoints to only allow local/private networks by default (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, ::1/128, fc00::/7, fe80::/10). This improves security by preventing public internet access to these endpoints unless explicitly configured. Other endpoints (Streams, XC API, UI) remain open by default.
2026-01-31 20:26:45 -06:00
SergeantPanda
e22e003be9
Data loading and initialization refactor: Major performance improvement reducing initial page load time by eliminating duplicate API requests caused by race conditions between authentication flow and route rendering:
...
- Fixed authentication race condition where `isAuthenticated` was set before data loading completed, causing routes to render and tables to mount prematurely
- Added `isInitialized` flag to delay route rendering until after all initialization data is loaded via `initData()`
- Consolidated version and environment settings fetching into centralized settings store with caching to prevent redundant calls
- Implemented stale fetch prevention in ChannelsTable and StreamsTable using fetch version tracking to ignore outdated responses
- Fixed filter handling in tables to use `debouncedFilters` consistently, preventing unnecessary refetches
- Added initialization guards using refs to prevent double-execution of auth and superuser checks during React StrictMode's intentional double-rendering in development
- Removed duplicate version/environment fetch calls from Sidebar, LoginForm, and SuperuserForm by using centralized store
2026-01-25 19:46:34 -06:00
SergeantPanda
cbcf2ac3c2
Bug fix: - Fixed date/time formatting across all tables to respect user's UI preferences (time format and date format) set in Settings page:
...
- Stream connection card "Connected" column
- VOD connection card "Connection Start Time" column
- M3U table "Updated" column
- EPG table "Updated" column
- Users table "Last Login" and "Date Joined" columns
- All components now use centralized `format()` helper from dateTimeUtils for consistency
- Removed unused imports from table components for cleaner code
2026-01-19 20:07:31 -06:00
SergeantPanda
d33d047a94
Enhancement: - Mature content filtering support:
...
- Added `is_adult` boolean field to both Stream and Channel models with database indexing for efficient filtering and sorting
- Automatically populated during M3U/XC refresh operations by extracting `is_adult` value from provider data
- Type-safe conversion supporting both integer (0/1) and string ("0"/"1") formats from different providers
- UI controls in channel edit form (Switch with tooltip) and bulk edit form (Select dropdown) for easy management
- XtreamCodes API support with proper integer formatting (0/1) in live stream responses
- Automatic propagation from streams to channels during both single and bulk channel creation operations
- Included in serializers for full API support
- User-level content filtering: Non-admin users can opt to hide mature content channels across all interfaces (web UI, M3U playlists, EPG data, XtreamCodes API) via "Hide Mature Content" toggle in user settings (stored in custom_properties, admin users always see all content)
2026-01-17 15:00:28 -06:00
Dispatcharr
339d4e9058
Merge branch 'dev' into Media-Server
2026-01-16 14:07:24 -06:00
SergeantPanda
10169b96c0
feat: Implement table header pin toggle and refactor table preferences management ( Closes #663 )
...
- Added functionality to pin/unpin table headers, maintaining visibility while scrolling. This feature is accessible via the channel table menu and UI Settings page, with persistence across sessions.
- Refactored table preferences management by migrating `table-size` preference to a centralized `useTablePreferences` hook, enhancing maintainability and consistency across table components.
2026-01-15 13:40:13 -06:00
Dispatcharr
ed66d3dff5
Merge branch 'dev' into Media-Server
2026-01-15 10:49:36 -06:00
SergeantPanda
36967c10ce
Refactor CoreSettings to use JSONField for value storage and update related logic for proper type handling. Adjusted serializers and forms to accommodate new data structure, ensuring seamless integration across the application.
2026-01-13 12:18:34 -06:00
SergeantPanda
2a3d0db670
Enhancement: Loading feedback for all confirmation dialogs: Extended visual loading indicators across all confirmation dialogs throughout the application. Delete, cleanup, and bulk operation dialogs now show an animated dots loader and disabled state during async operations, providing consistent user feedback for backups (restore/delete), channels, EPGs, logos, VOD logos, M3U accounts, streams, users, groups, filters, profiles, batch operations, and network access changes.
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
2026-01-12 13:53:44 -06:00
SergeantPanda
719a975210
Enhancement: Visual stale indicators for streams and groups: Added is_stale field to Stream and both is_stale and last_seen fields to ChannelGroupM3UAccount models to track items in their retention grace period. Stale groups display with orange buttons and a warning tooltip, while stale streams show with a red background color matching the visual treatment of empty channels.
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Has been cancelled
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI Pipeline / create-manifest (push) Has been cancelled
2026-01-09 14:57:07 -06:00
SergeantPanda
bc19bf8629
Remove "removeTrailingZeros" prop from the Channel Edit Form
2026-01-04 20:45:52 -06:00
SergeantPanda
16bbc1d875
Refactor forms to use react-hook-form and Yup for validation
...
- Replaced Formik with react-hook-form in Logo, M3UGroupFilter, M3UProfile, Stream, StreamProfile, and UserAgent components.
- Integrated Yup for schema validation in all updated forms.
- Updated form submission logic to accommodate new form handling methods.
- Adjusted state management and error handling to align with react-hook-form's API.
- Ensured compatibility with existing functionality while improving code readability and maintainability.
2026-01-04 20:40:16 -06:00
Dispatcharr
cd1ac0daea
Updated Media Scanning
...
Replace delete alerts with confirmation modals and hide libraries immediately while deletion runs (Settings + Libraries).
Improve scan UX by handling unknown discovery totals and counting artwork only for shows/movies.
Tighten scan/metadata behavior with better cancellation handling, optional remote metadata, and stronger NFO parsing/episode matching.
Autosize the media detail modal scroll area for smoother viewing.
2026-01-03 21:03:11 -06:00
SergeantPanda
3f46f28a70
Bug Fix: Auto Channel Sync Force EPG Source feature not properly forcing "No EPG" assignment - When selecting "Force EPG Source" > "No EPG (Disabled)", channels were still being auto-matched to EPG data instead of forcing dummy/no EPG. Now correctly sets force_dummy_epg flag to prevent unwanted EPG assignment. ( Fixes #788 )
2026-01-02 15:22:25 -06:00
Nick Sandstrom
2e0aa90cd6
Merge remote-tracking branch 'upstream/dev' into enhancement/component-cleanup
2026-01-02 08:33:06 -08:00
Nick Sandstrom
7b1a85617f
Minor changes
...
Exporting UiSettingsForm as default
Reverted admin level type check
2025-12-31 13:12:24 -08:00
Nick Sandstrom
a6361a07d2
Extracted component and util logic
2025-12-31 13:12:24 -08:00
Nick Sandstrom
ca96adf781
Extracted notification util
2025-12-27 22:45:48 -08:00
Nick Sandstrom
61247a452a
Extracted component and util logic
2025-12-27 22:45:48 -08:00
SergeantPanda
af88756197
Merge pull request #761 from nick4810/enhancement/component-cleanup
...
Enhancement/component cleanup
2025-12-26 16:08:49 -06:00
SergeantPanda
bc3ef1a3a9
Bug Fix: M3U and EPG manager page no longer crashes when a playlist references a deleted channel group (Fixes screen blank on navigation)
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
2025-12-26 14:58:02 -06:00
nick4810
097551ccf7
Merge branch 'dev' into enhancement/component-cleanup
2025-12-19 14:11:01 -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
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
Nick Sandstrom
36ec2fb1b0
Extracted component and util logic
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
bfcc47c331
Extracted DVR components
2025-12-13 06:31:56 -08:00
SergeantPanda
759569b871
Enhancement: Add a priority field to EPGSource and prefer higher-priority sources when matching channels. Also ignore EPG sources where is_active is false during matching, and update serializers/forms/frontend accordingly.( Closes #603 , #672 )
2025-12-05 09:54:11 -06:00
SergeantPanda
c1d960138e
Fix: Bulk channel editor confirmation dialog now shows the correct stream profile that will be set.
2025-12-05 09:02:03 -06:00
SergeantPanda
b791190e3b
Enhancement: Add scrollable modal support for M3UFilters and M3UProfiles components to improve usability on mobile devices.
2025-11-28 12:05:08 -06:00
SergeantPanda
1d23ed3685
Enhancement: Allow scrolling when edit m3u account modal is open on mobile.
2025-11-28 11:10:11 -06:00
SergeantPanda
fb084d013b
Bug Fix: Filter out non-existent channel groups in M3UGroupFilter component. This fixes a bug where if a group was removed and you attempt to edit an m3u before the frontend was notified, the webui would go blank.
2025-11-25 14:51:41 -06:00
SergeantPanda
e7700b60f3
Enhancement: Add validation for EPG objects and payloads in updateEPG functions to prevent errors from invalid data
2025-11-21 15:10:54 -06:00
SergeantPanda
827501c9f7
Better spacing for version text.
2025-11-14 18:00:08 -06:00
SergeantPanda
23e2814fe7
Enhancement: Add loading state and dynamic text to submit buttons in Channel forms. Also remove old unused "Channels.jsx" form
2025-11-14 17:52:57 -06:00
SergeantPanda
a3be679acf
Enhancement: Add loading state to login button for better user feedback
2025-11-14 16:52:26 -06:00
SergeantPanda
7321a6d7f8
Enhancement: Allow saving password to local storage.
2025-11-14 16:42:40 -06:00
SergeantPanda
761ee42396
Enhancement: Add version to login form.
2025-11-14 16:02:10 -06:00
SergeantPanda
6dab5e3cf3
Enhancement: Add "Remember Me" checkbox to login for that will save the current username to local storage.
2025-11-14 15:25:56 -06:00
SergeantPanda
b2a041c7c4
Enhancement: Add forgot password link to login form with instructions on how to properly reset a forgotten password.
2025-11-14 15:18:57 -06:00
SergeantPanda
575b764487
Refactor LoginForm: Enhance UI with logo, updated title, and improved layout for better user experience.
2025-11-14 15:06:33 -06:00
SergeantPanda
325c836510
Merge pull request #625 from 0x53c65c0a8bd30fff/force-epg-menu-alphabetical-sorting
2025-11-14 13:51:08 -06:00
SergeantPanda
0360292b94
Refactor LoginForm: Restore navigation effect and streamline login handling. Also remove "Loading..." from M3U & EPG Manager that would clear forms during initial login.
2025-11-14 12:00:22 -06:00
0x68732f6e69622fff
ed86eb2274
Ensures that in the groups section of M3U playlist management, the EPG Source dropdown for the 'Force EPG Source' option displays entries sorted alphabetically by name
2025-11-06 14:29:13 +00:00
SergeantPanda
e6146e5243
Bug fix: Reduce websocket message size when processing epgs. Also remove unnecessary console logging during epg refresh. Fixes [Bug]: Page goes blank if sending too many requests / responses
...
Fixes #327
2025-11-04 18:23:45 -06:00