From c699673c05bdd36c0dae4af6ee5f643015d48e27 Mon Sep 17 00:00:00 2001 From: Keith Chong Date: Tue, 23 Apr 2024 17:21:48 -0400 Subject: [PATCH] feat: Provide Edit support in Sources tab for multi-source app (#17588) Signed-off-by: Keith Chong --- .../application-parameters.tsx | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/ui/src/app/applications/components/application-parameters/application-parameters.tsx b/ui/src/app/applications/components/application-parameters/application-parameters.tsx index 4868ef81eee38..65569c5dca169 100644 --- a/ui/src/app/applications/components/application-parameters/application-parameters.tsx +++ b/ui/src/app/applications/components/application-parameters/application-parameters.tsx @@ -154,9 +154,6 @@ export const ApplicationParameters = (props: { const appSources = app?.spec.sources; const [removedOverrides, setRemovedOverrides] = React.useState(new Array()); const collapsible = props.collapsedSources !== undefined && props.handleCollapse !== undefined; - - const attributes: EditablePanelItem[] = []; - const [appParamsDeletedState, setAppParamsDeletedState] = React.useState([]); if (app.spec.sources?.length > 0) { @@ -183,22 +180,32 @@ export const ApplicationParameters = (props: { ); } else { // For the other old/existings references of ApplicationParameters that have details already loaded. They are single source + let attributes: EditablePanelItem[] = []; if (props.details) { return getEditablePanel( gatherDetails(0, props.details, attributes, source, app, setRemovedOverrides, removedOverrides, appParamsDeletedState, setAppParamsDeletedState, false), - props.details, - app.spec.source + props.details ); } else { + // For single source field, for resource details where we have to do the load. return ( - getSingleSource(appSource)}> - {(details: models.RepoAppDetails) => - getEditablePanel( - gatherDetails(0, details, attributes, source, app, setRemovedOverrides, removedOverrides, appParamsDeletedState, setAppParamsDeletedState, false), + getSingleSource(application)}> + {(details: models.RepoAppDetails) => { + attributes = []; + const attr = gatherDetails( + 0, details, - app.spec.source - ) - } + attributes, + source, + app, + setRemovedOverrides, + removedOverrides, + appParamsDeletedState, + setAppParamsDeletedState, + false + ); + return getEditablePanel(attr, details); + }} ); } @@ -240,7 +247,7 @@ export const ApplicationParameters = (props: { )} - getSourceFromSources(application, index)}> + getSourceFromSources(application, index)}> {(details: models.RepoAppDetails) => getEditablePanelForOneSource(details, index, source)} @@ -248,7 +255,7 @@ export const ApplicationParameters = (props: { ); } - function getEditablePanel(items: EditablePanelItem[], repoAppDetails: models.RepoAppDetails, src: models.ApplicationSource): any { + function getEditablePanel(items: EditablePanelItem[], repoAppDetails: models.RepoAppDetails): any { return (
}); + attributes.push({ + title: 'REF', + view: {source.ref}, + edit: (formApi: FormApi) => + }); } } return attributes;