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:
parent
7e7d709107
commit
cd6e8d5fe2
|
|
@ -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([
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,8 @@ describe('Update token', () => {
|
||||||
},
|
},
|
||||||
(req) => {
|
(req) => {
|
||||||
req.reply({
|
req.reply({
|
||||||
statusCode: 401,
|
statusCode: 200,
|
||||||
body: { message: 'Not Found' },
|
body: {},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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}` : ''
|
|
||||||
}`,
|
}`,
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue