@solidxai/core-ui 0.1.3 → 0.1.4-beta.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.
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -5
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +10 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +48 -47
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +41 -10
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +1 -1
- package/dist/components/core/common/GroupingComponent.d.ts +54 -0
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
- package/dist/components/core/common/GroupingComponent.js +196 -0
- package/dist/components/core/common/GroupingComponent.js.map +1 -0
- package/dist/components/core/common/GroupingComponent.tsx +452 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +152 -52
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +212 -35
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +17 -28
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +71 -56
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
- package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
- package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
- package/dist/components/core/form/SolidFormFooter.js +4 -4
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +4 -4
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +317 -157
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +463 -243
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -4
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +220 -33
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +167 -36
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +13 -12
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +8 -7
- package/dist/components/core/list/SolidListView.d.ts +18 -10
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +176 -177
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +130 -143
- package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +6 -5
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +1 -37
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +0 -41
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -5
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -3
- package/dist/components/core/list/listViewRegistry.js.map +1 -1
- package/dist/components/core/list/listViewRegistry.ts +1 -2
- package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
- package/dist/components/core/tree/SolidTreeView.js +1179 -0
- package/dist/components/core/tree/SolidTreeView.js.map +1 -0
- package/dist/components/core/tree/SolidTreeView.tsx +1637 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.js +17 -0
- package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.ts +23 -0
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +19 -6
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +39 -0
- package/dist/helpers/helpers.d.ts +2 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +3 -1
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +4 -1
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +5 -1
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +7 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +6 -1
- package/dist/resources/globals.css +32 -4
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +2 -2
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +3 -2
- package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
- package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
- package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
- package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.js +37 -0
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +3 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/solid-core.d.ts +40 -0
- package/package.json +1 -1
|
@@ -1,31 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from "react";
|
|
1
|
+
import { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from "react";
|
|
3
2
|
import {
|
|
4
3
|
DataTable,
|
|
5
|
-
DataTableFilterMeta,
|
|
6
4
|
DataTableStateEvent,
|
|
7
5
|
} from "primereact/datatable";
|
|
8
6
|
import { Column } from "primereact/column";
|
|
9
7
|
import { FilterMatchMode } from "primereact/api";
|
|
10
|
-
import Link from "../../common/Link";
|
|
11
8
|
import qs from "qs";
|
|
12
9
|
import { Button } from "primereact/button";
|
|
13
10
|
import { Dialog } from "primereact/dialog";
|
|
14
11
|
import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
|
|
15
12
|
import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
|
|
16
13
|
import { SolidListViewColumn } from "./SolidListViewColumn";
|
|
17
|
-
// import { SolidListViewOptions } from "../common/SolidListviewOptions";
|
|
18
14
|
import { SolidCreateButton } from "../common/SolidCreateButton";
|
|
19
15
|
import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
|
|
20
|
-
import { pascalCase } from "change-case";
|
|
21
16
|
import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
|
|
22
17
|
import { permissionExpression } from "../../../helpers/permissions";
|
|
23
18
|
import { usePathname } from "../../../hooks/usePathname";
|
|
24
19
|
import { useRouter } from "../../../hooks/useRouter";
|
|
25
20
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
26
21
|
import { ListViewRowActionPopup } from "./ListViewRowActionPopup";
|
|
27
|
-
import FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from "../../../components/core/common/FilterComponent";
|
|
28
|
-
import { SolidLayoutViews } from "../common/SolidLayoutViews";
|
|
29
22
|
import { FilterIcon } from '../../../components/modelsComponents/filterIcon';
|
|
30
23
|
import { OverlayPanel } from "primereact/overlaypanel";
|
|
31
24
|
import { Toast } from "primereact/toast";
|
|
@@ -33,8 +26,6 @@ import { Divider } from "primereact/divider";
|
|
|
33
26
|
import CompactImage from '../../../resources/images/layout/images/compact.png';
|
|
34
27
|
import CozyImage from '../../../resources/images/layout/images/cozy.png';
|
|
35
28
|
import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
|
|
36
|
-
import KanbanImage from '../../../resources/images/layout/images/kanban.png';
|
|
37
|
-
import { capitalize, filter, set } from "lodash";
|
|
38
29
|
import Lightbox from "yet-another-react-lightbox";
|
|
39
30
|
import Counter from "yet-another-react-lightbox/plugins/counter";
|
|
40
31
|
import Download from "yet-another-react-lightbox/plugins/download";
|
|
@@ -58,7 +49,6 @@ import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
|
58
49
|
import { SolidAiMainWrapper } from "../solid-ai/SolidAiMainWrapper";
|
|
59
50
|
import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
|
|
60
51
|
import { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from "../../../redux/api/solidSettingsApi";
|
|
61
|
-
import { log } from "console";
|
|
62
52
|
import { normalizeSolidListKanbanActionPath } from "../../../helpers/routePaths";
|
|
63
53
|
// import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
64
54
|
|
|
@@ -66,7 +56,7 @@ const getRandomInt = (min: number, max: number) => {
|
|
|
66
56
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
67
57
|
};
|
|
68
58
|
|
|
69
|
-
export const
|
|
59
|
+
export const getFilterObjectFromLocalStorage = () => {
|
|
70
60
|
const currentPageUrl = window.location.pathname; // Get the current page URL
|
|
71
61
|
const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
|
|
72
62
|
|
|
@@ -85,7 +75,7 @@ export const queryStringToQueryObject = () => {
|
|
|
85
75
|
};
|
|
86
76
|
|
|
87
77
|
|
|
88
|
-
export const
|
|
78
|
+
export const getFilterObjectFromLocalStorageByUrl = (url: string) => {
|
|
89
79
|
const currentPageUrl = url; // Get the current page URL
|
|
90
80
|
const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
|
|
91
81
|
|
|
@@ -103,7 +93,7 @@ export const queryStringToQueryObjectByUrl = (url) => {
|
|
|
103
93
|
}
|
|
104
94
|
};
|
|
105
95
|
|
|
106
|
-
export const
|
|
96
|
+
export const setFilterObjectToLocalStorage = (queryObject: string) => {
|
|
107
97
|
if (queryObject) {
|
|
108
98
|
const stringifiedObject = JSON.stringify(queryObject);
|
|
109
99
|
// const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: "brackets" });
|
|
@@ -116,7 +106,7 @@ export const queryObjectToQueryString = (queryObject: string) => {
|
|
|
116
106
|
};
|
|
117
107
|
|
|
118
108
|
|
|
119
|
-
export const
|
|
109
|
+
export const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: string) => {
|
|
120
110
|
if (queryObject) {
|
|
121
111
|
const stringifiedObject = JSON.stringify(queryObject);
|
|
122
112
|
// const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: "brackets" });
|
|
@@ -132,10 +122,13 @@ type SolidListViewParams = {
|
|
|
132
122
|
moduleName: string;
|
|
133
123
|
modelName: string;
|
|
134
124
|
inlineCreate?: boolean;
|
|
135
|
-
|
|
125
|
+
handleAddClickForEmbeddedView?: any;
|
|
126
|
+
handleEditClickForEmbeddedView?: any;
|
|
136
127
|
embeded?: boolean;
|
|
128
|
+
embededFieldRelationType?: string;
|
|
137
129
|
customLayout?: any;
|
|
138
130
|
customFilter?: any;
|
|
131
|
+
handleDeleteClick?: any;
|
|
139
132
|
};
|
|
140
133
|
|
|
141
134
|
export type SolidListViewHandle = {
|
|
@@ -175,7 +168,7 @@ export type SolidListViewHandle = {
|
|
|
175
168
|
* Updates sorting state and resets page offset to the first page.
|
|
176
169
|
* Use this for programmatic sort controls to match DataTable behavior.
|
|
177
170
|
*/
|
|
178
|
-
setSort: (
|
|
171
|
+
setSort: (nextMultiSortMeta: { field: string; order: 1 | -1 }[]) => void;
|
|
179
172
|
/**
|
|
180
173
|
* Toggles inclusion of archived/soft-deleted records.
|
|
181
174
|
* Use this to switch between active-only and inclusive list views.
|
|
@@ -188,8 +181,7 @@ export type SolidListViewHandle = {
|
|
|
188
181
|
getState: () => {
|
|
189
182
|
first: number;
|
|
190
183
|
rows: number;
|
|
191
|
-
|
|
192
|
-
sortOrder: 1 | -1 | 0;
|
|
184
|
+
multiSortMeta: { field: string; order: 1 | -1 }[];
|
|
193
185
|
showArchived: boolean;
|
|
194
186
|
filters: any;
|
|
195
187
|
filterPredicates: any;
|
|
@@ -206,19 +198,23 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
206
198
|
const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);
|
|
207
199
|
|
|
208
200
|
const pathname = usePathname();
|
|
209
|
-
const solidGlobalSearchElementRef = useRef();
|
|
201
|
+
const solidGlobalSearchElementRef = useRef<any>();
|
|
210
202
|
|
|
211
203
|
const router = useRouter();
|
|
212
204
|
const searchParams = useSearchParams();
|
|
213
205
|
const localeName = searchParams.get("locale");
|
|
214
206
|
|
|
207
|
+
|
|
208
|
+
const [solidListViewMetaData, setSolidListViewMetaData] = useState<any>(null);
|
|
209
|
+
const [solidListViewLayout, setSolidListViewLayout] = useState<any>(null);
|
|
210
|
+
const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);
|
|
211
|
+
|
|
215
212
|
// Filter query realted states
|
|
216
213
|
const [filters, setFilters] = useState<any>(null);
|
|
217
214
|
const [totalRecords, setTotalRecords] = useState(0);
|
|
218
215
|
const [first, setFirst] = useState(0);
|
|
219
216
|
const [rows, setRows] = useState(solidListViewLayout?.attrs?.defaultPageSize ? solidListViewLayout?.attrs?.defaultPageSize : 10);
|
|
220
|
-
const [
|
|
221
|
-
const [sortOrder, setSortOrder] = useState(-1);
|
|
217
|
+
const [multiSortMeta, setMultiSortMeta] = useState<{ field: string; order: 1 | -1 }[]>([{ field: "id", order: -1 }]);
|
|
222
218
|
const [toPopulate, setToPopulate] = useState<string[]>([]);
|
|
223
219
|
const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);
|
|
224
220
|
|
|
@@ -399,9 +395,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
399
395
|
}
|
|
400
396
|
);
|
|
401
397
|
|
|
402
|
-
const [solidListViewMetaData, setSolidListViewMetaData] = useState(null);
|
|
403
|
-
const [solidListViewLayout, setSolidListViewLayout] = useState(null);
|
|
404
|
-
const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);
|
|
405
398
|
const {
|
|
406
399
|
data: solidListViewInitialMetaData,
|
|
407
400
|
error: solidListViewMetaDataError,
|
|
@@ -488,9 +481,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
488
481
|
const populate = toPopulate;
|
|
489
482
|
const populateMedia = toPopulateMedia;
|
|
490
483
|
const rows = currentLayout?.attrs?.defaultPageSize ?? 25;
|
|
491
|
-
const
|
|
492
|
-
|
|
493
|
-
return { sortField, sortOrder, rows, populate, populateMedia };
|
|
484
|
+
const multiSortMeta: { field: string; order: 1 | -1 }[] = [{ field: "id", order: -1 }];
|
|
485
|
+
return { multiSortMeta, rows, populate, populateMedia };
|
|
494
486
|
};
|
|
495
487
|
|
|
496
488
|
|
|
@@ -532,8 +524,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
532
524
|
});
|
|
533
525
|
}
|
|
534
526
|
|
|
535
|
-
const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });
|
|
536
|
-
setViewModes(viewModes);
|
|
527
|
+
// const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });
|
|
528
|
+
setViewModes(solidListViewInitialMetaData?.data?.viewModes);
|
|
537
529
|
if (createActionUrl) {
|
|
538
530
|
setCreateButtonUrl(createActionUrl);
|
|
539
531
|
}
|
|
@@ -594,7 +586,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
594
586
|
useEffect(() => {
|
|
595
587
|
if (solidEntityListViewData) {
|
|
596
588
|
setLoading(true);
|
|
597
|
-
const cleanedRecords = solidEntityListViewData.records.map((record) => {
|
|
589
|
+
const cleanedRecords = solidEntityListViewData.records.map((record: any) => {
|
|
598
590
|
const newRecord = { ...record };
|
|
599
591
|
|
|
600
592
|
Object.entries(newRecord).forEach(([key, value]) => {
|
|
@@ -646,7 +638,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
646
638
|
);
|
|
647
639
|
setQueryDataLoaded(false)
|
|
648
640
|
if (solidListViewMetaData && solidListViewLayout) {
|
|
649
|
-
const queryObject =
|
|
641
|
+
const queryObject = getFilterObjectFromLocalStorage();
|
|
650
642
|
|
|
651
643
|
if (queryObject) {
|
|
652
644
|
const queryData = {
|
|
@@ -654,51 +646,29 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
654
646
|
limit: queryObject.limit || 25,
|
|
655
647
|
populate: queryObject.populate,
|
|
656
648
|
populateMedia: queryObject.populateMedia,
|
|
657
|
-
sort: queryObject.sort
|
|
658
|
-
? queryObject.sort?.map((sortItem: string) => {
|
|
659
|
-
const [field, order] = sortItem.split(":");
|
|
660
|
-
return { field, order };
|
|
661
|
-
})
|
|
662
|
-
: [`id:desc`],
|
|
649
|
+
sort: queryObject.sort,
|
|
663
650
|
filters: queryObject.filters,
|
|
664
651
|
};
|
|
665
|
-
|
|
666
|
-
// $and: [],
|
|
667
|
-
// };
|
|
668
|
-
|
|
669
|
-
// if (queryObject.custom_filter_predicate) {
|
|
670
|
-
// filters.$and.push(queryObject.custom_filter_predicate);
|
|
671
|
-
// }
|
|
672
|
-
// if (queryObject.search_predicate) {
|
|
673
|
-
// filters.$and.push(queryObject.search_predicate);
|
|
674
|
-
// }
|
|
675
|
-
// if (queryObject.saved_filter_predicate) {
|
|
676
|
-
// filters.$and.push(queryObject.saved_filter_predicate);
|
|
677
|
-
// }
|
|
678
|
-
// if (queryObject.predefined_search_predicate) {
|
|
679
|
-
// filters.$and.push(queryObject.predefined_search_predicate);
|
|
680
|
-
// }
|
|
681
|
-
|
|
682
|
-
// if (queryObject.s_filter) {
|
|
683
|
-
// filters.$and.push(queryObject.s_filter);
|
|
684
|
-
// }
|
|
685
|
-
// if (queryObject.c_filter) {
|
|
686
|
-
// filters.$and.push(queryObject.c_filter);
|
|
687
|
-
// }
|
|
652
|
+
|
|
688
653
|
setRows(Number(queryData.limit));
|
|
689
654
|
setFirst(Number(queryData?.offset));
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
655
|
+
const parsedMultiSortMeta: { field: string; order: 1 | -1 }[] =
|
|
656
|
+
Array.isArray(queryData.sort) && queryData.sort.length > 0
|
|
657
|
+
? queryData.sort.map((sortItem: string) => {
|
|
658
|
+
const [field, order] = sortItem.split(":");
|
|
659
|
+
return { field, order: order === "asc" ? 1 : -1 } as { field: string; order: 1 | -1 };
|
|
660
|
+
})
|
|
661
|
+
: [{ field: "id", order: -1 }];
|
|
662
|
+
|
|
663
|
+
setMultiSortMeta(parsedMultiSortMeta);
|
|
664
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
694
665
|
setToPopulate(populate);
|
|
695
666
|
setToPopulateMedia(populateMedia);
|
|
696
667
|
|
|
697
668
|
} else {
|
|
698
|
-
const {
|
|
669
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
699
670
|
setRows(rows);
|
|
700
|
-
|
|
701
|
-
setSortOrder(sortOrder);
|
|
671
|
+
setMultiSortMeta(multiSortMeta);
|
|
702
672
|
setToPopulate(populate);
|
|
703
673
|
setToPopulateMedia(populateMedia);
|
|
704
674
|
setFirst(0);
|
|
@@ -775,8 +745,15 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
775
745
|
|
|
776
746
|
|
|
777
747
|
// Create a ref that always has the latest filters
|
|
778
|
-
const latestFiltersRef = useRef(filters);
|
|
779
|
-
const latestFilterPredicatesRef = useRef(filterPredicates);
|
|
748
|
+
const latestFiltersRef = useRef<any>(filters);
|
|
749
|
+
const latestFilterPredicatesRef = useRef<any>(filterPredicates);
|
|
750
|
+
// 1. Add the ref (near the other latestXxxRef declarations)
|
|
751
|
+
const latestMultiSortMetaRef = useRef<any>(multiSortMeta);
|
|
752
|
+
|
|
753
|
+
// 2. Keep it in sync
|
|
754
|
+
useEffect(() => {
|
|
755
|
+
latestMultiSortMetaRef.current = multiSortMeta;
|
|
756
|
+
}, [multiSortMeta]);
|
|
780
757
|
|
|
781
758
|
// Keep refs in sync
|
|
782
759
|
useEffect(() => {
|
|
@@ -789,20 +766,19 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
789
766
|
|
|
790
767
|
|
|
791
768
|
useEffect(() => {
|
|
792
|
-
console.log(`useEffect: [first- ${first}, rows- ${rows},
|
|
769
|
+
console.log(`useEffect: [first- ${first}, rows- ${rows}, multiSortMeta- ${multiSortMeta}, showArchived- ${showArchived}, toPopulate- ${toPopulate}, toPopulateMedia- ${toPopulateMedia}, queryDataLoaded- ${queryDataLoaded}, filterPredicates- ${filterPredicates}]`);
|
|
793
770
|
if (queryDataLoaded && filters && (filterPredicates || params.embeded == true)) {
|
|
794
771
|
setQueryString();
|
|
795
772
|
}
|
|
796
773
|
}, [
|
|
797
774
|
first,
|
|
798
775
|
rows,
|
|
799
|
-
|
|
800
|
-
sortOrder,
|
|
801
|
-
filters,
|
|
776
|
+
multiSortMeta,
|
|
802
777
|
showArchived,
|
|
803
778
|
toPopulate,
|
|
804
779
|
toPopulateMedia,
|
|
805
780
|
queryDataLoaded,
|
|
781
|
+
filters,
|
|
806
782
|
filterPredicates
|
|
807
783
|
]);
|
|
808
784
|
|
|
@@ -813,13 +789,27 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
813
789
|
};
|
|
814
790
|
|
|
815
791
|
// Handle sort event.
|
|
792
|
+
// const onSort = (event: DataTableStateEvent) => {
|
|
793
|
+
// const { sortField, sortOrder } = event;
|
|
794
|
+
// const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
|
|
795
|
+
// setSortField(sortField);
|
|
796
|
+
// setSortOrder(validSortOrder);
|
|
797
|
+
// setFirst(0);
|
|
798
|
+
|
|
799
|
+
// };
|
|
800
|
+
|
|
816
801
|
const onSort = (event: DataTableStateEvent) => {
|
|
817
|
-
const
|
|
818
|
-
const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
|
|
819
|
-
setSortField(sortField);
|
|
820
|
-
setSortOrder(validSortOrder);
|
|
821
|
-
setFirst(0);
|
|
802
|
+
const meta = event.multiSortMeta || [];
|
|
822
803
|
|
|
804
|
+
const validMeta = meta
|
|
805
|
+
.filter((m) => m.order === 1 || m.order === -1)
|
|
806
|
+
.map((m) => ({
|
|
807
|
+
field: m.field,
|
|
808
|
+
order: m.order as 1 | -1,
|
|
809
|
+
}));
|
|
810
|
+
|
|
811
|
+
setMultiSortMeta(validMeta);
|
|
812
|
+
setFirst(0);
|
|
823
813
|
};
|
|
824
814
|
|
|
825
815
|
// handle change in the records which are currently selected...
|
|
@@ -853,22 +843,23 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
853
843
|
|
|
854
844
|
|
|
855
845
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
}
|
|
867
|
-
|
|
846
|
+
// ✅ Use ref instead of stale closure value
|
|
847
|
+
const currentSortMeta = latestMultiSortMetaRef.current;
|
|
848
|
+
|
|
849
|
+
if (currentSortMeta && currentSortMeta.length > 0) {
|
|
850
|
+
queryData.sort = currentSortMeta.map(({ field, order }: any) => {
|
|
851
|
+
const meta = solidFieldsMetadata?.[field];
|
|
852
|
+
let resolvedField = field;
|
|
853
|
+
if (meta?.type === "relation" && meta?.relationType === "many-to-one") {
|
|
854
|
+
resolvedField = `${field}.${meta?.relationModel?.userKeyField?.name}`;
|
|
855
|
+
}
|
|
856
|
+
return `${resolvedField}:${order === 1 ? "asc" : "desc"}`;
|
|
857
|
+
});
|
|
868
858
|
} else {
|
|
869
859
|
queryData.sort = [`id:desc`];
|
|
870
860
|
}
|
|
871
861
|
|
|
862
|
+
|
|
872
863
|
if (showArchived) {
|
|
873
864
|
queryData.showSoftDeleted = "inclusive";
|
|
874
865
|
}
|
|
@@ -910,14 +901,13 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
910
901
|
const queryString = qs.stringify(queryData, { encodeValuesOnly: true });
|
|
911
902
|
|
|
912
903
|
if (latestFilterPredicatesRef.current && latestFilterPredicatesRef.current.persistFilter) {
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
queryObjectToQueryString(urlData);
|
|
904
|
+
const fileterTobeStored = structuredClone(queryData);
|
|
905
|
+
delete fileterTobeStored.filters;
|
|
906
|
+
fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;
|
|
907
|
+
fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
|
|
908
|
+
fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;
|
|
909
|
+
fileterTobeStored.predefined_search_predicate = latestFilterPredicatesRef.current.predefined_search_predicate || null;
|
|
910
|
+
setFilterObjectToLocalStorage(fileterTobeStored);
|
|
921
911
|
}
|
|
922
912
|
triggerGetSolidEntities(queryString);
|
|
923
913
|
};
|
|
@@ -956,10 +946,9 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
956
946
|
// clear Filter
|
|
957
947
|
const clearFilter = () => {
|
|
958
948
|
if (solidListViewMetaData) {
|
|
959
|
-
const {
|
|
949
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
960
950
|
setRows(rows);
|
|
961
|
-
|
|
962
|
-
setSortOrder(sortOrder);
|
|
951
|
+
setMultiSortMeta(multiSortMeta);
|
|
963
952
|
setToPopulate(populate);
|
|
964
953
|
setToPopulateMedia(populateMedia);
|
|
965
954
|
}
|
|
@@ -969,7 +958,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
969
958
|
|
|
970
959
|
|
|
971
960
|
setFilters(params.customFilter || { $and: [] })
|
|
972
|
-
solidGlobalSearchElementRef
|
|
961
|
+
solidGlobalSearchElementRef?.current.clearFilter();
|
|
973
962
|
};
|
|
974
963
|
|
|
975
964
|
const cloneListData = () => {
|
|
@@ -993,9 +982,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
993
982
|
setFirst(nextFirst);
|
|
994
983
|
setRows(nextRows);
|
|
995
984
|
},
|
|
996
|
-
setSort: (
|
|
997
|
-
|
|
998
|
-
setSortOrder(nextSortOrder);
|
|
985
|
+
setSort: (nextMultiSortMeta) => {
|
|
986
|
+
setMultiSortMeta(nextMultiSortMeta);
|
|
999
987
|
setFirst(0);
|
|
1000
988
|
},
|
|
1001
989
|
setShowArchived: (value) => {
|
|
@@ -1004,8 +992,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1004
992
|
getState: () => ({
|
|
1005
993
|
first,
|
|
1006
994
|
rows,
|
|
1007
|
-
|
|
1008
|
-
sortOrder,
|
|
995
|
+
multiSortMeta,
|
|
1009
996
|
showArchived,
|
|
1010
997
|
filters,
|
|
1011
998
|
filterPredicates,
|
|
@@ -1016,8 +1003,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1016
1003
|
}), [
|
|
1017
1004
|
first,
|
|
1018
1005
|
rows,
|
|
1019
|
-
|
|
1020
|
-
sortOrder,
|
|
1006
|
+
multiSortMeta,
|
|
1021
1007
|
showArchived,
|
|
1022
1008
|
filters,
|
|
1023
1009
|
filterPredicates,
|
|
@@ -1028,7 +1014,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1028
1014
|
|
|
1029
1015
|
const [selectedSolidViewData, setSelectedSolidViewData] = useState<any>();
|
|
1030
1016
|
const selectedDataRef = useRef<any>();
|
|
1031
|
-
const op = useRef(null);
|
|
1017
|
+
const op = useRef<any>(null);
|
|
1032
1018
|
const [deleteEntity, setDeleteEntity] = useState(false);
|
|
1033
1019
|
|
|
1034
1020
|
// clickable link allowing one to open the detail / form view.
|
|
@@ -1066,7 +1052,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1066
1052
|
</div>
|
|
1067
1053
|
// <a onClick={() => {
|
|
1068
1054
|
// if (params.embeded == true) {
|
|
1069
|
-
// params.
|
|
1055
|
+
// params.handleAddClickForEmbeddedView(solidViewData.id);
|
|
1070
1056
|
// } else {
|
|
1071
1057
|
// router.push(`${editButtonUrl}/${solidViewData.id}`)
|
|
1072
1058
|
// }
|
|
@@ -1077,7 +1063,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1077
1063
|
};
|
|
1078
1064
|
|
|
1079
1065
|
// Recover functions
|
|
1080
|
-
const recoverById = (id) => {
|
|
1066
|
+
const recoverById = (id: any) => {
|
|
1081
1067
|
triggerRecoverSolidEntitiesById(id);
|
|
1082
1068
|
};
|
|
1083
1069
|
|
|
@@ -1110,7 +1096,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1110
1096
|
}
|
|
1111
1097
|
}, [recoverByIdIsSuccess, recoverByIdData, recoverByIdIsError, recoverByIdError, recoverIsError, recoverError]);
|
|
1112
1098
|
|
|
1113
|
-
const showError = async (error) => {
|
|
1099
|
+
const showError = async (error: any) => {
|
|
1114
1100
|
const errorMessages = error?.data?.message;
|
|
1115
1101
|
const messages = Array.isArray(errorMessages)
|
|
1116
1102
|
? errorMessages
|
|
@@ -1139,7 +1125,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1139
1125
|
}
|
|
1140
1126
|
};
|
|
1141
1127
|
|
|
1142
|
-
const showFieldError = async (error) => {
|
|
1128
|
+
const showFieldError = async (error: any) => {
|
|
1143
1129
|
if (error) {
|
|
1144
1130
|
toast?.current?.show({
|
|
1145
1131
|
severity: "error",
|
|
@@ -1297,7 +1283,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1297
1283
|
throw new Error(ERROR_MESSAGES.NO_ENTITY_SELECTED);
|
|
1298
1284
|
}
|
|
1299
1285
|
|
|
1300
|
-
const response = await deleteSolidSingleEntiry(selectedSolidViewData.id);
|
|
1286
|
+
const response: any = await deleteSolidSingleEntiry(selectedSolidViewData.id);
|
|
1301
1287
|
|
|
1302
1288
|
if (response?.data?.statusCode === 200) {
|
|
1303
1289
|
setDeleteEntity(false);
|
|
@@ -1305,18 +1291,14 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1305
1291
|
severity: "success",
|
|
1306
1292
|
summary: ERROR_MESSAGES.DELETED,
|
|
1307
1293
|
detail: ERROR_MESSAGES.ENTITY_DELETE,
|
|
1308
|
-
|
|
1309
|
-
? { sticky: true } // stays until user closes
|
|
1310
|
-
: { life: 3000 }),
|
|
1294
|
+
life: 3000,
|
|
1311
1295
|
});
|
|
1312
1296
|
} else {
|
|
1313
1297
|
toast.current?.show({
|
|
1314
1298
|
severity: "error",
|
|
1315
1299
|
summary: ERROR_MESSAGES.DELETE_FAIELD,
|
|
1316
1300
|
detail: response?.error?.data?.error,
|
|
1317
|
-
|
|
1318
|
-
? { sticky: true } // stays until user closes
|
|
1319
|
-
: { life: 3000 }),
|
|
1301
|
+
sticky: true, // stays until user closes
|
|
1320
1302
|
});
|
|
1321
1303
|
}
|
|
1322
1304
|
} catch (error: any) {
|
|
@@ -1324,9 +1306,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1324
1306
|
severity: "error",
|
|
1325
1307
|
summary: ERROR_MESSAGES.DELETE_FAIELD,
|
|
1326
1308
|
detail: ERROR_MESSAGES.SOMETHING_WRONG,
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
: { life: 3000 }),
|
|
1309
|
+
sticky: true, // stays until user closes
|
|
1310
|
+
|
|
1330
1311
|
});
|
|
1331
1312
|
}
|
|
1332
1313
|
};
|
|
@@ -1371,7 +1352,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1371
1352
|
|
|
1372
1353
|
const hasCustomContextMenuButtons =
|
|
1373
1354
|
solidListViewLayout?.attrs?.rowButtons?.some(
|
|
1374
|
-
(rb) => rb?.attrs?.actionInContextMenu === true
|
|
1355
|
+
(rb: any) => rb?.attrs?.actionInContextMenu === true
|
|
1375
1356
|
);
|
|
1376
1357
|
|
|
1377
1358
|
const hasAnyContextMenuActions =
|
|
@@ -1408,6 +1389,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1408
1389
|
<div className="hidden lg:flex">
|
|
1409
1390
|
<SolidGlobalSearchElement
|
|
1410
1391
|
key={params.modelName}
|
|
1392
|
+
viewType="list"
|
|
1411
1393
|
showSaveFilterPopup={showSaveFilterPopup}
|
|
1412
1394
|
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1413
1395
|
ref={solidGlobalSearchElementRef}
|
|
@@ -1441,7 +1423,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1441
1423
|
|
|
1442
1424
|
<div className="hidden lg:flex align-items-center solid-header-buttons-wrapper">
|
|
1443
1425
|
{solidListViewLayout?.attrs?.headerButtons
|
|
1444
|
-
?.filter((rb) => rb.attrs.actionInContextMenu != true)
|
|
1426
|
+
?.filter((rb: any) => rb.attrs.actionInContextMenu != true)
|
|
1445
1427
|
?.map((button: any, index: number) => (
|
|
1446
1428
|
<SolidListViewHeaderButton
|
|
1447
1429
|
key={index}
|
|
@@ -1479,7 +1461,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1479
1461
|
label={solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : "Add"}
|
|
1480
1462
|
className={`${solidListViewLayout?.attrs?.addButtonClassName}`}
|
|
1481
1463
|
size="small"
|
|
1482
|
-
onClick={() => params.
|
|
1464
|
+
onClick={() => params.handleAddClickForEmbeddedView("new")}
|
|
1483
1465
|
></Button>
|
|
1484
1466
|
)}
|
|
1485
1467
|
{/* Button For Manual Refresh */}
|
|
@@ -1537,6 +1519,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1537
1519
|
params.embeded === false && (
|
|
1538
1520
|
<div className="flex lg:hidden">
|
|
1539
1521
|
<SolidGlobalSearchElement
|
|
1522
|
+
viewType="list"
|
|
1540
1523
|
showSaveFilterPopup={showSaveFilterPopup}
|
|
1541
1524
|
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1542
1525
|
ref={solidGlobalSearchElementRef}
|
|
@@ -1612,21 +1595,21 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1612
1595
|
first={first}
|
|
1613
1596
|
onPage={onPageChange}
|
|
1614
1597
|
onSort={(e: DataTableStateEvent) => onSort(e)}
|
|
1615
|
-
|
|
1616
|
-
sortOrder={sortOrder === 1 || sortOrder === -1 ? sortOrder : 0}
|
|
1598
|
+
multiSortMeta={multiSortMeta}
|
|
1617
1599
|
loading={false}
|
|
1618
1600
|
// loading={loading || isLoading}
|
|
1619
1601
|
// loadingIcon="pi pi-spinner"
|
|
1620
1602
|
selection={
|
|
1621
1603
|
params.embeded === true
|
|
1622
|
-
?
|
|
1604
|
+
? []
|
|
1623
1605
|
: [...selectedRecords, ...selectedRecoverRecords]
|
|
1624
1606
|
}
|
|
1625
1607
|
onSelectionChange={
|
|
1626
1608
|
params.embeded === true ? undefined : onSelectionChange
|
|
1627
1609
|
}
|
|
1628
1610
|
selectionMode={params.embeded === true ? null : "checkbox"}
|
|
1629
|
-
removableSort
|
|
1611
|
+
removableSort={solidListViewLayout?.attrs?.removableSort ?? true}
|
|
1612
|
+
sortMode={solidListViewLayout?.attrs?.sortMode ?? "multiple"}
|
|
1630
1613
|
filterIcon={<FilterIcon />}
|
|
1631
1614
|
tableClassName="solid-data-table"
|
|
1632
1615
|
paginatorClassName="solid-paginator"
|
|
@@ -1647,7 +1630,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1647
1630
|
if (!(hasFindPermission || hasUpdatePermission)) return;
|
|
1648
1631
|
|
|
1649
1632
|
if (params.embeded === true) {
|
|
1650
|
-
params.
|
|
1633
|
+
params.handleEditClickForEmbeddedView(rowData?.id);
|
|
1651
1634
|
} else {
|
|
1652
1635
|
if (typeof window !== "undefined") {
|
|
1653
1636
|
// store a simple marker for the caller
|
|
@@ -1754,7 +1737,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1754
1737
|
icon={"pi pi-pencil"}
|
|
1755
1738
|
onClick={() => {
|
|
1756
1739
|
if (params.embeded == true) {
|
|
1757
|
-
params.
|
|
1740
|
+
params.handleEditClickForEmbeddedView(rowData?.id);
|
|
1758
1741
|
} else {
|
|
1759
1742
|
if (typeof window !== "undefined") {
|
|
1760
1743
|
try {
|
|
@@ -1779,15 +1762,15 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1779
1762
|
`${permissionExpression(params.modelName, 'delete')}`
|
|
1780
1763
|
) &&
|
|
1781
1764
|
solidListViewLayout?.attrs?.delete !== false &&
|
|
1782
|
-
solidListViewLayout?.attrs?.showRowDeleteInContextMenu
|
|
1783
|
-
|
|
1765
|
+
solidListViewLayout?.attrs?.showRowDeleteInContextMenu !==
|
|
1766
|
+
true && (
|
|
1784
1767
|
<Column
|
|
1785
1768
|
header="Delete"
|
|
1786
1769
|
body={(rowData) => {
|
|
1787
1770
|
const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;
|
|
1788
1771
|
return (
|
|
1789
1772
|
<>
|
|
1790
|
-
{!shouldHideEditOrDeleteButton && (
|
|
1773
|
+
{(!shouldHideEditOrDeleteButton || params.embeded) && (
|
|
1791
1774
|
<Button
|
|
1792
1775
|
text
|
|
1793
1776
|
type="button"
|
|
@@ -1797,8 +1780,12 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1797
1780
|
severity="danger"
|
|
1798
1781
|
icon={"pi pi-trash"}
|
|
1799
1782
|
onClick={() => {
|
|
1800
|
-
|
|
1801
|
-
|
|
1783
|
+
if (params?.embededFieldRelationType === "many-to-many") {
|
|
1784
|
+
params?.handleDeleteClick(rowData.id);
|
|
1785
|
+
} else {
|
|
1786
|
+
setSelectedSolidViewData(rowData);
|
|
1787
|
+
setDeleteEntity(true);
|
|
1788
|
+
}
|
|
1802
1789
|
}}
|
|
1803
1790
|
/>
|
|
1804
1791
|
)}
|
|
@@ -1848,7 +1835,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1848
1835
|
icon={"pi pi-pencil"}
|
|
1849
1836
|
onClick={() => {
|
|
1850
1837
|
if (params.embeded == true) {
|
|
1851
|
-
params.
|
|
1838
|
+
params.handleEditClickForEmbeddedView(
|
|
1852
1839
|
selectedDataRef.current?.id
|
|
1853
1840
|
);
|
|
1854
1841
|
} else {
|
|
@@ -1864,7 +1851,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1864
1851
|
/>
|
|
1865
1852
|
)}
|
|
1866
1853
|
|
|
1867
|
-
{hasDeleteInContextMenu && (
|
|
1854
|
+
{hasDeleteInContextMenu && params.embeded !== true && (
|
|
1868
1855
|
<Button
|
|
1869
1856
|
text
|
|
1870
1857
|
type="button"
|
|
@@ -1879,7 +1866,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1879
1866
|
)}
|
|
1880
1867
|
{hasCustomContextMenuButtons && solidListViewLayout?.attrs?.rowButtons
|
|
1881
1868
|
?.filter(
|
|
1882
|
-
(rb) =>
|
|
1869
|
+
(rb: any) =>
|
|
1883
1870
|
rb?.attrs?.actionInContextMenu === true &&
|
|
1884
1871
|
rb?.attrs?.visible !== false
|
|
1885
1872
|
)
|
|
@@ -1985,7 +1972,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1985
1972
|
<div className="p-4">
|
|
1986
1973
|
<p className="m-0 solid-primary-title" style={{ fontSize: 16 }}>Are you sure you want to delete the selected records?</p>
|
|
1987
1974
|
<div className="flex align-items-center gap-2 mt-3">
|
|
1988
|
-
<Button label="Delete" severity="danger" size="small"
|
|
1975
|
+
<Button label="Delete" severity="danger" size="small" autoFocus onClick={deleteBulk} />
|
|
1989
1976
|
<Button label="Cancel" size="small" onClick={onDeleteClose} outlined className='bg-primary-reverse' />
|
|
1990
1977
|
</div>
|
|
1991
1978
|
</div>
|