diff --git a/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json b/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json index d957b891..e013b4f2 100644 --- a/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json +++ b/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json @@ -82,5 +82,11 @@ }, "taskActivityLogTab": { "title": "Activity Log" + }, + "taskProgress": { + "markAsDoneTitle": "Mark Task as Done?", + "confirmMarkAsDone": "Yes, mark as done", + "cancelMarkAsDone": "No, keep current status", + "markAsDoneDescription": "You've set the progress to 100%. Would you like to update the task status to \"Done\"?" } } diff --git a/worklenz-frontend/public/locales/es/task-drawer/task-drawer.json b/worklenz-frontend/public/locales/es/task-drawer/task-drawer.json index d61bfd47..8b3ef220 100644 --- a/worklenz-frontend/public/locales/es/task-drawer/task-drawer.json +++ b/worklenz-frontend/public/locales/es/task-drawer/task-drawer.json @@ -82,5 +82,11 @@ }, "taskActivityLogTab": { "title": "Registro de actividad" + }, + "taskProgress": { + "markAsDoneTitle": "¿Marcar Tarea como Completada?", + "confirmMarkAsDone": "Sí, marcar como completada", + "cancelMarkAsDone": "No, mantener estado actual", + "markAsDoneDescription": "Has establecido el progreso al 100%. ¿Quieres actualizar el estado de la tarea a \"Completada\"?" } } \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pt/task-drawer/task-drawer.json b/worklenz-frontend/public/locales/pt/task-drawer/task-drawer.json index 0f0324c9..7a3933f2 100644 --- a/worklenz-frontend/public/locales/pt/task-drawer/task-drawer.json +++ b/worklenz-frontend/public/locales/pt/task-drawer/task-drawer.json @@ -82,5 +82,11 @@ }, "taskActivityLogTab": { "title": "Registro de atividade" + }, + "taskProgress": { + "markAsDoneTitle": "Marcar Tarefa como Concluída?", + "confirmMarkAsDone": "Sim, marcar como concluída", + "cancelMarkAsDone": "Não, manter status atual", + "markAsDoneDescription": "Você definiu o progresso como 100%. Deseja atualizar o status da tarefa para \"Concluída\"?" } } \ No newline at end of file diff --git a/worklenz-frontend/src/components/task-drawer/shared/info-tab/details/task-drawer-progress/task-drawer-progress.tsx b/worklenz-frontend/src/components/task-drawer/shared/info-tab/details/task-drawer-progress/task-drawer-progress.tsx index 2b588dbf..df1ce2ea 100644 --- a/worklenz-frontend/src/components/task-drawer/shared/info-tab/details/task-drawer-progress/task-drawer-progress.tsx +++ b/worklenz-frontend/src/components/task-drawer/shared/info-tab/details/task-drawer-progress/task-drawer-progress.tsx @@ -242,9 +242,20 @@ const TaskDrawerProgress = ({ task, form }: TaskDrawerProgressProps) => { formatter={percentFormatter} parser={percentParser} onBlur={e => { - const value = percentParser(e.target.value); + let value = percentParser(e.target.value); + // Ensure value doesn't exceed 100 + if (value > 100) { + value = 100; + form.setFieldsValue({ weight: 100 }); + } handleWeightChange(value); }} + onChange={value => { + if (value !== null && value > 100) { + form.setFieldsValue({ weight: 100 }); + handleWeightChange(100); + } + }} /> )} @@ -274,22 +285,33 @@ const TaskDrawerProgress = ({ task, form }: TaskDrawerProgressProps) => { formatter={percentFormatter} parser={percentParser} onBlur={e => { - const value = percentParser(e.target.value); + let value = percentParser(e.target.value); + // Ensure value doesn't exceed 100 + if (value > 100) { + value = 100; + form.setFieldsValue({ progress_value: 100 }); + } handleProgressChange(value); }} + onChange={value => { + if (value !== null && value > 100) { + form.setFieldsValue({ progress_value: 100 }); + handleProgressChange(100); + } + }} /> )} setIsCompletionModalVisible(false)} - okText="Yes, mark as done" - cancelText="No, keep current status" + okText={t('taskProgress.confirmMarkAsDone', 'Yes, mark as done')} + cancelText={t('taskProgress.cancelMarkAsDone', 'No, keep current status')} > -

You've set the progress to 100%. Would you like to update the task status to "Done"?

+

{t('taskProgress.markAsDoneDescription', 'You\'ve set the progress to 100%. Would you like to update the task status to "Done"?')}

); diff --git a/worklenz-frontend/src/components/task-drawer/task-drawer-status-dropdown/task-drawer-status-dropdown.tsx b/worklenz-frontend/src/components/task-drawer/task-drawer-status-dropdown/task-drawer-status-dropdown.tsx index d9784f90..5378acb3 100644 --- a/worklenz-frontend/src/components/task-drawer/task-drawer-status-dropdown/task-drawer-status-dropdown.tsx +++ b/worklenz-frontend/src/components/task-drawer/task-drawer-status-dropdown/task-drawer-status-dropdown.tsx @@ -46,6 +46,7 @@ const TaskDrawerStatusDropdown = ({ statuses, task, teamId }: TaskDrawerStatusDr SocketEvents.TASK_STATUS_CHANGE.toString(), (data: ITaskListStatusChangeResponse) => { dispatch(setTaskStatus(data)); + socket?.emit(SocketEvents.GET_TASK_PROGRESS.toString(), task.id); if (tab === 'tasks-list') { dispatch(updateTaskStatus(data)); @@ -65,7 +66,6 @@ const TaskDrawerStatusDropdown = ({ statuses, task, teamId }: TaskDrawerStatusDr ); } } - }; const options = useMemo(