Commit graph

2571 commits

Author SHA1 Message Date
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
SergeantPanda
bdcc865b9d Bug Fix: Fixed NumPy baseline detection in Docker entrypoint. Now properly detects when NumPy crashes on import due to CPU baseline incompatibility and installs legacy NumPy version. Previously, if NumPy failed to import, the script would skip legacy installation assuming it was already compatible.
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
Base Image Build / prepare (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
2026-01-30 16:35:56 -06:00
SergeantPanda
fca50e1570 changelog: Update changelog for UV PR. 2026-01-30 15:40:33 -06:00
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