diff --git a/app/src/components/schedule-item.vue b/app/src/components/schedule-item.vue index 0e7f3b08..33b986d3 100644 --- a/app/src/components/schedule-item.vue +++ b/app/src/components/schedule-item.vue @@ -188,7 +188,9 @@ export default class ScheduleItem extends Vue { async setLevel() { this.localSchedule.level = this.levelSlider; this.levelMenu = false; - await this.save(); + if (!this.newSchedule) { + await this.save(); + } } get directLevel(): number { const settings = getVehicleLocationSettings(this.vehicle); @@ -203,14 +205,14 @@ export default class ScheduleItem extends Vue { } else { this.localSchedule.time = datetime.toJSDate().toISOString(); } - if (this.localSchedule.time !== was) { + if (this.localSchedule.time !== was && !this.newSchedule) { await this.save(); } } async addSchedule() { this.isSaving = true; - this.$emit(`add`, () => { + this.$emit(`add`, this.localSchedule, () => { this.isSaving = false; }); } diff --git a/app/src/components/vehicle-schedule.vue b/app/src/components/vehicle-schedule.vue index 19dcfde4..dc42f1d0 100644 --- a/app/src/components/vehicle-schedule.vue +++ b/app/src/components/vehicle-schedule.vue @@ -70,9 +70,11 @@ export default class VehicleSchedule extends Vue { if (f.type === GQLScheduleType.Trip) return true; if (f.type === GQLScheduleType.Manual) return true; if (f.type === GQLScheduleType.AI) { - this.guideDateTime = DateTime.fromMillis( - Math.ceil(new Date(f.time).getTime() / 60e4) * 60e4 - ); + const aiTime = Math.ceil(new Date(f.time).getTime() / 60e4) * 60e4; + // Only use AI schedule time if it's in the future + if (aiTime > Date.now()) { + this.guideDateTime = DateTime.fromMillis(aiTime); + } } return false; }); @@ -87,16 +89,16 @@ export default class VehicleSchedule extends Vue { }; } - async addSchedule(callback: any) { - if (this.newSchedule && this.newSchedule.type) { - const lvl = this.newSchedule.level || null; + async addSchedule(localSchedule: Partial, callback: any) { + if (localSchedule && localSchedule.type) { + const lvl = localSchedule.level || null; const time = - (this.newSchedule.time && new Date(this.newSchedule.time)) || null; + (localSchedule.time && new Date(localSchedule.time)) || null; await this.$scClient.updateSchedule( undefined, this.vehicle.id, - this.newSchedule.type, + localSchedule.type, lvl, time );