SergeantPanda
0bc4c40400
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into dev
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-03-10 11:12:53 -05:00
SergeantPanda
d89ee4c214
Merge branch 'main' of https://github.com/Dispatcharr/Dispatcharr into dev
2026-03-10 11:12:46 -05:00
SergeantPanda
f678c4e663
Add pull request template for improved contribution guidelines
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
2026-03-10 11:08:03 -05:00
SergeantPanda
0516f4c857
Add contributing guidelines to the repository
2026-03-10 10:59:07 -05:00
SergeantPanda
d473b9325d
Merge pull request #1082 from nick4810:tests/frontend-unit-tests
...
Tests/frontend unit tests
2026-03-10 09:00:54 -05:00
Nick Sandstrom
5add51c337
Minor refactors for readability
2026-03-09 14:13:30 -07:00
Nick Sandstrom
aeb6997541
Added tests for cards/ components
2026-03-09 14:12:59 -07:00
Nick Sandstrom
7a0e396bc0
Merge remote-tracking branch 'upstream/dev' into test/component-cleanup
2026-03-09 14:04:35 -07:00
SergeantPanda
f75a3134fa
tests: More failed test fixes...
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-03-08 21:55:23 -05:00
SergeantPanda
fa143aac41
tests: More frontend test fixes.
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-03-08 21:19:19 -05:00
SergeantPanda
4e66363565
tests: Update frontend tests after sidebar changes.
2026-03-08 21:10:53 -05:00
SergeantPanda
e4ba7b6d20
Merge pull request #943 from CodeBormen/Feature/854-Add-Ability-to-sort-Channels-by-Group
...
feat: Add sorting by Group and EPG columns to Channels and Streams ta…
2026-03-08 19:01:44 -05:00
SergeantPanda
1c6e9bbf04
changelog: Added clarification about api abilities prior to PR.
2026-03-08 19:00:44 -05:00
SergeantPanda
5f80ab08b6
changelog: Update changelog for table sorting pr.
2026-03-08 18:54:28 -05:00
SergeantPanda
ff2d11a199
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/943
2026-03-08 18:50:38 -05:00
SergeantPanda
7899901936
Enhancement: Channels page default splitter ratio changed from 50/50 to 60/40 (channels/streams) so all channel action buttons are visible without scrolling on 1080p displays.
2026-03-08 18:48:20 -05:00
SergeantPanda
39865d3732
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/943
2026-03-08 18:04:11 -05:00
SergeantPanda
95c2589594
Merge pull request #922 from jcasimir/ui-navigation
...
Add configurable navigation ordering and visibility
2026-03-08 17:23:33 -05:00
SergeantPanda
ac71458729
changelog: Update changelog for navigation ordering PR
2026-03-08 17:08:52 -05:00
SergeantPanda
70a0b43c8a
Cleanup frontend and backend if valid item ids change.
2026-03-08 17:05:26 -05:00
SergeantPanda
76d980dcee
Bug Fix: onLogout is not defined, use logout from auth store
2026-03-08 16:36:36 -05:00
SergeantPanda
63234a4a46
Bug Fix: Restore integrations/system groups and fix channels reference after rebase
2026-03-08 16:35:34 -05:00
SergeantPanda
72e4ce0813
tests: Add a check that a user can not self elevate.
2026-03-08 16:30:50 -05:00
SergeantPanda
0070e66dd1
Bug Fix: Fix double merge race condition in auth.jsx
2026-03-08 16:30:49 -05:00
SergeantPanda
d5aaa0277c
security: Do not allow user to give themselves admin or super_user privileges.
2026-03-08 16:30:48 -05:00
SergeantPanda
1a9d2e2777
Remove double error notifications.
2026-03-08 16:30:47 -05:00
SergeantPanda
a4ad9a9135
Move python test into tests folder. Fix frontend test after merge changes.
2026-03-08 16:30:47 -05:00
SergeantPanda
cde39c0e13
Fixed logic with default orders.
2026-03-08 16:30:42 -05:00
SergeantPanda
678240da6e
Move navigation settings under ui settings
2026-03-08 16:29:38 -05:00
Jeff Casimir
8fb88827ae
Fix code review findings for navigation ordering PR
...
P1 (Critical):
- Replace undefined @swagger_auto_schema with @extend_schema
- Add custom_properties validation with size limits
- Add merge semantics in serializer update() to prevent data loss
P2 (Important):
- Add debouncing (800ms) for drag operations in NavOrderForm
- Add error handling with notifications for visibility toggle
- Use store getters in Sidebar instead of direct property access
- Cache hiddenNav before render loop
P3 (Nice-to-have):
- Add canHide: false to settings nav item
- Fix admin check to use >= instead of ==
- Fix ESLint unused variable warnings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:28:29 -05:00
Jeff Casimir
ed117661b5
Add ability to hide navigation items
...
- Add eye icon toggle to show/hide nav items in settings panel
- Hidden items stay in position but are dimmed with eye-slash icon
- Sidebar filters out hidden items
- Settings item cannot be hidden
- Reset to Default also clears hidden items
- Add getHiddenNav and toggleNavVisibility to auth store
- Update tests for visibility toggle feature
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:28:28 -05:00
Jeff Casimir
adc28551a6
Integrate configurable navigation into Settings and Sidebar
...
- Add Navigation accordion section to Settings page
- Update Sidebar to use getOrderedNavItems() with user's saved order
- Sidebar updates immediately when order changes
- Add test coverage for Navigation settings section
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:28:02 -05:00
Jeff Casimir
e2205fb454
Add NavOrderForm component for drag-and-drop nav ordering
...
- Drag-and-drop reorderable list using dnd-kit
- Auto-saves on drop with optimistic update
- Reset to Default button restores role-based defaults
- Shows only items available to user's role
- Add test coverage for admin and non-admin users
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:25:51 -05:00
Jeff Casimir
e876d6e926
Add navigation preference methods to auth store
...
- Add updateMe() API method for PATCH requests to /me/
- Add getNavOrder() to retrieve saved navigation order
- Add setNavOrder() to persist navigation order changes
- Add updateUserPreferences() with optimistic updates and rollback
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:25:49 -05:00
Jeff Casimir
0e34415493
Add centralized navigation configuration
...
- Extract nav item definitions into config/navigation.js
- Define NAV_ITEMS with id, label, icon, path, adminOnly for each item
- Add DEFAULT_ADMIN_ORDER and DEFAULT_USER_ORDER arrays
- Create getOrderedNavItems() helper for custom ordering
- Handle missing items by appending to end of saved order
- Add comprehensive test coverage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:25:47 -05:00
Jeff Casimir
edf81ef6c6
Add PATCH method to /me/ endpoint for user preferences
...
- Allow users to update their own profile via PATCH /api/accounts/users/me/
- Supports partial updates to custom_properties (including navOrder)
- Add comprehensive test coverage for the endpoint
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 16:25:47 -05:00
SergeantPanda
76271fc9fd
Bug Fix: Version update notification persisting after upgrading to the notified version (e.g. "v0.20.2 available" shown while already running v0.20.2). Root cause: check_for_version_update.delay() was called from AppConfig.ready(), which fires inside Celery prefork pool subprocesses before the broker connection is established, causing the dispatch to fail silently with no log output. Fixed by moving the startup dispatch to the worker_ready signal in celery.py (consistent with the existing recover_recordings_on_startup pattern), and deleting the stale version-{current_version} notification at the top of the production check path so it is cleared even when GitHub is unreachable. A WebSocket update is sent immediately on deletion so the frontend badge clears without waiting for the API response.
2026-03-08 13:38:18 -05:00
SergeantPanda
0a658007ac
Merge pull request #1062 from JCBird1012:1061
...
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
fix: guard is_adult parsing against invalid values
2026-03-08 12:03:11 -05:00
SergeantPanda
b61f3f970d
changelog: Update changelog for parse_is_adult PR.
2026-03-08 12:02:28 -05:00
SergeantPanda
ea9f4f4bbd
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/JCBird1012/1062
2026-03-08 12:00:46 -05:00
SergeantPanda
dfb91db987
Bug Fix: VOD orphan cleanup crashing with a ForeignKeyViolation (IntegrityError) when a concurrent refresh task created a new M3UMovieRelation or M3USeriesRelation for a movie/series between the orphan-detection query and the DELETE SQL. Both orphaned_movies.delete() and orphaned_series.delete() are now wrapped in try/except IntegrityError; affected records are skipped with a warning and will be cleaned up on the next scheduled run.
2026-03-08 11:56:52 -05:00
SergeantPanda
753bc1a893
fix(stream-preview): restore stream_name and stream_stats for stream previews
...
Stream.get_stream() was never called in the preview path of
generate_stream_url(), so the channel_stream and stream_profile
Redis keys were never written. This caused the stream_id to be
missing from channel metadata, which silently broke two things:
- Stats page showed no stream name or logo
- stream_stats were never saved to the database
Fix: replace the manual profile-selection loop in the preview path
with a direct call to Stream.get_stream(), matching the channel path
exactly. This also fixes a pre-existing non-atomic slot reservation
(read-then-check vs INCR-first) that could over-allocate connections
on concurrent previews.
Regression introduced in 49b7b9e2 .
2026-03-08 11:46:31 -05:00
SergeantPanda
c0d70767e6
changelog: Add credit to @patchy8736 for contributions that came from his closed PR.
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-03-07 18:39:41 -06:00
SergeantPanda
9876a25e62
Bug Fix: XC stream refresh crashing with a null value in column "name" database error when a provider returns streams with a null or empty name. Affected streams are now assigned a generated fallback name in the format <account name> - <stream_id> so the refresh completes successfully and the stream remains accessible. A warning is logged for each affected stream.
2026-03-07 18:33:17 -06:00
SergeantPanda
639b3ea4af
Merge pull request #1022 from nickgerrer:bugfix/uwsgi-read-timeout-pr
...
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
fix: resolve 504 timeout on M3U group settings save via bulk DB operations
2026-03-06 17:26:11 -06:00
SergeantPanda
7e5e539aac
changelog: add entry for bulk M3U group settings upsert fix
2026-03-06 17:24:54 -06:00
SergeantPanda
3d27161755
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nickgerrer/1022
2026-03-06 17:22:44 -06:00
SergeantPanda
f53dd7e016
Revert "fix: add configurable uwsgi_read_timeout to fix 504 timeout on large M3U imports ( fixes #745 )"
...
This reverts commit 6f54910986 .
2026-03-06 17:21:07 -06:00
SergeantPanda
ebd112eeb2
changelog: Added reference to issue for PG version check.
2026-03-06 16:29:55 -06:00
SergeantPanda
aa02658c73
Merge pull request #1052 from CodeBormen:fix/1045-modular-postgres-check
...
Fix modular mode deployment issues (#1045 )
2026-03-06 16:22:11 -06:00