Schedules were entered and displayed as six field cron expressions. A
picker now offers a frequency, a weekday or day of the month and a time,
and turns that into the expression the backend stores; tables and the
dashboard show wording like "Every day at 03:00". An expression the
picker cannot express stays editable as cron.
This also fixes a broken preset: the backend's cron dialect counts Sunday
as 1 and rejects 0, so the "every Sunday" choice in the application
backup form produced an invalid expression. The picker emits weekday
names, and a test pins the dialect down.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The page now starts with the applications found on the cluster and on the
host, each showing what it offers. Choosing one opens a short flow:
select data and database, pick how often, pick a target, save. That
creates one strategy per selected part, so Gitea's volume and its
PostgreSQL dump become two ordinary strategies with their own history.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>