From a725d4c7d28fee701b6997cc46cffddefbcd26bf Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Wed, 30 Sep 2026 22:13:07 +0200 Subject: Allow granular routine frequencies like 5/2w --- src/lib/server/services/routine-actions.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/lib/server/services/routine-actions.ts') diff --git a/src/lib/server/services/routine-actions.ts b/src/lib/server/services/routine-actions.ts index 44ba2b8..1d7f8b5 100644 --- a/src/lib/server/services/routine-actions.ts +++ b/src/lib/server/services/routine-actions.ts @@ -1,7 +1,8 @@ import { fail, type ActionFailure } from '@sveltejs/kit'; import { archive, complete, edit, loadCurrent } from './routines'; -import { parseFormString, parseFrequencyDays } from './validation'; +import { parseFormString } from './validation'; import { instantFromDay } from '$lib/shared/temporal'; +import { Frequency } from '$lib/shared/frequency'; /** Shared routine edit/complete actions; rejects missing/archived routines. */ @@ -26,16 +27,20 @@ export async function editRoutineAction( return fail(400, { error: 'Le nom est requis' }); } - let frequencyDays: number; + let frequency: string; try { - frequencyDays = parseFrequencyDays(data.get('frequencyDays')); + frequency = Frequency.parse( + data.get('frequency')?.toString() ?? '', + ).toSpec(); } catch { return fail(400, { error: 'Fréquence invalide' }); } // Only touch description when the form sends one; list edits never wipe it. - const fields: { name: string; frequencyDays: number; description?: string } = - { name, frequencyDays }; + const fields: { name: string; frequency: string; description?: string } = { + name, + frequency, + }; const description = data.get('description'); if (description !== null) { fields.description = description.toString(); -- cgit v1.3