From c2d7806fd3b351fd782fb7251decd9bdcf861cd9 Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sat, 4 Dec 2021 12:17:02 +0100 Subject: [PATCH] expose task sorting mode options to the user. No clue why anything but the status will be used, but why not. --- database/postgres/project.go | 7 ++++--- svelte-ui/src/components/ProjectEntry.svelte | 4 +++- svelte-ui/src/forms/ProjectForm.svelte | 7 +++++++ svelte-ui/src/models/project.ts | 3 +++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/database/postgres/project.go b/database/postgres/project.go index 5c4474e..ebbcf13 100644 --- a/database/postgres/project.go +++ b/database/postgres/project.go @@ -91,9 +91,9 @@ func (r *projectRepository) Insert(ctx context.Context, project models.Project) _, err := r.db.NamedExecContext(ctx, ` INSERT INTO project( - project_id, user_id, project_group_id, name, description, icon, active, created_time, start_time, end_time, subtract_amount, status_tag, favorite, tags + project_id, user_id, project_group_id, name, description, icon, active, created_time, start_time, end_time, subtract_amount, status_tag, favorite, tags, task_sort_fields ) VALUES ( - :project_id, :user_id, :project_group_id, :name, :description, :icon, :active, :created_time, :start_time, :end_time, :subtract_amount, :status_tag, :favorite, :tags + :project_id, :user_id, :project_group_id, :name, :description, :icon, :active, :created_time, :start_time, :end_time, :subtract_amount, :status_tag, :favorite, :tags, :task_sort_fields ) `, toProjectDBO(project)) if err != nil { @@ -120,7 +120,8 @@ func (r *projectRepository) Update(ctx context.Context, project models.Project) subtract_amount = :subtract_amount, status_tag = :status_tag, favorite = :favorite, - tags = :tags + tags = :tags, + task_sort_fields = :task_sort_fields WHERE project_id=:project_id `, toProjectDBO(project)) if err != nil { diff --git a/svelte-ui/src/components/ProjectEntry.svelte b/svelte-ui/src/components/ProjectEntry.svelte index e9676ac..593d4a7 100644 --- a/svelte-ui/src/components/ProjectEntry.svelte +++ b/svelte-ui/src/components/ProjectEntry.svelte @@ -134,7 +134,9 @@ {/if} {/if} - {#if hideInactive} + {#if project.taskSortFields.length > 0 && !project.taskSortFields[0].includes("status")} + + {:else if hideInactive} {:else} diff --git a/svelte-ui/src/forms/ProjectForm.svelte b/svelte-ui/src/forms/ProjectForm.svelte index 9cd441e..286170c 100644 --- a/svelte-ui/src/forms/ProjectForm.svelte +++ b/svelte-ui/src/forms/ProjectForm.svelte @@ -32,6 +32,8 @@ favorite: false, subtractAmount: 0, tags: [], + taskSortFields: ["status"], + subtractions: [], } let verb = "Add"; if (md.name === "project.edit" || md.name === "project.delete") { @@ -55,6 +57,7 @@ let error = null; let loading = false; let tags = project.tags.join(", "); + let taskSortFields = project.taskSortFields.join(", "); function onSubmit() { loading = true; @@ -71,6 +74,7 @@ statusTag: statusTag !== "" ? statusTag : null, subtractAmount: Math.min(subtractAmount, 0), tags: tags.length > 0 ? tags.split(",").map(t => t.trim()) : [], + taskSortFields: taskSortFields.length > 0 ? taskSortFields.split(",").map(t => t.trim()) : [], name, description, icon, favorite, }).then(newProject => { @@ -104,6 +108,7 @@ clearStatusTag: statusTag === "", subtractAmount: subtractAmount, setTags: tags.length > 0 ? tags.split(",").map(t => t.trim()) : [], + taskSortFields: taskSortFields.length > 0 ? taskSortFields.split(",").map(t => t.trim()) : [], name, description, icon, favorite, }).then(() => { @@ -149,6 +154,8 @@ + + diff --git a/svelte-ui/src/models/project.ts b/svelte-ui/src/models/project.ts index b2dd989..9683fdc 100644 --- a/svelte-ui/src/models/project.ts +++ b/svelte-ui/src/models/project.ts @@ -13,6 +13,7 @@ export default interface Project { favorite: boolean subtractAmount: number tags: string[] + taskSortFields: string[] startTime?: string endTime?: string statusTag?: string @@ -47,6 +48,7 @@ export interface ProjectInput { statusTag?: string favorite?: boolean tags?: string[] + taskSortFields?: string[] } export interface ProjectUpdate { @@ -64,4 +66,5 @@ export interface ProjectUpdate { subtractAmount?: number favorite?: boolean setTags?: string[] + taskSortFields?: string[] } \ No newline at end of file