From 204339fbedde88443a2968e3ff4c76f174475147 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 28 Sep 2022 00:48:15 +0800 Subject: [PATCH] Make two functions to convert ISO 8601 <=> YYYY-MM-DD hh:mm:ss --- server/model/maintenance.js | 30 +++++----------------------- server/model/maintenance_timeslot.js | 4 ++-- src/pages/EditMaintenance.vue | 5 ++--- src/util.js | 16 ++++++++++++--- src/util.ts | 17 ++++++++++++++-- 5 files changed, 37 insertions(+), 35 deletions(-) diff --git a/server/model/maintenance.js b/server/model/maintenance.js index 945e4d975..3d0595a75 100644 --- a/server/model/maintenance.js +++ b/server/model/maintenance.js @@ -1,9 +1,7 @@ -const dayjs = require("dayjs"); const { BeanModel } = require("redbean-node/dist/bean-model"); -const { parseTimeObject, parseTimeFromTimeObject } = require("../../src/util"); +const { parseTimeObject, parseTimeFromTimeObject, isoToUTCDateTime, utcToISODateTime } = require("../../src/util"); const { isArray } = require("chart.js/helpers"); const { timeObjectToUTC, timeObjectToLocal } = require("../util-server"); -const { R } = require("redbean-node"); class Maintenance extends BeanModel { @@ -15,20 +13,11 @@ class Maintenance extends BeanModel { */ async toPublicJSON(timezone = null) { - let dateTimeRange = []; - if (this.start_datetime) { - - dateTimeRange.push(dayjs.utc(this.start_datetime).toISOString()); - if (this.end_datetime) { - dateTimeRange.push(dayjs.utc(this.end_datetime).toISOString()); - } - } - let dateRange = []; if (this.start_date) { - dateRange.push(dayjs.utc(this.start_date).toISOString()); + dateRange.push(utcToISODateTime(this.start_date)); if (this.end_date) { - dateRange.push(dayjs.utc(this.end_date).toISOString()); + dateRange.push(utcToISODateTime(this.end_date)); } } @@ -55,7 +44,6 @@ class Maintenance extends BeanModel { strategy: this.strategy, intervalDay: this.interval_day, active: !!this.active, - dateTimeRange: dateTimeRange, dateRange: dateRange, timeRange: timeRange, weekdays: (this.weekdays) ? JSON.parse(this.weekdays) : [], @@ -104,18 +92,10 @@ class Maintenance extends BeanModel { bean.active = obj.active; if (obj.dateRange[0]) { - bean.start_date = R.isoDate(dayjs(obj.dateRange[0]).utc()); + bean.start_date = isoToUTCDateTime(obj.dateRange[0]); if (obj.dateRange[1]) { - bean.end_date = R.isoDate(dayjs(obj.dateRange[1]).utc()); - } - } - - if (obj.dateTimeRange[0]) { - bean.start_datetime = R.isoDateTime(dayjs(obj.dateTimeRange[0]).utc()); - - if (obj.dateTimeRange[1]) { - bean.end_datetime = R.isoDateTime(dayjs(obj.dateTimeRange[1]).utc()); + bean.end_date = isoToUTCDateTime(obj.dateRange[1]); } } diff --git a/server/model/maintenance_timeslot.js b/server/model/maintenance_timeslot.js index 7917dd697..0ac5158d2 100644 --- a/server/model/maintenance_timeslot.js +++ b/server/model/maintenance_timeslot.js @@ -36,8 +36,8 @@ class MaintenanceTimeslot extends BeanModel { } else if (maintenance.strategy === "single") { let bean = R.dispense("maintenance_timeslot"); bean.maintenance_id = maintenance.id; - bean.start_date = maintenance.start_datetime; - bean.end_date = maintenance.end_datetime; + bean.start_date = maintenance.start_date; + bean.end_date = maintenance.end_date; bean.generated_next = true; await R.store(bean); } else { diff --git a/src/pages/EditMaintenance.vue b/src/pages/EditMaintenance.vue index 640962d7d..be9f7ce4d 100644 --- a/src/pages/EditMaintenance.vue +++ b/src/pages/EditMaintenance.vue @@ -103,7 +103,7 @@