fix: edit cluster page problem (#360)

* fix: edit cluster page problem

Signed-off-by: zhaoxinxin <1186037180@qq.com>

* fix: edit cluster page problem

Signed-off-by: zhaoxinxin <1186037180@qq.com>

---------

Signed-off-by: zhaoxinxin <1186037180@qq.com>
This commit is contained in:
Zhaoxinxin 2024-03-08 13:20:23 +08:00 committed by GitHub
parent 7e7d709107
commit cd6e8d5fe2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 84 additions and 40 deletions

View File

@ -5,6 +5,7 @@ module.exports = function override(config) {
crypto: require.resolve('crypto-browserify'),
stream: require.resolve('stream-browserify'),
querystring: require.resolve('query-string'),
vm: false,
});
config.resolve.fallback = fallback;
config.plugins = (config.plugins || []).concat([

View File

@ -82,35 +82,69 @@ describe('Update cluster', () => {
cy.intercept(
{
method: 'GET',
url: '/api/v1/clusters/1',
url: '/api/v1/clusters/2',
},
(req) => {
req.reply({
statusCode: 401,
body: { message: 'Not Found' },
statusCode: 200,
body: {
"id": 0,
"name": "",
"bio": "",
"scopes": {
"idc": "",
"location": "",
"cidrs": null,
"hostnames": null
},
"scheduler_cluster_id": 1,
"seed_peer_cluster_id": 1,
"scheduler_cluster_config": {
"candidate_parent_limit": 0,
"filter_parent_limit": 0
},
"seed_peer_cluster_config": {
"load_limit": 0
},
"peer_cluster_config": {
"load_limit": 0
},
"created_at": "2023-03-08T02:39:03Z",
"updated_at": "2023-03-08T02:39:03Z",
"is_default": true
},
});
},
);
cy.visit('/clusters/2/edit');
// Show cluster information.
cy.get('.MuiPaper-outlined > .css-0 > :nth-child(1)').should('not.contain', '1');
cy.get('.MuiPaper-outlined > .css-0 > :nth-child(1)').should('contain', '0');
cy.get('.MuiPaper-root > .css-0 > :nth-child(2)').should('not.contain', 'cluster-1');
cy.get('.MuiPaper-root > .css-0 > :nth-child(2)').should('contain', '');
cy.get('.PrivateSwitchBase-input').should('not.be.checked').check({ force: false });
// Show scopes.
// When location is empty.
cy.get('#location').should('have.value', '');
// When idc is empty.
cy.get(':nth-child(2) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value',
'',
);
// When CIDRs is empty.
cy.get(':nth-child(3) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value',
'',
);
// When Hostname is empty.
cy.get(':nth-child(4) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value',
'',
);
// Show config.
cy.get('#seedPeerLoadLimit').should('have.value', 0);

View File

@ -70,8 +70,8 @@ describe('Update token', () => {
},
(req) => {
req.reply({
statusCode: 401,
body: { message: 'Not Found' },
statusCode: 200,
body: {},
});
},
);

View File

@ -290,7 +290,7 @@ export default function EditCluster() {
label: 'Hostnames',
enterMultiple: true,
scopesFormProps: {
value: hostnames,
value: hostnames || [],
options: [],
onChange: (_e: any, newValue: any) => {
@ -584,11 +584,11 @@ export default function EditCluster() {
const canSubmit = Boolean(
!informationForm.filter((item) => item.syncError).length &&
!scopesForm.filter((item) => item.syncError).length &&
!configForm.filter((item) => item.syncError).length &&
Boolean(!idcText) &&
Boolean(!cidrsText) &&
Boolean(!hostnamesText),
!scopesForm.filter((item) => item.syncError).length &&
!configForm.filter((item) => item.syncError).length &&
Boolean(!idcText) &&
Boolean(!cidrsText) &&
Boolean(!hostnamesText),
);
const formdata = {

View File

@ -178,7 +178,7 @@ export default function ShowCluster() {
}, [params.id, schedulerCurrentPage, seedPeerCurrentPage]);
useEffect(() => {
if (scheduler.length > 0) {
if (Array.isArray(scheduler) && scheduler.length >= 1) {
scheduler.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
scheduler.sort((a, b) => {
if (a.state < b.state) {
@ -198,11 +198,14 @@ export default function ShowCluster() {
setSchedulerTotalPages(totalPage);
setAllSchedlers(currentPageData);
} else {
setSchedulerTotalPages(1);
setAllSchedlers([]);
}
}, [scheduler, schedulerPage]);
useEffect(() => {
if (seedPeer.length > 0) {
if (Array.isArray(seedPeer) && seedPeer.length >= 1) {
seedPeer.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
seedPeer.sort((a, b) => {
if (a.state < b.state) {
@ -222,6 +225,9 @@ export default function ShowCluster() {
setSeedPeerTotalPages(totalPage);
setAllSeedPeers(currentPageData);
} else {
setSeedPeerTotalPages(1);
setAllSeedPeers([]);
}
}, [seedPeer, seedPeerPage]);
@ -359,16 +365,16 @@ export default function ShowCluster() {
const schedulers = searchSchedulers
? await getSchedulers({
scheduler_cluster_id: String(cluster.scheduler_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
host_name: searchSchedulers,
})
scheduler_cluster_id: String(cluster.scheduler_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
host_name: searchSchedulers,
})
: await getSchedulers({
scheduler_cluster_id: String(cluster.scheduler_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
});
scheduler_cluster_id: String(cluster.scheduler_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
});
if (schedulers.length > 0) {
setScheduler(schedulers);
@ -393,16 +399,16 @@ export default function ShowCluster() {
setSeedPeerTableIsLoading(true);
const seedPeers = searchSeedPeers
? await getSeedPeers({
seed_peer_cluster_id: String(cluster.seed_peer_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
host_name: searchSeedPeers,
})
seed_peer_cluster_id: String(cluster.seed_peer_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
host_name: searchSeedPeers,
})
: await getSeedPeers({
seed_peer_cluster_id: String(cluster.seed_peer_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
});
seed_peer_cluster_id: String(cluster.seed_peer_cluster_id),
page: 1,
per_page: MAX_PAGE_SIZE,
});
if (seedPeers.length > 0) {
setSeedPeer(seedPeers);
@ -890,8 +896,7 @@ export default function ShowCluster() {
onChange={(_event: any, newPage: number) => {
setSchedulerPage(newPage);
navigate(
`/clusters/${params.id}${newPage > 1 ? `?schedulerPage=${newPage}` : ''}${
seedPeerPage > 1 ? `${newPage > 1 ? '&' : '?'}seedPeerPage=${seedPeerPage}` : ''
`/clusters/${params.id}${newPage > 1 ? `?schedulerPage=${newPage}` : ''}${seedPeerPage > 1 ? `${newPage > 1 ? '&' : '?'}seedPeerPage=${seedPeerPage}` : ''
}`,
);
}}
@ -1177,8 +1182,7 @@ export default function ShowCluster() {
onChange={(_event: any, newPage: number) => {
setSeedPeerPage(newPage);
navigate(
`/clusters/${params.id}${schedulerPage > 1 ? `?schedulerPage=${schedulerPage}` : ''}${
newPage > 1 ? `${schedulerPage > 1 ? '&' : '?'}seedPeerPage=${newPage}` : ''
`/clusters/${params.id}${schedulerPage > 1 ? `?schedulerPage=${schedulerPage}` : ''}${newPage > 1 ? `${schedulerPage > 1 ? '&' : '?'}seedPeerPage=${newPage}` : ''
}`,
);
}}

View File

@ -87,7 +87,7 @@ export default function PersonalAccessTokens() {
}, [page]);
useEffect(() => {
if (token.length > 1) {
if (Array.isArray(token) && token.length >= 1) {
token.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
const totalPage = Math.ceil(token.length / DEFAULT_PAGE_SIZE);
@ -99,9 +99,14 @@ export default function PersonalAccessTokens() {
setTokensTotalPages(totalPage || 1);
setAllTokens(currentPageData);
} else {
setTokensTotalPages(1);
setAllTokens([]);
}
}, [token, tokensPage]);
console.log(token, allTokens);
const handleDeleteClose = async (row: any) => {
setOpenDeletToken(true);
setTokenSelectedID(row.id);