@asaleh37/ui-base 26.2.16 → 27.5.26

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.
Files changed (176) hide show
  1. package/.env.development +1 -1
  2. package/.github/workflows/publish-npm.yml +49 -49
  3. package/README.md +51 -51
  4. package/__ODockerfile +14 -14
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +1 -1
  8. package/dist/index.mjs.map +1 -1
  9. package/eslint.config.js +29 -29
  10. package/index.html +20 -20
  11. package/package.json +122 -122
  12. package/public/manifest.json +21 -21
  13. package/rollup.config-1748377725725.cjs +50 -50
  14. package/rollup.config.js +45 -45
  15. package/src/components/App.tsx +155 -155
  16. package/src/components/BaseApp.tsx +75 -75
  17. package/src/components/ExampleTrial.tsx +24 -24
  18. package/src/components/administration/admin/ChangePasswordPanel.tsx +128 -128
  19. package/src/components/administration/admin/CustomPersonGrid.tsx +361 -361
  20. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  21. package/src/components/administration/admin/OrgProvidedPersonGrid.tsx +347 -347
  22. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  23. package/src/components/administration/admin/OrganizationGrid.tsx +118 -118
  24. package/src/components/administration/admin/OrganizationMemberGrid.tsx +190 -190
  25. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  26. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  27. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  28. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  29. package/src/components/administration/admin/PersonGrid.tsx +27 -27
  30. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  31. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -117
  32. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  33. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  34. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -75
  35. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  36. package/src/components/administration/dev/AttachmentConfigGrid.tsx +224 -224
  37. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  38. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  39. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  40. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  41. package/src/components/administration/dev/DataQueryGrid.tsx +216 -216
  42. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  43. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  44. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +151 -151
  45. package/src/components/administration/dev/EntityParameterGrid.tsx +322 -322
  46. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  47. package/src/components/administration/dev/MailAttachmentGrid.tsx +172 -172
  48. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  49. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  50. package/src/components/administration/dev/MailRecipientGrid.tsx +170 -170
  51. package/src/components/administration/dev/MailSenderConfigGrid.tsx +486 -486
  52. package/src/components/administration/dev/MailTemplateGrid.tsx +385 -385
  53. package/src/components/administration/dev/NotificationGrid.tsx +435 -435
  54. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  55. package/src/components/administration/dev/ReportGrid.tsx +503 -503
  56. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  57. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  58. package/src/components/administration/dev/WidgetGrid.tsx +380 -380
  59. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  60. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  61. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  62. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +357 -357
  63. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  64. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  65. package/src/components/common/AzureLogin.tsx +222 -222
  66. package/src/components/common/ChangeOrgForm.tsx +85 -85
  67. package/src/components/common/Home.tsx +43 -43
  68. package/src/components/common/LanguageSwitcher.tsx +25 -25
  69. package/src/components/common/LayoutHandlers.tsx +11 -11
  70. package/src/components/common/LoadingMask.tsx +24 -24
  71. package/src/components/common/Login.tsx +268 -268
  72. package/src/components/common/MobileLogin.tsx +229 -229
  73. package/src/components/common/MyNotificationsPanel.tsx +109 -109
  74. package/src/components/common/NoLicenseComponent.tsx +79 -79
  75. package/src/components/common/NotificationItem.tsx +138 -138
  76. package/src/components/index.ts +10 -10
  77. package/src/components/msalConfig.ts +11 -11
  78. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +361 -361
  79. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +297 -297
  80. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  81. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +238 -238
  82. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +108 -108
  83. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +66 -66
  84. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +164 -164
  85. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +70 -70
  86. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +71 -71
  87. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  88. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +56 -56
  89. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +20 -20
  90. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +431 -431
  91. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +197 -197
  92. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +1044 -1044
  93. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  94. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  95. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +251 -251
  96. package/src/components/templates/TransferList.tsx +256 -256
  97. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  98. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  99. package/src/components/templates/attachment/AttachmentImageViewer.tsx +85 -85
  100. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -285
  101. package/src/components/templates/index.ts +35 -35
  102. package/src/components/templates/report/ExcelReportViewer.tsx +71 -71
  103. package/src/components/templates/report/ReportViewer.tsx +261 -261
  104. package/src/components/templates/report/ReportViewerRoute.tsx +9 -9
  105. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  106. package/src/components/templates/visuals/DashboardViewer.tsx +192 -192
  107. package/src/components/templates/visuals/WidgetViewer.tsx +208 -208
  108. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  109. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  110. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  111. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  112. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  113. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  114. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +611 -611
  115. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +145 -145
  116. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  117. package/src/examples/ExampleGrid.tsx +134 -134
  118. package/src/hooks/UseConfirmationWindow.tsx +56 -56
  119. package/src/hooks/UseMobile.tsx +13 -13
  120. package/src/hooks/UseSession.tsx +59 -59
  121. package/src/hooks/UseWindow.tsx +111 -111
  122. package/src/hooks/index.ts +22 -22
  123. package/src/hooks/useApiActions.ts +124 -124
  124. package/src/hooks/useAxios.tsx +340 -340
  125. package/src/hooks/useCommonStore.tsx +29 -29
  126. package/src/hooks/useInterval.tsx +23 -23
  127. package/src/hooks/useLoadingMask.tsx +16 -16
  128. package/src/hooks/useLookupGridColumn.tsx +35 -35
  129. package/src/hooks/useParameterPanel.tsx +171 -171
  130. package/src/index.ts +4 -4
  131. package/src/layout/DrawerHeader.tsx +10 -10
  132. package/src/layout/Layout.tsx +102 -102
  133. package/src/layout/MainContent.tsx +115 -115
  134. package/src/layout/MobileDrawer.tsx +103 -103
  135. package/src/layout/NavigationTree.tsx +360 -360
  136. package/src/layout/NotificationButton.tsx +207 -207
  137. package/src/layout/RouteWrapper.tsx +63 -63
  138. package/src/layout/SideBar.tsx +85 -85
  139. package/src/layout/TopBar.tsx +317 -317
  140. package/src/locales/arabic/adminLocalsAr.json +94 -94
  141. package/src/locales/arabic/common.json +44 -44
  142. package/src/locales/arabic/devLocalsAr.json +317 -317
  143. package/src/locales/arabic/index.ts +9 -9
  144. package/src/locales/english/adminLocalsEn.json +97 -97
  145. package/src/locales/english/common.json +43 -43
  146. package/src/locales/english/devLocalsEn.json +318 -318
  147. package/src/locales/english/index.ts +9 -9
  148. package/src/locales/i18n.ts +8 -8
  149. package/src/locales/index.ts +9 -9
  150. package/src/main.tsx +41 -41
  151. package/src/navigationItems/Administration/adminNavigationItems.tsx +231 -231
  152. package/src/navigationItems/Administration/index.tsx +16 -16
  153. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  154. package/src/navigationItems/common/index.tsx +7 -7
  155. package/src/navigationItems/index.tsx +35 -35
  156. package/src/redux/features/administration/AdministrationStoresMetaData.ts +164 -164
  157. package/src/redux/features/common/AppInfoSlice.ts +95 -95
  158. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  159. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  160. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  161. package/src/redux/features/common/SideBarSlice.ts +27 -27
  162. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  163. package/src/redux/store.ts +29 -29
  164. package/src/routes/administration/adminRoutes.tsx +99 -99
  165. package/src/routes/administration/devRoutes.tsx +129 -129
  166. package/src/routes/administration/index.ts +10 -10
  167. package/src/routes/index.ts +5 -5
  168. package/src/routes/types/index.ts +6 -6
  169. package/src/styles/index.css +19 -19
  170. package/src/types/index.ts +8 -8
  171. package/src/util/AppUtils.ts +73 -73
  172. package/src/util/constants.ts +6 -6
  173. package/src/util/index.ts +5 -5
  174. package/tsconfig.json +135 -135
  175. package/vite.config.ts +24 -24
  176. package/package-lock.json/342/200/216 +0 -9040
@@ -1,486 +1,486 @@
1
- import { useState } from "react";
2
- import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
- import {
4
- FormActionProps,
5
- FormElementProps,
6
- } from "../../templates/DataEntryTemplates/DataEntryTypes";
7
- import { useTranslation } from "react-i18next";
8
- import { useApiActions } from "../../../hooks";
9
- import { UseFormReturn } from "react-hook-form";
10
-
11
- type ValidationCritria = {
12
- isVisible: boolean;
13
- isMandatory: boolean;
14
- };
15
-
16
- export type EngineType = "Gmail" | "Azure";
17
-
18
- type ReportValidationOptions = {
19
- mailHost: ValidationCritria;
20
- mailPort: ValidationCritria;
21
- mailUsername: ValidationCritria;
22
- mailPassword: ValidationCritria;
23
- mailProtocol: ValidationCritria;
24
- isMailSmtpAuthEnabled: ValidationCritria;
25
- isMailStarttlsEnabled: ValidationCritria;
26
- isSmtpSSlEnabled: ValidationCritria;
27
- azureGraphApiClientId: ValidationCritria;
28
- azureGraphApiClientSecret: ValidationCritria;
29
- azureGraphApiTenantId: ValidationCritria;
30
- azureGraphApiScope: ValidationCritria;
31
- azureGraphApiEmailId: ValidationCritria;
32
- };
33
-
34
- type validationObjectType = {
35
- [key in EngineType]: ReportValidationOptions;
36
- };
37
-
38
- const validationObject: validationObjectType = {
39
- Gmail: {
40
- mailHost: { isMandatory: true, isVisible: true },
41
- mailPort: { isMandatory: true, isVisible: true },
42
- mailUsername: { isMandatory: true, isVisible: true },
43
- mailPassword: { isMandatory: true, isVisible: true },
44
- mailProtocol: { isMandatory: true, isVisible: true },
45
- isMailSmtpAuthEnabled: { isMandatory: true, isVisible: true },
46
- isMailStarttlsEnabled: { isMandatory: true, isVisible: true },
47
- isSmtpSSlEnabled: { isMandatory: true, isVisible: true },
48
- azureGraphApiClientId: { isMandatory: false, isVisible: false },
49
- azureGraphApiClientSecret: { isMandatory: false, isVisible: false },
50
- azureGraphApiTenantId: { isMandatory: false, isVisible: false },
51
- azureGraphApiScope: { isMandatory: false, isVisible: false },
52
- azureGraphApiEmailId: { isMandatory: false, isVisible: false },
53
- },
54
- Azure: {
55
- mailHost: { isMandatory: false, isVisible: false },
56
- mailPort: { isMandatory: false, isVisible: false },
57
- mailUsername: { isMandatory: false, isVisible: false },
58
- mailPassword: { isMandatory: false, isVisible: false },
59
- mailProtocol: { isMandatory: false, isVisible: false },
60
- isMailSmtpAuthEnabled: { isMandatory: false, isVisible: false },
61
- isMailStarttlsEnabled: { isMandatory: false, isVisible: false },
62
- isSmtpSSlEnabled: { isMandatory: false, isVisible: false },
63
- azureGraphApiClientId: { isMandatory: true, isVisible: true },
64
- azureGraphApiClientSecret: { isMandatory: true, isVisible: true },
65
- azureGraphApiTenantId: { isMandatory: true, isVisible: true },
66
- azureGraphApiScope: { isMandatory: true, isVisible: true },
67
- azureGraphApiEmailId: { isMandatory: true, isVisible: true },
68
- },
69
- };
70
-
71
- const adjustFormAccordingToEngineType = (
72
- value: any,
73
- formActions: FormActionProps,
74
- formManager: UseFormReturn,
75
- ) => {
76
- debugger;
77
- if (value && validationObject[value]) {
78
- const validationObjects: ReportValidationOptions = validationObject[value];
79
- const fields = Object.keys(validationObjects);
80
- for (const field of fields) {
81
- const validationCritria: ValidationCritria = validationObjects[field];
82
- if (validationCritria.isVisible) {
83
- formActions.showField(field);
84
- } else {
85
- formActions.hideField(field);
86
- formManager.setValue(field, null);
87
- }
88
- }
89
- } else {
90
- formActions.hideField("mailHost");
91
- formManager.setValue("mailHost", null);
92
- formActions.hideField("mailPort");
93
- formManager.setValue("mailPort", null);
94
- formActions.hideField("mailUsername");
95
- formManager.setValue("mailUsername", null);
96
- formActions.hideField("mailPassword");
97
- formManager.setValue("mailPassword", null);
98
- formActions.hideField("mailProtocol");
99
- formManager.setValue("mailProtocol", null);
100
- formActions.hideField("isMailSmtpAuthEnabled");
101
- formManager.setValue("isMailSmtpAuthEnabled", null);
102
- formActions.hideField("isMailStarttlsEnabled");
103
- formManager.setValue("isMailStarttlsEnabled", null);
104
- formActions.hideField("isSmtpSSlEnabled");
105
- formManager.setValue("isSmtpSSlEnabled", null);
106
- formActions.hideField("azureGraphApiClientId");
107
- formManager.setValue("azureGraphApiClientId", null);
108
- formActions.hideField("azureGraphApiClientSecret");
109
- formManager.setValue("azureGraphApiClientSecret", null);
110
- formActions.hideField("azureGraphApiTenantId");
111
- formManager.setValue("azureGraphApiTenantId", null);
112
- formActions.hideField("azureGraphApiScope");
113
- formManager.setValue("azureGraphApiScope", null);
114
- formActions.hideField("azureGraphApiEmailId");
115
- formManager.setValue("azureGraphApiEmailId", null);
116
- }
117
- };
118
-
119
- const MailSenderConfigGrid: React.FC = () => {
120
- const { t } = useTranslation();
121
- const [data, setData] = useState([]);
122
- const apiActions = useApiActions({
123
- findAll: "api/v1/dev/mailsenderconfig/all",
124
- deleteById: "api/v1/dev/mailsenderconfig",
125
- save: "api/v1/dev/mailsenderconfig",
126
- findById: "api/v1/dev/mailsenderconfig",
127
- setData: setData,
128
- });
129
-
130
- const formElements: Array<FormElementProps> = [
131
- {
132
- type: "field",
133
- mode: "props",
134
- props: {
135
- fieldLabel: "id",
136
- fieldName: "id",
137
- fieldType: "number",
138
- hidden: true,
139
- gridProps: {
140
- hidden: true,
141
- },
142
- },
143
- },
144
- {
145
- type: "field",
146
- mode: "props",
147
- props: {
148
- fieldLabel: "createTime",
149
- fieldName: "createTime",
150
- fieldType: "datetime",
151
- hidden: true,
152
- gridProps: {
153
- hidden: true,
154
- },
155
- },
156
- },
157
- {
158
- type: "field",
159
- mode: "props",
160
- props: {
161
- fieldLabel: "createdBy",
162
- fieldName: "createdBy",
163
- fieldType: "text",
164
- hidden: true,
165
- gridProps: {
166
- hidden: true,
167
- },
168
- },
169
- },
170
- {
171
- type: "field",
172
- mode: "props",
173
- props: {
174
- fieldLabel: "lastUpdateBy",
175
- fieldName: "lastUpdateBy",
176
- fieldType: "text",
177
- hidden: true,
178
- gridProps: {
179
- hidden: true,
180
- },
181
- },
182
- },
183
- {
184
- type: "field",
185
- mode: "props",
186
- props: {
187
- fieldLabel: "lastUpdateTime",
188
- fieldName: "lastUpdateTime",
189
- fieldType: "datetime",
190
- hidden: true,
191
- gridProps: {
192
- hidden: true,
193
- },
194
- },
195
- },
196
- {
197
- type: "field",
198
- mode: "props",
199
- props: {
200
- fieldLabel: "Name",
201
- fieldName: "configName",
202
- required: true,
203
- fieldType: "text",
204
- },
205
- },
206
- {
207
- type: "field",
208
- mode: "props",
209
- props: {
210
- fieldLabel: "Engine",
211
- fieldName: "mailEngine",
212
- required: true,
213
- fieldType: "combobox",
214
- comboboxValueDataType: "string",
215
- options: [{ value: "Gmail" }, { value: "Azure" }],
216
- optionDisplayField: "value",
217
- optionValueField: "value",
218
- formProps: {
219
- onValueChangeCallBack(
220
- formValues,
221
- value,
222
- formManager,
223
- formActions,
224
- selectedRecord,
225
- ) {
226
- adjustFormAccordingToEngineType(value, formActions, formManager);
227
- },
228
- },
229
- },
230
- },
231
- {
232
- type: "field",
233
- mode: "props",
234
- props: {
235
- fieldLabel: "Hostname",
236
- fieldName: "mailHost",
237
- required: false,
238
- fieldType: "text",
239
- hidden: true,
240
- gridProps: {
241
- hidden: true,
242
- },
243
- },
244
- },
245
- {
246
- type: "field",
247
- mode: "props",
248
- props: {
249
- fieldLabel: "port",
250
- fieldName: "mailPort",
251
- required: false,
252
- fieldType: "number",
253
- hidden: true,
254
- gridProps: {
255
- hidden: true,
256
- },
257
- },
258
- },
259
- {
260
- type: "field",
261
- mode: "props",
262
- props: {
263
- fieldLabel: "username",
264
- fieldName: "mailUsername",
265
- required: false,
266
- fieldType: "text",
267
- hidden: true,
268
- gridProps: {
269
- hidden: true,
270
- },
271
- },
272
- },
273
- {
274
- type: "field",
275
- mode: "props",
276
- props: {
277
- fieldLabel: "password",
278
- fieldName: "mailPassword",
279
- required: false,
280
- fieldType: "text",
281
- hidden: true,
282
- gridProps: {
283
- hidden: true,
284
- },
285
- },
286
- },
287
-
288
- {
289
- type: "field",
290
- mode: "props",
291
- props: {
292
- fieldLabel: "Workflow Approval Receive Email",
293
- fieldName: "workFlowApprovalReceiveEmail",
294
- required: true,
295
- fieldType: "text",
296
- },
297
- },
298
- {
299
- type: "field",
300
- mode: "props",
301
- props: {
302
- fieldLabel: "Protocol",
303
- fieldName: "mailProtocol",
304
- required: false,
305
- fieldType: "text",
306
- hidden: true,
307
- gridProps: {
308
- hidden: true,
309
- },
310
- },
311
- },
312
-
313
- {
314
- type: "field",
315
- mode: "props",
316
- props: {
317
- fieldLabel: "Enable Smtp Auth",
318
- fieldName: "isMailSmtpAuthEnabled",
319
- required: false,
320
- fieldType: "checkbox",
321
- hidden: true,
322
- gridProps: {
323
- hidden: true,
324
- },
325
- },
326
- },
327
- {
328
- type: "field",
329
- mode: "props",
330
- props: {
331
- fieldLabel: "Enable Start TLS",
332
- fieldName: "isMailStarttlsEnabled",
333
- required: false,
334
- fieldType: "checkbox",
335
- hidden: true,
336
- gridProps: {
337
- hidden: true,
338
- },
339
- },
340
- },
341
- {
342
- type: "field",
343
- mode: "props",
344
- props: {
345
- fieldLabel: "Enable SSL",
346
- fieldName: "isSmtpSSlEnabled",
347
- required: false,
348
- fieldType: "checkbox",
349
- hidden: true,
350
- gridProps: {
351
- hidden: true,
352
- },
353
- },
354
- },
355
- {
356
- type: "field",
357
- mode: "props",
358
- props: {
359
- fieldLabel: "Azure Graph API Client Id",
360
- fieldName: "azureGraphApiClientId",
361
- required: false,
362
- fieldType: "text",
363
- hidden: true,
364
- gridProps: {
365
- hidden: true,
366
- },
367
- },
368
- },
369
- {
370
- type: "field",
371
- mode: "props",
372
- props: {
373
- fieldLabel: "Azure Graph API Secret",
374
- fieldName: "azureGraphApiClientSecret",
375
- required: false,
376
- fieldType: "text",
377
- hidden: true,
378
- gridProps: {
379
- hidden: true,
380
- },
381
- },
382
- },
383
- {
384
- type: "field",
385
- mode: "props",
386
- props: {
387
- fieldLabel: "Azure Graph API Tenant Id",
388
- fieldName: "azureGraphApiTenantId",
389
- required: false,
390
- fieldType: "text",
391
- hidden: true,
392
- gridProps: {
393
- hidden: true,
394
- },
395
- },
396
- },
397
- {
398
- type: "field",
399
- mode: "props",
400
- props: {
401
- fieldLabel: "Azure Graph API Scope",
402
- fieldName: "azureGraphApiScope",
403
- required: false,
404
- fieldType: "text",
405
- hidden: true,
406
- gridProps: {
407
- hidden: true,
408
- },
409
- },
410
- },
411
- {
412
- type: "field",
413
- mode: "props",
414
- props: {
415
- fieldLabel: "Azure Graph API Email Id",
416
- fieldName: "azureGraphApiEmailId",
417
- required: false,
418
- fieldType: "text",
419
- hidden: true,
420
- gridProps: {
421
- hidden: true,
422
- },
423
- },
424
- },
425
- {
426
- type: "field",
427
- mode: "props",
428
- props: {
429
- fieldLabel: "Default",
430
- fieldName: "isDefault",
431
- required: false,
432
- fieldType: "checkbox",
433
- },
434
- },
435
- {
436
- type: "field",
437
- mode: "props",
438
- props: {
439
- fieldLabel: "Active",
440
- fieldName: "isActive",
441
- required: false,
442
- fieldType: "checkbox",
443
- },
444
- },
445
- ];
446
-
447
- return (
448
- <TemplateGrid
449
- apiActions={apiActions}
450
- data={data}
451
- setData={setData}
452
- editMode={{
453
- editMode: "modal",
454
- specs: {
455
- modalIcon: { iconName: "paper-plane", prefix: "fas" },
456
- modalTitle: "Mail Sender Configuration",
457
- modalWidth: 300,
458
- },
459
- }}
460
- formElements={formElements}
461
- keyColumnName={"id"}
462
- gridTitle={t("Mail Sender Configuration")}
463
- girdIcon={{ iconName: "paper-plane", prefix: "fas" }}
464
- editAction={{ isEnabled: true, authority: "MAIL_SENDER_CONFIG_EDIT" }}
465
- deleteAction={{ isEnabled: true, authority: "MAIL_SENDER_CONFIG_DELETE" }}
466
- formProps={{
467
- formValuesChangeCallBk: (
468
- formValues,
469
- formActions,
470
- formManager,
471
- fieldName,
472
- newValue,
473
- selectedRecord,
474
- ) => {
475
- adjustFormAccordingToEngineType(
476
- formValues.mailEngine,
477
- formActions,
478
- formManager,
479
- );
480
- },
481
- }}
482
- />
483
- );
484
- };
485
-
486
- export default MailSenderConfigGrid;
1
+ import { useState } from "react";
2
+ import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
+ import {
4
+ FormActionProps,
5
+ FormElementProps,
6
+ } from "../../templates/DataEntryTemplates/DataEntryTypes";
7
+ import { useTranslation } from "react-i18next";
8
+ import { useApiActions } from "../../../hooks";
9
+ import { UseFormReturn } from "react-hook-form";
10
+
11
+ type ValidationCritria = {
12
+ isVisible: boolean;
13
+ isMandatory: boolean;
14
+ };
15
+
16
+ export type EngineType = "Gmail" | "Azure";
17
+
18
+ type ReportValidationOptions = {
19
+ mailHost: ValidationCritria;
20
+ mailPort: ValidationCritria;
21
+ mailUsername: ValidationCritria;
22
+ mailPassword: ValidationCritria;
23
+ mailProtocol: ValidationCritria;
24
+ isMailSmtpAuthEnabled: ValidationCritria;
25
+ isMailStarttlsEnabled: ValidationCritria;
26
+ isSmtpSSlEnabled: ValidationCritria;
27
+ azureGraphApiClientId: ValidationCritria;
28
+ azureGraphApiClientSecret: ValidationCritria;
29
+ azureGraphApiTenantId: ValidationCritria;
30
+ azureGraphApiScope: ValidationCritria;
31
+ azureGraphApiEmailId: ValidationCritria;
32
+ };
33
+
34
+ type validationObjectType = {
35
+ [key in EngineType]: ReportValidationOptions;
36
+ };
37
+
38
+ const validationObject: validationObjectType = {
39
+ Gmail: {
40
+ mailHost: { isMandatory: true, isVisible: true },
41
+ mailPort: { isMandatory: true, isVisible: true },
42
+ mailUsername: { isMandatory: true, isVisible: true },
43
+ mailPassword: { isMandatory: true, isVisible: true },
44
+ mailProtocol: { isMandatory: true, isVisible: true },
45
+ isMailSmtpAuthEnabled: { isMandatory: true, isVisible: true },
46
+ isMailStarttlsEnabled: { isMandatory: true, isVisible: true },
47
+ isSmtpSSlEnabled: { isMandatory: true, isVisible: true },
48
+ azureGraphApiClientId: { isMandatory: false, isVisible: false },
49
+ azureGraphApiClientSecret: { isMandatory: false, isVisible: false },
50
+ azureGraphApiTenantId: { isMandatory: false, isVisible: false },
51
+ azureGraphApiScope: { isMandatory: false, isVisible: false },
52
+ azureGraphApiEmailId: { isMandatory: false, isVisible: false },
53
+ },
54
+ Azure: {
55
+ mailHost: { isMandatory: false, isVisible: false },
56
+ mailPort: { isMandatory: false, isVisible: false },
57
+ mailUsername: { isMandatory: false, isVisible: false },
58
+ mailPassword: { isMandatory: false, isVisible: false },
59
+ mailProtocol: { isMandatory: false, isVisible: false },
60
+ isMailSmtpAuthEnabled: { isMandatory: false, isVisible: false },
61
+ isMailStarttlsEnabled: { isMandatory: false, isVisible: false },
62
+ isSmtpSSlEnabled: { isMandatory: false, isVisible: false },
63
+ azureGraphApiClientId: { isMandatory: true, isVisible: true },
64
+ azureGraphApiClientSecret: { isMandatory: true, isVisible: true },
65
+ azureGraphApiTenantId: { isMandatory: true, isVisible: true },
66
+ azureGraphApiScope: { isMandatory: true, isVisible: true },
67
+ azureGraphApiEmailId: { isMandatory: true, isVisible: true },
68
+ },
69
+ };
70
+
71
+ const adjustFormAccordingToEngineType = (
72
+ value: any,
73
+ formActions: FormActionProps,
74
+ formManager: UseFormReturn,
75
+ ) => {
76
+ debugger;
77
+ if (value && validationObject[value]) {
78
+ const validationObjects: ReportValidationOptions = validationObject[value];
79
+ const fields = Object.keys(validationObjects);
80
+ for (const field of fields) {
81
+ const validationCritria: ValidationCritria = validationObjects[field];
82
+ if (validationCritria.isVisible) {
83
+ formActions.showField(field);
84
+ } else {
85
+ formActions.hideField(field);
86
+ formManager.setValue(field, null);
87
+ }
88
+ }
89
+ } else {
90
+ formActions.hideField("mailHost");
91
+ formManager.setValue("mailHost", null);
92
+ formActions.hideField("mailPort");
93
+ formManager.setValue("mailPort", null);
94
+ formActions.hideField("mailUsername");
95
+ formManager.setValue("mailUsername", null);
96
+ formActions.hideField("mailPassword");
97
+ formManager.setValue("mailPassword", null);
98
+ formActions.hideField("mailProtocol");
99
+ formManager.setValue("mailProtocol", null);
100
+ formActions.hideField("isMailSmtpAuthEnabled");
101
+ formManager.setValue("isMailSmtpAuthEnabled", null);
102
+ formActions.hideField("isMailStarttlsEnabled");
103
+ formManager.setValue("isMailStarttlsEnabled", null);
104
+ formActions.hideField("isSmtpSSlEnabled");
105
+ formManager.setValue("isSmtpSSlEnabled", null);
106
+ formActions.hideField("azureGraphApiClientId");
107
+ formManager.setValue("azureGraphApiClientId", null);
108
+ formActions.hideField("azureGraphApiClientSecret");
109
+ formManager.setValue("azureGraphApiClientSecret", null);
110
+ formActions.hideField("azureGraphApiTenantId");
111
+ formManager.setValue("azureGraphApiTenantId", null);
112
+ formActions.hideField("azureGraphApiScope");
113
+ formManager.setValue("azureGraphApiScope", null);
114
+ formActions.hideField("azureGraphApiEmailId");
115
+ formManager.setValue("azureGraphApiEmailId", null);
116
+ }
117
+ };
118
+
119
+ const MailSenderConfigGrid: React.FC = () => {
120
+ const { t } = useTranslation();
121
+ const [data, setData] = useState([]);
122
+ const apiActions = useApiActions({
123
+ findAll: "api/v1/dev/mailsenderconfig/all",
124
+ deleteById: "api/v1/dev/mailsenderconfig",
125
+ save: "api/v1/dev/mailsenderconfig",
126
+ findById: "api/v1/dev/mailsenderconfig",
127
+ setData: setData,
128
+ });
129
+
130
+ const formElements: Array<FormElementProps> = [
131
+ {
132
+ type: "field",
133
+ mode: "props",
134
+ props: {
135
+ fieldLabel: "id",
136
+ fieldName: "id",
137
+ fieldType: "number",
138
+ hidden: true,
139
+ gridProps: {
140
+ hidden: true,
141
+ },
142
+ },
143
+ },
144
+ {
145
+ type: "field",
146
+ mode: "props",
147
+ props: {
148
+ fieldLabel: "createTime",
149
+ fieldName: "createTime",
150
+ fieldType: "datetime",
151
+ hidden: true,
152
+ gridProps: {
153
+ hidden: true,
154
+ },
155
+ },
156
+ },
157
+ {
158
+ type: "field",
159
+ mode: "props",
160
+ props: {
161
+ fieldLabel: "createdBy",
162
+ fieldName: "createdBy",
163
+ fieldType: "text",
164
+ hidden: true,
165
+ gridProps: {
166
+ hidden: true,
167
+ },
168
+ },
169
+ },
170
+ {
171
+ type: "field",
172
+ mode: "props",
173
+ props: {
174
+ fieldLabel: "lastUpdateBy",
175
+ fieldName: "lastUpdateBy",
176
+ fieldType: "text",
177
+ hidden: true,
178
+ gridProps: {
179
+ hidden: true,
180
+ },
181
+ },
182
+ },
183
+ {
184
+ type: "field",
185
+ mode: "props",
186
+ props: {
187
+ fieldLabel: "lastUpdateTime",
188
+ fieldName: "lastUpdateTime",
189
+ fieldType: "datetime",
190
+ hidden: true,
191
+ gridProps: {
192
+ hidden: true,
193
+ },
194
+ },
195
+ },
196
+ {
197
+ type: "field",
198
+ mode: "props",
199
+ props: {
200
+ fieldLabel: "Name",
201
+ fieldName: "configName",
202
+ required: true,
203
+ fieldType: "text",
204
+ },
205
+ },
206
+ {
207
+ type: "field",
208
+ mode: "props",
209
+ props: {
210
+ fieldLabel: "Engine",
211
+ fieldName: "mailEngine",
212
+ required: true,
213
+ fieldType: "combobox",
214
+ comboboxValueDataType: "string",
215
+ options: [{ value: "Gmail" }, { value: "Azure" }],
216
+ optionDisplayField: "value",
217
+ optionValueField: "value",
218
+ formProps: {
219
+ onValueChangeCallBack(
220
+ formValues,
221
+ value,
222
+ formManager,
223
+ formActions,
224
+ selectedRecord,
225
+ ) {
226
+ adjustFormAccordingToEngineType(value, formActions, formManager);
227
+ },
228
+ },
229
+ },
230
+ },
231
+ {
232
+ type: "field",
233
+ mode: "props",
234
+ props: {
235
+ fieldLabel: "Hostname",
236
+ fieldName: "mailHost",
237
+ required: false,
238
+ fieldType: "text",
239
+ hidden: true,
240
+ gridProps: {
241
+ hidden: true,
242
+ },
243
+ },
244
+ },
245
+ {
246
+ type: "field",
247
+ mode: "props",
248
+ props: {
249
+ fieldLabel: "port",
250
+ fieldName: "mailPort",
251
+ required: false,
252
+ fieldType: "number",
253
+ hidden: true,
254
+ gridProps: {
255
+ hidden: true,
256
+ },
257
+ },
258
+ },
259
+ {
260
+ type: "field",
261
+ mode: "props",
262
+ props: {
263
+ fieldLabel: "username",
264
+ fieldName: "mailUsername",
265
+ required: false,
266
+ fieldType: "text",
267
+ hidden: true,
268
+ gridProps: {
269
+ hidden: true,
270
+ },
271
+ },
272
+ },
273
+ {
274
+ type: "field",
275
+ mode: "props",
276
+ props: {
277
+ fieldLabel: "password",
278
+ fieldName: "mailPassword",
279
+ required: false,
280
+ fieldType: "text",
281
+ hidden: true,
282
+ gridProps: {
283
+ hidden: true,
284
+ },
285
+ },
286
+ },
287
+
288
+ {
289
+ type: "field",
290
+ mode: "props",
291
+ props: {
292
+ fieldLabel: "Workflow Approval Receive Email",
293
+ fieldName: "workFlowApprovalReceiveEmail",
294
+ required: true,
295
+ fieldType: "text",
296
+ },
297
+ },
298
+ {
299
+ type: "field",
300
+ mode: "props",
301
+ props: {
302
+ fieldLabel: "Protocol",
303
+ fieldName: "mailProtocol",
304
+ required: false,
305
+ fieldType: "text",
306
+ hidden: true,
307
+ gridProps: {
308
+ hidden: true,
309
+ },
310
+ },
311
+ },
312
+
313
+ {
314
+ type: "field",
315
+ mode: "props",
316
+ props: {
317
+ fieldLabel: "Enable Smtp Auth",
318
+ fieldName: "isMailSmtpAuthEnabled",
319
+ required: false,
320
+ fieldType: "checkbox",
321
+ hidden: true,
322
+ gridProps: {
323
+ hidden: true,
324
+ },
325
+ },
326
+ },
327
+ {
328
+ type: "field",
329
+ mode: "props",
330
+ props: {
331
+ fieldLabel: "Enable Start TLS",
332
+ fieldName: "isMailStarttlsEnabled",
333
+ required: false,
334
+ fieldType: "checkbox",
335
+ hidden: true,
336
+ gridProps: {
337
+ hidden: true,
338
+ },
339
+ },
340
+ },
341
+ {
342
+ type: "field",
343
+ mode: "props",
344
+ props: {
345
+ fieldLabel: "Enable SSL",
346
+ fieldName: "isSmtpSSlEnabled",
347
+ required: false,
348
+ fieldType: "checkbox",
349
+ hidden: true,
350
+ gridProps: {
351
+ hidden: true,
352
+ },
353
+ },
354
+ },
355
+ {
356
+ type: "field",
357
+ mode: "props",
358
+ props: {
359
+ fieldLabel: "Azure Graph API Client Id",
360
+ fieldName: "azureGraphApiClientId",
361
+ required: false,
362
+ fieldType: "text",
363
+ hidden: true,
364
+ gridProps: {
365
+ hidden: true,
366
+ },
367
+ },
368
+ },
369
+ {
370
+ type: "field",
371
+ mode: "props",
372
+ props: {
373
+ fieldLabel: "Azure Graph API Secret",
374
+ fieldName: "azureGraphApiClientSecret",
375
+ required: false,
376
+ fieldType: "text",
377
+ hidden: true,
378
+ gridProps: {
379
+ hidden: true,
380
+ },
381
+ },
382
+ },
383
+ {
384
+ type: "field",
385
+ mode: "props",
386
+ props: {
387
+ fieldLabel: "Azure Graph API Tenant Id",
388
+ fieldName: "azureGraphApiTenantId",
389
+ required: false,
390
+ fieldType: "text",
391
+ hidden: true,
392
+ gridProps: {
393
+ hidden: true,
394
+ },
395
+ },
396
+ },
397
+ {
398
+ type: "field",
399
+ mode: "props",
400
+ props: {
401
+ fieldLabel: "Azure Graph API Scope",
402
+ fieldName: "azureGraphApiScope",
403
+ required: false,
404
+ fieldType: "text",
405
+ hidden: true,
406
+ gridProps: {
407
+ hidden: true,
408
+ },
409
+ },
410
+ },
411
+ {
412
+ type: "field",
413
+ mode: "props",
414
+ props: {
415
+ fieldLabel: "Azure Graph API Email Id",
416
+ fieldName: "azureGraphApiEmailId",
417
+ required: false,
418
+ fieldType: "text",
419
+ hidden: true,
420
+ gridProps: {
421
+ hidden: true,
422
+ },
423
+ },
424
+ },
425
+ {
426
+ type: "field",
427
+ mode: "props",
428
+ props: {
429
+ fieldLabel: "Default",
430
+ fieldName: "isDefault",
431
+ required: false,
432
+ fieldType: "checkbox",
433
+ },
434
+ },
435
+ {
436
+ type: "field",
437
+ mode: "props",
438
+ props: {
439
+ fieldLabel: "Active",
440
+ fieldName: "isActive",
441
+ required: false,
442
+ fieldType: "checkbox",
443
+ },
444
+ },
445
+ ];
446
+
447
+ return (
448
+ <TemplateGrid
449
+ apiActions={apiActions}
450
+ data={data}
451
+ setData={setData}
452
+ editMode={{
453
+ editMode: "modal",
454
+ specs: {
455
+ modalIcon: { iconName: "paper-plane", prefix: "fas" },
456
+ modalTitle: "Mail Sender Configuration",
457
+ modalWidth: 300,
458
+ },
459
+ }}
460
+ formElements={formElements}
461
+ keyColumnName={"id"}
462
+ gridTitle={t("Mail Sender Configuration")}
463
+ girdIcon={{ iconName: "paper-plane", prefix: "fas" }}
464
+ editAction={{ isEnabled: true, authority: "MAIL_SENDER_CONFIG_EDIT" }}
465
+ deleteAction={{ isEnabled: true, authority: "MAIL_SENDER_CONFIG_DELETE" }}
466
+ formProps={{
467
+ formValuesChangeCallBk: (
468
+ formValues,
469
+ formActions,
470
+ formManager,
471
+ fieldName,
472
+ newValue,
473
+ selectedRecord,
474
+ ) => {
475
+ adjustFormAccordingToEngineType(
476
+ formValues.mailEngine,
477
+ formActions,
478
+ formManager,
479
+ );
480
+ },
481
+ }}
482
+ />
483
+ );
484
+ };
485
+
486
+ export default MailSenderConfigGrid;