Add the ability to hide irrelevant or empty categories in Xtream playlists.
Users can now manage category visibility through a dialog accessible from
the sidebar header in both VOD/Series and Live TV views.
Features:
- New category management dialog with search filter and select/deselect all
- Visibility settings persisted to database per playlist
- Hidden categories are filtered from sidebar navigation
- New categories added during playlist refresh default to visible
- Database migration for existing installations
Files changed:
- Database: schema.ts, connection.ts (hidden column + migration)
- Backend: category.events.ts, main.preload.ts (IPC handlers)
- Frontend: new dialog component, store method, UI integration
- Translations: en.json
- Documentation: docs/architecture/category-management.md
Update category header and list views to provide clearer context
and improve navigation state handling.
- Display category name with current page/total pages when viewing a
category (non-detail) so users see which page they're on.
- Add i18n "PAGE" key and fill "SELECT_CATEGORY" in translations for
en/de/ru to support the new page label and existing messaging.
- Tidy live-stream layout template formatting and fix filter pipe
spacing for consistency.
- Change no-channel-selected fallback to use the translated
"PORTALS.SELECT_CATEGORY" string.
- Preserve category selection state on CategoryContentView init:
only set selected category when the route category differs from
the current selection to keep paging/scroll position when returning
from a detail view.
These changes improve UX by making pagination explicit and avoiding
unnecessary state resets when navigating between list and detail.