Commit Graph
100 Commits
Author SHA1 Message Date
4gray f87a261fb1 refactor(playlist): replace mat-list-item with div for improved layout and styling consistency
Entire-Checkpoint: 271bd0162027
2026-03-29 23:51:21 +02:00
4gray 94e9a5119c refactor(styles): implement panel header mixins for consistent layout across components
Entire-Checkpoint: 84693b066142
2026-03-29 18:16:54 +02:00
4gray c073f174c3 refactor(effects): replace combineLatestWith with withLatestFrom for improved readability
Entire-Checkpoint: 84693b066142
2026-03-29 15:46:33 +02:00
4gray 8b0436dce8 style(dashboard): update thumbnail dimensions and border radii for improved visual consistency
Entire-Checkpoint: 84693b066142
2026-03-29 15:44:46 +02:00
4gray 379228e8c3 style(dashboard): refine background colors and remove backdrop filters for improved aesthetics
Entire-Checkpoint: 84693b066142
2026-03-29 15:30:02 +02:00
4gray cf311ddf6f refactor(e2e): update dialog interactions for playlist addition in tests
Entire-Checkpoint: 84693b066142
2026-03-29 15:28:02 +02:00
4gray 69bf106999 style(playlists): merge "add playlist" dialogs to one entrypoint dialog
Entire-Checkpoint: 84693b066142
2026-03-29 15:27:46 +02:00
4gray 3a66bf21a3 test(e2e): enhance Xtream category management and sorting with unique title handling 2026-03-29 13:37:48 +02:00
4gray 654e63de27 fix(database): implement deduplication for Xtream categories and content 2026-03-29 13:37:29 +02:00
4gray f9e25c9799 feat(xtream): add clear form button and functionality 2026-03-29 13:37:08 +02:00
4gray f6f3103794 feat(e2e): add tests for recent channels, settings persistence, and sources management
- Implemented tests for tracking recently viewed channels in M3U playlists, ensuring they persist across app restarts.
- Added functionality to manage Xtream and Stalker history, including support for clearing recent items.
- Enhanced settings tests to verify persistence of user preferences across app restarts, including language, video player, and theme settings.
- Created comprehensive tests for managing sources, including filtering, sorting, editing, and deleting M3U, Xtream, and Stalker sources.
- Introduced mock fixtures for Xtream and Stalker categories to facilitate testing.
2026-03-29 00:58:36 +01:00
4gray 23767e3a76 refactor(recent-playlists): simplify template structure and remove unused imports 2026-03-29 00:56:57 +01:00
4gray 2eb608992a test(e2e): streamline input handling in addStalkerPortal and enhance locator usage 2026-03-28 21:44:24 +01:00
4gray 83b6604c41 feat(routes): add M3uWorkspaceRouteSession providers for playlist routes 2026-03-28 21:44:00 +01:00
4gray 6c9a40d831 refactor: migrate from NgRx store to PlaylistContextFacade for playlist management
- Updated PlaylistErrorViewComponent to use PlaylistContextFacade for accessing the current playlist.
- Refactored StalkerSearchComponent to utilize PlaylistContextFacade for retrieving the active playlist.
- Modified StalkerWorkspaceRouteSession to sync route context using PlaylistContextFacade.
- Adjusted XtreamStore to remove NgRx store dependencies and use PlaylistContextFacade for current playlist access.
- Updated ChannelListContainerComponent to resolve playlist ID using PlaylistContextFacade.
- Refactored SidebarComponent and ToolbarComponent to eliminate NgRx store usage for playlist-related data.
- Enhanced unit tests in with-content.feature to ensure proper loading and cancellation of content imports.
2026-03-28 21:43:33 +01:00
4gray a20597ce4a refactor: remove unused imports and streamline playlist context handling in WorkspaceShellFacade 2026-03-28 21:43:08 +01:00
4gray ec4a4f48f4 feat(playlists): implement migration for Stalker playlist metadata and update Electron API integration 2026-03-28 21:42:40 +01:00
4gray 688d9ec123 fix(worker): implement worker runtime path resolution and native module loading 2026-03-28 21:42:19 +01:00
4gray 0c9fd18677 refactor: streamline playlist management and navigation logic 2026-03-28 21:41:49 +01:00
4gray 2bfa557438 ci(workflow): add verification step for packaged worker layout 2026-03-28 21:41:24 +01:00
4gray 1b224efb57 feat(packaging): add scripts to verify and launch packaged Electron app 2026-03-28 21:41:01 +01:00
4gray 85f08929e8 fix: update import paths for jest presets to include .js extension 2026-03-28 16:03:07 +01:00
4gray 0a80dd5050 test(jest): correct import path for nxPreset to include .js extension 2026-03-28 15:56:10 +01:00
4gray 48c6567971 feat(ci): add CI workflow for unit tests and typechecks 2026-03-28 15:48:24 +01:00
4gray b6110c52f6 feat(typings): enhance typings with new database operation types and parameters 2026-03-28 15:48:00 +01:00
4gray bf5a5bbe51 feat(scenarios): add stress catalog scenario for CI workload testing 2026-03-28 15:47:47 +01:00
4gray 04b0dd38e3 feat(portal-rail-links): update icons for M3U playlist links
feat(portal-activity-item): add PortalAddedItem interface for recently-added catalog items
2026-03-28 15:47:36 +01:00
4gray 70ed1df5ec refactor(xtream-code-import): remove error logging for connection testing 2026-03-28 15:47:23 +01:00
4gray 99d39a15e3 feat(playlists): add setPortalFavorites method to manage portal favorites 2026-03-28 15:47:04 +01:00
4gray 9cac0d4ffc feat(video-player): update sidebar width and simplify active view logic 2026-03-28 15:46:52 +01:00
4gray a884ef256c feat(routes): add routes for M3U favorites, recent pages, and global recent
feat(tests): implement tests for app routes and settings component
feat(settings): enhance remove all playlists functionality with loading state
fix(imports): update import paths for EpgProgressPanelComponent and ExternalPlayerInfoDialogComponent
2026-03-28 15:46:37 +01:00
4gray 78fb8a3858 feat(tests): add test stubs for IPTV playlist parser and player dialog component 2026-03-28 15:46:14 +01:00
4gray 7eaa9552e6 feat(playlists): remove unused removeAll$ effect and associated snackbar notification 2026-03-28 15:45:43 +01:00
4gray 3b617b9515 feat(i18n): enhance playlist update and removal messages in English, German, and Russian translations 2026-03-28 15:45:21 +01:00
4gray a17ed73806 feat(fonts): replace Google Fonts with bundled font imports and update typography settings 2026-03-28 15:45:06 +01:00
4gray c0849ad43b feat(m3u-collection-route): add M3uCollectionRouteComponent for unified collection page integration 2026-03-28 15:44:43 +01:00
4gray 4a7855895b feat(tests): update Jest configuration for ESM support and add new test setups for playlist-shared-ui 2026-03-28 15:44:17 +01:00
4gray 78de7dc125 chore(package): add unit test scripts and type checking commands; update font dependencies 2026-03-28 15:43:34 +01:00
4gray c62ee4ae45 feat(types): enhance ElectronDbOperationEvent interface and add optional operationId to relevant database methods 2026-03-28 15:43:15 +01:00
4gray 34eca1d495 feat(portal-status): add unit tests for PortalStatusService and enhance error handling 2026-03-28 15:42:27 +01:00
4gray d76287e63d feat(epg): implement timeout for channel program retrieval and refactor EPG list component with signals 2026-03-28 15:42:08 +01:00
4gray 145fe74781 feat(database): add index on content type and added fields, set busy timeout and journal mode for database initialization 2026-03-28 15:41:17 +01:00
4gray 70b4d29b4b feat(xtream): enhance portal features with improved state management and search functionality
- Added handling for missing expiration date in withPortal feature.
- Introduced request versioning in withSearch feature to prevent stale search results.
- Created test setup for Jest in data-access and feature libraries.
- Added Jest configuration and TypeScript configuration for testing in feature library.
- Removed GlobalRecentlyViewedComponent and its associated files to streamline the codebase.
- Updated search results component to ignore stale responses and improve search handling.
2026-03-28 15:40:53 +01:00
4gray 456173b772 feat(database): implement DatabaseWorkerClient and associated worker functionality
- Added DatabaseWorkerClient to manage database operations in a worker thread.
- Created database-worker-client.ts to handle requests and responses between the main process and the worker.
- Introduced database-worker.types.ts for type definitions related to worker messages and operations.
- Implemented database.worker.ts to execute various database operations, including CRUD operations for playlists, content, and favorites.
- Added database.worker-connection.ts to manage database connections and ensure proper handling of SQLite instances.
- Created tests for DatabaseWorkerClient to ensure correct request handling and error management.
- Updated xtream.events.ts to allow suppression of error logging for specific requests.
- Enhanced EPG parser worker to include a busy timeout for SQLite operations.
- Integrated shutdown logic for the DatabaseWorkerClient in the main application lifecycle.
2026-03-28 15:40:06 +01:00
4gray d2f3044ffa feat: enhance playlist item component with busy state management and UI feedback 2026-03-28 15:39:32 +01:00
4gray 5f6ae5c743 feat: add unit tests for UnifiedLiveTabComponent and UnifiedRecentDataService
- Implemented comprehensive unit tests for UnifiedLiveTabComponent to validate rendering and playback functionality.
- Created unit tests for UnifiedRecentDataService to ensure proper handling of recent items and playback recording.
- Enhanced the UnifiedRecentDataService with improved methods for managing M3U and Stalker recent items.
- Introduced new utility functions for extracting and normalizing data related to recent items.
2026-03-28 15:39:04 +01:00
4gray b73053ea5a feat: update channel selection logic by removing EPG service call 2026-03-28 15:38:43 +01:00
4gray 1677d709ff feat(m3u): refactor GroupsViewComponent with improved state management and UI updates 2026-03-28 15:38:19 +01:00
4gray 7cf00510d1 feat: update DialogService tests and add new test runner for ESM libraries 2026-03-28 15:37:59 +01:00
4gray 122a69047c feat: enhance global recent route handling with translation and import phase management 2026-03-28 15:37:08 +01:00
4gray f58a5c1290 feat: add recently added widget to dashboard with necessary imports and case handling 2026-03-28 15:36:41 +01:00
4gray 36c3d26559 feat: implement recently added widget with data mapping and default settings 2026-03-28 15:35:55 +01:00
4gray 43426114d6 feat: add recently added widget with filtering and view mode options 2026-03-28 15:35:19 +01:00
4gray 40039d6650 refractor: update recently viewed section text for clarity in English, German, and Russian translations
Entire-Checkpoint: 56d3e3141f61
2026-03-26 22:45:51 +01:00
4gray b1a873edaa feat: update EPG item description layout and increase dialog width for better visibility
Entire-Checkpoint: 56d3e3141f61
2026-03-26 19:26:01 +01:00
4gray cc11ddc9f9 feat: optimize category selection and sorting logic with early returns and state management improvements
Entire-Checkpoint: 56d3e3141f61
2026-03-26 19:25:19 +01:00
4gray d85ef89893 feat: enhance global favorites list and unified collection components with draggable functionality and improved layout
Entire-Checkpoint: 56d3e3141f61
2026-03-26 19:07:01 +01:00
4gray 34c2323216 feat: enhance EPG progress panel with minimized view and loading count display
Entire-Checkpoint: 1410dcc0c9ff
2026-03-26 16:01:58 +01:00
4gray 251b922659 style: update font sizes, weights, and letter-spacing for improved readability and consistency across various components
Entire-Checkpoint: e6dee91f3aee
2026-03-26 08:12:50 +01:00
4gray cd4121f798 chore: remove outdated workspace UI refactor summary documentation
Entire-Checkpoint: e6dee91f3aee
2026-03-26 08:11:49 +01:00
4gray 8e86bb77f3 style: update background and border styles using color-mix for improved theming
Entire-Checkpoint: 7a59119e1876
2026-03-25 21:29:29 +01:00
4gray 879f018a81 style: enhance theme and layout styles, improve accessibility labels, and refine component shadows
Entire-Checkpoint: 73c4b0ef53fd
2026-03-25 21:01:06 +01:00
4gray a987e10a59 feat: Implement global favorites list component with drag-and-drop support
- Added `GlobalFavoritesListComponent` to display and manage favorite channels.
- Integrated drag-and-drop functionality for reordering favorite channels.
- Created HTML and SCSS files for the global favorites list layout and styling.
- Implemented logic to handle empty states and search functionality within the favorites list.

feat: Enhance unified collection page with live and grid tabs

- Developed `UnifiedCollectionPageComponent` to manage different content types (live, movies, series).
- Added `UnifiedGridTabComponent` and `UnifiedLiveTabComponent` for displaying content in grid and live formats.
- Implemented loading states and empty states for better user experience.
- Integrated EPG (Electronic Program Guide) functionality for live channels.

style: Refactor styles for unified collection components

- Updated SCSS styles for `UnifiedGridTabComponent` and `UnifiedLiveTabComponent` to improve layout and responsiveness.
- Added skeleton loading states for better visual feedback during data fetching.

fix: Improve scrolling behavior in category view component

- Adjusted scrolling logic in `CategoryViewComponent` to ensure selected categories are centered in the view.

Entire-Checkpoint: 0e4488af6c76
2026-03-25 19:20:59 +01:00
4gray 8874e4a17e feat(groups-view): add search functionality to filter grouped channels
feat(recent-view): implement search term filtering for recent items
fix(dashboard-data): update return type for navigation state methods
chore(jest): add jest configuration for workspace shell feature
refactor(global-favorites): migrate global favorites list to shared UI
refactor(global-favorites): remove global favorites page component and its styles
refactor(global-favorites): update unified favorite channel interface to use shared util
test(workspace-shell): setup test environment for workspace shell feature
Entire-Checkpoint: 0e4488af6c76
2026-03-25 19:16:03 +01:00
4gray aa5e4097f1 refactor(workspace-shell-util): refactor workspace shell components
- Introduced `jest.config.ts` for testing setup.
- Added `workspace-search-capability.ts` to define search capabilities.
- Created `workspace-shell-route.utils.ts` for parsing and handling workspace routes.
- Implemented tests for route utilities in `workspace-shell-route.utils.spec.ts`.
- Updated `index.ts` to export new navigation utilities.
- Configured TypeScript for testing with `tsconfig.spec.json`.
- Set up test environment in `test-setup.ts`.

Entire-Checkpoint: 130fa99dcbb4
2026-03-25 19:14:47 +01:00
4gray eaaf634b17 refactor(playlist-switcher): add context actions for playlist and account info
Entire-Checkpoint: 0e4488af6c76
2026-03-22 18:38:11 +01:00
4gray 81c2aab829 test(e2e): add end-to-end tests for playlist import, providers, and settings persistence
- Implemented tests for importing M3U playlists via native dialog.
- Added smoke tests for loading Xtream and Stalker content through IPC.
- Created tests to verify persistence of remote control settings across app restarts.
- Updated smoke tests to check for main window properties and workspace content rendering.

refactor(electron-backend): enhance store service and database path handling

- Modified store service to use a dynamic configuration directory based on environment.
- Refactored database connection to utilize new path utility functions for better path management.

fix(e2e): improve test selectors and structure for better reliability

- Updated test selectors in web-e2e tests to use role-based queries for better accessibility.
- Refactored settings tests to reduce redundancy and improve clarity.

chore(e2e): update TypeScript configuration for better inclusion of test files

- Adjusted tsconfig.json to ensure proper inclusion of e2e test files.

Entire-Checkpoint: bb9a8e2e351e
2026-03-17 23:30:16 +01:00
4gray 0c451b0dd7 refactor: refactor video player component and enhance workspace header shortcuts 2026-03-16 22:55:01 +01:00
4gray 367c9507a5 ci(macOS): enhance code signing process with CSC_NAME variable and verification steps 2026-03-15 10:55:30 +01:00
4gray b0a1d8da77 feat(command-palette): add command icons and enhance search panel styling
style(shell): update rail shortcut styles and improve hover effects
2026-03-14 23:42:43 +01:00
4gray 963049a7cc style(navigation): update nav item styles and improve hover effects
feat(rail-links): change icon for 'all channels' in playlists
2026-03-14 23:42:17 +01:00
4gray 6f914a6d34 feat(external-playback-dock): enhance artwork handling with error fallback and dynamic placeholder icons 2026-03-14 23:41:31 +01:00
4gray 689c7bd949 feat(i18n): add new download-related messages and dialogs for English, German, and Russian translations 2026-03-14 23:41:08 +01:00
4gray fbe31b701b style(dashboard): refine hover effects and transitions for activity items and continue watching widget 2026-03-14 23:40:51 +01:00
4gray 9f581d0d84 feat(downloads): enhance download item handling and UI interactions 2026-03-14 23:40:29 +01:00
4gray 137d1f01ad style(nav-list): update hover styles and clean up unused styles in workspace shell 2026-03-14 23:40:09 +01:00
4gray 841e7d93f9 style(video-player): replace custom player image and enhance styling; add external playback session handling 2026-03-14 11:56:03 +01:00
4gray c42e35b48d refactor(external-playback): improve session handling and remove dismiss functionality 2026-03-14 11:55:26 +01:00
4gray ec84eea924 feat(macOS): add notarization support and entitlements for Electron app 2026-03-13 07:36:09 +01:00
4gray 1e9f5d9d05 feat(global-widgets): add M3U recently-viewed and favs support
- Introduced M3uRecentlyViewedItem interface to define structure for recently viewed items.
- Implemented utility functions to handle mapping and building of recently viewed items from playlists.
- Updated Playlist interface to use PlaylistRecentlyViewedItem type for recently viewed items.
- Enhanced PortalActivityItem interface to include 'm3u' as a possible source.
- Added UI components for displaying recently viewed channels, including clear functionality.
- Integrated recent view functionality into the channel list container and sidebar components.
- Updated dashboard data service to manage M3U favorites and recently viewed items.
- Added tests to ensure correct behavior of recently viewed items in the dashboard data service.
2026-03-11 23:57:13 +01:00
4gray 188ebb6fd9 refactor: enhance error handling for playlist updates and add missing i18n strings 2026-03-10 08:52:38 +01:00
4gray 0012fcfa7b style(settings): update look&feel, add missing i18n strings 2026-03-10 08:37:46 +01:00
4gray bf7adcd7b4 refactor(settings): add system theme option to language files
Added "SYSTEM_THEME" translations to various language JSON files
2026-03-10 08:36:51 +01:00
4gray 7ac2fd66b8 refactor: update nx monorepo structure 2026-03-09 23:24:34 +01:00
4gray aa739f43e0 refactor: update nx monorepo structure 2026-03-09 21:44:28 +01:00
4gray 0ad1eeb785 refactor: update nx monorepo structure 2026-03-09 20:28:31 +01:00
4gray 9834c9fc0d refactor(portals): more structural changes in monorepo for xtream and stalker
feat(xtream): implement category management dialog and main container with sorting and searching features

style(stalker, xtream): add styles for main container, shell, and category management dialog

fix(xtream): update routing and state management for playlist and content sections

chore: update tsconfig paths for stalker and xtream features
2026-03-08 21:49:39 +01:00
4gray b5bd1bd92a refactor(portals): create nx feature libraries for xtream and stalker
- Added StalkerCatalogFacadeService to manage Stalker catalog operations.
- Created stalker-feature-loaders to define route options for Stalker features.
- Removed deprecated stalker.routes.ts file.
- Updated shared utilities to include portal catalog facade interfaces.

feat(xtream): implement XtreamCatalogFacadeService and related feature loaders

- Added XtreamCatalogFacadeService to manage Xtream catalog operations.
- Created xtream-feature-loaders to define route options for Xtream features.
- Removed deprecated xtream.routes.ts file.
- Updated shared utilities to include portal catalog facade interfaces.

refactor: organize portal feature libraries

- Created separate feature libraries for Stalker and Xtream.
- Defined project structure and TypeScript configurations for both libraries.
- Implemented routing configurations for Stalker and Xtream features.
2026-03-08 21:21:17 +01:00
4gray 7f67962dd7 refactor(nx): update repository structure for portals 2026-03-08 20:09:50 +01:00
4gray 256f0e0136 refactor(nx): update repository structure
Introduce new libraries to improve the boundaries and dependencies in mono repo
2026-03-08 20:01:42 +01:00
4gray 1780bb0e53 refactor: remove 'on-air' widget and related functionality from dashboard 2026-03-08 18:55:18 +01:00
4gray 3b04b5105f feat(global-favorites): implement global favorites feature with drag-and-drop support
- Added GlobalFavoritesListComponent to manage and display favorite channels.
- Created GlobalFavoritesPageComponent to serve as the main page for global favorites.
- Implemented loading and displaying of EPG data for channels.
- Introduced GlobalFavoritesService to handle fetching, removing, and reordering favorites from various sources (M3U, Xtream, Stalker).
- Enhanced unified favorite channel interface to support new features and data structures.
- Added necessary HTML and SCSS for the global favorites page layout and styling.
- Updated database schema to include position column for favorites to support ordering.
- Added typings for new database operations related to global favorites.
2026-03-08 18:17:04 +01:00
4gray 9e1ef0b0bd refactor: enhance playlist favorites handling and introduce portal activity items
- Updated the `selectFavorites` selector to filter favorites ensuring they are strings.
- Added new interfaces for `PortalActivityItem`, `PortalRecentItem`, and `PortalFavoriteItem` to standardize activity item representation.
- Introduced `StalkerPortalItem` interface to represent items in Stalker portals.
- Created utility functions for extracting and normalizing data from Stalker portal items.
- Refactored `DashboardDataService` to utilize new interfaces and utility functions for managing recent and favorite items.
- Removed deprecated mapping functions and replaced them with direct usage of new interfaces.
- Added navigation utilities for recent and favorite items to streamline routing logic.
2026-03-08 15:48:37 +01:00
4gray 39dff635eb refactor(types): add getNowPlayingPrograms method and improve type definitions 2026-03-08 11:25:38 +01:00
4gray c6bd861b49 refactor: streamline layout and styling for live stream component
- Consolidated SCSS styles for the live stream layout, reducing redundancy and improving maintainability.
- Introduced a new portal layout mixin for better structure.
- Enhanced sidebar and content container styles for improved user experience.
- Updated TypeScript component to utilize new styles and improve readability.
- Refactored channel list and recently viewed components for consistency in design.
- Optimized playlist service and store interactions for better performance.
- Added new translations for enhanced user interface clarity.
- Improved database schema with additional indexing for EPG programs.
2026-03-08 11:25:26 +01:00
4gray fb4553c55f refactor(styles): streamline style files by forwarding mixins for content grid, portal layout, and sidebar 2026-03-08 11:24:14 +01:00
4gray 268a710bf2 refactor(dashboard): improvements for dashboard widgets
- Updated dashboard activity items styles for improved layout and media representation.
- Introduced new styles for movie and series media types.
- Enhanced placeholder styles for live, movie, and series items using oklch color model.
- Added hover effects for activity items and action buttons in grid mode.
- Refactored dashboard widget shell styles for better alignment and padding.
- Created new on-air widget component with category filtering and loading skeletons.
- Implemented responsive design for on-air widget and improved empty state handling.
- Removed deprecated recent sources widget and integrated recent sources functionality into existing components.
- Updated recently watched widget to include action links for adding sources.
- Enhanced source stats widget with new styling for different source types (Xtream, Stalker, M3U).
2026-03-08 11:23:34 +01:00
4gray a8fd16b16d style: add shared styles for content grid, portal layout, and sidebar components 2026-03-08 11:21:44 +01:00
4gray bd0a1f36bf refactor: enhance error handling for playlist fetching with user-friendly messages 2026-03-07 21:45:59 +01:00
4gray 4732af8a38 feat: add external playback support and UI enhancements
- Integrated external playback functionality in category and detail views.
- Updated styles for play buttons to reflect different states (idle, launching, stop).
- Enhanced episode cards to indicate launching and active external playback states.
- Added new computed properties for managing external playback session states.
- Improved user interface for playback buttons with dynamic labels and icons based on playback state.
- Introduced new settings option to show external playback status bar on desktop.
- Updated translations for new features and UI elements.
2026-03-07 19:06:40 +01:00