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'), crypto: require.resolve('crypto-browserify'),
stream: require.resolve('stream-browserify'), stream: require.resolve('stream-browserify'),
querystring: require.resolve('query-string'), querystring: require.resolve('query-string'),
vm: false,
}); });
config.resolve.fallback = fallback; config.resolve.fallback = fallback;
config.plugins = (config.plugins || []).concat([ config.plugins = (config.plugins || []).concat([

View File

@ -82,35 +82,69 @@ describe('Update cluster', () => {
cy.intercept( cy.intercept(
{ {
method: 'GET', method: 'GET',
url: '/api/v1/clusters/1', url: '/api/v1/clusters/2',
}, },
(req) => { (req) => {
req.reply({ req.reply({
statusCode: 401, statusCode: 200,
body: { message: 'Not Found' }, 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. // 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 }); cy.get('.PrivateSwitchBase-input').should('not.be.checked').check({ force: false });
// Show scopes. // When location is empty.
cy.get('#location').should('have.value', ''); cy.get('#location').should('have.value', '');
// When idc is empty.
cy.get(':nth-child(2) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should( cy.get(':nth-child(2) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value', 'have.value',
'', '',
); );
// When CIDRs is empty.
cy.get(':nth-child(3) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should( cy.get(':nth-child(3) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value', 'have.value',
'', '',
); );
// When Hostname is empty.
cy.get(':nth-child(4) > .MuiAutocomplete-root > .MuiFormControl-root > .MuiInputBase-root').should(
'have.value',
'',
);
// Show config. // Show config.
cy.get('#seedPeerLoadLimit').should('have.value', 0); cy.get('#seedPeerLoadLimit').should('have.value', 0);

View File

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

View File

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

View File

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

View File

@ -87,7 +87,7 @@ export default function PersonalAccessTokens() {
}, [page]); }, [page]);
useEffect(() => { 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()); 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); const totalPage = Math.ceil(token.length / DEFAULT_PAGE_SIZE);
@ -99,9 +99,14 @@ export default function PersonalAccessTokens() {
setTokensTotalPages(totalPage || 1); setTokensTotalPages(totalPage || 1);
setAllTokens(currentPageData); setAllTokens(currentPageData);
} else {
setTokensTotalPages(1);
setAllTokens([]);
} }
}, [token, tokensPage]); }, [token, tokensPage]);
console.log(token, allTokens);
const handleDeleteClose = async (row: any) => { const handleDeleteClose = async (row: any) => {
setOpenDeletToken(true); setOpenDeletToken(true);
setTokenSelectedID(row.id); setTokenSelectedID(row.id);