fix date range behavior to be more strongly typed, last 7 days is not an alias for a static date range.

This commit is contained in:
2021-07-17 11:08:23 +02:00
parent 2c909e6d85
commit ba4384b41d
12 changed files with 241 additions and 14907 deletions
+12 -13
View File
@@ -3,14 +3,15 @@
import Modal from "../components/Modal.svelte";
import modalStore from "../stores/modal";
import type { GoalResult } from "../models/goal";
import { formatFormTime, nextMonth } from "../utils/time";
import { nextMonth } from "../utils/time";
import GroupSelect from "../components/GroupSelect.svelte";
import markStale from "../stores/markStale";
import Checkbox from "../components/Checkbox.svelte";
import GroupItemSelect from "../components/GroupItemSelect.svelte";
import groupStore from "../stores/group";
import type { GroupResult } from "../models/group";
import DateRangeSelect from "../components/DateRangeSelect.svelte";
import Checkbox from "../components/Checkbox.svelte";
import GroupItemSelect from "../components/GroupItemSelect.svelte";
import groupStore from "../stores/group";
import type { GroupResult } from "../models/group";
import DateRangeSelect from "../components/DateRangeSelect.svelte";
import { allOffsets, rangeFromDates } from "../utils/date-range";
export let deletion = false;
export let creation = false;
@@ -48,8 +49,7 @@ import DateRangeSelect from "../components/DateRangeSelect.svelte";
let unweighted = goal.unweighted;
let itemId = goal.itemId || "";
let compositionMode = goal.compositionMode;
let startTime = formatFormTime(goal.startTime);
let endTime = formatFormTime(goal.endTime);
let range = rangeFromDates(new Date(goal.startTime), new Date(goal.endTime), allOffsets);
let taskFilter = goal.taskFilter || "";
let itemFilter = goal.itemFilter || "";
@@ -59,11 +59,11 @@ import DateRangeSelect from "../components/DateRangeSelect.svelte";
function onSubmit() {
loading = true;
const [startTime, endTime] = range.calculate(new Date());
if (creation) {
stuffLogClient.createGoal({
startTime: new Date(startTime),
endTime: new Date(endTime),
startTime, endTime,
itemId: itemId || null,
taskFilter: taskFilter.toLowerCase() || null,
itemFilter: itemFilter.toLowerCase() || null,
@@ -87,8 +87,7 @@ import DateRangeSelect from "../components/DateRangeSelect.svelte";
})
} else {
stuffLogClient.updateGoal(goal.id, {
startTime: new Date(startTime),
endTime: new Date(endTime),
startTime, endTime,
itemId: itemId || null,
clearItemId: itemId === "",
taskFilter: taskFilter.toLowerCase() || null,
@@ -134,7 +133,7 @@ import DateRangeSelect from "../components/DateRangeSelect.svelte";
<option value="task" selected={"task" === compositionMode}>Task</option>
<option value="project" selected={"project" === compositionMode}>Project</option>
</select>
<DateRangeSelect disabled={deletion} bind:fromValue={startTime} bind:toValue={endTime} />
<DateRangeSelect disabled={deletion} bind:value={range} />
<label for="taskFilter">Task Filter (Optional)</label>
<input disabled={deletion} name="taskFilter" type="text" bind:value={taskFilter} />
<label for="itemFilter">Item Filter (Optional)</label>