Commit graph

709 commits

Author SHA1 Message Date
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
6c8270d0e5 Enhancement: Add support for 'extracting' status and display additional progress information in EPGsTable 2025-12-04 15:28:21 -06:00
SergeantPanda
5fce83fb51 style: Adjust table header and input components for consistent width 2025-12-03 17:13:50 -06:00
SergeantPanda
81b6570366 Fix name not sorting. 2025-12-03 17:03:58 -06:00
SergeantPanda
042612c677 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/bobey6/707 2025-12-03 16:49:21 -06:00
Jim McBride
e64002dfc4
Refactor BackupManager to match app table conventions 2025-12-02 22:19:20 -06:00
Jim McBride
70cf8928c4
Use CustomTable component for backup list 2025-12-02 22:01:59 -06:00
Jim McBride
3f9fd424e2
Update backup feature based on PR feedback
- Simplify to database-only backups (remove data directory backup)
- Update UI to match app styling patterns:
  - Use ActionIcon with transparent variant for table actions
  - Match icon/color conventions (SquareMinus/red.9, RotateCcw/yellow.5, Download/blue.5)
  - Use standard button bar layout with Paper/Box/Flex
  - Green "Create Backup" button matching "Add" pattern
  - Remove Card wrapper, Alert, and Divider for cleaner layout
  - Update to Mantine v8 Table syntax
- Use standard ConfirmationDialog (remove unused color prop)
- Update tests to remove get_data_dirs references
2025-12-02 19:33:27 -06:00
SergeantPanda
f1320c9a5d Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/stlalpha/488 2025-12-02 13:39:06 -06:00
SergeantPanda
be0409bfc2 Add referrorpolicy to Youtube iframe's for series and VOD modals. 2025-12-01 18:21:19 -06:00
root
cf08e54bd8 Fix sorting functionality for Group and M3U columns
- Add missing header properties to group and m3u columns
- Fix layout issues with sort buttons (proper flex layout, remove blocking onClick)
- Fix sorting state initialization (use boolean instead of empty string)
- Fix sorting comparison operators (use strict equality)
- Fix 3rd click behavior to return to default sort instead of clearing
- Map frontend column IDs to backend field names for proper API requests
2025-12-01 18:11:58 +00:00
GitHub Copilot
641dcfc21e Add sorting functionality to Group and M3U columns in Streams table
- Added m3u_account__name to backend ordering_fields in StreamViewSet
- Implemented field mapping in frontend to convert column IDs to backend field names
- Added sort buttons to both Group and M3U columns with proper icons
- Sort buttons show current sort state (ascending/descending/none)
- Maintains consistent UX with existing Name column sorting
2025-11-30 19:20:25 +00: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
Jim McBride
3fb18ecce8 Enhancement: Respect user's 12h/24h time format preference in backup scheduler
- Read time-format setting from UI Settings via useLocalStorage
- Show 12-hour time input with AM/PM selector when user prefers 12h
- Show 24-hour time input when user prefers 24h
- Backend always stores 24-hour format (no API changes)
2025-11-27 08:49:29 -06:00
Jim McBride
3eaa76174e Feature: Automated configuration backups with scheduling
- Create/Download/Upload/Restore database backups (PostgreSQL and SQLite)
- Configurable data directory backups (via settings.py)
- Scheduled backups (daily/weekly) via Celery Beat
- Retention policy (keep last N backups)
- Token-based auth for async task polling
- X-Accel-Redirect support for nginx file serving
- Comprehensive tests
2025-11-26 21:11:13 -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
8754839c81 Enhancement: Add search icon to name headers for the channels and streams tables. Closes #686 2025-11-25 13:45:25 -06:00
SergeantPanda
962d5e965b Enhancement: Hide drop-downs for the system event viewer when in the collapsed state and on a smaller display. 2025-11-25 10:04:52 -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
cb1953baf2 Enhancement: Implement comprehensive logging for user authentication events and network access restrictions 2025-11-21 10:50:48 -06:00
SergeantPanda
89a23164ff Enhancement: Add system event logging and viewer with M3U/EPG endpoint caching
System Event Logging:
- Add SystemEvent model with 15 event types tracking channel operations, client connections, M3U/EPG activities, and buffering events
- Log detailed metrics for M3U/EPG refresh operations (streams/programs created/updated/deleted)
- Track M3U/EPG downloads with client information (IP address, user agent, profile, channel count)
- Record channel lifecycle events (start, stop, reconnect) with stream and client details
- Monitor client connections/disconnections and buffering events with stream metadata

Event Viewer UI:
- Add SystemEvents component with real-time updates via WebSocket
- Implement pagination, filtering by event type, and configurable auto-refresh
- Display events with color-coded badges and type-specific icons
- Integrate event viewer into Stats page with modal display
- Add event management settings (retention period, refresh rate)

M3U/EPG Endpoint Optimizations:
- Implement content caching with 5-minute TTL to reduce duplicate processing
- Add client-based event deduplication (2-second window) using IP and user agent hashing
- Support HEAD requests for efficient preflight checks
- Cache streamed EPG responses while maintaining streaming behavior for first request
2025-11-20 17:41:06 -06:00
SergeantPanda
0700cf29ea Enhancement: Add copy link functionality to SeriesModal and VODModal, allowing users to easily copy episode and VOD links to clipboard with notifications for success or failure. 2025-11-14 20:13:40 -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
SergeantPanda
9a5e04af0e Better confirmation dialog messages for vod logo table. 2025-11-07 16:16:07 -06:00
SergeantPanda
6037c158f4 Fix header checkbox not clearing on bulk delete in logo tables. 2025-11-07 15:25:09 -06:00
SergeantPanda
860c671f8c Fix delete button not activating for vod logo table. 2025-11-07 15:05:43 -06:00
SergeantPanda
4701456a46 Enhancement: Force fetch all logos after logo cleanup. 2025-11-07 14:43:41 -06:00
SergeantPanda
da628705df Separate VOD and channel logos into distinct tables with dedicated management UI
- Created VODLogo model for movies/series, separate from Logo (channels only)
- Added database migration to create vodlogo table and migrate existing VOD logos
- Implemented VODLogoViewSet with pagination, filtering (used/unused/movies/series), and bulk operations
- Built VODLogosTable component with server-side pagination matching channel logos styling
- Added VOD logos tab with on-demand loading to Logos page
- Fixed orphaned VOD content cleanup to always remove unused entries
- Removed redundant channel_assignable filtering from channel logos
2025-11-07 13:19:18 -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
SergeantPanda
d15d8f6644 Bug Fix: Fix bug for the frontend custom dummy epg examples where DST was calculated on todays date instead of date of the event. 2025-11-01 14:08:36 -05:00
SergeantPanda
60f77c85da Enhancement: Support month strings for date parsing. 2025-10-31 14:08:07 -05:00
SergeantPanda
9d4fd63cde Enhancement: Add date placeholders for custom dummy EPG based on output and source timezones. Closes #597 2025-10-30 16:13:45 -05:00
SergeantPanda
0741e45ce6 Enhancement: Add custom fallback templates for dummy EPG generation to handle unmatched patterns 2025-10-30 14:57:32 -05:00
SergeantPanda
4284955412 Enhancement: Adds the ability to use an exisitng custom dummy epg as a template for a new epg. 2025-10-29 17:38:47 -05:00
SergeantPanda
c9d7e66545 Enhancement: Add {starttime_long} and {endtime_long} to custom dummy EPG. 2025-10-29 17:21:37 -05:00
SergeantPanda
28c211cd56 Enhancement: Add {endtime} as an available output for custom dummy epg. Convert {time} to {starttime}
Closes #590
2025-10-29 17:10:35 -05:00
SergeantPanda
3e2e704765 Enhancement: Add 'Include New Tag' option to mark programs as new in custom dummy EPG output 2025-10-25 11:47:54 -05:00
SergeantPanda
2042274f10 Enhancement: Bulk assign custom dummy epgs.
Enhancement: Display a dynamic warning dialog when saving batch channel edits that will display what will be changed.
2025-10-25 09:27:31 -05:00