Dispatcharr/frontend/src/components/forms
None 759688390b fix(dvr): fix series episode list, card layout, rule cleanup, and recording resilience
Backend:
- Add terminal status guard to stop() endpoint -prevents overwriting completed/interrupted/failed with "stopped" (returns 409 Conflict)
- Include currently-airing programs in series rule evaluation by filtering on end_time instead of start_time
- Clean up future recordings when deleting a series rule while preserving previously recorded episodes
- Add logo proxy negative cache to prevent repeated requests to unreachable hosts from blocking Daphne workers
- Add URL validation with HEAD-then-GET fallback and per-worker cache
- Add EPG time-slot matching (80% overlap threshold) to enrich manual recordings with program metadata
- Add multi-source poster resolution pipeline (EPG, VOD, TMDB, OMDb, TVMaze, iTunes) with URL validation at each stage
- Add editable recording metadata endpoint with user_edited flag to prevent EPG auto-overwrite
- Add refresh-artwork endpoint to re-run poster resolution on demand
- Batch-fetch PeriodicTask names in schedule_upcoming to avoid N+1

Frontend:
- Fix series modal showing only one episode — preserve _group_count from categorized prop when merging with store version so the episode list renders correctly
- Fix recording card button positioning — use flex column layout with marginTop auto so buttons align at the bottom regardless of content
- Add delete fallback in RecurringRuleModal for orphaned recordings from deleted rules
- Use end_time filter in upcoming episodes list to include currently-airing episodes
- Add inline metadata editing (title/description) in details modal
- Add refresh artwork button in details modal
- Replace hardcoded /logo.png fallbacks with imported default logo
- Add React.memo with custom comparator to RecordingCard

Tests:
- Add 21 EPG time-slot matching tests (overlap threshold, edge cases)
- Add 16 recording metadata tests (validation, artwork, logo cache)
- Add 17 URL validation tests (HEAD/GET fallback, caching, eviction)
2026-03-04 10:21:03 -06:00
..
settings 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. 2026-01-31 20:35:48 -06:00
AccountInfoModal.jsx Enhance M3U profile management: add optional notes field, improve validation for default profiles, and update UI to display notes where applicable. 2025-09-10 17:26:18 -05:00
AssignChannelNumbers.jsx more user management features and bug fixes 2025-05-21 15:33:54 -04:00
Channel.jsx Enhancement: - Mature content filtering support: 2026-01-17 15:00:28 -06:00
ChannelBatch.jsx refactored frontend usage of 'all channels' to only pull down IDs, query for individual channels as necessary 2026-02-13 11:46:17 -05:00
ChannelGroup.jsx Applied our Prettier formatting to all frontend code. 2025-08-31 09:50:37 -05:00
Connection.jsx updated template with example jinja 2026-02-26 14:08:01 -05:00
CronBuilder.jsx feat(scheduling): add cron builder and refactor scheduling components (Closes #165) 2026-02-12 18:08:13 -06:00
DummyEPG.jsx Enhancement: Reorganized the form into collapsible accordion sections (Pattern Configuration, Output Templates, Upcoming/Ended Templates, Fallback Templates, EPG Settings) for better organization. Field descriptions now appear in info icon popovers instead of taking up vertical space, making the form more compact and easier to navigate while keeping help text accessible. 2026-02-17 13:15:19 -06:00
EPG.jsx feat(scheduling): add cron builder and refactor scheduling components (Closes #165) 2026-02-12 18:08:13 -06:00
GroupManager.jsx 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. 2026-01-12 13:53:44 -06:00
LiveGroupFilter.jsx Enhancement: For auto channel sync, allow using provider number, fixed start number or next available. (Closes #956, #433) 2026-02-13 14:34:22 -06:00
LoginForm.jsx Bug fix: Login form disabled after token expiry: The login button was permanently rendered as disabled ("Logging you in...") on page load after a session expired, preventing users from logging back in. A regression in v0.20.0 caused LoginForm to check if (user) to detect an already-authenticated reload, but the Zustand auth store initializes user as a truthy empty object { username: '', email: '', user_level: '' }, so the loading state was set immediately on every mount. Reverted to pre-regression behavior. (Fixes #1029) 2026-02-26 15:27:35 -06:00
Logo.jsx Refactor forms to use react-hook-form and Yup for validation 2026-01-04 20:40:16 -06:00
M3U.jsx Merge pull request #946 from CodeBormen/fix/945-XC-profile-refresh-extract-wrong-credentials 2026-02-16 16:04:53 -06:00
M3UFilter.jsx Fix frontend saving case sensitive setting as json string. 2025-09-21 10:06:53 -05:00
M3UFilters.jsx 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. 2026-01-12 13:53:44 -06:00
M3UGroupFilter.jsx Refactor forms to use react-hook-form and Yup for validation 2026-01-04 20:40:16 -06:00
M3UProfile.jsx Refactor forms to use react-hook-form and Yup for validation 2026-01-04 20:40:16 -06:00
M3UProfiles.jsx 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. 2026-01-12 13:53:44 -06:00
ProgramRecordingModal.jsx fix(dvr): add recording extend, fix cross-recording interference, artwork race, and keepalive gaps 2026-03-04 10:21:02 -06:00
Recording.jsx Update DVR to not require group selection, use new channel summary endpoint. 2026-02-18 14:38:47 -06:00
RecordingDetailsModal.jsx fix(dvr): fix series episode list, card layout, rule cleanup, and recording resilience 2026-03-04 10:21:03 -06:00
RecurringRuleModal.jsx fix(dvr): fix series episode list, card layout, rule cleanup, and recording resilience 2026-03-04 10:21:03 -06:00
ScheduleInput.jsx feat(scheduling): add cron builder and refactor scheduling components (Closes #165) 2026-02-12 18:08:13 -06:00
SeriesRecordingModal.jsx Switch to LF line endings and apply prettier formatting. 2026-02-09 17:01:35 -06:00
Stream.jsx Refactor forms to use react-hook-form and Yup for validation 2026-01-04 20:40:16 -06:00
StreamProfile.jsx Enhancement/BugFix: 2026-02-19 15:51:08 -06:00
SuperuserForm.jsx 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: 2026-01-25 19:46:34 -06:00
User.jsx Merge branch 'dev' into Feature/954-1004-user-account-management 2026-02-24 14:49:31 -06:00
UserAgent.jsx Refactor forms to use react-hook-form and Yup for validation 2026-01-04 20:40:16 -06:00
VODCategoryFilter.jsx Enhancement: Add auto-enable settings for new groups and categories in M3U and VOD components 2025-10-09 15:28:37 -05:00