diff --git a/packages/api/src/router/widgets/calendar.ts b/packages/api/src/router/widgets/calendar.ts index a11c69d40..f8062d539 100644 --- a/packages/api/src/router/widgets/calendar.ts +++ b/packages/api/src/router/widgets/calendar.ts @@ -9,7 +9,14 @@ import { createTRPCRouter, publicProcedure } from "../../trpc"; export const calendarRouter = createTRPCRouter({ findAllEvents: publicProcedure - .input(z.object({ year: z.number(), month: z.number(), releaseType: z.array(z.enum(radarrReleaseTypes)) })) + .input( + z.object({ + year: z.number(), + month: z.number(), + releaseType: z.array(z.enum(radarrReleaseTypes)), + showUnmonitored: z.boolean(), + }), + ) .unstable_concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("calendar"))) .query(async ({ ctx, input }) => { const results = await Promise.all( diff --git a/packages/cron-jobs/src/jobs/integrations/media-organizer.ts b/packages/cron-jobs/src/jobs/integrations/media-organizer.ts index 1d7128e4d..a84696da9 100644 --- a/packages/cron-jobs/src/jobs/integrations/media-organizer.ts +++ b/packages/cron-jobs/src/jobs/integrations/media-organizer.ts @@ -25,6 +25,7 @@ export const mediaOrganizerJob = createCronJob("mediaOrganizer", EVERY_MINUTE).w year, month, releaseType: options.releaseType, + showUnmonitored: options.showUnmonitored, }); } diff --git a/packages/old-import/src/widgets/options.ts b/packages/old-import/src/widgets/options.ts index 31658ecd1..643ecb99d 100644 --- a/packages/old-import/src/widgets/options.ts +++ b/packages/old-import/src/widgets/options.ts @@ -47,6 +47,7 @@ const optionMapping: OptionMapping = { releaseType: (oldOptions) => [oldOptions.radarrReleaseType], filterFutureMonths: () => undefined, filterPastMonths: () => undefined, + showUnmonitored: ({ showUnmonitored }) => showUnmonitored, }, clock: { customTitle: (oldOptions) => oldOptions.customTitle, diff --git a/packages/request-handler/src/calendar.ts b/packages/request-handler/src/calendar.ts index f047d74df..55918eaaf 100644 --- a/packages/request-handler/src/calendar.ts +++ b/packages/request-handler/src/calendar.ts @@ -9,13 +9,17 @@ import { createCachedIntegrationRequestHandler } from "./lib/cached-integration- export const calendarMonthRequestHandler = createCachedIntegrationRequestHandler< CalendarEvent[], IntegrationKindByCategory<"calendar">, - { year: number; month: number; releaseType: RadarrReleaseType[] } + { year: number; month: number; releaseType: RadarrReleaseType[]; showUnmonitored: boolean } >({ async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); const startDate = dayjs().year(input.year).month(input.month).startOf("month"); const endDate = startDate.clone().endOf("month"); - return await integrationInstance.getCalendarEventsAsync(startDate.toDate(), endDate.toDate()); + return await integrationInstance.getCalendarEventsAsync( + startDate.toDate(), + endDate.toDate(), + input.showUnmonitored, + ); }, cacheDuration: dayjs.duration(1, "minute"), queryKey: "calendarMonth", diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index e2dc60cef..3565b0dbc 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -1434,6 +1434,9 @@ }, "filterFutureMonths": { "label": "End at" + }, + "showUnmonitored": { + "label": "Show unmonitored" } } }, diff --git a/packages/widgets/src/calendar/component.tsx b/packages/widgets/src/calendar/component.tsx index 9447459a2..064067b30 100644 --- a/packages/widgets/src/calendar/component.tsx +++ b/packages/widgets/src/calendar/component.tsx @@ -39,6 +39,7 @@ const FetchCalendar = ({ month, setMonth, isEditMode, integrationIds, options }: month: month.getMonth(), year: month.getFullYear(), releaseType: options.releaseType, + showUnmonitored: options.showUnmonitored, }, { refetchOnMount: false, diff --git a/packages/widgets/src/calendar/index.ts b/packages/widgets/src/calendar/index.ts index 275b2d605..088bdf6ef 100644 --- a/packages/widgets/src/calendar/index.ts +++ b/packages/widgets/src/calendar/index.ts @@ -26,6 +26,9 @@ export const { definition, componentLoader } = createWidgetDefinition("calendar" validate: z.number().min(2).max(9999), defaultValue: 2, }), + showUnmonitored: factory.switch({ + defaultValue: false, + }), })); }, supportedIntegrations: getIntegrationKindsByCategory("calendar"),