This commit is contained in:
Louis Lam
2023-03-31 20:25:37 +08:00
parent 02291730fe
commit 227cec86a8
9 changed files with 241 additions and 227 deletions

View File

@@ -95,7 +95,6 @@
<option value="recurring-interval">{{ $t("Recurring") }} - {{ $t("recurringInterval") }}</option>
<option value="recurring-weekday">{{ $t("Recurring") }} - {{ $t("dayOfWeek") }}</option>
<option value="recurring-day-of-month">{{ $t("Recurring") }} - {{ $t("dayOfMonth") }}</option>
<option v-if="false" value="recurring-day-of-year">{{ $t("Recurring") }} - Day of Year</option>
</select>
</div>
@@ -103,6 +102,25 @@
<template v-if="maintenance.strategy === 'single'">
</template>
<template v-if="maintenance.strategy === 'cron'">
<!-- Cron -->
<div class="my-3">
<label for="cron" class="form-label">
{{ $t("cronExpression") }}
</label>
<p>Run: {{ cronDescription }}</p>
<input id="cron" v-model="maintenance.cron" type="text" class="form-control" required>
</div>
<div class="my-3">
<!-- Duration -->
<label for="duration" class="form-label">
{{ $t("Duration (Minutes)") }}
</label>
<input id="duration" v-model="maintenance.durationMinutes" type="number" class="form-control" required min="1" step="1">
</div>
</template>
<!-- Recurring - Interval -->
<template v-if="maintenance.strategy === 'recurring-interval'">
<div class="my-3">
@@ -205,26 +223,12 @@
<div class="row">
<div class="col">
<div class="mb-2">{{ $t("startDateTime") }}</div>
<Datepicker
v-model="maintenance.dateRange[0]"
:dark="$root.isDark"
datePicker
:monthChangeOnScroll="false"
format="yyyy-MM-dd HH:mm:ss"
modelType="yyyy-MM-dd HH:mm:ss"
/>
<input v-model="maintenance.dateRange[0]" type="datetime-local" class="form-control">
</div>
<div class="col">
<div class="mb-2">{{ $t("endDateTime") }}</div>
<Datepicker
v-model="maintenance.dateRange[1]"
:dark="$root.isDark"
datePicker
:monthChangeOnScroll="false"
format="yyyy-MM-dd HH:mm:ss"
modelType="yyyy-MM-dd HH:mm:ss"
/>
<input v-model="maintenance.dateRange[1]" type="datetime-local" class="form-control">
</div>
</div>
</div>
@@ -247,12 +251,12 @@
</template>
<script>
import { useToast } from "vue-toastification";
import VueMultiselect from "vue-multiselect";
import dayjs from "dayjs";
import Datepicker from "@vuepic/vue-datepicker";
import { timezoneList } from "../util-frontend";
import cronstrue from "cronstrue";
const toast = useToast();
@@ -279,18 +283,6 @@ export default {
langKey: "lastDay1",
value: "lastDay1",
},
{
langKey: "lastDay2",
value: "lastDay2",
},
{
langKey: "lastDay3",
value: "lastDay3",
},
{
langKey: "lastDay4",
value: "lastDay4",
}
],
weekdays: [
{
@@ -334,6 +326,15 @@ export default {
computed: {
cronDescription() {
if (! this.maintenance.cron) {
return "";
}
return cronstrue.toString(this.maintenance.cron, {
locale: "zh-TW",
});
},
selectedStatusPagesOptions() {
return Object.values(this.$root.statusPageList).map(statusPage => {
return {
@@ -393,6 +394,8 @@ export default {
description: "",
strategy: "single",
active: 1,
cron: "30 3 * * *",
durationMinutes: 60,
intervalDay: 1,
dateRange: [ this.minDate ],
timeRange: [{