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