mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-07-18 23:34:04 +02:00
fix(maintenance): Control the date before processing
This commit is contained in:
parent
c46772dafc
commit
a462945a45
2 changed files with 7 additions and 5 deletions
|
@ -158,12 +158,14 @@ class Maintenance extends BeanModel {
|
||||||
bean.active = obj.active;
|
bean.active = obj.active;
|
||||||
|
|
||||||
if (obj.dateRange[0]) {
|
if (obj.dateRange[0]) {
|
||||||
|
new Date(obj.dateRange[0]); // Ensure it's a valid date
|
||||||
bean.start_date = obj.dateRange[0];
|
bean.start_date = obj.dateRange[0];
|
||||||
} else {
|
} else {
|
||||||
bean.start_date = null;
|
bean.start_date = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj.dateRange[1]) {
|
if (obj.dateRange[1]) {
|
||||||
|
new Date(obj.dateRange[1]); // Ensure it's a valid date
|
||||||
bean.end_date = obj.dateRange[1];
|
bean.end_date = obj.dateRange[1];
|
||||||
} else {
|
} else {
|
||||||
bean.end_date = null;
|
bean.end_date = null;
|
||||||
|
@ -192,7 +194,7 @@ class Maintenance extends BeanModel {
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
static validateCron(cron) {
|
static validateCron(cron) {
|
||||||
let job = new Cron(cron, () => {});
|
let job = new Cron(cron, () => { });
|
||||||
job.stop();
|
job.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,7 +256,7 @@ class Maintenance extends BeanModel {
|
||||||
if (this.strategy === "recurring-interval") {
|
if (this.strategy === "recurring-interval") {
|
||||||
// For recurring-interval, Croner needs to have interval and startAt
|
// For recurring-interval, Croner needs to have interval and startAt
|
||||||
const startDate = dayjs(this.startDate);
|
const startDate = dayjs(this.startDate);
|
||||||
const [ hour, minute ] = this.startTime.split(":");
|
const [hour, minute] = this.startTime.split(":");
|
||||||
const startDateTime = startDate.hour(hour).minute(minute);
|
const startDateTime = startDate.hour(hour).minute(minute);
|
||||||
this.beanMeta.job = new Cron(this.cron, {
|
this.beanMeta.job = new Cron(this.cron, {
|
||||||
timezone: await this.getTimezone(),
|
timezone: await this.getTimezone(),
|
||||||
|
@ -445,7 +447,7 @@ class Maintenance extends BeanModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove duplicate
|
// Remove duplicate
|
||||||
dayList = [ ...new Set(dayList) ];
|
dayList = [...new Set(dayList)];
|
||||||
|
|
||||||
this.cron = minute + " " + hour + " " + dayList.join(",") + " * *";
|
this.cron = minute + " " + hour + " " + dayList.join(",") + " * *";
|
||||||
this.duration = this.calcDuration();
|
this.duration = this.calcDuration();
|
||||||
|
|
|
@ -223,12 +223,12 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="mb-2">{{ $t("startDateTime") }}</div>
|
<div class="mb-2">{{ $t("startDateTime") }}</div>
|
||||||
<input v-model="maintenance.dateRange[0]" type="datetime-local" class="form-control" :required="maintenance.strategy === 'single'">
|
<input v-model="maintenance.dateRange[0]" type="datetime-local" max="9999-12-31T23:59" class="form-control" :required="maintenance.strategy === 'single'">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="mb-2">{{ $t("endDateTime") }}</div>
|
<div class="mb-2">{{ $t("endDateTime") }}</div>
|
||||||
<input v-model="maintenance.dateRange[1]" type="datetime-local" class="form-control" :required="maintenance.strategy === 'single'">
|
<input v-model="maintenance.dateRange[1]" type="datetime-local" max="9999-12-31T23:59" class="form-control" :required="maintenance.strategy === 'single'">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Reference in a new issue