feat: Add NFO UI features (Task 6)

- Extended AnimeSummary model with NFO fields (has_nfo, nfo_created_at, nfo_updated_at, tmdb_id, tvdb_id)
- Updated list_anime endpoint to fetch and return NFO data from database
- Added NFO status badges to series cards (green=exists, gray=missing)
- Created nfo-manager.js module with createNFO, refreshNFO, viewNFO operations
- Added NFO action buttons to series cards (Create/View/Refresh)
- Integrated WebSocket handlers for real-time NFO events (creating, completed, failed)
- Added CSS styles for NFO badges and action buttons
- All 34 NFO API tests passing, all 32 anime endpoint tests passing
- Documented in docs/task6_status.md (90% complete, NFO status page deferred)
This commit is contained in:
2026-01-16 19:18:50 +01:00
parent d642234814
commit ecfa8d3c10
9 changed files with 699 additions and 5 deletions

View File

@@ -75,6 +75,7 @@
right: var(--spacing-sm);
display: flex;
align-items: center;
gap: var(--spacing-xs);
}
.status-missing {
@@ -87,6 +88,40 @@
font-size: 1.2em;
}
/* NFO Status Badge */
.nfo-badge {
font-size: 1em;
margin-left: var(--spacing-xs);
}
.nfo-badge.nfo-exists {
color: var(--color-success);
}
.nfo-badge.nfo-missing {
color: var(--color-text-tertiary);
opacity: 0.5;
}
/* Series Card Actions */
.series-actions {
display: flex;
gap: var(--spacing-xs);
margin-top: var(--spacing-sm);
padding-top: var(--spacing-sm);
border-top: 1px solid var(--color-border);
}
.series-actions .btn {
flex: 1;
font-size: var(--font-size-caption);
padding: var(--spacing-xs) var(--spacing-sm);
}
.series-actions .btn i {
margin-right: var(--spacing-xs);
}
/* Series Card States */
.series-card.has-missing {
border-left: 4px solid var(--color-warning);