Browse Source

add error handling in logs page for invalid dates instead of crashing.

main
Gisle Aune 3 years ago
parent
commit
2923a088fc
  1. 32
      svelte-ui/src/pages/LogsPage.svelte

32
svelte-ui/src/pages/LogsPage.svelte

@ -11,18 +11,29 @@
let minTime = formatFormTime($logStore.filter.minTime || startOfWeek(new Date()));
let maxTime = formatFormTime(endOfWeek(new Date()));
let emptyMessage = `No logs since ${formatWeekdayDate(minTime)}.`;
let error = "";
$: {
const min = new Date(minTime);
const max = new Date(maxTime);
if (!$logStore.loading) {
if ($logStore.stale || $logStore.filter.minTime?.getTime() != min.getTime() || $logStore.filter.maxTime?.getTime() != max.getTime()) {
logStore.load({
minTime: min,
maxTime: max,
});
error = "";
if (!Number.isNaN(min.getTime()) && !Number.isNaN(max.getTime())) {
if (min.getTime() < max.getTime()) {
if (!$logStore.loading) {
if ($logStore.stale || $logStore.filter.minTime?.getTime() != min.getTime() || $logStore.filter.maxTime?.getTime() != max.getTime()) {
logStore.load({
minTime: min,
maxTime: max,
});
}
}
} else {
error = "Time only goes one way in this universe, you should respect that."
}
} else {
error = "The dates must be valid."
}
}
@ -82,6 +93,7 @@
<div class="page">
<DateRangeSelect label="Time Filter" noFuture styled bind:fromValue={minTime} bind:toValue={maxTime} />
<div class="error">{error}</div>
<div class="log-list" class:loading={$logStore.loading}>
{#each groupedLogs as logGroup (logGroup.day)}
<h2>{logGroup.text}</h2>
@ -97,6 +109,14 @@
<RefreshSelection />
<style>
div.error {
color: #ff4545;
text-align: center;
}
div.error:empty {
display: none;
}
div.page {
display: block;
margin: auto;

Loading…
Cancel
Save