@asaleh37/ui-base 25.6.1 → 25.6.2-0.1

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 (160) hide show
  1. package/.github/workflows/publish-npm.yml +31 -0
  2. package/README.md +51 -51
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1 -1
  6. package/dist/index.mjs.map +1 -1
  7. package/eslint.config.js +29 -29
  8. package/index.html +13 -13
  9. package/package.json +120 -120
  10. package/rollup.config-1748377725725.cjs +50 -50
  11. package/rollup.config.js +45 -45
  12. package/src/components/App.tsx +123 -123
  13. package/src/components/BaseApp.tsx +53 -53
  14. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  15. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  16. package/src/components/administration/admin/OrganizationGrid.tsx +82 -82
  17. package/src/components/administration/admin/OrganizationMemberGrid.tsx +176 -176
  18. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  19. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  20. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  21. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  22. package/src/components/administration/admin/PersonGrid.tsx +231 -231
  23. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  24. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +126 -126
  25. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  26. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  27. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +67 -67
  28. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  29. package/src/components/administration/dev/AttachmentConfigGrid.tsx +223 -223
  30. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  31. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  32. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  33. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  34. package/src/components/administration/dev/DataQueryGrid.tsx +206 -206
  35. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  36. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  37. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +150 -150
  38. package/src/components/administration/dev/EntityParameterGrid.tsx +279 -279
  39. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  40. package/src/components/administration/dev/MailAttachmentGrid.tsx +155 -155
  41. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  42. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  43. package/src/components/administration/dev/MailRecipientGrid.tsx +169 -169
  44. package/src/components/administration/dev/MailSenderConfigGrid.tsx +478 -478
  45. package/src/components/administration/dev/MailTemplateGrid.tsx +384 -384
  46. package/src/components/administration/dev/NotificationGrid.tsx +432 -432
  47. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  48. package/src/components/administration/dev/ReportGrid.tsx +506 -506
  49. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  50. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  51. package/src/components/administration/dev/WidgetGrid.tsx +431 -431
  52. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  53. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  54. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  55. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +377 -377
  56. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  57. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  58. package/src/components/common/ChangeOrgForm.tsx +81 -81
  59. package/src/components/common/Home.tsx +43 -43
  60. package/src/components/common/LanguageSwitcher.tsx +25 -25
  61. package/src/components/common/LayoutHandlers.tsx +11 -11
  62. package/src/components/common/LoadingMask.tsx +24 -24
  63. package/src/components/common/Login.tsx +214 -214
  64. package/src/components/common/MyNotificationsPanel.tsx +103 -103
  65. package/src/components/common/NotificationItem.tsx +138 -138
  66. package/src/components/index.ts +9 -9
  67. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +324 -324
  68. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +248 -248
  69. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  70. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +231 -231
  71. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +106 -106
  72. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +64 -64
  73. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +93 -93
  74. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +65 -65
  75. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +64 -64
  76. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  77. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +55 -55
  78. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +17 -17
  79. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +387 -387
  80. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +189 -189
  81. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +998 -998
  82. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  83. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  84. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +227 -227
  85. package/src/components/templates/TransferList.tsx +257 -257
  86. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  87. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  88. package/src/components/templates/attachment/AttachmentImageViewer.tsx +45 -45
  89. package/src/components/templates/attachment/AttachmentPanel.tsx +271 -271
  90. package/src/components/templates/index.ts +33 -33
  91. package/src/components/templates/report/ExcelReportViewer.tsx +71 -71
  92. package/src/components/templates/report/ReportViewer.tsx +382 -382
  93. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  94. package/src/components/templates/visuals/DashboardViewer.tsx +148 -148
  95. package/src/components/templates/visuals/WidgetViewer.tsx +198 -198
  96. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  97. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  98. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  99. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  100. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  101. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  102. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +606 -606
  103. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +140 -140
  104. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  105. package/src/hooks/UseConfirmationWindow.tsx +54 -54
  106. package/src/hooks/UseMobile.tsx +13 -13
  107. package/src/hooks/UseSession.tsx +40 -40
  108. package/src/hooks/UseWindow.tsx +107 -107
  109. package/src/hooks/index.ts +7 -7
  110. package/src/hooks/useApiActions.ts +124 -124
  111. package/src/hooks/useAxios.tsx +316 -316
  112. package/src/hooks/useInterval.tsx +23 -23
  113. package/src/hooks/useLoadingMask.tsx +16 -16
  114. package/src/hooks/useLookupGridColumn.tsx +35 -35
  115. package/src/index.ts +4 -4
  116. package/src/layout/DrawerHeader.tsx +10 -10
  117. package/src/layout/Layout.tsx +90 -90
  118. package/src/layout/MainContent.tsx +114 -114
  119. package/src/layout/MobileDrawer.tsx +103 -103
  120. package/src/layout/NavigationTree.tsx +295 -295
  121. package/src/layout/NotificationButton.tsx +207 -207
  122. package/src/layout/RouteWrapper.tsx +36 -36
  123. package/src/layout/SideBar.tsx +85 -85
  124. package/src/layout/TopBar.tsx +215 -215
  125. package/src/locales/arabic/adminLocalsAr.json +93 -93
  126. package/src/locales/arabic/common.json +44 -44
  127. package/src/locales/arabic/devLocalsAr.json +317 -317
  128. package/src/locales/arabic/index.ts +9 -9
  129. package/src/locales/english/adminLocalsEn.json +96 -96
  130. package/src/locales/english/common.json +43 -43
  131. package/src/locales/english/devLocalsEn.json +318 -318
  132. package/src/locales/english/index.ts +9 -9
  133. package/src/locales/i18n.ts +8 -8
  134. package/src/locales/index.ts +9 -9
  135. package/src/main.tsx +23 -23
  136. package/src/navigationItems/Administration/adminNavigationItems.tsx +222 -222
  137. package/src/navigationItems/Administration/index.tsx +16 -16
  138. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  139. package/src/navigationItems/common/index.tsx +7 -7
  140. package/src/navigationItems/index.tsx +34 -34
  141. package/src/redux/features/administration/AdministrationStoresMetaData.ts +126 -126
  142. package/src/redux/features/common/AppInfoSlice.ts +63 -63
  143. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  144. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  145. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  146. package/src/redux/features/common/SideBarSlice.ts +27 -27
  147. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  148. package/src/redux/store.ts +29 -29
  149. package/src/routes/administration/adminRoutes.tsx +99 -99
  150. package/src/routes/administration/devRoutes.tsx +129 -129
  151. package/src/routes/administration/index.ts +8 -8
  152. package/src/routes/index.ts +11 -11
  153. package/src/routes/types/index.ts +5 -5
  154. package/src/styles/index.css +19 -19
  155. package/src/types/index.ts +8 -8
  156. package/src/util/AppUtils.ts +53 -53
  157. package/src/util/constants.ts +6 -6
  158. package/src/util/index.ts +2 -2
  159. package/tsconfig.json +135 -135
  160. package/vite.config.ts +36 -36
@@ -1,377 +1,377 @@
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
+ 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;