Commit Graph
23 Commits
Author SHA1 Message Date
nessi cce2f9fbb0 feat: add decorative icons to dashboard metrics with color-coded backgrounds for CPU, RAM, and disk usage indicators
Add ::before pseudo-elements with inline-grid centering to meter and disk-name elements. Style CPU meter with blue circular icon (◔), RAM meter with purple stacked icon (▤), and disk labels with yellow bar icon (▰). Each icon has matching semi-transparent background and colored text. Update dashboard view display to flex and align icon containers.
2026-08-13 16:43:30 +02:00
nessi 7daee41f65 feat: rename "Daten" disk mount to "Medien" and consolidate Filme/Serien mount paths with explanatory comment
Add German comment explaining that Filme and Serien share the same host storage (/nesflix) and are made visible in the container via media mounts. Update mount_paths list to replace "Daten" label with "Medien" and combine Filme/Serien paths under single "Medien" label. Add dashboard-view CSS class with flex layout, min-height constraints, and increased disk-list gap for improved vertical
2026-08-13 16:42:20 +02:00
nessi 5912b7078c feat: add system metrics dashboard with live CPU, RAM, and disk usage monitoring plus service status overview
Add system_metrics() function to read CPU usage from /proc/stat with delta calculation, memory stats from /proc/meminfo, and disk usage for System/Daten/Filme/Serien mounts with device deduplication. Add /api/system endpoint returning metrics JSON with error handling.

Add dashboard view as default tab with hero section, 4-card overview grid showing movie/series/missing/download counts, system
2026-08-13 16:38:19 +02:00
nessi 3d4fb52fa3 feat: filter "Without German" tab to show only existing or downloading media and exclude season 0 episodes
Add is_german_review_candidate() helper function to filter media that exists locally or is currently being downloaded, excluding season 0 (specials) episodes. Apply filter to missing_german_movies and missing_german_series lists to show only actionable items. Update tab description text from "Kein deutsches Audio und keine deutschen Untertitel" to "Vorhanden oder wird gerade geladen · Staffel
2026-08-13 16:32:21 +02:00
nessi 94ab044a0a feat: refactor CSS to use CSS custom properties and minify inline styles for improved maintainability and performance
Replace hardcoded color values with CSS custom properties (--bg, --panel, --line, --text, --muted, --yellow, --blue) defined in :root. Add color-scheme:dark for better dark mode support. Minify all CSS into single line to reduce file size. Maintain existing layout, spacing, and visual design while improving code organization and enabling easier theme customization.
2026-08-13 16:29:42 +02:00
nessi 05e32fb5af feat: add enhanced SABnzbd download dashboard with remaining data calculation and visual redesign
Add parse_size_bytes() and format_bytes() helper functions to convert and format file sizes. Calculate total remaining bytes from queue and include active_count, history_count, remaining_bytes, and formatted remaining in downloads API response. Update error responses to include new fields.

Add media-mark.svg favicon with gradient background, golden lines, and green checkmark. Replace text logo with inline
2026-08-13 16:28:10 +02:00
nessi 7b788f7dc8 feat: add "Without German" tab to filter media missing German audio or subtitles
Add new navigation tab showing count of movies and episodes without German tracks. Implement has_german_track() helper to check for German audio or subtitles. Filter movies and series to create missing_german_movies and missing_german_series lists passed to template. Add dedicated view section with tables for movies and series lacking German content, including empty state message. Update navigation translation logic
2026-08-13 16:25:57 +02:00
nessi 1558b081dd feat: add visual highlighting for preferred audio language badges with blue glow effect
Add audio-preferred CSS class with blue background, border, and shadow to visually distinguish items matching user's preferred audio language. Implement highlightPreferences() function to scan audio badges in movies and series tables and apply styling when content matches stored preference. Call highlightPreferences() on page load and after saving preferences.
2026-08-13 11:53:04 +02:00
nessi 2f395e245a feat: add bilingual UI with language toggle and user preferences modal for audio/subtitle filters
Add German/English language switching with DE/EN toggle button in header. Add settings modal with gear icon button for configuring preferred audio and subtitle languages. Store language and filter preferences in localStorage and auto-apply on page load. Add data-de/data-en attributes to translatable elements and translate table headers, filter placeholders, and navigation labels. Include modal backdrop with
2026-08-13 11:51:01 +02:00
nessi 81f8d9ced4 feat: consolidate header z-index declarations and ensure sticky positioning hierarchy
Remove duplicate header z-index:100 declaration and consolidate all z-index and positioning overrides into single style block. Maintain sticky positioning hierarchy with header at z-index:100, series summaries at z-index:30 (top:64px), and season dividers at z-index:29 (top:110px).
2026-08-13 11:49:09 +02:00
nessi e290c17f36 feat: fix gradient background scrolling by making it fixed and ensuring full page height
Set background-attachment:fixed on body gradient to prevent it from scrolling with content. Add min-height:100vh to body and min-height:100% to html to ensure gradient covers full viewport. Add min-height:calc(100vh - 64px) to main to maintain full-height layout accounting for header.
2026-08-13 11:47:57 +02:00
nessi d202499cdd feat: adjust sticky positioning for series summaries and season dividers to account for header height
Update series summary sticky top position from 0 to 64px and add z-index:30 to prevent overlap with fixed header. Update season divider sticky top position to 110px with z-index:29 to stack below series summaries but above content.
2026-08-13 11:47:25 +02:00
nessi a276911ca7 feat: add refined visual design with gradient backgrounds, improved borders, and enhanced hover effects
Add radial gradient background with accent colors, refined header with backdrop blur and shadow, improved navigation with active state indicator line, enhanced toolbar with focus states and transitions, refined table styling with gradient headers and hover animations, and add rescan button hover lift effect. Include responsive breakpoints for mobile layout adjustments.
2026-08-13 11:46:02 +02:00
nessi 7458b921be feat: add expand animation and chevron indicator for collapsible series
Add smooth expand animation with cubic-bezier easing when opening series details. Add rotating chevron indicator (⌄) to series summary that changes color and rotates 180° when expanded. Animation includes fade-in, translateY, and scaleY transform from top center origin.
2026-08-13 11:44:46 +02:00
nessi 8327ed567d feat: fix series sticky headers by setting overflow visible on parent containers
Set overflow:visible on #seriesList and .series elements to prevent sticky positioning from being clipped. This ensures series summaries remain visible at the top when scrolling through long episode lists.
2026-08-13 11:43:15 +02:00
nessi 3fcc2bf0ea feat: add smooth animations and sticky headers for series navigation
Add CSS animations for row entries, download pulse effects, and progress bar shimmer. Implement sticky positioning for series summaries and season dividers with backdrop blur effects. Add hover transitions for navigation buttons and badges. Include intersection observer to highlight currently scrolled series with visual indicator. Add prefers-reduced-motion media query for accessibility.
2026-08-13 11:41:33 +02:00
nessi 6da8204855 feat: add season dividers to series episode lists
Add visual separators between seasons in series episode tables. Extract season number from episode data and insert divider rows with "Staffel N" labels when season changes. Style dividers with dark background and subtle borders to improve readability of long episode lists.
2026-08-13 11:37:25 +02:00
nessi d252024dbc feat: improve download matching with fuzzy token-based algorithm and add downloading state styling
Replace exact title matching with token-based fuzzy matching that requires 75% of significant tokens (3+ chars) to match. Add "downloading" class to state column and apply purple badge styling to quality column for downloading items. Update download refresh to trigger markDownloading() and initialize download markers on page load.
2026-08-13 11:35:55 +02:00
nessi 7e5dbd8b14 feat: add download status indicators for missing media files
Add visual indicators to mark movies/series as "Downloading" when they match active SABnzbd downloads. Implement text normalization for matching download titles against media entries, with special handling for series names and episode patterns. Add purple badge/state styling for downloading status and restore original "Keine Datei/Fehler" states when downloads complete.
2026-08-13 11:06:35 +02:00
nessi f78944795c feat: add SABnzbd download monitoring with language detection and source tracking
Add SABnzbd integration to display active and completed downloads with progress tracking, speed monitoring, and automatic language detection from release names. Downloads are matched against Radarr/Sonarr queues to identify source application. Add new Downloads tab in navigation, API endpoint for queue/history data, and auto-refresh every 4 seconds. Include configuration for SAB_URL and SAB_API_KEY in docker-compose and
2026-08-13 11:00:57 +02:00
nessi c43f938afe feat: add collapsible series styling and auto-collapse on load
Add CSS styling for series details elements with border, rounded corners, and dark background. Initialize all series as collapsed by default on page load to improve UI organization for large series lists.
2026-08-13 10:57:24 +02:00
nessi acbf3215bb feat: add Sonarr support with background scanning and progress tracking
Add Sonarr integration alongside existing Radarr functionality. Implement background ffprobe scanning with ThreadPoolExecutor, progress tracking API, and separate navigation for movies/series. Series are grouped by show with collapsible episodes. Reduce Gunicorn workers to 1, add scan status endpoint, and update README with Sonarr configuration instructions.
2026-08-13 10:49:39 +02:00
nessi 6ee9610b11 feat: add Radarr language dashboard with Docker support
Add a Flask-based dashboard for monitoring audio/subtitle languages in Radarr media files. Includes ffprobe integration for media analysis, SQLite caching, path mapping between Radarr and host filesystems, and a responsive web UI with filtering and statistics.
2026-08-13 10:46:45 +02:00