diff --git a/frontend/i18n/locales/fr.json b/frontend/i18n/locales/fr.json index 0eaad5b..ecd2c33 100644 --- a/frontend/i18n/locales/fr.json +++ b/frontend/i18n/locales/fr.json @@ -161,7 +161,8 @@ "deleted": "Temps supprimé", "noEntries": "Aucune activité pour cette période", "addEntry": "Ajouter une Activité", - "editEntry": "Modifier un temps" + "editEntry": "Modifier un temps", + "export": "Exporter" }, "archive": { "title": "Archives", diff --git a/frontend/services/time-entries.ts b/frontend/services/time-entries.ts index bc7fde9..a783b9e 100644 --- a/frontend/services/time-entries.ts +++ b/frontend/services/time-entries.ts @@ -50,5 +50,23 @@ export function useTimeEntryService() { }) } - return { getByDateRange, getActive, create, update, remove } + function getExportUrl(params: { + after: string + before: string + user?: number + project?: number + tags?: number[] + }): string { + const query = new URLSearchParams() + query.set('after', params.after) + query.set('before', params.before) + if (params.user) query.set('user', String(params.user)) + if (params.project) query.set('project', String(params.project)) + if (params.tags?.length) { + params.tags.forEach(id => query.append('tags[]', String(id))) + } + return `/api/time_entries/export?${query.toString()}` + } + + return { getByDateRange, getActive, create, update, remove, getExportUrl } }