Переглянути джерело

fix bug

tags/Baseline_30082024_FRONTEND_UAT
cyril.tsui 1 рік тому
джерело
коміт
9fec749f65
7 змінених файлів з 23 додано та 13 видалено
  1. +6
    -1
      src/app/api/tasks/actions.ts
  2. +6
    -2
      src/components/CreateProject/Milestone.tsx
  3. +7
    -8
      src/components/CreateTaskTemplate/CreateTaskTemplate.tsx
  4. +1
    -1
      src/components/CustomerSearch/CustomerSearch.tsx
  5. +1
    -1
      src/components/SubsidiarySearch/SubsidiarySearch.tsx
  6. +1
    -0
      src/i18n/en/tasks.json
  7. +1
    -0
      src/i18n/zh/tasks.json

+ 6
- 1
src/app/api/tasks/actions.ts Переглянути файл

@@ -26,8 +26,13 @@ export interface NewTaskTemplateFormInputs {
};
}

export interface NewTaskTemplateResponse {
taskTemplate: TaskTemplate;
message: string;
}

export const saveTaskTemplate = async (data: NewTaskTemplateFormInputs) => {
const newTaskTemplate = await serverFetchJson<TaskTemplate>(
const newTaskTemplate = await serverFetchJson<NewTaskTemplateResponse>(
`${BASE_API_URL}/tasks/templates/save`,
{
method: "POST",


+ 6
- 2
src/components/CreateProject/Milestone.tsx Переглянути файл

@@ -48,9 +48,13 @@ const Milestone: React.FC<Props> = ({ allTasks, isActive }) => {
);

const [currentTaskGroupId, setCurrentTaskGroupId] = useState(
taskGroups[0].id,
taskGroups[0].id
);

useEffect(() => {
if (taskGroups.length >= 0 && !taskGroups.map(taskGroup => taskGroup.id).includes(currentTaskGroupId)) setCurrentTaskGroupId(taskGroups[0].id)
}, [taskGroups])

/*const onSelectTaskGroup = useCallback(
(event: SelectChangeEvent<TaskGroup["id"]>) => {
const id = event.target.value;
@@ -111,7 +115,7 @@ const Milestone: React.FC<Props> = ({ allTasks, isActive }) => {
value={taskGroups.find(taskGroup => taskGroup.id === currentTaskGroupId)}
options={taskGroups}
getOptionLabel={(taskGroup) => taskGroup.name}
isOptionEqualToValue={(option, value) => option.id === value.id}
isOptionEqualToValue={(option, value) => option.id === value?.id}
renderOption={(params, option) => {
return (
<MenuItem {...params} key={option.id} value={option.id}>


+ 7
- 8
src/components/CreateTaskTemplate/CreateTaskTemplate.tsx Переглянути файл

@@ -83,8 +83,6 @@ const CreateTaskTemplate: React.FC<Props> = ({ tasks, defaultInputs, grades }) =
const onSubmit: SubmitHandler<NewTaskTemplateFormInputs> = React.useCallback(
async (data) => {
try {
console.log(data)

setServerError("");

let hasErrors = false
@@ -98,16 +96,17 @@ const CreateTaskTemplate: React.FC<Props> = ({ tasks, defaultInputs, grades }) =
}

if (hasErrors) return false
submitDialog(async () => {
const response = await saveTaskTemplate(data);

if (response?.id !== null && response?.id !== undefined && response?.id > 0) {
if (response.message === "Success") {
successDialog(t("Submit Success"), t).then(() => {
router.replace("/tasks");
})
} else {
errorDialog(t("Submit Fail"), t).then(() => {
formProps.setError("code", { message: response.message, type: "custom" })
return false
})
}
@@ -140,8 +139,8 @@ const CreateTaskTemplate: React.FC<Props> = ({ tasks, defaultInputs, grades }) =
{...formProps.register("code", {
required: t("Task template code is required"),
})}
error={Boolean(formProps.formState.errors.code?.message)}
helperText={formProps.formState.errors.code?.message}
error={Boolean(formProps.formState.errors.code)}
helperText={Boolean(formProps.formState.errors.code) && t(formProps.formState.errors.code?.message!!)}
/>
</Grid>
<Grid item xs={6}>
@@ -151,8 +150,8 @@ const CreateTaskTemplate: React.FC<Props> = ({ tasks, defaultInputs, grades }) =
{...formProps.register("name", {
required: t("Task template name is required"),
})}
error={Boolean(formProps.formState.errors.name?.message)}
helperText={formProps.formState.errors.name?.message}
error={Boolean(formProps.formState.errors.name)}
helperText={Boolean(formProps.formState.errors.name) && t(formProps.formState.errors.name?.message!!)}
/>
</Grid>
</Grid>


+ 1
- 1
src/components/CustomerSearch/CustomerSearch.tsx Переглянути файл

@@ -38,7 +38,7 @@ const CustomerSearch: React.FC<Props> = ({ customers }) => {
const onTaskClick = useCallback((customer: Customer) => {
const params = new URLSearchParams(searchParams.toString())
params.set("id", customer.id.toString())
router.replace(`/settings/customer/edit?${params.toString()}`);
router.push(`/settings/customer/edit?${params.toString()}`);
}, []);

const onDeleteClick = useCallback((customer: Customer) => {


+ 1
- 1
src/components/SubsidiarySearch/SubsidiarySearch.tsx Переглянути файл

@@ -38,7 +38,7 @@ const SubsidiarySearch: React.FC<Props> = ({ subsidiaries }) => {
const onTaskClick = useCallback((subsidiary: Subsidiary) => {
const params = new URLSearchParams(searchParams.toString())
params.set("id", subsidiary.id.toString())
router.replace(`/settings/subsidiary/edit?${params.toString()}`);
router.push(`/settings/subsidiary/edit?${params.toString()}`);
}, []);

const onDeleteClick = useCallback((subsidiary: Subsidiary) => {


+ 1
- 0
src/i18n/en/tasks.json Переглянути файл

@@ -11,6 +11,7 @@

"Task template code is required": "Task template code is required",
"Task template name is required": "Task template name is required",
"The task template code has already existed": "The task template code has already existed",

"Do you want to submit?": "Do you want to submit?",
"Submit Success": "Submit Success",


+ 1
- 0
src/i18n/zh/tasks.json Переглянути файл

@@ -11,6 +11,7 @@

"Task template code is required": "需要工作範本編號",
"Task template name is required": "需要工作範本名稱",
"The task template code has already existed": "該工作範本編號已存在",

"Do you want to submit?": "你是否確認要提交?",
"Submit Success": "提交成功",


Завантаження…
Відмінити
Зберегти