diff --git a/backend/plugins/operation_api/src/modules/task/@types/task.ts b/backend/plugins/operation_api/src/modules/task/@types/task.ts index fe9bad1849..43dfe2330f 100644 --- a/backend/plugins/operation_api/src/modules/task/@types/task.ts +++ b/backend/plugins/operation_api/src/modules/task/@types/task.ts @@ -15,7 +15,7 @@ export interface ITask { assigneeId?: string; createdBy?: string; cycleId?: string | null; - projectId?: string; + projectId?: string | null; estimatePoint?: number; userId?: string; startDate?: Date; diff --git a/backend/plugins/operation_api/src/modules/task/db/models/Task.ts b/backend/plugins/operation_api/src/modules/task/db/models/Task.ts index 1b2d5d974e..933d57f39d 100644 --- a/backend/plugins/operation_api/src/modules/task/db/models/Task.ts +++ b/backend/plugins/operation_api/src/modules/task/db/models/Task.ts @@ -84,7 +84,7 @@ export const loadTaskClass = (models: IModels) => { if (params.projectId) { query.projectId = params.projectId; } - + if (params.createdAt) { query.createdAt = { $gte: params.createdAt }; } @@ -161,6 +161,8 @@ export const loadTaskClass = (models: IModels) => { }) { const { _id, ...rest } = doc; + if (rest.projectId === '') rest.projectId = null; + const task = await models.Task.findOne({ _id }); if (!task) { @@ -216,7 +218,7 @@ export const loadTaskClass = (models: IModels) => { rest.number = nextNumber; rest.status = newStatus?._id; - rest.cycleId = ''; + rest.cycleId = null; } await createActivity({ diff --git a/frontend/plugins/operation_ui/src/modules/project/hooks/useGetProjects.tsx b/frontend/plugins/operation_ui/src/modules/project/hooks/useGetProjects.tsx index 97c7a10dd3..8af95acd2c 100644 --- a/frontend/plugins/operation_ui/src/modules/project/hooks/useGetProjects.tsx +++ b/frontend/plugins/operation_ui/src/modules/project/hooks/useGetProjects.tsx @@ -36,13 +36,11 @@ export const useProjectsVariables = ( const { cursor } = useRecordTableCursor({ sessionKey: PROJECTS_CURSOR_SESSION_KEY, }); - const [{ name, team, priority, status, lead }] = useMultiQueryState<{ + const [{ name, team, lead }] = useMultiQueryState<{ name: string; team: string; - priority: string; - status: string; lead: string; - }>(['name', 'team', 'priority', 'status', 'lead']); + }>(['name', 'team', 'lead']); const currentUser = useAtomValue(currentUserState); return { @@ -52,9 +50,6 @@ export const useProjectsVariables = ( }, cursor, name: name || undefined, - - priority: priority || undefined, - status: status || undefined, leadId: lead || undefined, ...variables, ...(variables?.teamIds || variables?.userId || !currentUser?._id diff --git a/frontend/plugins/operation_ui/src/modules/task/components/TaskDetailSheet.tsx b/frontend/plugins/operation_ui/src/modules/task/components/TaskDetailSheet.tsx index 407ec89a3e..59b57a7bc3 100644 --- a/frontend/plugins/operation_ui/src/modules/task/components/TaskDetailSheet.tsx +++ b/frontend/plugins/operation_ui/src/modules/task/components/TaskDetailSheet.tsx @@ -50,8 +50,6 @@ export const TaskDetailSheetHeader = () => { - - {task?.name} ); }; diff --git a/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskDetails.tsx b/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskDetails.tsx index eb8a38bc77..dc0e639156 100644 --- a/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskDetails.tsx +++ b/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskDetails.tsx @@ -12,7 +12,7 @@ export const TaskDetails = ({ taskId }: { taskId: string }) => { return (
-
+
diff --git a/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskFields.tsx b/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskFields.tsx index b6ded161ed..b7f23eeb67 100644 --- a/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskFields.tsx +++ b/frontend/plugins/operation_ui/src/modules/task/components/detail/TaskFields.tsx @@ -1,7 +1,7 @@ -import { Input, Separator, useBlockEditor, BlockEditor } from 'erxes-ui'; +import { Separator, useBlockEditor, BlockEditor, Textarea } from 'erxes-ui'; import { useUpdateTask } from '@/task/hooks/useUpdateTask'; import { useDebounce } from 'use-debounce'; -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { Block } from '@blocknote/core'; import { ITask } from '@/task/types'; import { ActivityList } from '@/activity/components/ActivityList'; @@ -46,6 +46,7 @@ export const TaskFields = ({ task }: { task: ITask }) => { }); const { updateTask } = useUpdateTask(); const [name, setName] = useState(_name); + const textareaRef = useRef(null); const handleDescriptionChange = async () => { const content = await editor?.document; @@ -84,10 +85,21 @@ export const TaskFields = ({ task }: { task: ITask }) => { }); // eslint-disable-next-line react-hooks/exhaustive-deps }, [debouncedDescriptionContent]); + + useEffect(() => { + if (!textareaRef.current) { + return; + } + textareaRef.current.style.height = 'auto'; + textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`; + }, [name]); + return (
- setName(e.target.value)}