@asaleh37/ui-base 25.12.123 → 25.12.171
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/dist/index.d.ts +2 -0
- package/dist/index.js +108 -108
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +112 -112
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/administration/admin/CustomPersonGrid.tsx +361 -0
- package/src/components/administration/admin/OrgProvidedPersonGrid.tsx +347 -0
- package/src/components/administration/admin/OrganizationMemberGrid.tsx +63 -49
- package/src/components/administration/admin/PersonGrid.tsx +10 -344
- package/src/components/administration/dev/WorkflowDocumentGrid.tsx +2 -1
- package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +6 -2
- package/src/layout/NavigationTree.tsx +8 -1
- package/src/layout/TopBar.tsx +72 -55
- package/src/main.tsx +2 -1
- package/src/navigationItems/Administration/adminNavigationItems.tsx +1 -1
- package/src/redux/features/common/AppInfoSlice.ts +4 -0
|
@@ -5,6 +5,7 @@ import { FormElementProps } from "../../templates/DataEntryTemplates/DataEntryTy
|
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { useSelector } from "react-redux";
|
|
7
7
|
import OrgMemberRoleForm from "./OrgMemberRoleForm";
|
|
8
|
+
import { AppInfo } from "../../../redux/features/common/AppInfoSlice";
|
|
8
9
|
|
|
9
10
|
type OrganizationMemberGridProps = {
|
|
10
11
|
selectedPerson: any;
|
|
@@ -12,6 +13,7 @@ type OrganizationMemberGridProps = {
|
|
|
12
13
|
const OrganizationMemberGrid: React.FC<OrganizationMemberGridProps> = (
|
|
13
14
|
props
|
|
14
15
|
) => {
|
|
16
|
+
const appInfo: AppInfo = useSelector((state: any) => state.AppInfo.value);
|
|
15
17
|
const [selectedRecord, setSelectedRecord] = useState<any>(null);
|
|
16
18
|
const {
|
|
17
19
|
Window: OrganizationMemberRolesWindow,
|
|
@@ -65,7 +67,7 @@ const OrganizationMemberGrid: React.FC<OrganizationMemberGridProps> = (
|
|
|
65
67
|
type: "field",
|
|
66
68
|
mode: "props",
|
|
67
69
|
props: {
|
|
68
|
-
fieldLabel: "
|
|
70
|
+
fieldLabel: "Organization",
|
|
69
71
|
fieldName: "organizationId",
|
|
70
72
|
required: true,
|
|
71
73
|
fieldType: "combobox",
|
|
@@ -74,57 +76,61 @@ const OrganizationMemberGrid: React.FC<OrganizationMemberGridProps> = (
|
|
|
74
76
|
optionDisplayField: "organizationEnName",
|
|
75
77
|
},
|
|
76
78
|
},
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
if (appInfo?.isUserProfileManaged) {
|
|
82
|
+
formElements.push(
|
|
83
|
+
{
|
|
84
|
+
type: "field",
|
|
85
|
+
mode: "props",
|
|
86
|
+
props: {
|
|
87
|
+
fieldLabel: "ORGANIZATION_MEMBER_ORGANIZATION_RANK_ID",
|
|
88
|
+
fieldName: "organizationRankId",
|
|
89
|
+
required: false,
|
|
90
|
+
fieldType: "combobox",
|
|
91
|
+
options: SystemOrganizationRanks,
|
|
92
|
+
optionValueField: "id",
|
|
93
|
+
optionDisplayField: "rankDisplay",
|
|
94
|
+
},
|
|
88
95
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
{
|
|
97
|
+
type: "field",
|
|
98
|
+
mode: "props",
|
|
99
|
+
props: {
|
|
100
|
+
fieldLabel: "ORGANIZATION_MEMBER_ORGANIZATION_UNIT_ID",
|
|
101
|
+
fieldName: "organizationUnitId",
|
|
102
|
+
required: false,
|
|
103
|
+
fieldType: "combobox",
|
|
104
|
+
options: SystemOrganizationUnits,
|
|
105
|
+
optionValueField: "id",
|
|
106
|
+
optionDisplayField: "fullPath",
|
|
107
|
+
},
|
|
101
108
|
},
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
{
|
|
110
|
+
type: "field",
|
|
111
|
+
mode: "props",
|
|
112
|
+
props: {
|
|
113
|
+
fieldLabel: "Membership number",
|
|
114
|
+
fieldName: "organizationMembershipNumber",
|
|
115
|
+
fieldType: "text",
|
|
116
|
+
},
|
|
110
117
|
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
props: {
|
|
116
|
-
hidden: true,
|
|
117
|
-
gridProps: {
|
|
118
|
+
{
|
|
119
|
+
type: "field",
|
|
120
|
+
mode: "props",
|
|
121
|
+
props: {
|
|
118
122
|
hidden: true,
|
|
123
|
+
gridProps: {
|
|
124
|
+
hidden: true,
|
|
125
|
+
},
|
|
126
|
+
fieldLabel: "ORGANIZATION_MEMBER_PERSON_ID",
|
|
127
|
+
fieldName: "personId",
|
|
128
|
+
required: false,
|
|
129
|
+
fieldType: "number",
|
|
119
130
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
fieldType: "number",
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
];
|
|
127
|
-
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
128
134
|
return (
|
|
129
135
|
<>
|
|
130
136
|
<OrganizationMemberRolesWindow>
|
|
@@ -152,7 +158,10 @@ const OrganizationMemberGrid: React.FC<OrganizationMemberGridProps> = (
|
|
|
152
158
|
},
|
|
153
159
|
},
|
|
154
160
|
]}
|
|
155
|
-
gridLoadParametersValues={{
|
|
161
|
+
gridLoadParametersValues={{
|
|
162
|
+
personId: props.selectedPerson.id,
|
|
163
|
+
employeeNumber: props.selectedPerson.employeeNumber,
|
|
164
|
+
}}
|
|
156
165
|
keyColumnName={"id"}
|
|
157
166
|
gridTitle="ORGANIZATION_MEMBER_PLURAL"
|
|
158
167
|
girdIcon="table-cells"
|
|
@@ -160,7 +169,12 @@ const OrganizationMemberGrid: React.FC<OrganizationMemberGridProps> = (
|
|
|
160
169
|
isEnabled: true,
|
|
161
170
|
authority: "ORGANIZATION_MEMBER_EDIT",
|
|
162
171
|
preActionValidation: async (data) => {
|
|
163
|
-
|
|
172
|
+
if (appInfo?.isUserProfileManaged) {
|
|
173
|
+
data.personId = props.selectedPerson.id;
|
|
174
|
+
} else {
|
|
175
|
+
data.organizationMembershipNumber =
|
|
176
|
+
props.selectedPerson.employeeNumber;
|
|
177
|
+
}
|
|
164
178
|
return true;
|
|
165
179
|
},
|
|
166
180
|
}}
|
|
@@ -10,352 +10,18 @@ import AttachmentImageViewer from "../../templates/attachment/AttachmentImageVie
|
|
|
10
10
|
import { useSelector } from "react-redux";
|
|
11
11
|
import OrgMemberRoleForm from "./OrgMemberRoleForm";
|
|
12
12
|
import ChangePasswordPanel from "./ChangePasswordPanel";
|
|
13
|
+
import { AppInfo } from "../../../redux/features/common/AppInfoSlice";
|
|
14
|
+
import OrgProvidedPersonGrid from "./OrgProvidedPersonGrid";
|
|
15
|
+
import CustomPersonGrid from "./CustomPersonGrid";
|
|
13
16
|
|
|
14
17
|
const PersonGrid: React.FC = () => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
(state: any) => state.commonStores.stores.CurrentOrganizationUnits.data
|
|
23
|
-
);
|
|
24
|
-
const [data, setData] = useState([]);
|
|
25
|
-
const apiActions = useApiActions({
|
|
26
|
-
commonStoreKey: "persons",
|
|
27
|
-
deleteById: "api/v1/admin/person",
|
|
28
|
-
save: "api/v1/admin/person",
|
|
29
|
-
findById: "api/v1/admin/person",
|
|
30
|
-
setData: setData,
|
|
31
|
-
});
|
|
32
|
-
const [selectedRecord, setSelectedRecord] = useState<any>(null);
|
|
33
|
-
const {
|
|
34
|
-
Window: OrganizationMembersWindow,
|
|
35
|
-
setWindowState: setOrganizationMemberWindowState,
|
|
36
|
-
} = useWindow({
|
|
37
|
-
windowTitle: "Organizations Membership",
|
|
38
|
-
windowIcon: "globe",
|
|
39
|
-
});
|
|
40
|
-
const {
|
|
41
|
-
Window: OrganizationMemberRolesWindow,
|
|
42
|
-
setWindowState: setOrganizationMemberRolesWindowState,
|
|
43
|
-
} = useWindow({
|
|
44
|
-
windowIcon: "tag",
|
|
45
|
-
windowTitle: "Organization Member Roles",
|
|
46
|
-
width: "50%",
|
|
47
|
-
});
|
|
48
|
-
const {
|
|
49
|
-
Window: ChangePasswordWindow,
|
|
50
|
-
setWindowState: setChangePasswordWindow,
|
|
51
|
-
} = useWindow({
|
|
52
|
-
windowIcon: "key",
|
|
53
|
-
windowTitle: "Change Password",
|
|
54
|
-
width: "fit-content",
|
|
55
|
-
height: "fit-content",
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
const formElements: Array<FormElementProps> = [
|
|
59
|
-
{
|
|
60
|
-
type: "field",
|
|
61
|
-
mode: "props",
|
|
62
|
-
props: {
|
|
63
|
-
hidden: true,
|
|
64
|
-
fieldLabel: "id",
|
|
65
|
-
fieldName: "id",
|
|
66
|
-
gridProps: {
|
|
67
|
-
hidden: true,
|
|
68
|
-
},
|
|
69
|
-
required: false,
|
|
70
|
-
fieldType: "number",
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
type: "field",
|
|
75
|
-
mode: "props",
|
|
76
|
-
props: {
|
|
77
|
-
hidden: true,
|
|
78
|
-
fieldLabel: "organizationMemberId",
|
|
79
|
-
fieldName: "organizationMemberId",
|
|
80
|
-
gridProps: {
|
|
81
|
-
hidden: true,
|
|
82
|
-
},
|
|
83
|
-
required: false,
|
|
84
|
-
fieldType: "number",
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
type: "field",
|
|
89
|
-
mode: "props",
|
|
90
|
-
props: {
|
|
91
|
-
fieldLabel: "Image",
|
|
92
|
-
fieldName: "custom",
|
|
93
|
-
fieldType: "custom",
|
|
94
|
-
gridProps: {
|
|
95
|
-
muiProps: {
|
|
96
|
-
align: "center",
|
|
97
|
-
headerAlign: "center",
|
|
98
|
-
renderCell: (params) => {
|
|
99
|
-
return (
|
|
100
|
-
<Box
|
|
101
|
-
sx={{
|
|
102
|
-
display: "flex",
|
|
103
|
-
alignItems: "center",
|
|
104
|
-
justifyContent: "center",
|
|
105
|
-
height: "100%",
|
|
106
|
-
}}
|
|
107
|
-
>
|
|
108
|
-
<AttachmentImageViewer
|
|
109
|
-
showAsAvatar={true}
|
|
110
|
-
attachmentCode="EMPLOYEE_PHOTOS"
|
|
111
|
-
refKey={params.id + ""}
|
|
112
|
-
/>
|
|
113
|
-
</Box>
|
|
114
|
-
);
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: "field",
|
|
122
|
-
mode: "props",
|
|
123
|
-
props: {
|
|
124
|
-
fieldLabel: "PERSON_EMPLOYEE_AR_NAME",
|
|
125
|
-
fieldName: "employeeArName",
|
|
126
|
-
required: true,
|
|
127
|
-
fieldType: "text",
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
type: "field",
|
|
132
|
-
mode: "props",
|
|
133
|
-
props: {
|
|
134
|
-
fieldLabel: "PERSON_EMPLOYEE_EN_NAME",
|
|
135
|
-
fieldName: "employeeEnName",
|
|
136
|
-
required: true,
|
|
137
|
-
fieldType: "text",
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
type: "field",
|
|
142
|
-
mode: "props",
|
|
143
|
-
props: {
|
|
144
|
-
fieldLabel: "PERSON_EMAIL",
|
|
145
|
-
fieldName: "email",
|
|
146
|
-
required: false,
|
|
147
|
-
fieldType: "text",
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
type: "field",
|
|
152
|
-
mode: "props",
|
|
153
|
-
props: {
|
|
154
|
-
fieldLabel: "PERSON_MOBILE_NUMBER",
|
|
155
|
-
fieldName: "mobileNumber",
|
|
156
|
-
required: false,
|
|
157
|
-
fieldType: "text",
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
type: "field",
|
|
162
|
-
mode: "props",
|
|
163
|
-
props: {
|
|
164
|
-
fieldLabel: "ORGANIZATION_MEMBER_ORGANIZATION_RANK_ID",
|
|
165
|
-
fieldName: "organizationRankId",
|
|
166
|
-
required: false,
|
|
167
|
-
fieldType: "combobox",
|
|
168
|
-
options: CurrentOrganizationRanks,
|
|
169
|
-
optionValueField: "id",
|
|
170
|
-
optionDisplayField: "rankEnName",
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
type: "field",
|
|
175
|
-
mode: "props",
|
|
176
|
-
props: {
|
|
177
|
-
fieldLabel: "ORGANIZATION_MEMBER_ORGANIZATION_UNIT_ID",
|
|
178
|
-
fieldName: "organizationUnitId",
|
|
179
|
-
required: false,
|
|
180
|
-
fieldType: "combobox",
|
|
181
|
-
options: CurrentOrganizationUnits,
|
|
182
|
-
optionValueField: "id",
|
|
183
|
-
optionDisplayField: "organizationUnitEnName",
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
type: "field",
|
|
188
|
-
mode: "props",
|
|
189
|
-
props: {
|
|
190
|
-
fieldLabel: "Membership number",
|
|
191
|
-
fieldName: "organizationMembershipNumber",
|
|
192
|
-
fieldType: "text",
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
type: "field",
|
|
197
|
-
mode: "props",
|
|
198
|
-
props: {
|
|
199
|
-
hidden: true,
|
|
200
|
-
gridProps: { hidden: true },
|
|
201
|
-
fieldLabel: "PERSON_PASSWORD",
|
|
202
|
-
fieldName: "password",
|
|
203
|
-
required: false,
|
|
204
|
-
fieldType: "text",
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
type: "field",
|
|
209
|
-
mode: "props",
|
|
210
|
-
props: {
|
|
211
|
-
fieldLabel: "PERSON_USERNAME",
|
|
212
|
-
fieldName: "username",
|
|
213
|
-
required: false,
|
|
214
|
-
fieldType: "text",
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
type: "field",
|
|
219
|
-
mode: "props",
|
|
220
|
-
props: {
|
|
221
|
-
hidden: true,
|
|
222
|
-
fieldLabel: "Ref Source",
|
|
223
|
-
fieldName: "refSource",
|
|
224
|
-
required: false,
|
|
225
|
-
fieldType: "text",
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
type: "field",
|
|
230
|
-
mode: "props",
|
|
231
|
-
props: {
|
|
232
|
-
hidden: true,
|
|
233
|
-
fieldLabel: "PERSON_EMPLOYEE_NUMBER",
|
|
234
|
-
fieldName: "refSyncNumber",
|
|
235
|
-
required: false,
|
|
236
|
-
fieldType: "text",
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
type: "field",
|
|
241
|
-
mode: "props",
|
|
242
|
-
props: {
|
|
243
|
-
fieldLabel: "PERSON_IS_ACTIVE",
|
|
244
|
-
fieldName: "isActive",
|
|
245
|
-
required: false,
|
|
246
|
-
fieldType: "checkbox",
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
];
|
|
250
|
-
|
|
251
|
-
return (
|
|
252
|
-
<>
|
|
253
|
-
<OrganizationMemberRolesWindow>
|
|
254
|
-
<OrgMemberRoleForm
|
|
255
|
-
selectedRecord={selectedRecord}
|
|
256
|
-
closeModalFn={() => {
|
|
257
|
-
setOrganizationMemberRolesWindowState(false);
|
|
258
|
-
}}
|
|
259
|
-
/>
|
|
260
|
-
</OrganizationMemberRolesWindow>
|
|
261
|
-
<OrganizationMembersWindow>
|
|
262
|
-
<OrganizationMemberGrid selectedPerson={selectedPerson} />
|
|
263
|
-
</OrganizationMembersWindow>
|
|
264
|
-
<ChangePasswordWindow>
|
|
265
|
-
<ChangePasswordPanel
|
|
266
|
-
selectedPerson={selectedPerson}
|
|
267
|
-
isSelfService={false}
|
|
268
|
-
onSuccessCallBk={() => {
|
|
269
|
-
setChangePasswordWindow(false);
|
|
270
|
-
}}
|
|
271
|
-
/>
|
|
272
|
-
</ChangePasswordWindow>
|
|
273
|
-
<TemplateGrid
|
|
274
|
-
attachment={{ attachmentCode: "EMPLOYEE_PHOTOS" }}
|
|
275
|
-
apiActions={apiActions}
|
|
276
|
-
data={data}
|
|
277
|
-
setData={setData}
|
|
278
|
-
editMode={{
|
|
279
|
-
editMode: "modal",
|
|
280
|
-
specs: {
|
|
281
|
-
modalIcon: "user",
|
|
282
|
-
modalTitle: "Person Profile",
|
|
283
|
-
modalWidth: 300,
|
|
284
|
-
},
|
|
285
|
-
}}
|
|
286
|
-
formElements={formElements}
|
|
287
|
-
keyColumnName={"id"}
|
|
288
|
-
gridTitle="PERSON_PLURAL"
|
|
289
|
-
rowActions={[
|
|
290
|
-
{
|
|
291
|
-
icon: "key",
|
|
292
|
-
label: "Change User Password",
|
|
293
|
-
actionFn: async (data) => {
|
|
294
|
-
setSelectedPerson(data);
|
|
295
|
-
setChangePasswordWindow(true);
|
|
296
|
-
},
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
icon: "tags",
|
|
300
|
-
label: "Current Organization User Roles",
|
|
301
|
-
isActionDisabledForRecord: (data) => {
|
|
302
|
-
return !data?.organizationMemberId;
|
|
303
|
-
},
|
|
304
|
-
actionFn: async (data) => {
|
|
305
|
-
setSelectedRecord({
|
|
306
|
-
organizationId: UserInfo?.currentOrganization?.id,
|
|
307
|
-
id: data?.organizationMemberId,
|
|
308
|
-
});
|
|
309
|
-
setOrganizationMemberRolesWindowState(true);
|
|
310
|
-
},
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
icon: "globe",
|
|
314
|
-
label: "User Organizations",
|
|
315
|
-
actionFn: async (data) => {
|
|
316
|
-
setSelectedPerson(data);
|
|
317
|
-
setOrganizationMemberWindowState(true);
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
]}
|
|
321
|
-
girdIcon="users"
|
|
322
|
-
editAction={{
|
|
323
|
-
isEnabled: true,
|
|
324
|
-
authority: "PERSON_EDIT",
|
|
325
|
-
preActionValidation: (data) => {
|
|
326
|
-
if (
|
|
327
|
-
data.refSource != undefined &&
|
|
328
|
-
data.refSource != null &&
|
|
329
|
-
data.refSource != ""
|
|
330
|
-
) {
|
|
331
|
-
toast.error(
|
|
332
|
-
"This Person Was synced from other system therefore you can't modify this record"
|
|
333
|
-
);
|
|
334
|
-
return false;
|
|
335
|
-
}
|
|
336
|
-
return true;
|
|
337
|
-
},
|
|
338
|
-
}}
|
|
339
|
-
deleteAction={{
|
|
340
|
-
isEnabled: true,
|
|
341
|
-
authority: "PERSON_DELETE",
|
|
342
|
-
preActionValidation: (data) => {
|
|
343
|
-
if (
|
|
344
|
-
data.refSource != undefined &&
|
|
345
|
-
data.refSource != null &&
|
|
346
|
-
data.refSource != ""
|
|
347
|
-
) {
|
|
348
|
-
toast.error(
|
|
349
|
-
"This Person Was synced from other system therefore you can't modify this record"
|
|
350
|
-
);
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
return true;
|
|
354
|
-
},
|
|
355
|
-
}}
|
|
356
|
-
/>
|
|
357
|
-
</>
|
|
358
|
-
);
|
|
18
|
+
const appInfo: AppInfo = useSelector((state: any) => state.AppInfo.value);
|
|
19
|
+
if (appInfo?.isUserProfileManaged) {
|
|
20
|
+
return <CustomPersonGrid />;
|
|
21
|
+
} else {
|
|
22
|
+
return <OrgProvidedPersonGrid />;
|
|
23
|
+
|
|
24
|
+
}
|
|
359
25
|
};
|
|
360
26
|
|
|
361
27
|
export default PersonGrid;
|
|
@@ -35,7 +35,7 @@ const WorkflowDocumentGrid: React.FC = () => {
|
|
|
35
35
|
const { t } = useTranslation();
|
|
36
36
|
const [data, setData] = useState([]);
|
|
37
37
|
const apiActions = useApiActions({
|
|
38
|
-
commonStoreKey:
|
|
38
|
+
commonStoreKey: "SystemWorkflows",
|
|
39
39
|
deleteById: "api/v1/dev/workflowdocument",
|
|
40
40
|
save: "api/v1/dev/workflowdocument",
|
|
41
41
|
findById: "api/v1/dev/workflowdocument",
|
|
@@ -117,6 +117,7 @@ const WorkflowDocumentGrid: React.FC = () => {
|
|
|
117
117
|
required: false,
|
|
118
118
|
fieldType: "combobox",
|
|
119
119
|
options: SystemOrganizations,
|
|
120
|
+
comboboxValueDataType: "string",
|
|
120
121
|
optionDisplayField: "organizationCode",
|
|
121
122
|
optionValueField: "id",
|
|
122
123
|
},
|
|
@@ -240,8 +240,12 @@ const WorkflowDocumentPanel: React.FC<WorkflowDocumentPanelProps> = (props) => {
|
|
|
240
240
|
if (workflowDocumentInfo?.nextActionTakers) {
|
|
241
241
|
for (const actionTaker of workflowDocumentInfo.nextActionTakers) {
|
|
242
242
|
if (
|
|
243
|
-
UserInfo?.username
|
|
244
|
-
UserInfo?.username
|
|
243
|
+
UserInfo?.username == actionTaker?.username ||
|
|
244
|
+
UserInfo?.username == actionTaker?.USERNAME ||
|
|
245
|
+
UserInfo?.email == actionTaker?.email ||
|
|
246
|
+
UserInfo?.email == actionTaker?.EMAIL ||
|
|
247
|
+
UserInfo?.employeeNumber == actionTaker?.employeeNumber ||
|
|
248
|
+
UserInfo?.employeeNumber == actionTaker?.EMPLOYEE_NUMBER
|
|
245
249
|
) {
|
|
246
250
|
return true;
|
|
247
251
|
}
|
|
@@ -32,6 +32,7 @@ import useSession from "../hooks/UseSession";
|
|
|
32
32
|
import { findNavigationItemById, NavigationItems } from "../navigationItems";
|
|
33
33
|
import { DRAWER_WIDTH } from "../redux/features/common/AppLayoutSlice";
|
|
34
34
|
import { toggleSideBarState } from "../redux/features/common/SideBarSlice";
|
|
35
|
+
import { AppInfo } from "../redux/features/common/AppInfoSlice";
|
|
35
36
|
|
|
36
37
|
function DotIcon() {
|
|
37
38
|
return (
|
|
@@ -232,7 +233,7 @@ const CustomTreeItem = React.forwardRef(function CustomTreeItem(
|
|
|
232
233
|
export default function NavigationTree() {
|
|
233
234
|
const navigate = useNavigate();
|
|
234
235
|
const appLayoutState = useSelector((state: any) => state.AppLayout);
|
|
235
|
-
const AppInfo = useSelector((state: any) => state.AppInfo.value);
|
|
236
|
+
const AppInfo: AppInfo = useSelector((state: any) => state.AppInfo.value);
|
|
236
237
|
const dispatch = useDispatch();
|
|
237
238
|
const isMobile = useIsMobile();
|
|
238
239
|
const toggleSideBar = () => {
|
|
@@ -243,6 +244,12 @@ export default function NavigationTree() {
|
|
|
243
244
|
const filterData = (data) => {
|
|
244
245
|
const parentItems = [];
|
|
245
246
|
for (let parentItem of data) {
|
|
247
|
+
if (
|
|
248
|
+
parentItem.id === "development_admin.organization" &&
|
|
249
|
+
!AppInfo.isUserProfileManaged
|
|
250
|
+
) {
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
246
253
|
if (
|
|
247
254
|
(parentItem.authority === undefined ||
|
|
248
255
|
parentItem.authority == null ||
|