@asaleh37/ui-base 26.2.131 → 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 +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +2 -2
  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 -155
  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,357 +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
- 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;
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;