clean up logs modals and fix progress bars counting on completed but N<M/M task progress.
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
<script lang="ts">
|
||||
import stuffLogClient from "../clients/stufflog";
|
||||
import Checkbox from "../components/Checkbox.svelte";
|
||||
import Modal from "../components/Modal.svelte";
|
||||
import goalStore, { fpGoalStore } from "../stores/goal";
|
||||
import logStore from "../stores/logs";
|
||||
import modalStore from "../stores/modal";
|
||||
import projectStore, { fpProjectStore } from "../stores/project";
|
||||
import taskStore, { fpTaskStore } from "../stores/tasks";
|
||||
import { formatFormTime } from "../utils/time";
|
||||
|
||||
const md = $modalStore;
|
||||
if (md.name !== "log.add") {
|
||||
throw new Error("Wrong form");
|
||||
}
|
||||
const task = md.task;
|
||||
|
||||
let loggedTime = formatFormTime(new Date);
|
||||
let description = "";
|
||||
let markInactive = task.completedAmount >= (task.itemAmount - 1);
|
||||
let error = null;
|
||||
let loading = false;
|
||||
|
||||
function onSubmit() {
|
||||
loading = true;
|
||||
|
||||
stuffLogClient.createLog({
|
||||
taskId: task.id,
|
||||
loggedTime: new Date(loggedTime).toISOString(),
|
||||
description,
|
||||
}).then(() => {
|
||||
if (markInactive) {
|
||||
return stuffLogClient.updateTask(task.id, {active: false})
|
||||
}
|
||||
}).then(() => {
|
||||
modalStore.close();
|
||||
}).finally(() => {
|
||||
projectStore.markStale();
|
||||
fpProjectStore.markStale();
|
||||
goalStore.markStale();
|
||||
fpGoalStore.markStale();
|
||||
taskStore.markStale();
|
||||
fpTaskStore.markStale();
|
||||
logStore.markStale();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
|
||||
error = null;
|
||||
}
|
||||
|
||||
function onClose() {
|
||||
modalStore.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
<Modal show title="Add Log" error={error} closable on:close={onClose}>
|
||||
<form on:submit|preventDefault={onSubmit}>
|
||||
<label for="taskName">Task</label>
|
||||
<input disabled name="taskName" type="text" bind:value={task.name} />
|
||||
|
||||
<label for="loggedTime">Logged Time</label>
|
||||
<input name="loggedTime" type="datetime-local" bind:value={loggedTime} />
|
||||
<label for="description">Description</label>
|
||||
<textarea name="description" bind:value={description} />
|
||||
<Checkbox bind:checked={markInactive} label="Mark task inactive/completed." />
|
||||
|
||||
<hr />
|
||||
|
||||
<button disabled={loading} type="submit">Add Log</button>
|
||||
</form>
|
||||
</Modal>
|
||||
@@ -1,64 +0,0 @@
|
||||
<script lang="ts">
|
||||
import stuffLogClient from "../clients/stufflog";
|
||||
import Modal from "../components/Modal.svelte";
|
||||
import modalStore from "../stores/modal";
|
||||
import goalStore, { fpGoalStore } from "../stores/goal";
|
||||
import projectStore, { fpProjectStore } from "../stores/project";
|
||||
import { formatFormTime } from "../utils/time";
|
||||
import logStore from "../stores/logs";
|
||||
import taskStore, { fpTaskStore } from "../stores/tasks";
|
||||
|
||||
const md = $modalStore;
|
||||
if (md.name !== "log.delete") {
|
||||
throw new Error("Wrong form");
|
||||
}
|
||||
|
||||
let loggedTime = formatFormTime(new Date(md.log.loggedTime));
|
||||
let description = md.log.description;
|
||||
let error = null;
|
||||
let loading = false;
|
||||
|
||||
function onSubmit() {
|
||||
const md = $modalStore;
|
||||
if (md.name !== "log.delete") {
|
||||
throw new Error("Wrong form");
|
||||
}
|
||||
|
||||
loading = true;
|
||||
|
||||
stuffLogClient.deleteLog(md.log.id).then(() => {
|
||||
projectStore.markStale();
|
||||
fpProjectStore.markStale();
|
||||
goalStore.markStale();
|
||||
fpGoalStore.markStale();
|
||||
logStore.markStale();
|
||||
taskStore.markStale();
|
||||
fpTaskStore.markStale();
|
||||
|
||||
modalStore.close();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
|
||||
error = null;
|
||||
}
|
||||
|
||||
function onClose() {
|
||||
modalStore.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
<Modal show title="Delete Log" error={error} closable on:close={onClose}>
|
||||
<form on:submit|preventDefault={onSubmit}>
|
||||
<label for="taskName">Task</label>
|
||||
<input disabled name="taskName" type="text" bind:value={md.log.task.name} />
|
||||
<label for="loggedTime">Logged Time</label>
|
||||
<input disabled name="loggedTime" type="datetime-local" bind:value={loggedTime} />
|
||||
<label for="description">Description</label>
|
||||
<textarea disabled name="description" bind:value={description} />
|
||||
|
||||
<hr />
|
||||
|
||||
<button disabled={loading} type="submit">Delete Log</button>
|
||||
</form>
|
||||
</Modal>
|
||||
@@ -1,67 +0,0 @@
|
||||
<script lang="ts">
|
||||
import stuffLogClient from "../clients/stufflog";
|
||||
import Modal from "../components/Modal.svelte";
|
||||
import modalStore from "../stores/modal";
|
||||
import goalStore, { fpGoalStore } from "../stores/goal";
|
||||
import projectStore, { fpProjectStore } from "../stores/project";
|
||||
import { formatFormTime } from "../utils/time";
|
||||
import logStore from "../stores/logs";
|
||||
import taskStore, { fpTaskStore } from "../stores/tasks";
|
||||
|
||||
const md = $modalStore;
|
||||
if (md.name !== "log.edit") {
|
||||
throw new Error("Wrong form");
|
||||
}
|
||||
|
||||
let loggedTime = formatFormTime(new Date(md.log.loggedTime));
|
||||
let description = md.log.description;
|
||||
let error = null;
|
||||
let loading = false;
|
||||
|
||||
function onSubmit() {
|
||||
const md = $modalStore;
|
||||
if (md.name !== "log.edit") {
|
||||
throw new Error("Wrong form");
|
||||
}
|
||||
|
||||
loading = true;
|
||||
|
||||
stuffLogClient.updateLog(md.log.id, {
|
||||
loggedTime: new Date(loggedTime).toISOString(),
|
||||
description,
|
||||
}).then(() => {
|
||||
projectStore.markStale();
|
||||
fpProjectStore.markStale();
|
||||
goalStore.markStale();
|
||||
fpGoalStore.markStale();
|
||||
taskStore.markStale();
|
||||
fpTaskStore.markStale();
|
||||
logStore.markStale();
|
||||
|
||||
modalStore.close();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
|
||||
error = null;
|
||||
}
|
||||
|
||||
function onClose() {
|
||||
modalStore.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
<Modal show title="Edit Log" error={error} closable on:close={onClose}>
|
||||
<form on:submit|preventDefault={onSubmit}>
|
||||
<label for="taskName">Task</label>
|
||||
<input disabled name="taskName" type="text" bind:value={md.log.task.name} />
|
||||
<label for="loggedTime">Logged Time</label>
|
||||
<input name="loggedTime" type="datetime-local" bind:value={loggedTime} />
|
||||
<label for="description">Description</label>
|
||||
<textarea name="description" bind:value={description} />
|
||||
|
||||
<hr />
|
||||
|
||||
<button disabled={loading} type="submit">Edit Log</button>
|
||||
</form>
|
||||
</Modal>
|
||||
@@ -0,0 +1,106 @@
|
||||
<script lang="ts">
|
||||
import stuffLogClient from "../clients/stufflog";
|
||||
import Checkbox from "../components/Checkbox.svelte";
|
||||
import Modal from "../components/Modal.svelte";
|
||||
import type { LogResult } from "../models/log";
|
||||
import markStale from "../stores/markStale";
|
||||
import modalStore from "../stores/modal";
|
||||
import { formatFormTime } from "../utils/time";
|
||||
|
||||
export let deletion = false;
|
||||
export let creation = false;
|
||||
|
||||
const md = $modalStore;
|
||||
let log: LogResult = {
|
||||
id: "",
|
||||
taskId: "",
|
||||
itemId: "",
|
||||
loggedTime: new Date().toISOString(),
|
||||
description: "",
|
||||
task: null,
|
||||
item: null,
|
||||
}
|
||||
let defaultMarkInactive = false;
|
||||
let verb = "Add";
|
||||
if (md.name === "log.edit" || md.name === "log.delete") {
|
||||
log = md.log;
|
||||
verb = (md.name === "log.edit") ? "Edit" : "Delete";
|
||||
} else if (md.name === "log.add") {
|
||||
defaultMarkInactive = md.task.completedAmount >= (md.task.itemAmount - 1);
|
||||
log.task = md.task;
|
||||
} else {
|
||||
throw new Error("Wrong form")
|
||||
}
|
||||
|
||||
let loggedTime = formatFormTime(log.loggedTime);
|
||||
let description = log.description;
|
||||
let markInactive = defaultMarkInactive;
|
||||
let error = null;
|
||||
let loading = false;
|
||||
|
||||
function onSubmit() {
|
||||
loading = true;
|
||||
error = null;
|
||||
|
||||
if (creation) {
|
||||
stuffLogClient.createLog({
|
||||
taskId: log.task.id,
|
||||
loggedTime: new Date(loggedTime).toISOString(),
|
||||
description,
|
||||
}).then(() => {
|
||||
markStale("project", "task", "goal", "log");
|
||||
|
||||
if (markInactive) {
|
||||
return stuffLogClient.updateTask(log.task.id, {active: false});
|
||||
}
|
||||
}).then(() => {
|
||||
markStale("project", "task");
|
||||
|
||||
modalStore.close();
|
||||
}).catch(err => {
|
||||
error = err.message ? err.message : err.toString();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
} else if (deletion) {
|
||||
stuffLogClient.deleteLog(log.id).then(() => {
|
||||
markStale("project", "task", "goal", "log");
|
||||
modalStore.close();
|
||||
}).catch(err => {
|
||||
error = err.message ? err.message : err.toString();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
} else {
|
||||
stuffLogClient.updateLog(log.id, {
|
||||
loggedTime: new Date(loggedTime).toISOString(),
|
||||
description,
|
||||
}).then(() => {
|
||||
markStale("project", "task", "goal", "log");
|
||||
modalStore.close();
|
||||
}).finally(() => {
|
||||
loading = false;
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function onClose() {
|
||||
modalStore.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
<Modal show title="Add Log" error={error} closable on:close={onClose}>
|
||||
<form on:submit|preventDefault={onSubmit}>
|
||||
<label for="taskName">Task</label>
|
||||
<input disabled name="taskName" type="text" value={log.task.name} />
|
||||
<label for="loggedTime">Logged Time</label>
|
||||
<input disabled={deletion} name="loggedTime" type="datetime-local" bind:value={loggedTime} />
|
||||
<label for="description">Description</label>
|
||||
<textarea disabled={deletion} name="description" bind:value={description} />
|
||||
<Checkbox disabled={deletion} bind:checked={markInactive} label="Mark task inactive/completed." />
|
||||
|
||||
<hr />
|
||||
|
||||
<button disabled={loading} type="submit">Add Log</button>
|
||||
</form>
|
||||
</Modal>
|
||||
Reference in New Issue
Block a user