@asaleh37/ui-base 25.6.19-6 → 25.6.21

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 (162) hide show
  1. package/.github/workflows/publish-npm.yml +49 -0
  2. package/README.md +51 -51
  3. package/dist/index.d.ts +5 -0
  4. package/dist/index.js +6 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +6 -6
  7. package/dist/index.mjs.map +1 -1
  8. package/eslint.config.js +29 -29
  9. package/index.html +13 -13
  10. package/package.json +120 -120
  11. package/public/no_user.png +0 -0
  12. package/rollup.config-1748377725725.cjs +50 -50
  13. package/rollup.config.js +45 -45
  14. package/src/components/App.tsx +123 -123
  15. package/src/components/BaseApp.tsx +53 -53
  16. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  17. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  18. package/src/components/administration/admin/OrganizationGrid.tsx +118 -82
  19. package/src/components/administration/admin/OrganizationMemberGrid.tsx +176 -176
  20. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  21. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  22. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  23. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  24. package/src/components/administration/admin/PersonGrid.tsx +334 -231
  25. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  26. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -126
  27. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  28. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  29. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -67
  30. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  31. package/src/components/administration/dev/AttachmentConfigGrid.tsx +223 -223
  32. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  33. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  34. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  35. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  36. package/src/components/administration/dev/DataQueryGrid.tsx +206 -206
  37. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  38. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  39. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +150 -150
  40. package/src/components/administration/dev/EntityParameterGrid.tsx +279 -279
  41. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  42. package/src/components/administration/dev/MailAttachmentGrid.tsx +155 -155
  43. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  44. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  45. package/src/components/administration/dev/MailRecipientGrid.tsx +169 -169
  46. package/src/components/administration/dev/MailSenderConfigGrid.tsx +478 -478
  47. package/src/components/administration/dev/MailTemplateGrid.tsx +384 -384
  48. package/src/components/administration/dev/NotificationGrid.tsx +432 -432
  49. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  50. package/src/components/administration/dev/ReportGrid.tsx +506 -506
  51. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  52. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  53. package/src/components/administration/dev/WidgetGrid.tsx +431 -431
  54. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  55. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  56. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  57. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +377 -377
  58. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  59. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  60. package/src/components/common/ChangeOrgForm.tsx +81 -81
  61. package/src/components/common/Home.tsx +43 -43
  62. package/src/components/common/LanguageSwitcher.tsx +25 -25
  63. package/src/components/common/LayoutHandlers.tsx +11 -11
  64. package/src/components/common/LoadingMask.tsx +24 -24
  65. package/src/components/common/Login.tsx +214 -214
  66. package/src/components/common/MyNotificationsPanel.tsx +109 -103
  67. package/src/components/common/NotificationItem.tsx +138 -138
  68. package/src/components/index.ts +9 -9
  69. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +324 -324
  70. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +248 -248
  71. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  72. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +231 -231
  73. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +106 -106
  74. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +64 -64
  75. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +93 -93
  76. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +65 -65
  77. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +64 -64
  78. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  79. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +55 -55
  80. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +17 -17
  81. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +387 -387
  82. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +189 -189
  83. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +998 -998
  84. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  85. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  86. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +227 -227
  87. package/src/components/templates/TransferList.tsx +257 -257
  88. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  89. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  90. package/src/components/templates/attachment/AttachmentImageViewer.tsx +83 -45
  91. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -271
  92. package/src/components/templates/index.ts +33 -33
  93. package/src/components/templates/report/ExcelReportViewer.tsx +71 -71
  94. package/src/components/templates/report/ReportViewer.tsx +382 -382
  95. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  96. package/src/components/templates/visuals/DashboardViewer.tsx +148 -148
  97. package/src/components/templates/visuals/WidgetViewer.tsx +198 -198
  98. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  99. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  100. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  101. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  102. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  103. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  104. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +606 -606
  105. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +140 -140
  106. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  107. package/src/hooks/UseConfirmationWindow.tsx +54 -54
  108. package/src/hooks/UseMobile.tsx +13 -13
  109. package/src/hooks/UseSession.tsx +59 -40
  110. package/src/hooks/UseWindow.tsx +107 -107
  111. package/src/hooks/index.ts +7 -7
  112. package/src/hooks/useApiActions.ts +124 -124
  113. package/src/hooks/useAxios.tsx +316 -316
  114. package/src/hooks/useInterval.tsx +23 -23
  115. package/src/hooks/useLoadingMask.tsx +16 -16
  116. package/src/hooks/useLookupGridColumn.tsx +35 -35
  117. package/src/index.ts +4 -4
  118. package/src/layout/DrawerHeader.tsx +10 -10
  119. package/src/layout/Layout.tsx +90 -90
  120. package/src/layout/MainContent.tsx +117 -114
  121. package/src/layout/MobileDrawer.tsx +103 -103
  122. package/src/layout/NavigationTree.tsx +298 -293
  123. package/src/layout/NotificationButton.tsx +207 -207
  124. package/src/layout/RouteWrapper.tsx +63 -36
  125. package/src/layout/SideBar.tsx +85 -85
  126. package/src/layout/TopBar.tsx +229 -215
  127. package/src/locales/arabic/adminLocalsAr.json +93 -93
  128. package/src/locales/arabic/common.json +44 -44
  129. package/src/locales/arabic/devLocalsAr.json +317 -317
  130. package/src/locales/arabic/index.ts +9 -9
  131. package/src/locales/english/adminLocalsEn.json +96 -96
  132. package/src/locales/english/common.json +43 -43
  133. package/src/locales/english/devLocalsEn.json +318 -318
  134. package/src/locales/english/index.ts +9 -9
  135. package/src/locales/i18n.ts +8 -8
  136. package/src/locales/index.ts +9 -9
  137. package/src/main.tsx +23 -23
  138. package/src/navigationItems/Administration/adminNavigationItems.tsx +223 -222
  139. package/src/navigationItems/Administration/index.tsx +16 -16
  140. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  141. package/src/navigationItems/common/index.tsx +7 -7
  142. package/src/navigationItems/index.tsx +35 -34
  143. package/src/redux/features/administration/AdministrationStoresMetaData.ts +148 -126
  144. package/src/redux/features/common/AppInfoSlice.ts +65 -63
  145. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  146. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  147. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  148. package/src/redux/features/common/SideBarSlice.ts +27 -27
  149. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  150. package/src/redux/store.ts +29 -29
  151. package/src/routes/administration/adminRoutes.tsx +99 -99
  152. package/src/routes/administration/devRoutes.tsx +129 -129
  153. package/src/routes/administration/index.ts +8 -8
  154. package/src/routes/index.ts +11 -11
  155. package/src/routes/types/index.ts +6 -5
  156. package/src/styles/index.css +19 -19
  157. package/src/types/index.ts +8 -8
  158. package/src/util/AppUtils.ts +53 -53
  159. package/src/util/constants.ts +6 -6
  160. package/src/util/index.ts +2 -2
  161. package/tsconfig.json +135 -135
  162. package/vite.config.ts +24 -36
@@ -1,191 +1,191 @@
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 DataQueryParameterGridProps = {
9
- selectedRecord: any;
10
- };
11
-
12
- const DataQueryParameterGrid: React.FC<DataQueryParameterGridProps> = (
13
- props
14
- ) => {
15
- const SystemEntityParameters = useSelector(
16
- (state: any) => state.commonStores.stores.SystemEntityParameters.data
17
- );
18
- const { t } = useTranslation();
19
- const [data, setData] = useState([]);
20
- const apiActions = useApiActions({
21
- findAll: "api/v1/dev/dataqueryparameter/all",
22
- deleteById: "api/v1/dev/dataqueryparameter",
23
- save: "api/v1/dev/dataqueryparameter",
24
- findById: "api/v1/dev/dataqueryparameter",
25
- setData: setData,
26
- });
27
-
28
- const formElements: Array<FormElementProps> = [
29
- {
30
- type: "field",
31
- mode: "props",
32
- props: {
33
- fieldLabel: "id",
34
- fieldName: "id",
35
- fieldType: "number",
36
- hidden: true,
37
- gridProps: {
38
- hidden: true,
39
- },
40
- },
41
- },
42
- {
43
- type: "field",
44
- mode: "props",
45
- props: {
46
- fieldLabel: "createTime",
47
- fieldName: "createTime",
48
- fieldType: "datetime",
49
- hidden: true,
50
- gridProps: {
51
- hidden: true,
52
- },
53
- },
54
- },
55
- {
56
- type: "field",
57
- mode: "props",
58
- props: {
59
- fieldLabel: "createdBy",
60
- fieldName: "createdBy",
61
- fieldType: "text",
62
- hidden: true,
63
- gridProps: {
64
- hidden: true,
65
- },
66
- },
67
- },
68
- {
69
- type: "field",
70
- mode: "props",
71
- props: {
72
- fieldLabel: "lastUpdateBy",
73
- fieldName: "lastUpdateBy",
74
- fieldType: "text",
75
- hidden: true,
76
- gridProps: {
77
- hidden: true,
78
- },
79
- },
80
- },
81
- {
82
- type: "field",
83
- mode: "props",
84
- props: {
85
- fieldLabel: "lastUpdateTime",
86
- fieldName: "lastUpdateTime",
87
- fieldType: "datetime",
88
- hidden: true,
89
- gridProps: {
90
- hidden: true,
91
- },
92
- },
93
- },
94
- {
95
- type: "field",
96
- mode: "props",
97
- props: {
98
- fieldLabel: "DATA_QUERY_PARAMETER_DATA_QUERY_ID",
99
- fieldName: "dataQueryId",
100
- required: false,
101
- fieldType: "number",
102
- hidden: true,
103
- gridProps: {
104
- hidden: true,
105
- },
106
- },
107
- },
108
- {
109
- type: "field",
110
- mode: "props",
111
- props: {
112
- fieldLabel: "DATA_QUERY_PARAMETER_ENTITY_PARAMETER_ID",
113
- fieldName: "entityParameterId",
114
- required: true,
115
- fieldType: "combobox",
116
- options: SystemEntityParameters,
117
- optionValueField: "id",
118
- optionDisplayField: "parameterCode",
119
- },
120
- },
121
- {
122
- type: "field",
123
- mode: "props",
124
- props: {
125
- fieldLabel: "DATA_QUERY_PARAMETER_DEFAULT_VALUE",
126
- fieldName: "defaultValue",
127
- required: false,
128
- fieldType: "text",
129
- },
130
- },
131
- {
132
- type: "field",
133
- mode: "props",
134
- props: {
135
- fieldLabel: "DATA_QUERY_PARAMETER_ENABLED",
136
- fieldName: "enabled",
137
- required: false,
138
- fieldType: "checkbox",
139
- },
140
- },
141
- {
142
- type: "field",
143
- mode: "props",
144
- props: {
145
- fieldLabel: "DATA_QUERY_PARAMETER_HIDDEN",
146
- fieldName: "hidden",
147
- required: false,
148
- fieldType: "checkbox",
149
- },
150
- },
151
- {
152
- type: "field",
153
- mode: "props",
154
- props: {
155
- fieldLabel: "DATA_QUERY_PARAMETER_MANDATORY",
156
- fieldName: "mandatory",
157
- required: false,
158
- fieldType: "checkbox",
159
- },
160
- },
161
- ];
162
-
163
- return (
164
- <TemplateGrid
165
- apiActions={apiActions}
166
- data={data}
167
- setData={setData}
168
- editMode={{ editMode: "row" }}
169
- hideInfoBar={true}
170
- formElements={formElements}
171
- keyColumnName={"id"}
172
- gridLoadParametersValues={{ dataQueryId: props.selectedRecord.id }}
173
- gridTitle={t("DATA_QUERY_PARAMETER_PLURAL")}
174
- girdIcon="table-cells"
175
- editAction={{
176
- isEnabled: true,
177
- authority: "DATA_QUERY_PARAMETER_EDIT",
178
- preActionValidation: async (data) => {
179
- data.dataQueryId = props.selectedRecord.id;
180
- return true;
181
- },
182
- }}
183
- deleteAction={{
184
- isEnabled: true,
185
- authority: "DATA_QUERY_PARAMETER_DELETE",
186
- }}
187
- />
188
- );
189
- };
190
-
191
- export default DataQueryParameterGrid;
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 DataQueryParameterGridProps = {
9
+ selectedRecord: any;
10
+ };
11
+
12
+ const DataQueryParameterGrid: React.FC<DataQueryParameterGridProps> = (
13
+ props
14
+ ) => {
15
+ const SystemEntityParameters = useSelector(
16
+ (state: any) => state.commonStores.stores.SystemEntityParameters.data
17
+ );
18
+ const { t } = useTranslation();
19
+ const [data, setData] = useState([]);
20
+ const apiActions = useApiActions({
21
+ findAll: "api/v1/dev/dataqueryparameter/all",
22
+ deleteById: "api/v1/dev/dataqueryparameter",
23
+ save: "api/v1/dev/dataqueryparameter",
24
+ findById: "api/v1/dev/dataqueryparameter",
25
+ setData: setData,
26
+ });
27
+
28
+ const formElements: Array<FormElementProps> = [
29
+ {
30
+ type: "field",
31
+ mode: "props",
32
+ props: {
33
+ fieldLabel: "id",
34
+ fieldName: "id",
35
+ fieldType: "number",
36
+ hidden: true,
37
+ gridProps: {
38
+ hidden: true,
39
+ },
40
+ },
41
+ },
42
+ {
43
+ type: "field",
44
+ mode: "props",
45
+ props: {
46
+ fieldLabel: "createTime",
47
+ fieldName: "createTime",
48
+ fieldType: "datetime",
49
+ hidden: true,
50
+ gridProps: {
51
+ hidden: true,
52
+ },
53
+ },
54
+ },
55
+ {
56
+ type: "field",
57
+ mode: "props",
58
+ props: {
59
+ fieldLabel: "createdBy",
60
+ fieldName: "createdBy",
61
+ fieldType: "text",
62
+ hidden: true,
63
+ gridProps: {
64
+ hidden: true,
65
+ },
66
+ },
67
+ },
68
+ {
69
+ type: "field",
70
+ mode: "props",
71
+ props: {
72
+ fieldLabel: "lastUpdateBy",
73
+ fieldName: "lastUpdateBy",
74
+ fieldType: "text",
75
+ hidden: true,
76
+ gridProps: {
77
+ hidden: true,
78
+ },
79
+ },
80
+ },
81
+ {
82
+ type: "field",
83
+ mode: "props",
84
+ props: {
85
+ fieldLabel: "lastUpdateTime",
86
+ fieldName: "lastUpdateTime",
87
+ fieldType: "datetime",
88
+ hidden: true,
89
+ gridProps: {
90
+ hidden: true,
91
+ },
92
+ },
93
+ },
94
+ {
95
+ type: "field",
96
+ mode: "props",
97
+ props: {
98
+ fieldLabel: "DATA_QUERY_PARAMETER_DATA_QUERY_ID",
99
+ fieldName: "dataQueryId",
100
+ required: false,
101
+ fieldType: "number",
102
+ hidden: true,
103
+ gridProps: {
104
+ hidden: true,
105
+ },
106
+ },
107
+ },
108
+ {
109
+ type: "field",
110
+ mode: "props",
111
+ props: {
112
+ fieldLabel: "DATA_QUERY_PARAMETER_ENTITY_PARAMETER_ID",
113
+ fieldName: "entityParameterId",
114
+ required: true,
115
+ fieldType: "combobox",
116
+ options: SystemEntityParameters,
117
+ optionValueField: "id",
118
+ optionDisplayField: "parameterCode",
119
+ },
120
+ },
121
+ {
122
+ type: "field",
123
+ mode: "props",
124
+ props: {
125
+ fieldLabel: "DATA_QUERY_PARAMETER_DEFAULT_VALUE",
126
+ fieldName: "defaultValue",
127
+ required: false,
128
+ fieldType: "text",
129
+ },
130
+ },
131
+ {
132
+ type: "field",
133
+ mode: "props",
134
+ props: {
135
+ fieldLabel: "DATA_QUERY_PARAMETER_ENABLED",
136
+ fieldName: "enabled",
137
+ required: false,
138
+ fieldType: "checkbox",
139
+ },
140
+ },
141
+ {
142
+ type: "field",
143
+ mode: "props",
144
+ props: {
145
+ fieldLabel: "DATA_QUERY_PARAMETER_HIDDEN",
146
+ fieldName: "hidden",
147
+ required: false,
148
+ fieldType: "checkbox",
149
+ },
150
+ },
151
+ {
152
+ type: "field",
153
+ mode: "props",
154
+ props: {
155
+ fieldLabel: "DATA_QUERY_PARAMETER_MANDATORY",
156
+ fieldName: "mandatory",
157
+ required: false,
158
+ fieldType: "checkbox",
159
+ },
160
+ },
161
+ ];
162
+
163
+ return (
164
+ <TemplateGrid
165
+ apiActions={apiActions}
166
+ data={data}
167
+ setData={setData}
168
+ editMode={{ editMode: "row" }}
169
+ hideInfoBar={true}
170
+ formElements={formElements}
171
+ keyColumnName={"id"}
172
+ gridLoadParametersValues={{ dataQueryId: props.selectedRecord.id }}
173
+ gridTitle={t("DATA_QUERY_PARAMETER_PLURAL")}
174
+ girdIcon="table-cells"
175
+ editAction={{
176
+ isEnabled: true,
177
+ authority: "DATA_QUERY_PARAMETER_EDIT",
178
+ preActionValidation: async (data) => {
179
+ data.dataQueryId = props.selectedRecord.id;
180
+ return true;
181
+ },
182
+ }}
183
+ deleteAction={{
184
+ isEnabled: true,
185
+ authority: "DATA_QUERY_PARAMETER_DELETE",
186
+ }}
187
+ />
188
+ );
189
+ };
190
+
191
+ export default DataQueryParameterGrid;
@@ -1,84 +1,84 @@
1
- import { useEffect, useState } from "react";
2
- import TransferList from "../../templates/TransferList";
3
- import { Box, Button } from "@mui/material";
4
- import { toast } from "react-toastify";
5
- import { useAxios } from "../../../hooks";
6
-
7
- type DataQueryParametersFormProps = {
8
- selectedRecord: any;
9
- closeModalFn: () => void;
10
- };
11
-
12
- const DataQueryParametersForm: React.FC<DataQueryParametersFormProps> = (
13
- props
14
- ) => {
15
- const [selectedOptions, setSelectedOptions] = useState([]);
16
- const [availableOptions, setAvailableOptions] = useState([]);
17
- const { handlePostRequest, handleGetRequest } = useAxios();
18
-
19
- const getOptions = async () => {
20
- await handleGetRequest({
21
- endPointURI: "api/v1/dev/dataquery/parameters",
22
- showMask: true,
23
- parameters: {
24
- dataQueryId: props.selectedRecord.id,
25
- },
26
- successCallBkFn: (response: any) => {
27
- setSelectedOptions(response.data.selectedOptions);
28
- setAvailableOptions(response.data.availableOptions);
29
- },
30
- });
31
- };
32
-
33
- useEffect(() => {
34
- if (props.selectedRecord) {
35
- getOptions();
36
- }
37
- }, [props.selectedRecord]);
38
- const saveOptions = async () => {
39
- await handlePostRequest({
40
- endPointURI: "api/v1/dev/dataquery/parameters",
41
- showMask: true,
42
- parameters: { dataQueryId: props.selectedRecord.id },
43
- data: selectedOptions,
44
- successCallBkFn: () => {
45
- toast.success("Your request has been proccesed successfully");
46
- if (props.closeModalFn) {
47
- props.closeModalFn();
48
- }
49
- },
50
- });
51
- };
52
- return (
53
- <>
54
- <TransferList
55
- displayField="parameterCode"
56
- options={availableOptions}
57
- valueField="id"
58
- selectedOptions={selectedOptions}
59
- setSelection={setSelectedOptions}
60
- />
61
- <Box
62
- sx={{
63
- display: "flex",
64
- alignItems: "center",
65
- justifyContent: "flex-end",
66
- width: "100%",
67
- }}
68
- >
69
- <Button
70
- variant="contained"
71
- onClick={saveOptions}
72
- sx={{ marginRight: 1, marginLeft: 1 }}
73
- >
74
- Save
75
- </Button>
76
- <Button variant="contained" color="error" onClick={props.closeModalFn}>
77
- Cancel
78
- </Button>
79
- </Box>
80
- </>
81
- );
82
- };
83
-
84
- export default DataQueryParametersForm;
1
+ import { useEffect, useState } from "react";
2
+ import TransferList from "../../templates/TransferList";
3
+ import { Box, Button } from "@mui/material";
4
+ import { toast } from "react-toastify";
5
+ import { useAxios } from "../../../hooks";
6
+
7
+ type DataQueryParametersFormProps = {
8
+ selectedRecord: any;
9
+ closeModalFn: () => void;
10
+ };
11
+
12
+ const DataQueryParametersForm: React.FC<DataQueryParametersFormProps> = (
13
+ props
14
+ ) => {
15
+ const [selectedOptions, setSelectedOptions] = useState([]);
16
+ const [availableOptions, setAvailableOptions] = useState([]);
17
+ const { handlePostRequest, handleGetRequest } = useAxios();
18
+
19
+ const getOptions = async () => {
20
+ await handleGetRequest({
21
+ endPointURI: "api/v1/dev/dataquery/parameters",
22
+ showMask: true,
23
+ parameters: {
24
+ dataQueryId: props.selectedRecord.id,
25
+ },
26
+ successCallBkFn: (response: any) => {
27
+ setSelectedOptions(response.data.selectedOptions);
28
+ setAvailableOptions(response.data.availableOptions);
29
+ },
30
+ });
31
+ };
32
+
33
+ useEffect(() => {
34
+ if (props.selectedRecord) {
35
+ getOptions();
36
+ }
37
+ }, [props.selectedRecord]);
38
+ const saveOptions = async () => {
39
+ await handlePostRequest({
40
+ endPointURI: "api/v1/dev/dataquery/parameters",
41
+ showMask: true,
42
+ parameters: { dataQueryId: props.selectedRecord.id },
43
+ data: selectedOptions,
44
+ successCallBkFn: () => {
45
+ toast.success("Your request has been proccesed successfully");
46
+ if (props.closeModalFn) {
47
+ props.closeModalFn();
48
+ }
49
+ },
50
+ });
51
+ };
52
+ return (
53
+ <>
54
+ <TransferList
55
+ displayField="parameterCode"
56
+ options={availableOptions}
57
+ valueField="id"
58
+ selectedOptions={selectedOptions}
59
+ setSelection={setSelectedOptions}
60
+ />
61
+ <Box
62
+ sx={{
63
+ display: "flex",
64
+ alignItems: "center",
65
+ justifyContent: "flex-end",
66
+ width: "100%",
67
+ }}
68
+ >
69
+ <Button
70
+ variant="contained"
71
+ onClick={saveOptions}
72
+ sx={{ marginRight: 1, marginLeft: 1 }}
73
+ >
74
+ Save
75
+ </Button>
76
+ <Button variant="contained" color="error" onClick={props.closeModalFn}>
77
+ Cancel
78
+ </Button>
79
+ </Box>
80
+ </>
81
+ );
82
+ };
83
+
84
+ export default DataQueryParametersForm;