fix: activity chart uses rolling chronological windows (real dates), not cyclical

Day/Week/Month/Year now show the anchor day hour-by-hour, the last 7 days, the
last 30 days, and the last 12 months — anchored to the period end (else now), in
real date order. Replaces the cyclical hour-of-day/weekday/day-of-month/month
buckets, which left future days empty and ordered the weekend after Monday.
This commit is contained in:
2026-07-20 21:39:24 +02:00
parent f0c4f22942
commit bfbd9fa61a
4 changed files with 53 additions and 37 deletions
+6 -6
View File
@@ -3928,9 +3928,9 @@ export namespace qso {
by_year: Bucket[];
by_month: Bucket[];
by_hour: Bucket[];
by_dow: Bucket[];
by_dom: Bucket[];
by_month_yr: Bucket[];
by_day7: Bucket[];
by_day30: Bucket[];
by_month12: Bucket[];
window_start: string;
window_end: string;
window_hours: number;
@@ -3972,9 +3972,9 @@ export namespace qso {
this.by_year = this.convertValues(source["by_year"], Bucket);
this.by_month = this.convertValues(source["by_month"], Bucket);
this.by_hour = this.convertValues(source["by_hour"], Bucket);
this.by_dow = this.convertValues(source["by_dow"], Bucket);
this.by_dom = this.convertValues(source["by_dom"], Bucket);
this.by_month_yr = this.convertValues(source["by_month_yr"], Bucket);
this.by_day7 = this.convertValues(source["by_day7"], Bucket);
this.by_day30 = this.convertValues(source["by_day30"], Bucket);
this.by_month12 = this.convertValues(source["by_month12"], Bucket);
this.window_start = source["window_start"];
this.window_end = source["window_end"];
this.window_hours = source["window_hours"];