Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6aced74

Browse files
Merge pull request #1351 from lowcoder-org/feature-pagination
Implemented pagination in some APIs.
2 parents 8af5754 + 0364857 commit 6aced74

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1409
-322
lines changed

‎client/packages/lowcoder-design/src/components/Search.tsx

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,24 +62,35 @@ interface ISearch {
6262
placeholder: string;
6363
value: string;
6464
onChange: (value: React.ChangeEvent<HTMLInputElement>) => void;
65+
onEnterPress?: (value: string) => void; // Added for capturing Enter key press
6566
disabled?: boolean;
6667
}
6768

6869
export const Search = (props: ISearch & InputProps) => {
69-
const { value, onChange, style, disabled, placeholder, ...others } = props;
70+
const { value, onChange, style, disabled, placeholder, onEnterPress, ...others } = props;
71+
7072
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
7173
onChange && onChange(e);
7274
};
75+
76+
// Handling Enter key press
77+
const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
78+
if (e.key === 'Enter' && onEnterPress) {
79+
onEnterPress(value);
80+
}
81+
};
82+
7383
return (
74-
<SearchDiv style={style}>
75-
<SearchInput
76-
disabled={disabled}
77-
placeholder={placeholder}
78-
onChange={handleChange}
79-
value={value}
80-
prefix={<SearchIcon />}
81-
{...others}
82-
/>
83-
</SearchDiv>
84+
<SearchDiv style={style}>
85+
<SearchInput
86+
disabled={disabled}
87+
placeholder={placeholder}
88+
onChange={handleChange}
89+
onKeyDown={handleKeyDown} // Listening for key down events
90+
value={value}
91+
prefix={<SearchIcon />}
92+
{...others}
93+
/>
94+
</SearchDiv>
8495
);
85-
};
96+
};

‎client/packages/lowcoder/src/api/applicationApi.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
SetAppEditingStatePayload,
1313
UpdateAppPermissionPayload,
1414
} from "redux/reduxActions/applicationActions";
15-
import {ApiResponse, GenericApiResponse} from "./apiResponses";
15+
import {ApiResponse, GenericApiResponse} from "./apiResponses";
1616
import { JSONObject, JSONValue } from "util/jsonTypes";
1717
import {
1818
ApplicationDetail,
@@ -24,6 +24,7 @@ import {
2424
} from "constants/applicationConstants";
2525
import { CommonSettingResponseData } from "./commonSettingApi";
2626
import { ResourceType } from "@lowcoder-ee/constants/queryConstants";
27+
import {fetchAppRequestType, GenericApiPaginationResponse} from "@lowcoder-ee/util/pagination/type";
2728

2829
export interface HomeOrgMeta {
2930
id: string;
@@ -108,6 +109,10 @@ class ApplicationApi extends Api {
108109
return Api.get(ApplicationApi.newURLPrefix + "/list", { ...request, withContainerSize: false });
109110
}
110111

112+
static fetchAllApplicationsPagination(request: fetchAppRequestType): AxiosPromise<GenericApiPaginationResponse<ApplicationMeta[]>> {
113+
return Api.get(ApplicationApi.newURLPrefix + "/list", { ...request, withContainerSize: false, applicationStatus: "RECYCLED" });
114+
}
115+
111116
static fetchAllModules(request: HomeDataPayload): AxiosPromise<ApplicationMeta[]> {
112117
return Api.get(ApplicationApi.newURLPrefix + "/list", {
113118
applicationType: AppTypeEnum.Module,

‎client/packages/lowcoder/src/api/datasourceApi.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import { JSONArray } from "util/jsonTypes";
88
import { AuthType, HttpOAuthGrantType } from "pages/datasource/form/httpDatasourceForm";
99
import { Datasource } from "@lowcoder-ee/constants/datasourceConstants";
1010
import { DataSourcePluginMeta } from "lowcoder-sdk/dataSource";
11+
import {
12+
fetchDataSourcePaginationRequestType,
13+
fetchDBRequestType,
14+
GenericApiPaginationResponse
15+
} from "@lowcoder-ee/util/pagination/type";
1116

1217
export interface PreparedStatementConfig {
1318
enableTurnOffPreparedStatement: boolean;
@@ -164,6 +169,11 @@ export class DatasourceApi extends Api {
164169
return Api.get(DatasourceApi.url + `/jsDatasourcePlugins?appId=${appId}`);
165170
}
166171

172+
static fetchJsDatasourcePaginationByApp( request: fetchDataSourcePaginationRequestType ): AxiosPromise<GenericApiPaginationResponse<NodePluginDatasourceInfo[]>> {
173+
const {appId, ...res} = request
174+
return Api.get(DatasourceApi.url + `/jsDatasourcePlugins?appId=${appId}` ,{...res});
175+
}
176+
167177
static fetchDatasourceByApp(appId: string): AxiosPromise<GenericApiResponse<DatasourceInfo[]>> {
168178
return Api.get(DatasourceApi.url + `/listByApp?appId=${appId}`);
169179
}
@@ -172,6 +182,11 @@ export class DatasourceApi extends Api {
172182
return Api.get(DatasourceApi.url + `/listByOrg?orgId=${orgId}`);
173183
}
174184

185+
static fetchDatasourcePaginationByOrg(request: fetchDBRequestType): AxiosPromise<GenericApiPaginationResponse<DatasourceInfo[]>> {
186+
const {orgId, ...res} = request;
187+
return Api.get(DatasourceApi.url + `/listByOrg?orgId=${orgId}`, {...res});
188+
}
189+
175190
static createDatasource(
176191
datasourceConfig: Partial<Datasource>
177192
): AxiosPromise<GenericApiResponse<Datasource>> {

‎client/packages/lowcoder/src/api/folderApi.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import {
99
UpdateFolderPayload,
1010
} from "../redux/reduxActions/folderActions";
1111
import { ApplicationMeta, FolderMeta } from "../constants/applicationConstants";
12+
import {
13+
fetchFolderRequestType,
14+
GenericApiPaginationResponse
15+
} from "@lowcoder-ee/util/pagination/type";
1216

1317
export class FolderApi extends Api {
1418
static url = "/folders";
@@ -40,4 +44,11 @@ export class FolderApi extends Api {
4044
): AxiosPromise<GenericApiResponse<(ApplicationMeta | FolderMeta)[]>> {
4145
return Api.get(FolderApi.url + `/elements`, { id: request.folderId });
4246
}
47+
48+
static fetchFolderElementsPagination(
49+
request: fetchFolderRequestType
50+
): AxiosPromise<GenericApiPaginationResponse<(ApplicationMeta | FolderMeta)[]>> {
51+
const {id, ...res} = request
52+
return request.id ? Api.get(FolderApi.url + `/elements`,{id: id, ...res}) : Api.get(FolderApi.url + `/elements`, { ...request });
53+
}
4354
}

‎client/packages/lowcoder/src/api/orgApi.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ import {
1010
UpdateUserOrgRolePayload,
1111
} from "redux/reduxActions/orgActions";
1212
import { ApiResponse, GenericApiResponse } from "./apiResponses";
13+
import {
14+
ApiPaginationResponse,
15+
fetchGroupUserRequestType,
16+
fetchOrgsByEmailRequestType,
17+
fetchOrgUserRequestType,
18+
GenericApiPaginationResponse,
19+
GroupUsersPaginationResponse,
20+
orgGroupRequestType, OrgUsersPaginationResponse
21+
} from "@lowcoder-ee/util/pagination/type";
1322

1423
export interface GroupUsersResponse extends ApiResponse {
1524
data: {
@@ -66,6 +75,10 @@ export class OrgApi extends Api {
6675
return Api.get(OrgApi.fetchGroupURL);
6776
}
6877

78+
static fetchGroupPagination(request: orgGroupRequestType): AxiosPromise<GenericApiPaginationResponse<OrgGroup[]>> {
79+
return Api.get(OrgApi.fetchGroupURL, {...request});
80+
}
81+
6982
static deleteGroup(groupId: string): AxiosPromise<ApiResponse> {
7083
return Api.delete(OrgApi.deleteGroupURL(groupId));
7184
}
@@ -88,10 +101,20 @@ export class OrgApi extends Api {
88101
return Api.get(OrgApi.fetchOrgUsersURL(orgId));
89102
}
90103

104+
static fetchOrgUsersPagination(request:fetchOrgUserRequestType): AxiosPromise<OrgUsersPaginationResponse> {
105+
const {orgId, ...res} = request;
106+
return Api.get(OrgApi.fetchOrgUsersURL(orgId), {...res});
107+
}
108+
91109
static fetchGroupUsers(groupId: string): AxiosPromise<GroupUsersResponse> {
92110
return Api.get(OrgApi.fetchGroupUsersURL(groupId));
93111
}
94112

113+
static fetchGroupUsersPagination(request: fetchGroupUserRequestType): AxiosPromise<GroupUsersPaginationResponse> {
114+
const {groupId, ...res} = request;
115+
return Api.get(OrgApi.fetchGroupUsersURL(groupId), {...res});
116+
}
117+
95118
static deleteGroupUser(request: RemoveGroupUserPayload): AxiosPromise<ApiResponse> {
96119
return Api.delete(OrgApi.deleteGroupUserURL(request.groupId), {
97120
userId: request.userId,
@@ -145,6 +168,11 @@ export class OrgApi extends Api {
145168
static fetchOrgsByEmail(email: string): AxiosPromise<ApiResponse> {
146169
return Api.get(OrgApi.fetchOrgsByEmailURL(email));
147170
}
171+
172+
static fetchOrgsPaginationByEmail(request: fetchOrgsByEmailRequestType): AxiosPromise<ApiPaginationResponse> {
173+
const { email, ...rest } = request;
174+
return Api.get(OrgApi.fetchOrgsByEmailURL(email), {...rest});
175+
}
148176
}
149177

150178
export default OrgApi;

‎client/packages/lowcoder/src/api/queryLibraryApi.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Api from "./api";
22
import { AxiosPromise } from "axios";
33
import { GenericApiResponse } from "./apiResponses";
44
import { DatasourceType } from "@lowcoder-ee/constants/queryConstants";
5+
import {fetchQueryLibraryPaginationRequestType, GenericApiPaginationResponse} from "@lowcoder-ee/util/pagination/type";
56

67
export interface LibraryQuery {
78
id: string;
@@ -49,6 +50,10 @@ export class QueryLibraryApi extends Api {
4950
return Api.get(QueryLibraryApi.url + `/listByOrg`);
5051
}
5152

53+
static fetchQueryLibraryPaginationByOrg(request: fetchQueryLibraryPaginationRequestType): AxiosPromise<GenericApiPaginationResponse<Array<LibraryQuery>>> {
54+
return Api.get(QueryLibraryApi.url + `/listByOrg`, {...request});
55+
}
56+
5257
static fetchQueryLibraryDropdown(): AxiosPromise<
5358
GenericApiResponse<Array<LibraryQueryDropdownInfo>>
5459
> {

‎client/packages/lowcoder/src/components/TypographyText.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ const StyledTypographyText = styled(AntdTypographyText)`
4040
`;
4141

4242
export const TypographyText = (props: {
43-
value: string;
44-
editing: boolean;
45-
onChange: (value: string) => void;
43+
value?: string;
44+
editing?: boolean;
45+
onChange?: (value: string) => void;
4646
}) => (
4747
<StyledTypographyText
4848
title={props.value}

‎client/packages/lowcoder/src/comps/comps/queryLibrary/queryLibraryComp.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ const children = {
4747
const QueryLibraryCompBase = simpleMultiComp(children);
4848

4949
export const QueryLibraryComp = class extends QueryLibraryCompBase {
50-
propertyView(params: { onPublish: () => void; onHistoryShow: () => void }) {
50+
propertyView(params: { onPublish: () => void; onHistoryShow: () => void;setModify: any;modify: boolean }) {
5151
return (
52-
<PropertyView comp={this} onPublish={params.onPublish} onHistoryShow={params.onHistoryShow} />
52+
<PropertyView comp={this} onPublish={params.onPublish} onHistoryShow={params.onHistoryShow} setModify={params.setModify}modify={params.modify}/>
5353
);
5454
}
5555

@@ -99,11 +99,13 @@ function getMetaData(
9999
}
100100

101101
const PropertyView = (props: {
102-
comp: QueryLibraryCompType;
103-
onPublish: () => void;
104-
onHistoryShow: () => void;
102+
comp: QueryLibraryCompType,
103+
onPublish: () => void,
104+
onHistoryShow: () => void,
105+
setModify?: any
106+
modify?: boolean
105107
}) => {
106-
const { comp, onPublish, onHistoryShow } = props;
108+
const { comp, onPublish, onHistoryShow, setModify, modify } = props;
107109

108110
const reduxDispatch = useDispatch();
109111

@@ -157,12 +159,16 @@ const PropertyView = (props: {
157159
CustomModal.confirm({
158160
title: trans("queryLibrary.deleteQueryLabel"),
159161
content: trans("queryLibrary.deleteQueryContent"),
160-
onConfirm: () =>
162+
onConfirm: () =>{
161163
reduxDispatch(
162164
deleteQueryLibrary({
163165
queryLibraryId: comp.children.query.children.id.getView(),
164166
})
165-
),
167+
)
168+
setTimeout(() => {
169+
setModify(!modify);
170+
}, 500);
171+
},
166172
confirmBtnType: "delete",
167173
okText: trans("delete"),
168174
})
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const BackButton = () =>{
2+
return
3+
<div>123</div>
4+
}

‎client/packages/lowcoder/src/pages/ApplicationV2/CreateDropdown.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,14 @@ function NavLayoutPickModal(props: {
185185
);
186186
}
187187

188-
export const CreateDropdown = (props: { defaultVisible?: boolean; mode: HomeLayoutMode }) => {
189-
const { defaultVisible, mode} = props;
188+
export const CreateDropdown = (props: { defaultVisible?: boolean; mode: HomeLayoutMode;setModify: any;modify: boolean }) => {
189+
const { defaultVisible, mode, setModify, modify} = props;
190190
const [createDropdownVisible, setCreateDropdownVisible] = useState(false);
191191
const [layoutPickerVisible, setLayoutPickerVisible] = useState(false);
192192

193193
const user = useSelector(getUser);
194194

195-
const [handleCreate, isCreating] = useCreateHomeRes();
195+
const [handleCreate, isCreating] = useCreateHomeRes(setModify,modify);
196196

197197
const getCreateMenuItem = (type: HomeResTypeEnum, mode?: HomeLayoutMode): ItemType => {
198198
if (

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /