@zeniai/client-epic-state 5.0.3-betaND1 → 5.0.3-betaND3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/entity/task/taskPayload.d.ts +1 -0
- package/lib/entity/task/taskPayload.js +46 -39
- package/lib/entity/task/taskState.d.ts +2 -0
- package/lib/esm/entity/task/taskPayload.js +46 -39
- package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +4 -0
- package/lib/esm/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +6 -2
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +2 -0
- package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +4 -0
- package/lib/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +6 -2
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +2 -0
- package/package.json +1 -1
|
@@ -5,43 +5,50 @@ const formatMinutesToFromHHMM_1 = require("../../commonStateTypes/fiscalYearHelp
|
|
|
5
5
|
const recurringViewHelper_1 = require("../../view/common/recurringViewHelper");
|
|
6
6
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
7
7
|
const taskState_1 = require("./taskState");
|
|
8
|
-
const mapTaskPayloadToTask = (payload) =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
8
|
+
const mapTaskPayloadToTask = (payload) => {
|
|
9
|
+
const task = {
|
|
10
|
+
id: payload.task_id,
|
|
11
|
+
assignees: payload.assignees,
|
|
12
|
+
createdBy: payload.created_by,
|
|
13
|
+
description: payload.description,
|
|
14
|
+
fileIds: payload.file_ids,
|
|
15
|
+
isArchived: payload.is_archived,
|
|
16
|
+
isDeleted: payload.is_deleted,
|
|
17
|
+
name: payload.name,
|
|
18
|
+
syncToken: payload.sync_token ?? '',
|
|
19
|
+
priority: {
|
|
20
|
+
code: (0, taskState_1.toPriorityCodeType)(payload.priority.code),
|
|
21
|
+
name: payload.priority.name,
|
|
22
|
+
},
|
|
23
|
+
status: {
|
|
24
|
+
code: (0, taskState_1.toTaskStatusCodeType)(payload.status.code),
|
|
25
|
+
name: payload.status.name,
|
|
26
|
+
},
|
|
27
|
+
tagIds: payload.tags.map((tag) => tag.tag_id),
|
|
28
|
+
type: { code: (0, taskState_1.toTaskCodeType)(payload.type.code), name: payload.type.name },
|
|
29
|
+
recurringEndDate: payload.recurring_end_date != null
|
|
30
|
+
? (0, zeniDayJS_1.date)(payload.recurring_end_date)
|
|
31
|
+
: undefined,
|
|
32
|
+
recurringFrequency: payload.recurring_frequency != null
|
|
33
|
+
? (0, recurringViewHelper_1.toRecurringFrequencyStrict)(payload.recurring_frequency.code)
|
|
34
|
+
: undefined,
|
|
35
|
+
recurringStartDate: payload.recurring_start_date != null
|
|
36
|
+
? (0, zeniDayJS_1.date)(payload.recurring_start_date)
|
|
37
|
+
: undefined,
|
|
38
|
+
createTime: (0, zeniDayJS_1.date)(payload.create_time),
|
|
39
|
+
dueDate: payload.due_date != null ? (0, zeniDayJS_1.date)(payload.due_date) : undefined,
|
|
40
|
+
updateTime: payload.update_time != null ? (0, zeniDayJS_1.date)(payload.update_time) : undefined,
|
|
41
|
+
companyId: payload.company_id,
|
|
42
|
+
taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
|
|
43
|
+
timeSpent: payload.time_spent != null
|
|
44
|
+
? (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(payload.time_spent)
|
|
45
|
+
: (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(0),
|
|
46
|
+
groupAssignees: payload.group_assignees ?? [],
|
|
47
|
+
};
|
|
48
|
+
const parentTaskId = payload.parent_task_id;
|
|
49
|
+
if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
|
|
50
|
+
task.parentTaskId = parentTaskId;
|
|
51
|
+
}
|
|
52
|
+
return task;
|
|
53
|
+
};
|
|
47
54
|
exports.mapTaskPayloadToTask = mapTaskPayloadToTask;
|
|
@@ -21,6 +21,8 @@ export interface Task {
|
|
|
21
21
|
type: TaskType;
|
|
22
22
|
companyId?: ID;
|
|
23
23
|
dueDate?: ZeniDate;
|
|
24
|
+
/** Present when this task is a subtask of another task. */
|
|
25
|
+
parentTaskId?: ID;
|
|
24
26
|
recurringEndDate?: ZeniDate;
|
|
25
27
|
recurringFrequency?: RecurringFrequencyType;
|
|
26
28
|
recurringStartDate?: ZeniDate;
|
|
@@ -2,42 +2,49 @@ import { convertMinutesToHHMM } from '../../commonStateTypes/fiscalYearHelpers/f
|
|
|
2
2
|
import { toRecurringFrequencyStrict } from '../../view/common/recurringViewHelper';
|
|
3
3
|
import { date } from '../../zeniDayJS';
|
|
4
4
|
import { toPriorityCodeType, toTaskCodeType, toTaskStatusCodeType, } from './taskState';
|
|
5
|
-
export const mapTaskPayloadToTask = (payload) =>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
export const mapTaskPayloadToTask = (payload) => {
|
|
6
|
+
const task = {
|
|
7
|
+
id: payload.task_id,
|
|
8
|
+
assignees: payload.assignees,
|
|
9
|
+
createdBy: payload.created_by,
|
|
10
|
+
description: payload.description,
|
|
11
|
+
fileIds: payload.file_ids,
|
|
12
|
+
isArchived: payload.is_archived,
|
|
13
|
+
isDeleted: payload.is_deleted,
|
|
14
|
+
name: payload.name,
|
|
15
|
+
syncToken: payload.sync_token ?? '',
|
|
16
|
+
priority: {
|
|
17
|
+
code: toPriorityCodeType(payload.priority.code),
|
|
18
|
+
name: payload.priority.name,
|
|
19
|
+
},
|
|
20
|
+
status: {
|
|
21
|
+
code: toTaskStatusCodeType(payload.status.code),
|
|
22
|
+
name: payload.status.name,
|
|
23
|
+
},
|
|
24
|
+
tagIds: payload.tags.map((tag) => tag.tag_id),
|
|
25
|
+
type: { code: toTaskCodeType(payload.type.code), name: payload.type.name },
|
|
26
|
+
recurringEndDate: payload.recurring_end_date != null
|
|
27
|
+
? date(payload.recurring_end_date)
|
|
28
|
+
: undefined,
|
|
29
|
+
recurringFrequency: payload.recurring_frequency != null
|
|
30
|
+
? toRecurringFrequencyStrict(payload.recurring_frequency.code)
|
|
31
|
+
: undefined,
|
|
32
|
+
recurringStartDate: payload.recurring_start_date != null
|
|
33
|
+
? date(payload.recurring_start_date)
|
|
34
|
+
: undefined,
|
|
35
|
+
createTime: date(payload.create_time),
|
|
36
|
+
dueDate: payload.due_date != null ? date(payload.due_date) : undefined,
|
|
37
|
+
updateTime: payload.update_time != null ? date(payload.update_time) : undefined,
|
|
38
|
+
companyId: payload.company_id,
|
|
39
|
+
taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
|
|
40
|
+
timeSpent: payload.time_spent != null
|
|
41
|
+
? convertMinutesToHHMM(payload.time_spent)
|
|
42
|
+
: convertMinutesToHHMM(0),
|
|
43
|
+
groupAssignees: payload.group_assignees ?? [],
|
|
44
|
+
};
|
|
45
|
+
const parentTaskId = payload.parent_task_id;
|
|
46
|
+
if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
|
|
47
|
+
task.parentTaskId = parentTaskId;
|
|
48
|
+
}
|
|
49
|
+
return task;
|
|
50
|
+
};
|
|
@@ -87,5 +87,9 @@ const toTaskPayload = (state, task) => {
|
|
|
87
87
|
task_group_ids: task.taskGroupIds,
|
|
88
88
|
time_spent: convertHHMMStrToMinutes(task.timeSpent),
|
|
89
89
|
};
|
|
90
|
+
const parentTaskId = task.parentTaskId;
|
|
91
|
+
if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
|
|
92
|
+
taskPayload.parent_task_id = parentTaskId;
|
|
93
|
+
}
|
|
90
94
|
return taskPayload;
|
|
91
95
|
};
|
|
@@ -6,9 +6,13 @@ import { updateTaskFromListView, updateTasksListOnUpdateTaskFailure, updateTasks
|
|
|
6
6
|
import { getTaskPayload } from './bulkUpdateTaskListEpic';
|
|
7
7
|
export const updateTaskFromListViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(updateTaskFromListView.match), switchMap((action) => {
|
|
8
8
|
const state = state$.value;
|
|
9
|
-
const { task, updates } = action.payload;
|
|
9
|
+
const { task, updates, parentTaskId } = action.payload;
|
|
10
10
|
const taskId = task.id;
|
|
11
|
-
const
|
|
11
|
+
const mergedUpdates = { ...updates };
|
|
12
|
+
if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
|
|
13
|
+
mergedUpdates.parentTaskId = parentTaskId;
|
|
14
|
+
}
|
|
15
|
+
const taskData = getTaskPayload(state, taskId, mergedUpdates);
|
|
12
16
|
return zeniAPI
|
|
13
17
|
.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, { ...taskData })
|
|
14
18
|
.pipe(mergeMap((response) => {
|