feat: rrule format for x days repeat

This commit is contained in:
2026-07-20 13:41:47 +02:00
parent ca18d3b9e2
commit 40a8d02cd7
11 changed files with 317 additions and 168 deletions
+19 -1
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { ref, onBeforeMount, watch } from "vue";
import { getCron, parseCron, validCron } from "@/lib/cron";
import { getCron, parseCron, validCron } from "@/lib/recurrence";
import { CronType } from "@/enums";
const DEFAULT_CRON = "0 0 * * *";
@@ -70,12 +70,21 @@ watch(cron, () => {
<option :value="CronType.EVERY_DAY">
{{ $t("cron.type.every_day") }}
</option>
<option :value="CronType.EVERY_N_DAYS">
{{ $t("cron.type.every_n_days") }}
</option>
<option :value="CronType.EVERY_WEEK">
{{ $t("cron.type.every_week") }}
</option>
<option :value="CronType.EVERY_N_WEEKS">
{{ $t("cron.type.every_n_weeks") }}
</option>
<option :value="CronType.EVERY_MONTH">
{{ $t("cron.type.every_month") }}
</option>
<option :value="CronType.EVERY_N_MONTHS">
{{ $t("cron.type.every_n_months") }}
</option>
<option :value="CronType.EVERY_YEAR">
{{ $t("cron.type.every_year") }}
</option>
@@ -159,5 +168,14 @@ watch(cron, () => {
:class="valid ? '' : 'input-error'"
@input="onInputRawCron"
/>
<input
v-if="cronType === CronType.EVERY_N_DAYS || cronType === CronType.EVERY_N_WEEKS || cronType === CronType.EVERY_N_MONTHS"
v-model="cronValue"
type="number"
min="1"
step="1"
class="input font-mono flex-1"
@input="onChangeCronValue"
/>
</div>
</template>