@asaleh37/ui-base 1.2.29 → 25.1.9

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 (179) hide show
  1. package/.github/workflows/publish-npm.yml +49 -0
  2. package/README.md +51 -51
  3. package/__ODockerfile +14 -0
  4. package/dist/index.d.ts +101 -10
  5. package/dist/index.js +135 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +135 -7
  8. package/dist/index.mjs.map +1 -1
  9. package/eslint.config.js +29 -29
  10. package/index.html +20 -13
  11. package/package-lock.json/342/200/216 +9040 -0
  12. package/package.json +122 -119
  13. package/public/bg.jpg +0 -0
  14. package/public/ezzsteel.png +0 -0
  15. package/public/logo.png +0 -0
  16. package/public/manifest.json +21 -0
  17. package/public/no_user.png +0 -0
  18. package/rollup.config-1748377725725.cjs +34 -34
  19. package/rollup.config.js +45 -45
  20. package/src/components/App.tsx +155 -123
  21. package/src/components/BaseApp.tsx +75 -53
  22. package/src/components/ExampleTrial.tsx +24 -0
  23. package/src/components/administration/admin/ChangePasswordPanel.tsx +128 -0
  24. package/src/components/administration/admin/CustomPersonGrid.tsx +361 -0
  25. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  26. package/src/components/administration/admin/OrgProvidedPersonGrid.tsx +347 -0
  27. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  28. package/src/components/administration/admin/OrganizationGrid.tsx +118 -82
  29. package/src/components/administration/admin/OrganizationMemberGrid.tsx +190 -176
  30. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  31. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  32. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  33. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  34. package/src/components/administration/admin/PersonGrid.tsx +27 -231
  35. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  36. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -126
  37. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  38. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  39. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -67
  40. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  41. package/src/components/administration/dev/AttachmentConfigGrid.tsx +224 -213
  42. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  43. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  44. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  45. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  46. package/src/components/administration/dev/DataQueryGrid.tsx +216 -206
  47. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  48. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  49. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +151 -150
  50. package/src/components/administration/dev/EntityParameterGrid.tsx +307 -279
  51. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  52. package/src/components/administration/dev/MailAttachmentGrid.tsx +155 -155
  53. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  54. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  55. package/src/components/administration/dev/MailRecipientGrid.tsx +170 -169
  56. package/src/components/administration/dev/MailSenderConfigGrid.tsx +480 -478
  57. package/src/components/administration/dev/MailTemplateGrid.tsx +385 -384
  58. package/src/components/administration/dev/NotificationGrid.tsx +435 -432
  59. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  60. package/src/components/administration/dev/ReportGrid.tsx +503 -504
  61. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  62. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  63. package/src/components/administration/dev/WidgetGrid.tsx +380 -431
  64. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  65. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  66. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  67. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +357 -377
  68. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  69. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  70. package/src/components/common/AzureLogin.tsx +222 -0
  71. package/src/components/common/ChangeOrgForm.tsx +85 -81
  72. package/src/components/common/Home.tsx +43 -44
  73. package/src/components/common/LanguageSwitcher.tsx +25 -25
  74. package/src/components/common/LayoutHandlers.tsx +11 -11
  75. package/src/components/common/LoadingMask.tsx +24 -24
  76. package/src/components/common/Login.tsx +268 -214
  77. package/src/components/common/MobileLogin.tsx +229 -0
  78. package/src/components/common/MyNotificationsPanel.tsx +109 -104
  79. package/src/components/common/NoLicenseComponent.tsx +79 -0
  80. package/src/components/common/NotificationItem.tsx +138 -138
  81. package/src/components/index.ts +10 -9
  82. package/src/components/msalConfig.ts +11 -0
  83. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +361 -324
  84. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +297 -248
  85. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  86. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +238 -231
  87. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +108 -106
  88. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +66 -64
  89. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +164 -93
  90. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +70 -65
  91. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +71 -64
  92. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  93. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +56 -55
  94. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +20 -17
  95. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +431 -388
  96. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +197 -189
  97. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +1044 -998
  98. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  99. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  100. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +234 -227
  101. package/src/components/templates/TransferList.tsx +256 -257
  102. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  103. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  104. package/src/components/templates/attachment/AttachmentImageViewer.tsx +85 -45
  105. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -271
  106. package/src/components/templates/index.ts +35 -33
  107. package/src/components/templates/report/ExcelReportViewer.tsx +71 -72
  108. package/src/components/templates/report/ReportViewer.tsx +272 -383
  109. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  110. package/src/components/templates/visuals/DashboardViewer.tsx +192 -148
  111. package/src/components/templates/visuals/WidgetViewer.tsx +208 -198
  112. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  113. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  114. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  115. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  116. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  117. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  118. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +611 -606
  119. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +145 -140
  120. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  121. package/src/examples/ExampleGrid.tsx +134 -0
  122. package/src/hooks/UseConfirmationWindow.tsx +56 -54
  123. package/src/hooks/UseMobile.tsx +13 -13
  124. package/src/hooks/UseSession.tsx +59 -40
  125. package/src/hooks/UseWindow.tsx +111 -107
  126. package/src/hooks/index.ts +22 -7
  127. package/src/hooks/useApiActions.ts +124 -124
  128. package/src/hooks/useAxios.tsx +340 -316
  129. package/src/hooks/useCommonStore.tsx +29 -0
  130. package/src/hooks/useInterval.tsx +23 -23
  131. package/src/hooks/useLoadingMask.tsx +16 -16
  132. package/src/hooks/useLookupGridColumn.tsx +35 -35
  133. package/src/hooks/useParameterPanel.tsx +159 -0
  134. package/src/index.ts +4 -4
  135. package/src/layout/DrawerHeader.tsx +10 -10
  136. package/src/layout/Layout.tsx +102 -90
  137. package/src/layout/MainContent.tsx +115 -114
  138. package/src/layout/MobileDrawer.tsx +103 -103
  139. package/src/layout/NavigationTree.tsx +309 -291
  140. package/src/layout/NotificationButton.tsx +207 -207
  141. package/src/layout/RouteWrapper.tsx +63 -36
  142. package/src/layout/SideBar.tsx +85 -85
  143. package/src/layout/TopBar.tsx +317 -217
  144. package/src/locales/arabic/adminLocalsAr.json +94 -93
  145. package/src/locales/arabic/common.json +44 -44
  146. package/src/locales/arabic/devLocalsAr.json +317 -317
  147. package/src/locales/arabic/index.ts +9 -9
  148. package/src/locales/english/adminLocalsEn.json +97 -96
  149. package/src/locales/english/common.json +43 -43
  150. package/src/locales/english/devLocalsEn.json +318 -318
  151. package/src/locales/english/index.ts +9 -9
  152. package/src/locales/i18n.ts +8 -8
  153. package/src/locales/index.ts +9 -9
  154. package/src/main.tsx +41 -23
  155. package/src/navigationItems/Administration/adminNavigationItems.tsx +231 -222
  156. package/src/navigationItems/Administration/index.tsx +16 -16
  157. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  158. package/src/navigationItems/common/index.tsx +7 -7
  159. package/src/navigationItems/index.tsx +35 -34
  160. package/src/redux/features/administration/AdministrationStoresMetaData.ts +164 -126
  161. package/src/redux/features/common/AppInfoSlice.ts +93 -63
  162. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  163. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  164. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  165. package/src/redux/features/common/SideBarSlice.ts +27 -27
  166. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  167. package/src/redux/store.ts +29 -29
  168. package/src/routes/administration/adminRoutes.tsx +99 -99
  169. package/src/routes/administration/devRoutes.tsx +129 -129
  170. package/src/routes/administration/index.ts +8 -8
  171. package/src/routes/index.ts +5 -11
  172. package/src/routes/types/index.ts +6 -5
  173. package/src/styles/index.css +19 -19
  174. package/src/types/index.ts +8 -2
  175. package/src/util/AppUtils.ts +73 -53
  176. package/src/util/constants.ts +6 -6
  177. package/src/util/index.ts +5 -2
  178. package/tsconfig.json +135 -135
  179. package/vite.config.ts +24 -23
@@ -1,377 +1,357 @@
1
- import { useState } from "react";
2
- import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
- import { FormElementProps } from "../../templates/DataEntryTemplates/DataEntryTypes";
4
- import { useTranslation } from "react-i18next";
5
- import { useApiActions, useWindow } from "../../../hooks";
6
- import { useSelector } from "react-redux";
7
- import WorkflowDocumentStatusGrid from "./WorkflowDocumentStatusGrid";
8
- import WorkflowDocumentActionGrid from "./WorkflowDocumentActionGrid";
9
-
10
- const WorkflowDocumentGrid: React.FC = () => {
11
- const [selectedRecord, setSelectedRecord] = useState<any>(null);
12
- const {
13
- Window: WorkflowStatusWindow,
14
- setWindowState: setWorkflowStatusWindowState,
15
- } = useWindow({
16
- windowTitle: "Document Status",
17
- windowIcon: "tag",
18
- });
19
- const {
20
- Window: WorkflowActionWindow,
21
- setWindowState: setWorkflowActionWindowState,
22
- } = useWindow({
23
- windowTitle: "Document Action",
24
- windowIcon: "stamp",
25
- });
26
- const SystemOrganizations = useSelector(
27
- (state: any) => state.commonStores.stores.SystemOrganizations.data
28
- );
29
- const SystemReports = useSelector(
30
- (state: any) => state.commonStores.stores.SystemReports.data
31
- );
32
- const SystemDataSources = useSelector(
33
- (state: any) => state.commonStores.stores.SystemDataSources.data
34
- );
35
- const { t } = useTranslation();
36
- const [data, setData] = useState([]);
37
- const apiActions = useApiActions({
38
- findAll: "api/v1/dev/workflowdocument/all",
39
- deleteById: "api/v1/dev/workflowdocument",
40
- save: "api/v1/dev/workflowdocument",
41
- findById: "api/v1/dev/workflowdocument",
42
- setData: setData,
43
- });
44
-
45
- const formElements: Array<FormElementProps> = [
46
- {
47
- type: "field",
48
- mode: "props",
49
- props: {
50
- fieldLabel: "id",
51
- fieldName: "id",
52
- fieldType: "number",
53
- hidden: true,
54
- gridProps: {
55
- hidden: true,
56
- },
57
- },
58
- },
59
- {
60
- type: "field",
61
- mode: "props",
62
- props: {
63
- fieldLabel: "createTime",
64
- fieldName: "createTime",
65
- fieldType: "datetime",
66
- hidden: true,
67
- gridProps: {
68
- hidden: true,
69
- },
70
- },
71
- },
72
- {
73
- type: "field",
74
- mode: "props",
75
- props: {
76
- fieldLabel: "createdBy",
77
- fieldName: "createdBy",
78
- fieldType: "text",
79
- hidden: true,
80
- gridProps: {
81
- hidden: true,
82
- },
83
- },
84
- },
85
- {
86
- type: "field",
87
- mode: "props",
88
- props: {
89
- fieldLabel: "lastUpdateBy",
90
- fieldName: "lastUpdateBy",
91
- fieldType: "text",
92
- hidden: true,
93
- gridProps: {
94
- hidden: true,
95
- },
96
- },
97
- },
98
- {
99
- type: "field",
100
- mode: "props",
101
- props: {
102
- fieldLabel: "lastUpdateTime",
103
- fieldName: "lastUpdateTime",
104
- fieldType: "datetime",
105
- hidden: true,
106
- gridProps: {
107
- hidden: true,
108
- },
109
- },
110
- },
111
- {
112
- type: "field",
113
- mode: "props",
114
- props: {
115
- fieldLabel: "WORKFLOW_DOCUMENT_ORG_CODE",
116
- fieldName: "orgCode",
117
- required: false,
118
- fieldType: "combobox",
119
- options: SystemOrganizations,
120
- optionDisplayField: "organizationCode",
121
- optionValueField: "id",
122
- },
123
- },
124
- {
125
- type: "field",
126
- mode: "props",
127
- props: {
128
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_CODE",
129
- fieldName: "documentCode",
130
- required: true,
131
- fieldType: "text",
132
- },
133
- },
134
- {
135
- type: "field",
136
- mode: "props",
137
- props: {
138
- fieldLabel: "Workflow Document En Display Name",
139
- fieldName: "documentEnName",
140
- required: true,
141
- fieldType: "text",
142
- },
143
- },
144
- {
145
- type: "field",
146
- mode: "props",
147
- props: {
148
- fieldLabel: "Workflow Document Ar Display Name",
149
- fieldName: "documentArName",
150
- required: true,
151
- fieldType: "text",
152
- },
153
- },
154
- {
155
- type: "field",
156
- mode: "props",
157
- props: {
158
- fieldLabel: "Report To be Attached For The Document ( will be passed a parameter called doc_id)",
159
- fieldName: "documentReportId",
160
- required: false,
161
- fieldType: "combobox",
162
- options: SystemReports,
163
- optionDisplayField: "reportName",
164
- optionValueField: "id",
165
- },
166
- },
167
-
168
- {
169
- type: "field",
170
- mode: "props",
171
- props: {
172
- fieldLabel: "WORKFLOW_DOCUMENT_MAIL_APPROVAL_ALLOWED",
173
- fieldName: "mailApprovalAllowed",
174
- required: false,
175
- fieldType: "checkbox",
176
- },
177
- },
178
- {
179
- type: "group",
180
- props: {
181
- icon: "bell",
182
- style: { border: "1px dashed black", padding: 1, marginBottom: 1 },
183
- label: "App Visual Notifications",
184
- elements: [
185
- {
186
- type: "field",
187
- mode: "props",
188
- props: {
189
- fieldLabel: "WORKFLOW_DOCUMENT_APP_NOTIFICATION_ICON",
190
- fieldName: "appNotificationIcon",
191
- required: false,
192
- fieldType: "text",
193
- },
194
- },
195
- {
196
- type: "field",
197
- mode: "props",
198
- props: {
199
- fieldLabel: "WORKFLOW_DOCUMENT_APP_NOTIFICATION_STYLE",
200
- fieldName: "appNotificationStyle",
201
- required: false,
202
- fieldType: "text",
203
- },
204
- },
205
- {
206
- type: "field",
207
- mode: "props",
208
- props: {
209
- fieldLabel: "WORKFLOW_DOCUMENT_APP_VIEW_ROUTE",
210
- fieldName: "appViewRoute",
211
- required: false,
212
- fieldType: "text",
213
- },
214
- },
215
- ],
216
- },
217
- },
218
-
219
- {
220
- type: "group",
221
- props: {
222
- icon: "database",
223
- style: { border: "1px dashed black", padding: 1, marginBottom: 1 },
224
- label: "Related Document Database",
225
- elements: [
226
- {
227
- type: "field",
228
- mode: "props",
229
- props: {
230
- fieldLabel: "WORKFLOW_DOCUMENT_USE_SYSTEM_CON",
231
- fieldName: "useSystemCon",
232
- required: false,
233
- fieldType: "checkbox",
234
- formProps: {
235
- onValueChangeCallBack(
236
- value,
237
- formManager,
238
- formActions,
239
- selectedRecord
240
- ) {
241
- if (value) {
242
- formActions.hideField("documentConId");
243
- formManager.setValue("documentConId", null);
244
- } else {
245
- formActions.showField("documentConId");
246
- }
247
- },
248
- },
249
- },
250
- },
251
- {
252
- type: "field",
253
- mode: "props",
254
- props: {
255
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_CON_ID",
256
- fieldName: "documentConId",
257
- required: false,
258
- fieldType: "combobox",
259
- options: SystemDataSources,
260
- optionDisplayField: "connectionName",
261
- optionValueField: "id",
262
- },
263
- },
264
- {
265
- type: "field",
266
- mode: "props",
267
- props: {
268
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_DATABASE_NAME",
269
- fieldName: "documentDatabaseName",
270
- required: true,
271
- fieldType: "text",
272
- },
273
- },
274
- {
275
- type: "field",
276
- mode: "props",
277
- props: {
278
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_DATABASE_TABLE",
279
- fieldName: "documentDatabaseTable",
280
- required: true,
281
- fieldType: "text",
282
- },
283
- },
284
- {
285
- type: "field",
286
- mode: "props",
287
- props: {
288
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_ID_FIELD",
289
- fieldName: "documentIdField",
290
- required: true,
291
- fieldType: "text",
292
- },
293
- },
294
- {
295
- type: "field",
296
- mode: "props",
297
- props: {
298
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_STATUS_FIELD",
299
- fieldName: "documentStatusField",
300
- required: true,
301
- fieldType: "text",
302
- },
303
- },
304
- {
305
- type: "field",
306
- mode: "props",
307
- props: {
308
- fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_NUMBER_FIELD",
309
- fieldName: "documentNumberField",
310
- required: true,
311
- fieldType: "text",
312
- },
313
- },
314
- ],
315
- },
316
- },
317
- ];
318
-
319
- return (
320
- <>
321
- <WorkflowStatusWindow>
322
- <WorkflowDocumentStatusGrid selectedRecord={selectedRecord} />
323
- </WorkflowStatusWindow>
324
- <WorkflowActionWindow>
325
- <WorkflowDocumentActionGrid selectedRecord={selectedRecord} />
326
- </WorkflowActionWindow>
327
- <TemplateGrid
328
- apiActions={apiActions}
329
- formLoadCallBk={(formActions, formManager, record) => {
330
- if (record.useSystemCon === true) {
331
- formActions.hideField("documentConId");
332
- } else {
333
- formActions.showField("documentConId");
334
- }
335
- }}
336
- data={data}
337
- setData={setData}
338
- rowActions={[
339
- {
340
- icon: "tag",
341
- label: "Document States",
342
- actionFn: async (data) => {
343
- setSelectedRecord(data);
344
- setWorkflowStatusWindowState(true);
345
- },
346
- },
347
- {
348
- icon: "stamp",
349
- label: "Document Actions",
350
- actionFn: async (data) => {
351
- setSelectedRecord(data);
352
- setWorkflowActionWindowState(true);
353
- },
354
- },
355
- ]}
356
- editMode={{
357
- editMode: "modal",
358
- specs: {
359
- modalIcon: "chart-diagram",
360
- modalTitle: t("WORKFLOW_DOCUMENT_SINGULAR"),
361
- },
362
- }}
363
- formElements={formElements}
364
- keyColumnName={"id"}
365
- gridTitle={t("WORKFLOW_DOCUMENT_PLURAL")}
366
- girdIcon="chart-diagram"
367
- editAction={{ isEnabled: true, authority: "WORKFLOW_DOCUMENT_EDIT" }}
368
- deleteAction={{
369
- isEnabled: true,
370
- authority: "WORKFLOW_DOCUMENT_DELETE",
371
- }}
372
- />
373
- </>
374
- );
375
- };
376
-
377
- export default WorkflowDocumentGrid;
1
+ import { useState } from "react";
2
+ import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
+ import { FormElementProps } from "../../templates/DataEntryTemplates/DataEntryTypes";
4
+ import { useTranslation } from "react-i18next";
5
+ import { useApiActions, useWindow } from "../../../hooks";
6
+ import { useSelector } from "react-redux";
7
+ import WorkflowDocumentStatusGrid from "./WorkflowDocumentStatusGrid";
8
+ import WorkflowDocumentActionGrid from "./WorkflowDocumentActionGrid";
9
+
10
+ const WorkflowDocumentGrid: React.FC = () => {
11
+ const [selectedRecord, setSelectedRecord] = useState<any>(null);
12
+ const {
13
+ Window: WorkflowStatusWindow,
14
+ setWindowState: setWorkflowStatusWindowState,
15
+ } = useWindow({
16
+ windowTitle: "Document Status",
17
+ windowIcon: "tag",
18
+ });
19
+ const {
20
+ Window: WorkflowActionWindow,
21
+ setWindowState: setWorkflowActionWindowState,
22
+ } = useWindow({
23
+ windowTitle: "Document Action",
24
+ windowIcon: "stamp",
25
+ });
26
+ const SystemOrganizations = useSelector(
27
+ (state: any) => state.commonStores.stores.SystemOrganizations.data
28
+ );
29
+ const SystemReports = useSelector(
30
+ (state: any) => state.commonStores.stores.SystemReports.data
31
+ );
32
+ const SystemDataSources = useSelector(
33
+ (state: any) => state.commonStores.stores.SystemDataSources.data
34
+ );
35
+ const { t } = useTranslation();
36
+ const [data, setData] = useState([]);
37
+ const apiActions = useApiActions({
38
+ commonStoreKey: "SystemWorkflows",
39
+ deleteById: "api/v1/dev/workflowdocument",
40
+ save: "api/v1/dev/workflowdocument",
41
+ findById: "api/v1/dev/workflowdocument",
42
+ setData: setData,
43
+ });
44
+
45
+ const formElements: Array<FormElementProps> = [
46
+ {
47
+ type: "field",
48
+ mode: "props",
49
+ props: {
50
+ fieldLabel: "id",
51
+ fieldName: "id",
52
+ fieldType: "number",
53
+ hidden: true,
54
+ gridProps: {
55
+ hidden: true,
56
+ },
57
+ },
58
+ },
59
+ {
60
+ type: "field",
61
+ mode: "props",
62
+ props: {
63
+ fieldLabel: "createTime",
64
+ fieldName: "createTime",
65
+ fieldType: "datetime",
66
+ hidden: true,
67
+ gridProps: {
68
+ hidden: true,
69
+ },
70
+ },
71
+ },
72
+ {
73
+ type: "field",
74
+ mode: "props",
75
+ props: {
76
+ fieldLabel: "createdBy",
77
+ fieldName: "createdBy",
78
+ fieldType: "text",
79
+ hidden: true,
80
+ gridProps: {
81
+ hidden: true,
82
+ },
83
+ },
84
+ },
85
+ {
86
+ type: "field",
87
+ mode: "props",
88
+ props: {
89
+ fieldLabel: "lastUpdateBy",
90
+ fieldName: "lastUpdateBy",
91
+ fieldType: "text",
92
+ hidden: true,
93
+ gridProps: {
94
+ hidden: true,
95
+ },
96
+ },
97
+ },
98
+ {
99
+ type: "field",
100
+ mode: "props",
101
+ props: {
102
+ fieldLabel: "lastUpdateTime",
103
+ fieldName: "lastUpdateTime",
104
+ fieldType: "datetime",
105
+ hidden: true,
106
+ gridProps: {
107
+ hidden: true,
108
+ },
109
+ },
110
+ },
111
+ {
112
+ type: "field",
113
+ mode: "props",
114
+ props: {
115
+ fieldLabel: "WORKFLOW_DOCUMENT_ORG_CODE",
116
+ fieldName: "orgCode",
117
+ required: false,
118
+ fieldType: "combobox",
119
+ options: SystemOrganizations,
120
+ comboboxValueDataType: "string",
121
+ optionDisplayField: "organizationCode",
122
+ optionValueField: "id",
123
+ },
124
+ },
125
+ {
126
+ type: "field",
127
+ mode: "props",
128
+ props: {
129
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_CODE",
130
+ fieldName: "documentCode",
131
+ required: true,
132
+ fieldType: "text",
133
+ },
134
+ },
135
+ {
136
+ type: "field",
137
+ mode: "props",
138
+ props: {
139
+ fieldLabel: "Workflow Document En Display Name",
140
+ fieldName: "documentEnName",
141
+ required: true,
142
+ fieldType: "text",
143
+ },
144
+ },
145
+ {
146
+ type: "field",
147
+ mode: "props",
148
+ props: {
149
+ fieldLabel: "Workflow Document Ar Display Name",
150
+ fieldName: "documentArName",
151
+ required: true,
152
+ fieldType: "text",
153
+ },
154
+ },
155
+ {
156
+ type: "field",
157
+ mode: "props",
158
+ props: {
159
+ fieldLabel:
160
+ "Report To be Attached For The Document ( will be passed a parameter called doc_id)",
161
+ fieldName: "documentReportId",
162
+ required: false,
163
+ fieldType: "combobox",
164
+ options: SystemReports,
165
+ optionDisplayField: "reportName",
166
+ optionValueField: "id",
167
+ },
168
+ },
169
+
170
+ {
171
+ type: "field",
172
+ mode: "props",
173
+ props: {
174
+ fieldLabel: "WORKFLOW_DOCUMENT_MAIL_APPROVAL_ALLOWED",
175
+ fieldName: "mailApprovalAllowed",
176
+ required: false,
177
+ fieldType: "checkbox",
178
+ },
179
+ },
180
+ {
181
+ type: "group",
182
+ props: {
183
+ icon: "bell",
184
+ style: { border: "1px dashed black", padding: 1, marginBottom: 1 },
185
+ label: "App Visual Notifications",
186
+ elements: [
187
+ {
188
+ type: "field",
189
+ mode: "props",
190
+ props: {
191
+ fieldLabel: "WORKFLOW_DOCUMENT_APP_NOTIFICATION_ICON",
192
+ fieldName: "appNotificationIcon",
193
+ required: false,
194
+ fieldType: "text",
195
+ },
196
+ },
197
+ {
198
+ type: "field",
199
+ mode: "props",
200
+ props: {
201
+ fieldLabel: "WORKFLOW_DOCUMENT_APP_NOTIFICATION_STYLE",
202
+ fieldName: "appNotificationStyle",
203
+ required: false,
204
+ fieldType: "text",
205
+ },
206
+ },
207
+ {
208
+ type: "field",
209
+ mode: "props",
210
+ props: {
211
+ fieldLabel: "WORKFLOW_DOCUMENT_APP_VIEW_ROUTE",
212
+ fieldName: "appViewRoute",
213
+ required: false,
214
+ fieldType: "text",
215
+ },
216
+ },
217
+ ],
218
+ },
219
+ },
220
+
221
+ {
222
+ type: "group",
223
+ props: {
224
+ icon: "database",
225
+ style: { border: "1px dashed black", padding: 1, marginBottom: 1 },
226
+ label: "Related Document Database",
227
+ elements: [
228
+ {
229
+ type: "field",
230
+ mode: "props",
231
+ props: {
232
+ fieldLabel: "WORKFLOW_DOCUMENT_USE_SYSTEM_CON",
233
+ fieldName: "useSystemCon",
234
+ required: false,
235
+ fieldType: "checkbox",
236
+ },
237
+ },
238
+ {
239
+ type: "field",
240
+ mode: "props",
241
+ props: {
242
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_CON_ID",
243
+ fieldName: "documentConId",
244
+ required: false,
245
+ fieldType: "combobox",
246
+ options: SystemDataSources,
247
+ optionDisplayField: "connectionName",
248
+ optionValueField: "id",
249
+ },
250
+ },
251
+ {
252
+ type: "field",
253
+ mode: "props",
254
+ props: {
255
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_DATABASE_NAME",
256
+ fieldName: "documentDatabaseName",
257
+ required: true,
258
+ fieldType: "text",
259
+ },
260
+ },
261
+ {
262
+ type: "field",
263
+ mode: "props",
264
+ props: {
265
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_DATABASE_TABLE",
266
+ fieldName: "documentDatabaseTable",
267
+ required: true,
268
+ fieldType: "text",
269
+ },
270
+ },
271
+ {
272
+ type: "field",
273
+ mode: "props",
274
+ props: {
275
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_ID_FIELD",
276
+ fieldName: "documentIdField",
277
+ required: true,
278
+ fieldType: "text",
279
+ },
280
+ },
281
+ {
282
+ type: "field",
283
+ mode: "props",
284
+ props: {
285
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_STATUS_FIELD",
286
+ fieldName: "documentStatusField",
287
+ required: true,
288
+ fieldType: "text",
289
+ },
290
+ },
291
+ {
292
+ type: "field",
293
+ mode: "props",
294
+ props: {
295
+ fieldLabel: "WORKFLOW_DOCUMENT_DOCUMENT_NUMBER_FIELD",
296
+ fieldName: "documentNumberField",
297
+ required: true,
298
+ fieldType: "text",
299
+ },
300
+ },
301
+ ],
302
+ },
303
+ },
304
+ ];
305
+
306
+ return (
307
+ <>
308
+ <WorkflowStatusWindow>
309
+ <WorkflowDocumentStatusGrid selectedRecord={selectedRecord} />
310
+ </WorkflowStatusWindow>
311
+ <WorkflowActionWindow>
312
+ <WorkflowDocumentActionGrid selectedRecord={selectedRecord} />
313
+ </WorkflowActionWindow>
314
+ <TemplateGrid
315
+ apiActions={apiActions}
316
+ data={data}
317
+ setData={setData}
318
+ rowActions={[
319
+ {
320
+ icon: "tag",
321
+ label: "Document States",
322
+ actionFn: async (data) => {
323
+ setSelectedRecord(data);
324
+ setWorkflowStatusWindowState(true);
325
+ },
326
+ },
327
+ {
328
+ icon: "stamp",
329
+ label: "Document Actions",
330
+ actionFn: async (data) => {
331
+ setSelectedRecord(data);
332
+ setWorkflowActionWindowState(true);
333
+ },
334
+ },
335
+ ]}
336
+ editMode={{
337
+ editMode: "modal",
338
+ specs: {
339
+ modalIcon: "chart-diagram",
340
+ modalTitle: t("WORKFLOW_DOCUMENT_SINGULAR"),
341
+ },
342
+ }}
343
+ formElements={formElements}
344
+ keyColumnName={"id"}
345
+ gridTitle={t("WORKFLOW_DOCUMENT_PLURAL")}
346
+ girdIcon="chart-diagram"
347
+ editAction={{ isEnabled: true, authority: "WORKFLOW_DOCUMENT_EDIT" }}
348
+ deleteAction={{
349
+ isEnabled: true,
350
+ authority: "WORKFLOW_DOCUMENT_DELETE",
351
+ }}
352
+ />
353
+ </>
354
+ );
355
+ };
356
+
357
+ export default WorkflowDocumentGrid;