@zeniai/client-epic-state 5.0.2-betaRR20 → 5.0.2-betaRR4
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/file/fileState.d.ts +4 -4
- package/lib/entity/file/fileState.js +0 -4
- package/lib/entity/transaction/stateTypes/attachment.d.ts +2 -2
- package/lib/esm/entity/file/fileState.js +0 -4
- package/lib/esm/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +0 -1
- package/lib/esm/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +0 -1
- package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +1 -4
- package/lib/esm/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +2 -3
- package/lib/esm/view/taskManager/taskListView/taskListSelector.js +46 -39
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +0 -1
- package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +0 -1
- package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +0 -1
- package/lib/view/taskManager/taskDetailView/taskDetailSelector.d.ts +0 -1
- package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +1 -4
- package/lib/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +2 -3
- package/lib/view/taskManager/taskListView/taskListSelector.d.ts +2 -6
- package/lib/view/taskManager/taskListView/taskListSelector.js +46 -39
- package/package.json +1 -1
|
@@ -43,16 +43,16 @@ export interface AttachmentFile {
|
|
|
43
43
|
fileName: string;
|
|
44
44
|
}
|
|
45
45
|
export type FileSizeUnit = 'bytes';
|
|
46
|
-
declare const toSupportedFileType: (v: string) => "application/pdf" | "
|
|
47
|
-
export declare const toSupportedFileTypeStrict: (v: string) => "application/pdf" | "
|
|
46
|
+
declare const toSupportedFileType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain";
|
|
47
|
+
export declare const toSupportedFileTypeStrict: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain" | undefined;
|
|
48
48
|
export type SupportedFileType = ReturnType<typeof toSupportedFileType>;
|
|
49
49
|
declare const toSupportedFileFormatType: (v: string) => ".pdf" | ".jpeg" | ".jpg" | ".bmp" | ".heic" | ".png" | ".csv" | ".txt";
|
|
50
50
|
export type SupportedFileFormatType = ReturnType<typeof toSupportedFileFormatType>;
|
|
51
51
|
export declare const SUPPORTED_ATTACHMENT_FILE_TYPES: readonly ["application/pdf", "image/jpeg", "image/jpg", "image/png", "text/plain", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
|
|
52
|
-
export declare const toSupportedAttachmentFileType: (v: string) => "application/pdf" | "
|
|
52
|
+
export declare const toSupportedAttachmentFileType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "text/plain" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
53
53
|
export type SupportedAttachmentFileType = ReturnType<typeof toSupportedAttachmentFileType>;
|
|
54
54
|
export declare const SUPPORTED_TRANSACTION_LINE_ATTACHMENT_FILE_TYPES: readonly ["application/x-excel", "application/pdf", "image/jpeg", "image/jpg", "image/png", "text/csv", "image/tiff", "image/tif", "image/gif", "text/xml", "application/xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/msword"];
|
|
55
|
-
export declare const toSupportedTransactionLineAttachmentFileType: (v: string) => "application/pdf" | "
|
|
55
|
+
export declare const toSupportedTransactionLineAttachmentFileType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "text/csv" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/x-excel" | "image/tiff" | "image/tif" | "image/gif" | "text/xml" | "application/xml" | "application/msword";
|
|
56
56
|
export type SupportedTransactionLineAttachmentFileType = ReturnType<typeof toSupportedTransactionLineAttachmentFileType>;
|
|
57
57
|
export declare const toSupportedAttachmentFileFormatType: (v: string) => ".pdf" | ".jpeg" | ".jpg" | ".png" | ".txt" | ".xls" | ".xlsx";
|
|
58
58
|
type SupportedAttachmentFileFormatType = ReturnType<typeof toSupportedAttachmentFileFormatType>;
|
|
@@ -4,10 +4,6 @@ exports.toAllowedDocumentTypeStrict = exports.toAllowedDocumentType = exports.to
|
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
const SUPPORTED_FILE_TYPES = [
|
|
6
6
|
'application/pdf',
|
|
7
|
-
'application/msword',
|
|
8
|
-
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
9
|
-
'application/vnd.ms-excel',
|
|
10
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
11
7
|
'image/jpeg',
|
|
12
8
|
'image/jpg',
|
|
13
9
|
'image/png',
|
|
@@ -4,9 +4,9 @@ import { ZeniDate } from '../../../zeniDayJS';
|
|
|
4
4
|
import { ZeniUrl as Url } from '../../../zeniUrl';
|
|
5
5
|
import { File } from '../../file/fileState';
|
|
6
6
|
import { AttachmentPayload } from '../payloadTypes/attachmentPayload';
|
|
7
|
-
export declare const toContentType: (v: string) => "application/pdf" | "
|
|
7
|
+
export declare const toContentType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/heic" | "text/html" | "text/csv" | "text/plain" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/gif" | "text/xml" | "application/msword" | "application/postscript" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/rtf" | "image/heif" | "image/svg+xml" | "image/webp";
|
|
8
8
|
export type ContentType = ReturnType<typeof toContentType>;
|
|
9
|
-
export declare const toContentTypeStrict: (v: string) => "application/pdf" | "
|
|
9
|
+
export declare const toContentTypeStrict: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/heic" | "text/html" | "text/csv" | "text/plain" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/gif" | "text/xml" | "application/msword" | "application/postscript" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/rtf" | "image/heif" | "image/svg+xml" | "image/webp" | undefined;
|
|
10
10
|
export interface Attachment {
|
|
11
11
|
createTime: ZeniDate;
|
|
12
12
|
fileDownloadUrl: Url;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { stringToUnion, stringToUnionStrict, } from '../../commonStateTypes/stringToUnion';
|
|
2
2
|
const SUPPORTED_FILE_TYPES = [
|
|
3
3
|
'application/pdf',
|
|
4
|
-
'application/msword',
|
|
5
|
-
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
6
|
-
'application/vnd.ms-excel',
|
|
7
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
8
4
|
'image/jpeg',
|
|
9
5
|
'image/jpg',
|
|
10
6
|
'image/png',
|
|
@@ -25,7 +25,6 @@ export const initializeTaskToLocalStoreEpic = (actions$, state$) => actions$.pip
|
|
|
25
25
|
savedRecurringEndDate: task.recurringEndDate,
|
|
26
26
|
recurringStartDate: task.recurringStartDate,
|
|
27
27
|
timeSpent: task.timeSpent,
|
|
28
|
-
isPrivate: task.isPrivate,
|
|
29
28
|
};
|
|
30
29
|
const actions = [
|
|
31
30
|
saveTaskUpdatesToLocalStore({ taskDetailLocalData, taskId }),
|
|
@@ -94,6 +94,5 @@ const prepareTaskPayload = (state, taskId, taskGroupId) => {
|
|
|
94
94
|
sync_token: syncToken,
|
|
95
95
|
task_group_ids: taskGroupId != null ? [taskGroupId] : [],
|
|
96
96
|
time_spent: convertHHMMStrToMinutes(localData.timeSpent),
|
|
97
|
-
...(taskId == null ? { is_private: localData.isPrivate ?? false } : {}),
|
|
98
97
|
};
|
|
99
98
|
};
|
|
@@ -24,7 +24,6 @@ export const getTaskDetail = (state, taskId) => {
|
|
|
24
24
|
let createdByUser = undefined;
|
|
25
25
|
let isArchived = undefined;
|
|
26
26
|
let isDeleted = undefined;
|
|
27
|
-
let recurringSourceTaskId = undefined;
|
|
28
27
|
let snoozedUntil = undefined;
|
|
29
28
|
if (taskId != null && sourceTaskDetail != null) {
|
|
30
29
|
const taskEntity = getTaskById(taskState, taskId);
|
|
@@ -33,7 +32,6 @@ export const getTaskDetail = (state, taskId) => {
|
|
|
33
32
|
createdByUser = getUserAndUserRole(userState, userRoleState, addressState, taskEntity.createdBy);
|
|
34
33
|
isArchived = taskEntity.isArchived;
|
|
35
34
|
isDeleted = taskEntity.isDeleted;
|
|
36
|
-
recurringSourceTaskId = taskEntity.recurringSourceTaskId;
|
|
37
35
|
snoozedUntil = taskEntity.snoozedUntil;
|
|
38
36
|
}
|
|
39
37
|
if (fileIdsInEntity.length > 0) {
|
|
@@ -52,7 +50,7 @@ export const getTaskDetail = (state, taskId) => {
|
|
|
52
50
|
]);
|
|
53
51
|
}
|
|
54
52
|
showTaskDetailFormFooter = showFormFooter(sourceTaskDetail.taskDetailLocalData, taskEntity);
|
|
55
|
-
taskHistory = taskDetailState.taskHistoryById[taskId]
|
|
53
|
+
taskHistory = taskDetailState.taskHistoryById[taskId].historicEvents;
|
|
56
54
|
}
|
|
57
55
|
else if (taskId == null) {
|
|
58
56
|
fetchStatus = reduceFetchState([userList, classListState]);
|
|
@@ -84,7 +82,6 @@ export const getTaskDetail = (state, taskId) => {
|
|
|
84
82
|
createdByUser,
|
|
85
83
|
isArchived,
|
|
86
84
|
isDeleted,
|
|
87
|
-
recurringSourceTaskId,
|
|
88
85
|
showTaskDetailFormFooter,
|
|
89
86
|
snoozedUntil,
|
|
90
87
|
};
|
|
@@ -8,10 +8,9 @@ export const updateTaskFromListViewEpic = (actions$, state$, zeniAPI) => actions
|
|
|
8
8
|
const state = state$.value;
|
|
9
9
|
const { task, updates } = action.payload;
|
|
10
10
|
const taskId = task.id;
|
|
11
|
-
|
|
12
|
-
const { snoozed_until: _snoozedUntil, ...taskData } = getTaskPayload(state, taskId, updates);
|
|
11
|
+
const taskData = getTaskPayload(state, taskId, updates);
|
|
13
12
|
return zeniAPI
|
|
14
|
-
.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, taskData)
|
|
13
|
+
.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, { ...taskData })
|
|
15
14
|
.pipe(mergeMap((response) => {
|
|
16
15
|
if (isSuccessResponse(response) && response.data != null) {
|
|
17
16
|
return from([
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createSelector } from '@reduxjs/toolkit';
|
|
2
|
+
import isEqual from 'lodash/isEqual';
|
|
2
3
|
import orderBy from 'lodash/orderBy';
|
|
3
4
|
import { getSortOrder, } from '../../../commonPayloadTypes/sortOrderPayload';
|
|
4
5
|
import { reduceAnyFetchState } from '../../../commonStateTypes/reduceFetchState';
|
|
@@ -14,6 +15,11 @@ import { getUserGroupList } from '../../userGroupListView/userGroupListViewSelec
|
|
|
14
15
|
import { getUserList, } from '../../userListView/userListViewSelector';
|
|
15
16
|
import { allTaskPriority, allTaskStatus, } from '../taskDetailView/taskDetailSelector';
|
|
16
17
|
import { DUE_DATE_GROUP_KEYS, } from './taskList';
|
|
18
|
+
import { initialState } from './taskListReducer';
|
|
19
|
+
const isDefaultFilters = (taskListState) => {
|
|
20
|
+
return (isEqual(taskListState.filters, initialState.filters) &&
|
|
21
|
+
initialState.uiState.searchText === taskListState.uiState.searchText);
|
|
22
|
+
};
|
|
17
23
|
const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
18
24
|
const tasksInOrder = orderBy(tasksList, (task) => {
|
|
19
25
|
const tagsByIds = getTagsByIds(tagState, task.tagIds);
|
|
@@ -28,12 +34,10 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
28
34
|
return task.status.name;
|
|
29
35
|
case 'priority':
|
|
30
36
|
return ALL_PRIORITY_CODE.indexOf(task.priority.code);
|
|
31
|
-
case 'assignee':
|
|
32
|
-
return task.firstAssigneeSortName;
|
|
33
37
|
case 'timeSpent':
|
|
34
38
|
return task.timeSpent;
|
|
35
39
|
case 'visibility':
|
|
36
|
-
return task.isPrivate
|
|
40
|
+
return task.isPrivate ? 1 : 0;
|
|
37
41
|
case 'name':
|
|
38
42
|
default:
|
|
39
43
|
return task.name.toLowerCase();
|
|
@@ -41,7 +45,7 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
41
45
|
}, sortOrder);
|
|
42
46
|
return tasksInOrder;
|
|
43
47
|
};
|
|
44
|
-
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState,
|
|
48
|
+
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, }) => {
|
|
45
49
|
const { sortKey, searchText } = taskListState.uiState;
|
|
46
50
|
const sortOrder = getSortOrder(taskListState.uiState.sortOrder);
|
|
47
51
|
const tasks = taskIds
|
|
@@ -51,15 +55,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
|
|
|
51
55
|
const assigneeUsers = task.assignees
|
|
52
56
|
.map((userId) => getUserAndUserRole(userState, userRoleState, addressState, userId))
|
|
53
57
|
.filter((value) => value != null);
|
|
54
|
-
|
|
55
|
-
const firstUserName = (firstUser != null ? getUserName(firstUser) : '') ||
|
|
56
|
-
firstUser?.email ||
|
|
57
|
-
'';
|
|
58
|
-
const firstGroupName = task.groupAssignees
|
|
59
|
-
.map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name)
|
|
60
|
-
.find((name) => name != null && name !== '');
|
|
61
|
-
const firstAssigneeSortName = (firstUserName !== '' ? firstUserName : (firstGroupName ?? '')).toLowerCase();
|
|
62
|
-
return { ...task, assigneeUsers, firstAssigneeSortName };
|
|
58
|
+
return { ...task, assigneeUsers };
|
|
63
59
|
}
|
|
64
60
|
return undefined;
|
|
65
61
|
})
|
|
@@ -68,7 +64,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
|
|
|
68
64
|
const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
|
|
69
65
|
return sortedTaskList;
|
|
70
66
|
};
|
|
71
|
-
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState,
|
|
67
|
+
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
|
|
72
68
|
const { taskGroupsIds } = taskGroupViewState;
|
|
73
69
|
const taskGroupsWithTasksList = taskGroupsIds
|
|
74
70
|
.map((taskGroupId) => {
|
|
@@ -82,7 +78,6 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
82
78
|
addressState,
|
|
83
79
|
taskIds,
|
|
84
80
|
tagState,
|
|
85
|
-
userGroupsState,
|
|
86
81
|
});
|
|
87
82
|
if (taskGroup != null) {
|
|
88
83
|
return {
|
|
@@ -111,9 +106,13 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
111
106
|
if (defaultTaskGroup != null) {
|
|
112
107
|
sortedTaskGroupsWithTasksList.push(defaultTaskGroup);
|
|
113
108
|
}
|
|
114
|
-
|
|
109
|
+
if (taskListState.currentTab !== 'live' ||
|
|
110
|
+
isDefaultFilters(taskListState) === false) {
|
|
111
|
+
return sortedTaskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
112
|
+
}
|
|
113
|
+
return sortedTaskGroupsWithTasksList;
|
|
115
114
|
};
|
|
116
|
-
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState,
|
|
115
|
+
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
117
116
|
const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
|
|
118
117
|
const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
|
|
119
118
|
const taskIds = taskListState.taskIdsByAssignees[groupKey];
|
|
@@ -125,7 +124,6 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
125
124
|
addressState,
|
|
126
125
|
taskIds,
|
|
127
126
|
tagState,
|
|
128
|
-
userGroupsState,
|
|
129
127
|
});
|
|
130
128
|
const assigneeIds = groupKey.split(',');
|
|
131
129
|
const groupName = getUsersByUserIds(userState, assigneeIds)
|
|
@@ -141,9 +139,13 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
141
139
|
tasks: tasksWithUserDetails,
|
|
142
140
|
};
|
|
143
141
|
});
|
|
144
|
-
|
|
142
|
+
if (taskListState.currentTab !== 'live' ||
|
|
143
|
+
isDefaultFilters(taskListState) === false) {
|
|
144
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
145
|
+
}
|
|
146
|
+
return taskGroupsWithTasksList;
|
|
145
147
|
};
|
|
146
|
-
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState,
|
|
148
|
+
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
147
149
|
const taskGroupsWithTasksList = ALL_PRIORITY_CODE.map((groupKey) => {
|
|
148
150
|
const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
|
|
149
151
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -154,7 +156,6 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
154
156
|
addressState,
|
|
155
157
|
taskIds,
|
|
156
158
|
tagState,
|
|
157
|
-
userGroupsState,
|
|
158
159
|
});
|
|
159
160
|
return {
|
|
160
161
|
groupName: allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
|
|
@@ -164,9 +165,13 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
164
165
|
tasks: tasksWithUserDetails,
|
|
165
166
|
};
|
|
166
167
|
});
|
|
167
|
-
|
|
168
|
+
if (taskListState.currentTab !== 'live' ||
|
|
169
|
+
isDefaultFilters(taskListState) === false) {
|
|
170
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
171
|
+
}
|
|
172
|
+
return taskGroupsWithTasksList;
|
|
168
173
|
};
|
|
169
|
-
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState,
|
|
174
|
+
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
170
175
|
const taskGroupsWithTasksList = ALL_TASK_STATUS_CODE.map((groupKey) => {
|
|
171
176
|
const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
|
|
172
177
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -177,7 +182,6 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
177
182
|
addressState,
|
|
178
183
|
taskIds,
|
|
179
184
|
tagState,
|
|
180
|
-
userGroupsState,
|
|
181
185
|
});
|
|
182
186
|
return {
|
|
183
187
|
groupName: allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
|
|
@@ -187,9 +191,13 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
187
191
|
tasks: tasksWithUserDetails,
|
|
188
192
|
};
|
|
189
193
|
});
|
|
190
|
-
|
|
194
|
+
if (taskListState.currentTab !== 'live' ||
|
|
195
|
+
isDefaultFilters(taskListState) === false) {
|
|
196
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
197
|
+
}
|
|
198
|
+
return taskGroupsWithTasksList;
|
|
191
199
|
};
|
|
192
|
-
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState,
|
|
200
|
+
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
193
201
|
const tagGroups = Object.keys(taskListState.taskIdsByTags);
|
|
194
202
|
const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
|
|
195
203
|
const taskIds = taskListState.taskIdsByTags[groupKey];
|
|
@@ -201,7 +209,6 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
201
209
|
addressState,
|
|
202
210
|
taskIds,
|
|
203
211
|
tagState,
|
|
204
|
-
userGroupsState,
|
|
205
212
|
});
|
|
206
213
|
const tagIds = groupKey.split(',');
|
|
207
214
|
const groupName = getTagsByIds(tagState, tagIds)
|
|
@@ -216,9 +223,13 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
216
223
|
tasks: tasksWithUserDetails,
|
|
217
224
|
};
|
|
218
225
|
});
|
|
219
|
-
|
|
226
|
+
if (taskListState.currentTab !== 'live' ||
|
|
227
|
+
isDefaultFilters(taskListState) === false) {
|
|
228
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
229
|
+
}
|
|
230
|
+
return taskGroupsWithTasksList;
|
|
220
231
|
};
|
|
221
|
-
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState,
|
|
232
|
+
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
222
233
|
const taskGroupsWithTasksList = DUE_DATE_GROUP_KEYS.map((groupKey) => {
|
|
223
234
|
const taskIds = taskListState.taskIdsByDueDate[groupKey];
|
|
224
235
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -229,7 +240,6 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
229
240
|
addressState,
|
|
230
241
|
taskIds,
|
|
231
242
|
tagState,
|
|
232
|
-
userGroupsState,
|
|
233
243
|
});
|
|
234
244
|
return {
|
|
235
245
|
groupName: groupKey,
|
|
@@ -238,9 +248,13 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
238
248
|
tasks: tasksWithUserDetails,
|
|
239
249
|
};
|
|
240
250
|
});
|
|
241
|
-
|
|
251
|
+
if (taskListState.currentTab !== 'live' ||
|
|
252
|
+
isDefaultFilters(taskListState) === false) {
|
|
253
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
254
|
+
}
|
|
255
|
+
return taskGroupsWithTasksList;
|
|
242
256
|
};
|
|
243
|
-
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState,
|
|
257
|
+
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
|
|
244
258
|
const { groupByKey } = taskListState.uiState;
|
|
245
259
|
if (groupByKey === 'groupName') {
|
|
246
260
|
return getTaskListGroupedByGroupName({
|
|
@@ -252,7 +266,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
252
266
|
taskGroupState,
|
|
253
267
|
taskGroupViewState,
|
|
254
268
|
tagState,
|
|
255
|
-
userGroupsState,
|
|
256
269
|
});
|
|
257
270
|
}
|
|
258
271
|
if (groupByKey === 'assignee') {
|
|
@@ -263,7 +276,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
263
276
|
userRoleState,
|
|
264
277
|
addressState,
|
|
265
278
|
tagState,
|
|
266
|
-
userGroupsState,
|
|
267
279
|
});
|
|
268
280
|
}
|
|
269
281
|
if (groupByKey === 'priority') {
|
|
@@ -274,7 +286,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
274
286
|
userRoleState,
|
|
275
287
|
addressState,
|
|
276
288
|
tagState,
|
|
277
|
-
userGroupsState,
|
|
278
289
|
});
|
|
279
290
|
}
|
|
280
291
|
if (groupByKey === 'status') {
|
|
@@ -285,7 +296,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
285
296
|
userRoleState,
|
|
286
297
|
addressState,
|
|
287
298
|
tagState,
|
|
288
|
-
userGroupsState,
|
|
289
299
|
});
|
|
290
300
|
}
|
|
291
301
|
if (groupByKey === 'tag') {
|
|
@@ -296,7 +306,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
296
306
|
userRoleState,
|
|
297
307
|
addressState,
|
|
298
308
|
tagState,
|
|
299
|
-
userGroupsState,
|
|
300
309
|
});
|
|
301
310
|
}
|
|
302
311
|
return getTaskListGroupedByDueDate({
|
|
@@ -306,7 +315,6 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
306
315
|
userRoleState,
|
|
307
316
|
addressState,
|
|
308
317
|
tagState,
|
|
309
|
-
userGroupsState,
|
|
310
318
|
});
|
|
311
319
|
};
|
|
312
320
|
export const getAllTasks = createSelector((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (state) => state.userGroupsState, (state) => state.userGroupListViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, userGroupsState, userGroupListViewState, isTaskTemplatesEnabled) => {
|
|
@@ -320,7 +328,6 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
|
|
|
320
328
|
taskGroupState,
|
|
321
329
|
taskGroupViewState,
|
|
322
330
|
tagState,
|
|
323
|
-
userGroupsState,
|
|
324
331
|
});
|
|
325
332
|
const fetchStateVariables = [
|
|
326
333
|
taskListState,
|