Commit graph

1026 commits

Author SHA1 Message Date
SergeantPanda
34a24b2e44 Added isLoading: false to fetchChannelIds and fix auth and channels tests. 2026-02-18 14:45:34 -06:00
SergeantPanda
c68d73fbdb Update DVR to not require group selection, use new channel summary endpoint. 2026-02-18 14:38:47 -06:00
SergeantPanda
8427ae0a2d tests: Update frontend tests for changes to channel store. 2026-02-18 14:12:03 -06:00
SergeantPanda
edc3fc951e Optimize now-line updates and scrolling performance in TVChannelGuide 2026-02-18 13:10:24 -06:00
SergeantPanda
3df259e06e Enhance program visibility in GuideRow with horizontal culling and buffer 2026-02-18 12:59:56 -06:00
SergeantPanda
15b4ec7be9 Slight performance increase for tv guide. 2026-02-18 12:11:21 -06:00
SergeantPanda
7db6aded22 add summary endpoint and lightweight channel summary retrieval for TV Guide 2026-02-18 11:51:41 -06:00
dekzter
1eeaefef85 use getChannels endpoint for fetching all instead of normal querying 2026-02-17 17:49:02 -05:00
dekzter
7c0ce190d2 'disabled' all view limitation for now (just set it really high) 2026-02-17 17:29:26 -05:00
dekzter
b24d51c2aa missed lots of places we used the old channels map, fixed them up 2026-02-17 17:28:59 -05:00
dekzter
f988506a79 missed channel memo 2026-02-17 16:23:54 -05:00
dekzter
cd6b3da8eb Merge remote-tracking branch 'origin/dev' into optimize-channels-store 2026-02-16 16:44:20 -05:00
SergeantPanda
b1cb70c5d2
Merge pull request #975 from Dispatcharr/connect
Feature: Connect
2026-02-16 15:27:56 -06:00
SergeantPanda
717cce92ec
Merge branch 'dev' into cron-scheduling 2026-02-16 10:55:33 -06:00
dekzter
055d2604ca better form validation 2026-02-15 07:36:29 -05:00
SergeantPanda
2c9f6d7360 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
dekzter
e030906cdd more supported events, better UI (columns) for events in connection editor 2026-02-13 12:20:40 -05:00
dekzter
f1d6b86278 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
dekzter
fe9854c522 more supported events 2026-02-12 19:28:43 -05:00
SergeantPanda
890992a9f9 feat(scheduling): add cron builder and refactor scheduling components (Closes #165)
Add cron expression support for M3U and EPG refreshes with interactive
builder modal and quick reference examples. Refactor backup scheduling
to use shared ScheduleInput component for consistency.

- New CronBuilder modal with preset buttons and custom field editors
- Info popover with common cron expression examples
- Shared ScheduleInput component for interval/cron toggle
2026-02-12 18:08:13 -06:00
dekzter
bc72ea7310 merged in dev 2026-02-11 19:51:21 -05:00
dekzter
e6ffeb19de added event support to plugins 2026-02-11 19:50:11 -05:00
SergeantPanda
631f3d4528 Switch to LF line endings and apply prettier formatting. 2026-02-09 17:01:35 -06:00
dekzter
24f812dc4d initial connect feature 2026-02-08 09:29:22 -05:00
Dispatcharr
78a53e03db Plugin fixes/updates
Some checks failed
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
Added password fields - #616
Fixed multiple GUI issues - #494
Adds some QoL upgrades
See CHANGELOG.md for more info
2026-02-05 20:05:29 -06:00
SergeantPanda
6fb4d42022
Merge pull request #894 from CodeBormen/Feature/771-Auto-Matching-Improvments
Feature/771 auto matching improvements
2026-02-03 10:20:45 -06:00
SergeantPanda
49a5feb671 test: refactor SettingsPage tests to use MemoryRouter for routing context 2026-02-03 09:41:40 -06:00
SergeantPanda
b01eb9585c feat: add system notifications and update checks
Real-time notifications for system events and alerts
Per-user notification management and dismissal
Update check on startup and every 24 hours to notify users of available versions
Notification center UI component
Automatic cleanup of expired notifications
2026-02-03 09:24:02 -06:00
None
6617ee4e66 Add Mantine component mocks to EPGMatchModal tests
Fixed failing EPGMatchModal tests by adding mocking for @mantine/core components

Follows existing test patterns from Settings.test.jsx
2026-02-01 00:23:20 -06:00
None
d7b98fef8d Add default/advanced mode toggle and test coverage for EPG matching
Enhanced EPG matching UX by adding radio button toggle to more clearly define optional advanced options. Also added test coverage for stability.

Frontend Changes:
- Added radio button UI to EPGMatchModal for default/advanced mode selection
- Default mode: Uses built-in normalization
- Advanced mode: Shows TagsInput fields for custom prefixes/suffixes/strings
- Mode persists across sessions and settings are preserved when switching modes

Test Coverage:
- Created EPGMatchModal.test.jsx with test cases covering:
  - Component rendering and mode switching
  - Form submission and settings persistence
  - Error handling and UI text variations

- Added test cases to SettingsUtils.test.js for EPG mode handling:
  - epg_match_mode routing to epg_settings group
  - Settings creation and preservation

Since advanced settings are saved persistently but ignored when default settings are used, this adds an easy way in the future to add additional advanced settings to EPG matching like  region influence, match aggression, and match preview, since users can easily switch between modes.
2026-01-31 23:11:20 -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.
Some checks failed
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
0172a7cc00 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/894 2026-01-31 19:47:57 -06:00
SergeantPanda
efe915a9b3
Merge pull request #904 from CodeBormen/Feature/866-Search-Filter-Sort-streams-by-TVG-ID
Feature/866 Add TVG-ID column with filter and sort to Streams table
2026-01-31 19:31:48 -06:00
SergeantPanda
aa1f627402 Enhancement: Refactored copyToClipboard utility function to include notification handling internally, eliminating duplicate notification code across the frontend. The function now accepts optional parameters for customizing success/failure messages while providing consistent behavior across all copy operations.
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
Frontend Tests / test (push) Waiting to run
2026-01-31 19:01:34 -06:00
SergeantPanda
e4b312d136 Enhancement: Requery channels and streams after rehashing completes 2026-01-31 14:44:52 -06:00
SergeantPanda
460a005c82 Adjusted minimum sizes, renamed source_info to stats for consistency.
Moved menu to far right.
2026-01-31 12:40:15 -06:00
None
4a4df14950 Add column visibility toggle and Source Info column to StreamsTable
- Add three-dot menu for toggling column visibility (Name, Group, M3U, TVG-ID, Source Info)
- Add Source Info column showing stream resolution and codec with detailed tooltip
- Column visibility persists to localStorage with proper migration handling for existing users
- Default hidden columns: TVG-ID, Source Info
- Auto-refresh table data when video preview closes to show updated stream stats
- Fix state spreading bug in CustomTable/index.jsx (was spreading options.state instead of state)

I think the people are gonna like this one!
2026-01-30 23:37:47 -06:00
None
f8ec970561 Add TVG-ID column with filter and sort to Streams table
Changes:

- frontend/src/components/tables/StreamsTable.jsx

Added TVG-ID column to streams table
Added search filter input in column header
Added sort button for ascending/descending order
Column follows same pattern as Name, Group, and M3U columns

- apps/channels/api_views.py

Added TVG-ID to filterable fields
Added TVG-ID to sortable fields
Enables backend support for search and sorting

Users can now view, search, and sort streams by their TVG-ID directly in the Streams table. Fulfills #866
2026-01-30 23:37:39 -06:00
None
ac48580e63 Move EPG match settings from Settings page to auto-match modal
Relocate EPG matching configuration (ignore prefixes, suffixes, and custom
strings) from the Settings page to a dedicated modal that opens when triggering auto-match.

Changes:

- frontend/src/components/modals/EPGMatchModal.jsx: Added new modal that combines EPG match settings configuration with the auto-match trigger.

- frontend/src/components/tables/ChannelsTable/ChannelTableHeader.jsx: 	Added EPGMatchModal import and state. Changed menu item to open modal instead of directly calling API. Removed inline matchEpg function (logic moved to modal)

- frontend/src/pages/Settings.jsx: Removed EPG Settings accordion (now accessible via modal)

- frontend/src/components/forms/settings/EPGSettingsForm.jsx: Deleted - functionality replaced by EPGMatchModal

- frontend/src/utils/forms/settings/EPGSettingsFormUtils.js: Deleted - was only used by EPGSettingsForm (now defunct)
2026-01-29 20:35:20 -06:00
None
325f8f4257 Merge remote-tracking branch 'upstream/dev' into Feature/771-Auto-Matching-Improvments 2026-01-29 19:24:44 -06:00
Matt Grutza
52b0c7ca26
Merge branch 'Dispatcharr:main' into Feature/771-Auto-Matching-Improvments 2026-01-29 18:22:09 -06:00
Nick Sandstrom
c8430760c4 Added tests after sync 2026-01-28 13:15:26 -08:00
Nick Sandstrom
04e2886ba5 Updated tests after sync 2026-01-27 16:09:01 -08:00
Nick Sandstrom
216e582a91 Merge remote-tracking branch 'upstream/dev' into test/component-cleanup 2026-01-27 13:43:11 -08:00
Nick Sandstrom
525ae60157 Removed functionality not implemented 2026-01-27 13:41:50 -08:00
Nick Sandstrom
cf1625fab9 Slight refactoring 2026-01-27 13:41:25 -08:00
Nick Sandstrom
bd4c9e1d95 Added unit tests 2026-01-27 13:39:04 -08:00
SergeantPanda
76c895f613 Security: Fixed moderate severity Prototype Pollution vulnerability in Lodash (_.unset and _.omit functions) See [GHSA-xxjr-mmjv-4gpg](https://github.com/advisories/GHSA-xxjr-mmjv-4gpg) for details.
Some checks failed
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
Frontend Tests / test (push) Has been cancelled
2026-01-26 17:37:50 -06:00
SergeantPanda
e2a915f10b Perf: lazy load editable cells on focus, not on unlock. Also don't wait for all channels to load before logging in. 2026-01-26 16:19:07 -06:00