fixed structure for ninja checks

This commit is contained in:
junlu592 2025-12-01 13:21:02 +01:00
parent 8a8f07c3c3
commit 9ff49ce111
3 changed files with 36 additions and 32 deletions

View file

@ -59,11 +59,8 @@ pub enum BoolKey {
/// This is a workaround for old clients that used ints to represent boolean
/// values. For new config items, prefer using a bool directly.
#[derive(Deserialize, Default)]
struct BoolLike(
#[serde(deserialize_with = "deserialize_bool_from_anything")]
#[allow(dead_code)]
bool,
);
#[allow(dead_code)]
struct BoolLike(#[serde(deserialize_with = "deserialize_bool_from_anything")] bool);
impl Collection {
pub fn get_config_bool(&self, key: BoolKey) -> bool {

View file

@ -170,37 +170,37 @@ export function dayLabel(daysStart: number, daysEnd: number): string {
} else {
return tr.statisticsDaysAgoSingle({ days: -daysStart });
}
} else {
// range
if (daysStart >= 0) {
return tr.statisticsInDaysRange({
daysStart,
daysEnd: daysEnd - 1,
});
} else {
// range
if (daysStart >= 0) {
return tr.statisticsInDaysRange({
daysStart,
daysEnd: daysEnd - 1,
// For bins that cross or end at day 0, we need special handling
if (daysEnd > 0) {
// Bin crosses day 0: show from 0 to the oldest day (exclusive of endDay)
// If bin is [-5, 1), we want "0-4 days ago"
return tr.statisticsDaysAgoRange({
daysStart: 0,
daysEnd: -daysStart - 1,
});
} else {
// For bins that cross or end at day 0, we need special handling
if (daysEnd > 0) {
// Bin crosses day 0: show from 0 to the oldest day (exclusive of endDay)
// If bin is [-5, 1), we want "0-4 days ago"
return tr.statisticsDaysAgoRange({
daysStart: 0,
daysEnd: -daysStart - 1,
});
} else {
// Bin is entirely in the past: show from newest to oldest
// For a bin [startDay, endDay), to show consecutive ranges like "0-4", "5-9", "10-14",
// we use endDay as the start of the range
// The bin width is daysEnd - daysStart, so daysEnd = daysStart + (width - 1)
// Example: bin [-10, -5) has width 5, should show "5-9 days ago"
const binWidth = Math.abs(daysEnd - daysStart);
const daysStartAbs = Math.abs(daysEnd);
return tr.statisticsDaysAgoRange({
daysStart: daysStartAbs,
daysEnd: daysStartAbs + binWidth - 1,
});
}
// Bin is entirely in the past: show from newest to oldest
// For a bin [startDay, endDay), to show consecutive ranges like "0-4", "5-9", "10-14",
// we use endDay as the start of the range
// The bin width is daysEnd - daysStart, so daysEnd = daysStart + (width - 1)
// Example: bin [-10, -5) has width 5, should show "5-9 days ago"
const binWidth = Math.abs(daysEnd - daysStart);
const daysStartAbs = Math.abs(daysEnd);
return tr.statisticsDaysAgoRange({
daysStart: daysStartAbs,
daysEnd: daysStartAbs + binWidth - 1,
});
}
}
}
}
/** Helper for converting Unix timestamps to date strings. */

View file

@ -239,7 +239,14 @@ export function renderReviews(
const startDay = Math.floor(d.x0!);
// If bin ends at 0, treat it as including day 0 (so use 1 as endDay for dayLabel)
// For negative bins, use the bin end directly (dayLabel will handle the conversion)
const endDay = d.x1! === 0 ? 1 : d.x1! < 0 ? d.x1! : Math.ceil(d.x1!);
let endDay: number;
if (d.x1! === 0) {
endDay = 1;
} else if (d.x1! < 0) {
endDay = d.x1!;
} else {
endDay = Math.ceil(d.x1!);
}
const day = dayLabel(startDay, endDay);
const totals = totalsForBin(d);
const dayTotal = valueLabel(sum(totals));