feat: add metadata provider filter to series page
- Add `metadata_provider` query param to series API endpoints (linked/unlinked/specific provider) - Return `metadata_provider` field in series response - Add metadata filter dropdown on series page with all provider options - Show small provider icon badge on linked series cards - LiveSearchForm now wraps filters on two rows when needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -123,6 +123,7 @@ export type SeriesDto = {
|
||||
library_id: string;
|
||||
series_status: string | null;
|
||||
missing_count: number | null;
|
||||
metadata_provider: string | null;
|
||||
};
|
||||
|
||||
export function config() {
|
||||
@@ -322,6 +323,7 @@ export async function fetchAllSeries(
|
||||
sort?: string,
|
||||
seriesStatus?: string,
|
||||
hasMissing?: boolean,
|
||||
metadataProvider?: string,
|
||||
): Promise<SeriesPageDto> {
|
||||
const params = new URLSearchParams();
|
||||
if (libraryId) params.set("library_id", libraryId);
|
||||
@@ -330,6 +332,7 @@ export async function fetchAllSeries(
|
||||
if (sort) params.set("sort", sort);
|
||||
if (seriesStatus) params.set("series_status", seriesStatus);
|
||||
if (hasMissing) params.set("has_missing", "true");
|
||||
if (metadataProvider) params.set("metadata_provider", metadataProvider);
|
||||
params.set("page", page.toString());
|
||||
params.set("limit", limit.toString());
|
||||
|
||||
|
||||
@@ -550,6 +550,12 @@ const en: Record<TranslationKey, string> = {
|
||||
// Series filters
|
||||
"seriesFilters.all": "All",
|
||||
"seriesFilters.missingBooks": "Missing books",
|
||||
|
||||
// Metadata filter
|
||||
"series.metadata": "Metadata",
|
||||
"series.metadataAll": "All",
|
||||
"series.metadataLinked": "Linked",
|
||||
"series.metadataUnlinked": "Not linked",
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
||||
@@ -548,6 +548,12 @@ const fr = {
|
||||
// Series filters
|
||||
"seriesFilters.all": "Tous",
|
||||
"seriesFilters.missingBooks": "Livres manquants",
|
||||
|
||||
// Metadata filter
|
||||
"series.metadata": "Métadonnées",
|
||||
"series.metadataAll": "Toutes",
|
||||
"series.metadataLinked": "Associée",
|
||||
"series.metadataUnlinked": "Non associée",
|
||||
} as const;
|
||||
|
||||
export type TranslationKey = keyof typeof fr;
|
||||
|
||||
Reference in New Issue
Block a user