Commit graph

2567 commits

Author SHA1 Message Date
SergeantPanda
45da11eb7b
Merge pull request #885 from tobimichael96/main
Refactor: Migrate to UV
2026-01-30 13:49:28 -06:00
SergeantPanda
256d19a2cc Move legacy numpy install to after init-dev. UV replaces. 2026-01-30 12:45:11 -06:00
SergeantPanda
68879ea933 Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/tobimichael96/885 2026-01-30 12:37:07 -06:00
SergeantPanda
a3ed1d9628 Refactor for uv transition. 2026-01-30 12:12:42 -06:00
SergeantPanda
71e117a850 Remove uv.lock and add to gitignore. This gets generated automatically during build anyway and would add confusion to users not using our container. 2026-01-29 17:24:41 -06:00
SergeantPanda
29c0a6e524 fix: update dependencies in pyproject.toml for compatibility 2026-01-29 17:02:02 -06:00
SergeantPanda
3a959c2743 Fixed pip download (uv doesn't have an equivalent) 2026-01-29 16:15:04 -06:00
SergeantPanda
573b7d12ab changelog: Update changelog for EPG Channel ID xml escaping.
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-29 13:26:16 -06:00
SergeantPanda
efec46ea96
Merge pull request #908 from CodeBormen:Fix/765-&-in-channel-TVG-ID-causes-Jellyfin-to-fail-import
fix/765: Escape XML special characters in EPG channel IDs
2026-01-29 13:17:05 -06:00
SergeantPanda
5f4e645a48 changelog: Update changelog for frontend tests/refactoring PR. 2026-01-29 13:12:08 -06:00
SergeantPanda
09a83ca7bb
Merge pull request #905 from nick4810:tests/frontend-unit-tests
Tests/frontend unit tests
2026-01-29 13:09:24 -06:00
None
37a2a7b52b fix: Escape XML special characters in EPG channel IDs
Fixed XML parsing errors in EPG output when channel IDs contain special
characters.

Changes:

- Added html.escape() to apps/output/views.py where
  channel_id is used in XML attributes

- Added unit tests in apps/output/tests.py to validate XML
  escaping for &, <, >, and " characters
2026-01-28 20:15:03 -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
5cb0b7dd3b Add pytz to requirements. Was included as a dependency of drf-yasg before.
Some checks failed
Base Image Build / prepare (push) Has been cancelled
CI Pipeline / prepare (push) Has been cancelled
Build and Push Multi-Arch Docker Image / build-and-push (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (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-27 14:52:12 -06:00
SergeantPanda
bd1e0e8f07 Bug fix: Admin URL Conflict with XC Streams: Updated nginx configuration to only redirect exact /admin and /admin/ paths to login in production, preventing interference with stream URLs that use "admin" as a username (e.g., /admin/password/stream_id now properly routes to stream handling instead of being redirected). 2026-01-27 14:36:57 -06:00
SergeantPanda
43f08c418d
Merge pull request #901 from Dispatcharr:drf-spectacular
Migrate API documentation from drf-yasg to drf-spectacular
2026-01-27 14:08:33 -06:00
SergeantPanda
5364123745 - Swagger/OpenAPI Migration: Migrated from drf-yasg (OpenAPI 2.0) to drf-spectacular (OpenAPI 3.0) for API documentation. This provides:
- Native Bearer token authentication support in Swagger UI - users can now enter just the JWT token and the "Bearer " prefix is automatically added
  - Modern OpenAPI 3.0 specification compliance
  - Better auto-generation of request/response schemas
  - Improved documentation accuracy with serializer introspection
2026-01-27 13:33:33 -06:00
SergeantPanda
8616933ad7 Replace drf-yasg pip with drf-spectactular 2026-01-27 13:17:59 -06:00
GitHub Actions
ddbda17ae4 Release v0.18.1 2026-01-27 17:06:41 +00:00
SergeantPanda
b55ed77516
Downgrade version from 0.18.1 to 0.18.0 2026-01-27 11:05:52 -06:00
SergeantPanda
967bb4d7be
Merge pull request #899 from Dispatcharr/dev
Update Series Rules API Swagger Documentation to include required ite…
2026-01-27 11:05:25 -06:00
SergeantPanda
e21a0217b8
Merge branch 'main' into dev 2026-01-27 11:05:18 -06:00
GitHub Actions
39ed48e0e5 Release v0.18.1 2026-01-27 16:57:57 +00:00
SergeantPanda
2abe07fe1c Update Series Rules API Swagger Documentation to include required items parameter for TYPE_ARRAY schemas 2026-01-27 10:56:04 -06:00
GitHub Actions
b5fedc1a6c Release v0.18.0 2026-01-27 16:44:10 +00:00
SergeantPanda
ed4fabd773
Downgrade version from 0.18.0 to 0.17.0 2026-01-27 10:41:28 -06:00
SergeantPanda
abdb9f53d6
Merge pull request #898 from Dispatcharr/dev
Docs: Added comprehensive Swagger/OpenAPI documentation for all serie…
2026-01-27 10:40:43 -06:00
GitHub Actions
9026ece87a Release v0.18.0 2026-01-27 16:38:36 +00:00
SergeantPanda
a505138e1a
Merge pull request #897 from Dispatcharr/dev
Dispatcharr  - v0.18.0
2026-01-27 10:38:06 -06:00
SergeantPanda
497bb819b9 Docs: Added comprehensive Swagger/OpenAPI documentation for all series-rules endpoints 2026-01-27 09:50:27 -06: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
SergeantPanda
716dc25c52 Enhancement: Prevent duplicate fetch requests in ChannelsTable and StreamsTable by tracking last fetch parameters and in-progress status 2026-01-25 21:14:44 -06:00
SergeantPanda
e0829719cd Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into dev 2026-01-25 20:56:48 -06:00
SergeantPanda
9440bbe2ab Performance: Removed unnecessary double wait that was causing fetching of channel data to not run in parallel. 2026-01-25 20:56:41 -06:00
SergeantPanda
596d4adb5b
Merge pull request #891 from Dispatcharr/Data-Loading-Refactor
Data loading and initialization refactor: Major performance improveme…
2026-01-25 19:48:38 -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
655760f652 When moving a channel down (higher number) don't increase channel numbers, decrease.
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-23 18:10:16 -06:00
SergeantPanda
22ecee4f85 Bug Fix: Fix No EPG filter on channels table. 2026-01-23 17:56:21 -06:00
SergeantPanda
e3122b1a1b Bug Fix: Fix reordering during drag and drop. 2026-01-23 17:31:46 -06:00
SergeantPanda
037b6e62e3
Merge pull request #886 from Dispatcharr/dynamic-tables
Editable Channel Table
2026-01-23 16:55:40 -06:00
SergeantPanda
86bc0e2843 changelog: Update verbiage on changelog for editable channel table and link to FR 333 2026-01-23 16:48:54 -06:00
SergeantPanda
5348a4a564 Feature: Editable Channel Table Mode:
- Added a robust inline editing mode for the channels table, allowing users to quickly edit channel fields (name, number, group, EPG, logo) directly in the table without opening a modal.
  - EPG and logo columns now support searchable dropdowns with instant filtering and keyboard navigation for fast assignment.
  - Drag-and-drop reordering of channels enabled when unlocked, with persistent order updates.
  - Group column now uses a searchable dropdown for quick group assignment, matching the UX of EPG and logo selectors.
  - All editable cells provide clear focus, hover, and disabled states for improved accessibility and usability.
  - Table unlock/edit mode toggle with clear visual cues and safe-guarded save logic to prevent accidental edits.
  - All changes are saved via API with optimistic UI updates and error handling.
2026-01-23 16:03:26 -06:00
Tobias Effner
c698916a60 feat: migrate to UV 2026-01-23 22:45:37 +01:00
SergeantPanda
d4f412e352 Bug Fix: Channels table pagination error handling: Fixed "Invalid page" error notifications that appeared when filters reduced the result set while on a page beyond the new total. The API layer now automatically detects invalid page errors, resets pagination to page 1, and retries the request transparently. (Fixes #864)
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-23 10:33:14 -06:00