feat(series): add SeriesHandler, API routes, and SSR browse page
Create SeriesHandler with two API endpoints: - GET /api/series (paginated series list with covers) - GET /api/series/books (books in a specific series) Uses query param ?name=X instead of path param to avoid URL encoding issues with special characters in series names. Add GetSeriesCardsData helper returning services.SeriesInfo for use by the SSR route (avoids handlers→templates import cycle). Register /api/series routes via registerSeriesRoutes in router. Add /series SSR route in frontend.go with library-scoped pagination and error handling, matching the dashboard/bookshelf patterns. Add SeriesHandler to router Config and instantiate in main.go. Add SeriesCardData type to templates/types.go. Add Continue Series as the 5th valid system collection in dashboard handler and auth handler's CreateDefaultCollectionsForUser.
This commit is contained in:
@@ -87,6 +87,7 @@ func main() {
|
||||
collectionHandler := handlers.NewCollectionHandler(queries, libraryService, connManager)
|
||||
dashboardService := services.NewDashboardService(queries)
|
||||
dashboardHandler := handlers.NewDashboardHandler(queries)
|
||||
seriesHandler := handlers.NewSeriesHandler(queries)
|
||||
filtersHandler := handlers.NewFiltersHandler(queries)
|
||||
mediaHandler := handlers.NewMediaHandler(queries, libraryService, worker)
|
||||
mediaHandler.SetProgressService(progressService)
|
||||
@@ -149,6 +150,7 @@ func main() {
|
||||
FiltersHandler: filtersHandler,
|
||||
DashboardHandler: dashboardHandler,
|
||||
DashboardService: dashboardService,
|
||||
SeriesHandler: seriesHandler,
|
||||
OPDSHandler: opdsHandler,
|
||||
Worker: worker,
|
||||
SystemSettingsHandler: systemSettingsHandler,
|
||||
|
||||
Reference in New Issue
Block a user