dev #160

Merged
sora merged 97 commits from dev into master 2025-03-02 01:09:30 +01:00
Showing only changes of commit cbaaf4de5b - Show all commits

View File

@ -18,8 +18,8 @@ class journey_wrapper {
leg_count(): number { leg_count(): number {
return this.data.main.length; return this.data.main.length;
} }
leg_len(idx: number = null): number { leg_len(idx?: number): number {
let d = this.leg_get(idx == null ? this.sel_leg : idx).date_range; let d = this.leg_get(idx == undefined ? this.sel_leg : idx).date_range;
return d ? date_day_diff(d[0], d[1]) + 1 : 1; return d ? date_day_diff(d[0], d[1]) + 1 : 1;
} }
add_leg(): void { add_leg(): void {
@ -32,20 +32,20 @@ class journey_wrapper {
} }
tot_len(): number | "?" { tot_len(): number | "?" {
if (this.leg_count() == 0) return 0; if (this.leg_count() == 0) return 0;
try { let lf = this.leg_first(), ll = this.leg_last();
let d0 = this.leg_first().date_range[0] if (lf.date_range && ll.date_range) {
let d1 = this.leg_last().date_range[1] let d0 = lf.date_range[0]
let d1 = ll.date_range[1]
return date_day_diff(d0, d1); return date_day_diff(d0, d1);
} catch {
return "?";
} }
return "?";
} }
leg_sel(idx: number): void { leg_sel(idx: number): void {
this.sel_leg = idx; this.sel_leg = idx;
this.sel_day = 1; this.sel_day = 1;
} }
leg_get(idx: number = null): leg { leg_get(idx?: number): leg {
return this.data.main[idx == null ? this.sel_leg : idx] return this.data.main[idx != undefined ? idx : this.sel_leg]
} }
leg_next(): void { leg_next(): void {
this.sel_leg = Math.min(this.sel_leg + 1, this.leg_count() - 1); this.sel_leg = Math.min(this.sel_leg + 1, this.leg_count() - 1);
@ -79,25 +79,26 @@ class journey_wrapper {
} }
date_sel(): string { date_sel(): string {
if (this.sel_day < 0) return "?"; if (this.sel_day < 0) return "?";
if (!this.leg_get().date_range) let leg = this.leg_get()
if (!leg.date_range)
return "?"; return "?";
var date = new Date( var date = new Date(
this.leg_get().date_range[0], leg.date_range[0],
); );
date.setDate(date.getDate() + this.sel_day); date.setDate(date.getDate() + this.sel_day);
return date.toLocal(); return date.toLocal();
} }
date_tot() { date_tot() {
if (this.leg_count() == 0) return ""; if (this.leg_count() == 0) return "";
try { let lf = this.leg_first(), ll = this.leg_last();
return `${this.leg_first().date_range[0].toLocal()} - ${this.leg_last().date_range[1].toLocal()}`; if (lf.date_range && ll.date_range)
} catch { return `${lf.date_range[0].toLocal()} - ${ll[1].toLocal()}`;
return "?"; return "?";
} }
}
date_update(idx: number) { date_update(idx: number) {
let date_range = this.leg_get(idx).date_range; let date_range = this.leg_get(idx).date_range;
if (!date_range) return;
let start_end = [0, 0]; let start_end = [0, 0];
let step_len = 0; let step_len = 0;
@ -110,11 +111,14 @@ class journey_wrapper {
this.leg_get(i).date_range = [new Date(), new Date()]; this.leg_get(i).date_range = [new Date(), new Date()];
start_end = [last_start.getDate() - step_len, last_start.getDate()]; start_end = [last_start.getDate() - step_len, last_start.getDate()];
} }
this.leg_get(i).date_range[0].setTime(last_start.getTime()); let leg = this.leg_get(i)
this.leg_get(i).date_range[0].setDate(start_end[0]); if (leg.date_range) {
this.leg_get(i).date_range[1].setTime(last_start.getTime()); leg.date_range[0].setTime(last_start.getTime());
this.leg_get(i).date_range[1].setDate(start_end[1]); leg.date_range[0].setDate(start_end[0]);
last_start = this.leg_get(i).date_range[0]; leg.date_range[1].setTime(last_start.getTime());
leg.date_range[1].setDate(start_end[1]);
last_start = leg.date_range[0];
}
} }
let last_end = date_range[1]; let last_end = date_range[1];
@ -126,11 +130,14 @@ class journey_wrapper {
this.leg_get(i).date_range = [new Date(), new Date()]; this.leg_get(i).date_range = [new Date(), new Date()];
start_end = [last_end.getDate(), last_end.getDate() + step_len]; start_end = [last_end.getDate(), last_end.getDate() + step_len];
} }
this.leg_get(i).date_range[0].setTime(last_end.getTime()); let leg = this.leg_get(i)
this.leg_get(i).date_range[0].setDate(start_end[0]); if (leg.date_range) {
this.leg_get(i).date_range[1].setTime(last_end.getTime()); leg.date_range[0].setTime(last_end.getTime());
this.leg_get(i).date_range[1].setDate(start_end[1]); leg.date_range[0].setDate(start_end[0]);
last_end = this.leg_get(i).date_range[1]; leg.date_range[1].setTime(last_end.getTime());
leg.date_range[1].setDate(start_end[1]);
last_end = leg.date_range[1];
}
} }
} }
} }