@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,173 +1,173 @@
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 DashboardWidgetGrid from "./DashboardWidgetGrid";
7
- import { useNavigate } from "react-router-dom";
8
-
9
- const DashboardGrid: React.FC = () => {
10
- const { t } = useTranslation();
11
- const [selectedRecord, setSelectedRecord] = useState<any>(null);
12
- const { Window: WidgetsWindows, setWindowState: setWidgetsWindowState } =
13
- useWindow({
14
- windowTitle: "Dashboard Widgets",
15
- windowIcon: "chart-pie",
16
- });
17
- const [data, setData] = useState([]);
18
- const navigate = useNavigate();
19
- const apiActions = useApiActions({
20
- findAll: "api/v1/dev/dashboard/all",
21
- deleteById: "api/v1/dev/dashboard",
22
- save: "api/v1/dev/dashboard",
23
- findById: "api/v1/dev/dashboard",
24
- setData: setData,
25
- });
26
-
27
- const formElements: Array<FormElementProps> = [
28
- {
29
- type: "field",
30
- mode: "props",
31
- props: {
32
- fieldLabel: "id",
33
- fieldName: "id",
34
- fieldType: "number",
35
- hidden: true,
36
- gridProps: {
37
- hidden: true,
38
- },
39
- },
40
- },
41
- {
42
- type: "field",
43
- mode: "props",
44
- props: {
45
- fieldLabel: "createTime",
46
- fieldName: "createTime",
47
- fieldType: "datetime",
48
- hidden: true,
49
- gridProps: {
50
- hidden: true,
51
- },
52
- },
53
- },
54
- {
55
- type: "field",
56
- mode: "props",
57
- props: {
58
- fieldLabel: "createdBy",
59
- fieldName: "createdBy",
60
- fieldType: "text",
61
- hidden: true,
62
- gridProps: {
63
- hidden: true,
64
- },
65
- },
66
- },
67
- {
68
- type: "field",
69
- mode: "props",
70
- props: {
71
- fieldLabel: "lastUpdateBy",
72
- fieldName: "lastUpdateBy",
73
- fieldType: "text",
74
- hidden: true,
75
- gridProps: {
76
- hidden: true,
77
- },
78
- },
79
- },
80
- {
81
- type: "field",
82
- mode: "props",
83
- props: {
84
- fieldLabel: "lastUpdateTime",
85
- fieldName: "lastUpdateTime",
86
- fieldType: "datetime",
87
- hidden: true,
88
- gridProps: {
89
- hidden: true,
90
- },
91
- },
92
- },
93
- {
94
- type: "field",
95
- mode: "props",
96
- props: {
97
- fieldLabel: "DASHBOARD_DASHBOARD_CODE",
98
- fieldName: "dashboardCode",
99
- required: true,
100
- fieldType: "text",
101
- },
102
- },
103
- {
104
- type: "field",
105
- mode: "props",
106
- props: {
107
- fieldLabel: "DASHBOARD_DASHBOARD_NAME",
108
- fieldName: "dashboardName",
109
- required: true,
110
- fieldType: "text",
111
- },
112
- },
113
- {
114
- type: "field",
115
- mode: "props",
116
- props: {
117
- fieldLabel: "DASHBOARD_DASHBOARD_TITLE",
118
- fieldName: "dashboardTitle",
119
- required: true,
120
- fieldType: "text",
121
- },
122
- },
123
- {
124
- type: "field",
125
- mode: "props",
126
- props: {
127
- fieldLabel: "DASHBOARD_ENABLED",
128
- fieldName: "enabled",
129
- required: false,
130
- fieldType: "checkbox",
131
- },
132
- },
133
- ];
134
-
135
- return (
136
- <>
137
- <WidgetsWindows>
138
- <DashboardWidgetGrid selectedRecord={selectedRecord} />
139
- </WidgetsWindows>
140
- <TemplateGrid
141
- apiActions={apiActions}
142
- data={data}
143
- setData={setData}
144
- editMode={{ editMode: "row" }}
145
- formElements={formElements}
146
- keyColumnName={"id"}
147
- rowActions={[
148
- {
149
- label: "Widgets",
150
- icon: "chart-pie",
151
- actionFn: async (data) => {
152
- setSelectedRecord(data);
153
- setWidgetsWindowState(true);
154
- },
155
- },
156
- {
157
- label: "View",
158
- icon: "eye",
159
- actionFn: async (data) => {
160
- navigate("/dashboard/" + data.dashboardCode);
161
- },
162
- },
163
- ]}
164
- gridTitle={t("DASHBOARD_PLURAL")}
165
- girdIcon="square-poll-vertical"
166
- editAction={{ isEnabled: true, authority: "DASHBOARD_EDIT" }}
167
- deleteAction={{ isEnabled: true, authority: "DASHBOARD_DELETE" }}
168
- />
169
- </>
170
- );
171
- };
172
-
173
- export default DashboardGrid;
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 DashboardWidgetGrid from "./DashboardWidgetGrid";
7
+ import { useNavigate } from "react-router-dom";
8
+
9
+ const DashboardGrid: React.FC = () => {
10
+ const { t } = useTranslation();
11
+ const [selectedRecord, setSelectedRecord] = useState<any>(null);
12
+ const { Window: WidgetsWindows, setWindowState: setWidgetsWindowState } =
13
+ useWindow({
14
+ windowTitle: "Dashboard Widgets",
15
+ windowIcon: "chart-pie",
16
+ });
17
+ const [data, setData] = useState([]);
18
+ const navigate = useNavigate();
19
+ const apiActions = useApiActions({
20
+ findAll: "api/v1/dev/dashboard/all",
21
+ deleteById: "api/v1/dev/dashboard",
22
+ save: "api/v1/dev/dashboard",
23
+ findById: "api/v1/dev/dashboard",
24
+ setData: setData,
25
+ });
26
+
27
+ const formElements: Array<FormElementProps> = [
28
+ {
29
+ type: "field",
30
+ mode: "props",
31
+ props: {
32
+ fieldLabel: "id",
33
+ fieldName: "id",
34
+ fieldType: "number",
35
+ hidden: true,
36
+ gridProps: {
37
+ hidden: true,
38
+ },
39
+ },
40
+ },
41
+ {
42
+ type: "field",
43
+ mode: "props",
44
+ props: {
45
+ fieldLabel: "createTime",
46
+ fieldName: "createTime",
47
+ fieldType: "datetime",
48
+ hidden: true,
49
+ gridProps: {
50
+ hidden: true,
51
+ },
52
+ },
53
+ },
54
+ {
55
+ type: "field",
56
+ mode: "props",
57
+ props: {
58
+ fieldLabel: "createdBy",
59
+ fieldName: "createdBy",
60
+ fieldType: "text",
61
+ hidden: true,
62
+ gridProps: {
63
+ hidden: true,
64
+ },
65
+ },
66
+ },
67
+ {
68
+ type: "field",
69
+ mode: "props",
70
+ props: {
71
+ fieldLabel: "lastUpdateBy",
72
+ fieldName: "lastUpdateBy",
73
+ fieldType: "text",
74
+ hidden: true,
75
+ gridProps: {
76
+ hidden: true,
77
+ },
78
+ },
79
+ },
80
+ {
81
+ type: "field",
82
+ mode: "props",
83
+ props: {
84
+ fieldLabel: "lastUpdateTime",
85
+ fieldName: "lastUpdateTime",
86
+ fieldType: "datetime",
87
+ hidden: true,
88
+ gridProps: {
89
+ hidden: true,
90
+ },
91
+ },
92
+ },
93
+ {
94
+ type: "field",
95
+ mode: "props",
96
+ props: {
97
+ fieldLabel: "DASHBOARD_DASHBOARD_CODE",
98
+ fieldName: "dashboardCode",
99
+ required: true,
100
+ fieldType: "text",
101
+ },
102
+ },
103
+ {
104
+ type: "field",
105
+ mode: "props",
106
+ props: {
107
+ fieldLabel: "DASHBOARD_DASHBOARD_NAME",
108
+ fieldName: "dashboardName",
109
+ required: true,
110
+ fieldType: "text",
111
+ },
112
+ },
113
+ {
114
+ type: "field",
115
+ mode: "props",
116
+ props: {
117
+ fieldLabel: "DASHBOARD_DASHBOARD_TITLE",
118
+ fieldName: "dashboardTitle",
119
+ required: true,
120
+ fieldType: "text",
121
+ },
122
+ },
123
+ {
124
+ type: "field",
125
+ mode: "props",
126
+ props: {
127
+ fieldLabel: "DASHBOARD_ENABLED",
128
+ fieldName: "enabled",
129
+ required: false,
130
+ fieldType: "checkbox",
131
+ },
132
+ },
133
+ ];
134
+
135
+ return (
136
+ <>
137
+ <WidgetsWindows>
138
+ <DashboardWidgetGrid selectedRecord={selectedRecord} />
139
+ </WidgetsWindows>
140
+ <TemplateGrid
141
+ apiActions={apiActions}
142
+ data={data}
143
+ setData={setData}
144
+ editMode={{ editMode: "row" }}
145
+ formElements={formElements}
146
+ keyColumnName={"id"}
147
+ rowActions={[
148
+ {
149
+ label: "Widgets",
150
+ icon: "chart-pie",
151
+ actionFn: async (data) => {
152
+ setSelectedRecord(data);
153
+ setWidgetsWindowState(true);
154
+ },
155
+ },
156
+ {
157
+ label: "View",
158
+ icon: "eye",
159
+ actionFn: async (data) => {
160
+ navigate("/dashboard/" + data.dashboardCode);
161
+ },
162
+ },
163
+ ]}
164
+ gridTitle={t("DASHBOARD_PLURAL")}
165
+ girdIcon="square-poll-vertical"
166
+ editAction={{ isEnabled: true, authority: "DASHBOARD_EDIT" }}
167
+ deleteAction={{ isEnabled: true, authority: "DASHBOARD_DELETE" }}
168
+ />
169
+ </>
170
+ );
171
+ };
172
+
173
+ export default DashboardGrid;
@@ -1,164 +1,164 @@
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 } from "../../../hooks";
6
- import { useSelector } from "react-redux";
7
-
8
- type DashboardWidgetGridProps = {
9
- selectedRecord: any;
10
- };
11
-
12
- const DashboardWidgetGrid: React.FC<DashboardWidgetGridProps> = (props) => {
13
- const { t } = useTranslation();
14
- const [data, setData] = useState([]);
15
- const SystemWidgets = useSelector(
16
- (state: any) => state.commonStores.stores.SystemWidgets.data
17
- );
18
- const apiActions = useApiActions({
19
- findAll: "api/v1/dev/dashboardwidget/all",
20
- deleteById: "api/v1/dev/dashboardwidget",
21
- save: "api/v1/dev/dashboardwidget",
22
- findById: "api/v1/dev/dashboardwidget",
23
- setData: setData,
24
- });
25
-
26
- const formElements: Array<FormElementProps> = [
27
- {
28
- type: "field",
29
- mode: "props",
30
- props: {
31
- fieldLabel: "id",
32
- fieldName: "id",
33
- fieldType: "number",
34
- hidden: true,
35
- gridProps: {
36
- hidden: true,
37
- },
38
- },
39
- },
40
- {
41
- type: "field",
42
- mode: "props",
43
- props: {
44
- fieldLabel: "createTime",
45
- fieldName: "createTime",
46
- fieldType: "datetime",
47
- hidden: true,
48
- gridProps: {
49
- hidden: true,
50
- },
51
- },
52
- },
53
- {
54
- type: "field",
55
- mode: "props",
56
- props: {
57
- fieldLabel: "createdBy",
58
- fieldName: "createdBy",
59
- fieldType: "text",
60
- hidden: true,
61
- gridProps: {
62
- hidden: true,
63
- },
64
- },
65
- },
66
- {
67
- type: "field",
68
- mode: "props",
69
- props: {
70
- fieldLabel: "lastUpdateBy",
71
- fieldName: "lastUpdateBy",
72
- fieldType: "text",
73
- hidden: true,
74
- gridProps: {
75
- hidden: true,
76
- },
77
- },
78
- },
79
- {
80
- type: "field",
81
- mode: "props",
82
- props: {
83
- fieldLabel: "lastUpdateTime",
84
- fieldName: "lastUpdateTime",
85
- fieldType: "datetime",
86
- hidden: true,
87
- gridProps: {
88
- hidden: true,
89
- },
90
- },
91
- },
92
- {
93
- type: "field",
94
- mode: "props",
95
- props: {
96
- fieldLabel: "DASHBOARD_WIDGET_DASHBOARD_ID",
97
- fieldName: "dashboardId",
98
- required: false,
99
- hidden: true,
100
- gridProps: { hidden: true },
101
- fieldType: "number",
102
- },
103
- },
104
- {
105
- type: "field",
106
- mode: "props",
107
- props: {
108
- fieldLabel: "DASHBOARD_WIDGET_WIDGET_ID",
109
- fieldName: "widgetId",
110
- required: true,
111
- fieldType: "combobox",
112
- options: SystemWidgets,
113
- optionValueField: "id",
114
- optionDisplayField: "widgetName",
115
- },
116
- },
117
- {
118
- type: "field",
119
- mode: "props",
120
- props: {
121
- fieldLabel: "DASHBOARD_WIDGET_WIDGET_ORDER",
122
- fieldName: "widgetOrder",
123
- required: false,
124
- fieldType: "number",
125
- },
126
- },
127
- {
128
- type: "field",
129
- mode: "props",
130
- props: {
131
- fieldLabel: "DASHBOARD_WIDGET_ENABLED",
132
- fieldName: "enabled",
133
- required: false,
134
- fieldType: "checkbox",
135
- },
136
- },
137
- ];
138
-
139
- return (
140
- <TemplateGrid
141
- apiActions={apiActions}
142
- data={data}
143
- setData={setData}
144
- editMode={{ editMode: "row" }}
145
- hideInfoBar={true}
146
- formElements={formElements}
147
- gridLoadParametersValues={{ dashboardId: props.selectedRecord.id }}
148
- keyColumnName={"id"}
149
- gridTitle={t("DASHBOARD_WIDGET_PLURAL")}
150
- girdIcon="table-cells"
151
- editAction={{
152
- isEnabled: true,
153
- authority: "DASHBOARD_WIDGET_EDIT",
154
- preActionValidation: async (data) => {
155
- data.dashboardId = props.selectedRecord.id;
156
- return true;
157
- },
158
- }}
159
- deleteAction={{ isEnabled: true, authority: "DASHBOARD_WIDGET_DELETE" }}
160
- />
161
- );
162
- };
163
-
164
- export default DashboardWidgetGrid;
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 } from "../../../hooks";
6
+ import { useSelector } from "react-redux";
7
+
8
+ type DashboardWidgetGridProps = {
9
+ selectedRecord: any;
10
+ };
11
+
12
+ const DashboardWidgetGrid: React.FC<DashboardWidgetGridProps> = (props) => {
13
+ const { t } = useTranslation();
14
+ const [data, setData] = useState([]);
15
+ const SystemWidgets = useSelector(
16
+ (state: any) => state.commonStores.stores.SystemWidgets.data
17
+ );
18
+ const apiActions = useApiActions({
19
+ findAll: "api/v1/dev/dashboardwidget/all",
20
+ deleteById: "api/v1/dev/dashboardwidget",
21
+ save: "api/v1/dev/dashboardwidget",
22
+ findById: "api/v1/dev/dashboardwidget",
23
+ setData: setData,
24
+ });
25
+
26
+ const formElements: Array<FormElementProps> = [
27
+ {
28
+ type: "field",
29
+ mode: "props",
30
+ props: {
31
+ fieldLabel: "id",
32
+ fieldName: "id",
33
+ fieldType: "number",
34
+ hidden: true,
35
+ gridProps: {
36
+ hidden: true,
37
+ },
38
+ },
39
+ },
40
+ {
41
+ type: "field",
42
+ mode: "props",
43
+ props: {
44
+ fieldLabel: "createTime",
45
+ fieldName: "createTime",
46
+ fieldType: "datetime",
47
+ hidden: true,
48
+ gridProps: {
49
+ hidden: true,
50
+ },
51
+ },
52
+ },
53
+ {
54
+ type: "field",
55
+ mode: "props",
56
+ props: {
57
+ fieldLabel: "createdBy",
58
+ fieldName: "createdBy",
59
+ fieldType: "text",
60
+ hidden: true,
61
+ gridProps: {
62
+ hidden: true,
63
+ },
64
+ },
65
+ },
66
+ {
67
+ type: "field",
68
+ mode: "props",
69
+ props: {
70
+ fieldLabel: "lastUpdateBy",
71
+ fieldName: "lastUpdateBy",
72
+ fieldType: "text",
73
+ hidden: true,
74
+ gridProps: {
75
+ hidden: true,
76
+ },
77
+ },
78
+ },
79
+ {
80
+ type: "field",
81
+ mode: "props",
82
+ props: {
83
+ fieldLabel: "lastUpdateTime",
84
+ fieldName: "lastUpdateTime",
85
+ fieldType: "datetime",
86
+ hidden: true,
87
+ gridProps: {
88
+ hidden: true,
89
+ },
90
+ },
91
+ },
92
+ {
93
+ type: "field",
94
+ mode: "props",
95
+ props: {
96
+ fieldLabel: "DASHBOARD_WIDGET_DASHBOARD_ID",
97
+ fieldName: "dashboardId",
98
+ required: false,
99
+ hidden: true,
100
+ gridProps: { hidden: true },
101
+ fieldType: "number",
102
+ },
103
+ },
104
+ {
105
+ type: "field",
106
+ mode: "props",
107
+ props: {
108
+ fieldLabel: "DASHBOARD_WIDGET_WIDGET_ID",
109
+ fieldName: "widgetId",
110
+ required: true,
111
+ fieldType: "combobox",
112
+ options: SystemWidgets,
113
+ optionValueField: "id",
114
+ optionDisplayField: "widgetName",
115
+ },
116
+ },
117
+ {
118
+ type: "field",
119
+ mode: "props",
120
+ props: {
121
+ fieldLabel: "DASHBOARD_WIDGET_WIDGET_ORDER",
122
+ fieldName: "widgetOrder",
123
+ required: false,
124
+ fieldType: "number",
125
+ },
126
+ },
127
+ {
128
+ type: "field",
129
+ mode: "props",
130
+ props: {
131
+ fieldLabel: "DASHBOARD_WIDGET_ENABLED",
132
+ fieldName: "enabled",
133
+ required: false,
134
+ fieldType: "checkbox",
135
+ },
136
+ },
137
+ ];
138
+
139
+ return (
140
+ <TemplateGrid
141
+ apiActions={apiActions}
142
+ data={data}
143
+ setData={setData}
144
+ editMode={{ editMode: "row" }}
145
+ hideInfoBar={true}
146
+ formElements={formElements}
147
+ gridLoadParametersValues={{ dashboardId: props.selectedRecord.id }}
148
+ keyColumnName={"id"}
149
+ gridTitle={t("DASHBOARD_WIDGET_PLURAL")}
150
+ girdIcon="table-cells"
151
+ editAction={{
152
+ isEnabled: true,
153
+ authority: "DASHBOARD_WIDGET_EDIT",
154
+ preActionValidation: async (data) => {
155
+ data.dashboardId = props.selectedRecord.id;
156
+ return true;
157
+ },
158
+ }}
159
+ deleteAction={{ isEnabled: true, authority: "DASHBOARD_WIDGET_DELETE" }}
160
+ />
161
+ );
162
+ };
163
+
164
+ export default DashboardWidgetGrid;