diff --git a/client/src/components/HomeGlobalSearch.tsx b/client/src/components/HomeGlobalSearch.tsx
index 732b8e2..111874a 100644
--- a/client/src/components/HomeGlobalSearch.tsx
+++ b/client/src/components/HomeGlobalSearch.tsx
@@ -16,6 +16,10 @@ interface TaskItem {
id: number;
title: string;
formId: number;
+ isCompleted?: boolean;
+ statusName?: string | null;
+ statusColor?: string | null;
+ statusIsFinal?: boolean | null;
}
interface HomeGlobalSearchProps {
@@ -120,16 +124,27 @@ export function HomeGlobalSearch({ className }: HomeGlobalSearchProps) {
{tasks.length > 0 && (
Задачи
- {tasks.map((t) => (
-
- ))}
+ {tasks.map((t) => {
+ const isClosed = !!t.isCompleted || !!t.statusIsFinal;
+ return (
+
+ );
+ })}
)}
diff --git a/server/storage.ts b/server/storage.ts
index 4b0cbdf..49fc527 100644
--- a/server/storage.ts
+++ b/server/storage.ts
@@ -195,7 +195,7 @@ export interface IStorage {
updateTask(id: number, organizationId: number, updates: Partial): Promise;
updateTaskIfNotModified(id: number, organizationId: number, updates: Partial, requiredUpdatedAt: Date): Promise;
deleteTask(id: number, organizationId: number): Promise;
- searchTasksByKeyword(organizationId: number, query: string, limit?: number): Promise[]>;
+ searchTasksByKeyword(organizationId: number, query: string, limit?: number): Promise<(Pick & { statusName: string | null; statusColor: string | null; statusIsFinal: boolean | null })[]>;
// Task Field Values
getTaskFieldValues(taskId: number, organizationId: number): Promise;
diff --git a/server/storage/tasks-core.storage.ts b/server/storage/tasks-core.storage.ts
index 343cbb9..2830527 100644
--- a/server/storage/tasks-core.storage.ts
+++ b/server/storage/tasks-core.storage.ts
@@ -347,7 +347,7 @@ export class TasksCoreStorage extends FormsStorage {
organizationId: number,
query: string,
limit: number = 10
- ): Promise[]> {
+ ): Promise<(Pick & { statusName: string | null; statusColor: string | null; statusIsFinal: boolean | null })[]> {
const pattern = `%${query}%`;
const results = await db
.select({
@@ -356,9 +356,14 @@ export class TasksCoreStorage extends FormsStorage {
description: tasks.description,
formId: tasks.formId,
currentStatusId: tasks.currentStatusId,
+ isCompleted: tasks.isCompleted,
+ statusName: formStatuses.name,
+ statusColor: formStatuses.color,
+ statusIsFinal: formStatuses.isFinal,
})
.from(tasks)
.innerJoin(forms, eq(tasks.formId, forms.id))
+ .leftJoin(formStatuses, eq(tasks.currentStatusId, formStatuses.id))
.where(
and(
eq(forms.organizationId, organizationId),