mirror of
https://github.com/apache/superset.git
synced 2024-09-18 11:39:49 -04:00
fix(ssh_tunnel): Display SSHTunnel Switch when editing a DB that was created with the Dynamic Form (#23195)
This commit is contained in:
parent
a70b7ac3b0
commit
218de6e6a4
@ -1532,6 +1532,69 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
|
|||||||
</StyledBtns>
|
</StyledBtns>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const renderDatabaseConnectionForm = () => (
|
||||||
|
<>
|
||||||
|
<DatabaseConnectionForm
|
||||||
|
isEditMode={isEditMode}
|
||||||
|
db={db as DatabaseObject}
|
||||||
|
sslForced={sslForced}
|
||||||
|
dbModel={dbModel}
|
||||||
|
onAddTableCatalog={() => {
|
||||||
|
setDB({ type: ActionType.addTableCatalogSheet });
|
||||||
|
}}
|
||||||
|
onQueryChange={({ target }: { target: HTMLInputElement }) =>
|
||||||
|
onChange(ActionType.queryChange, {
|
||||||
|
name: target.name,
|
||||||
|
value: target.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
|
||||||
|
onChange(ActionType.extraInputChange, {
|
||||||
|
name: target.name,
|
||||||
|
value: target.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onRemoveTableCatalog={(idx: number) => {
|
||||||
|
setDB({
|
||||||
|
type: ActionType.removeTableCatalogSheet,
|
||||||
|
payload: { indexToDelete: idx },
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
onParametersChange={({ target }: { target: HTMLInputElement }) =>
|
||||||
|
onChange(ActionType.parametersChange, {
|
||||||
|
type: target.type,
|
||||||
|
name: target.name,
|
||||||
|
checked: target.checked,
|
||||||
|
value: target.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onChange={({ target }: { target: HTMLInputElement }) =>
|
||||||
|
onChange(ActionType.textChange, {
|
||||||
|
name: target.name,
|
||||||
|
value: target.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getValidation={() => getValidation(db)}
|
||||||
|
validationErrors={validationErrors}
|
||||||
|
getPlaceholder={getPlaceholder}
|
||||||
|
/>
|
||||||
|
<SSHTunnelContainer>
|
||||||
|
<SSHTunnelSwitchComponent
|
||||||
|
isEditMode={isEditMode}
|
||||||
|
dbFetched={dbFetched}
|
||||||
|
disableSSHTunnelingForEngine={disableSSHTunnelingForEngine}
|
||||||
|
useSSHTunneling={useSSHTunneling}
|
||||||
|
setUseSSHTunneling={setUseSSHTunneling}
|
||||||
|
setDB={setDB}
|
||||||
|
isSSHTunneling={isSSHTunneling}
|
||||||
|
/>
|
||||||
|
</SSHTunnelContainer>
|
||||||
|
{useSSHTunneling && (
|
||||||
|
<SSHTunnelContainer>{renderSSHTunnelForm()}</SSHTunnelContainer>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
|
||||||
const renderFinishState = () => {
|
const renderFinishState = () => {
|
||||||
if (!editNewDb) {
|
if (!editNewDb) {
|
||||||
return (
|
return (
|
||||||
@ -1568,51 +1631,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (
|
return renderDatabaseConnectionForm();
|
||||||
<DatabaseConnectionForm
|
|
||||||
isEditMode
|
|
||||||
sslForced={sslForced}
|
|
||||||
dbModel={dbModel}
|
|
||||||
db={db as DatabaseObject}
|
|
||||||
onParametersChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.parametersChange, {
|
|
||||||
type: target.type,
|
|
||||||
name: target.name,
|
|
||||||
checked: target.checked,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.extraInputChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.textChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onQueryChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.queryChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onAddTableCatalog={() =>
|
|
||||||
setDB({ type: ActionType.addTableCatalogSheet })
|
|
||||||
}
|
|
||||||
onRemoveTableCatalog={(idx: number) =>
|
|
||||||
setDB({
|
|
||||||
type: ActionType.removeTableCatalogSheet,
|
|
||||||
payload: { indexToDelete: idx },
|
|
||||||
})
|
|
||||||
}
|
|
||||||
getValidation={() => getValidation(db)}
|
|
||||||
validationErrors={validationErrors}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -1758,49 +1777,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
|
|||||||
)}
|
)}
|
||||||
</StyledAlignment>
|
</StyledAlignment>
|
||||||
) : (
|
) : (
|
||||||
<DatabaseConnectionForm
|
renderDatabaseConnectionForm()
|
||||||
isEditMode
|
|
||||||
sslForced={sslForced}
|
|
||||||
dbModel={dbModel}
|
|
||||||
db={db as DatabaseObject}
|
|
||||||
onParametersChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.parametersChange, {
|
|
||||||
type: target.type,
|
|
||||||
name: target.name,
|
|
||||||
checked: target.checked,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.extraInputChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.textChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onQueryChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.queryChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onAddTableCatalog={() =>
|
|
||||||
setDB({ type: ActionType.addTableCatalogSheet })
|
|
||||||
}
|
|
||||||
onRemoveTableCatalog={(idx: number) =>
|
|
||||||
setDB({
|
|
||||||
type: ActionType.removeTableCatalogSheet,
|
|
||||||
payload: { indexToDelete: idx },
|
|
||||||
})
|
|
||||||
}
|
|
||||||
getValidation={() => getValidation(db)}
|
|
||||||
validationErrors={validationErrors}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
{!isEditMode && (
|
{!isEditMode && (
|
||||||
<StyledAlertMargin>
|
<StyledAlertMargin>
|
||||||
@ -1950,73 +1927,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
|
|||||||
dbModel={dbModel}
|
dbModel={dbModel}
|
||||||
/>
|
/>
|
||||||
{hasAlert && renderStepTwoAlert()}
|
{hasAlert && renderStepTwoAlert()}
|
||||||
<DatabaseConnectionForm
|
{renderDatabaseConnectionForm()}
|
||||||
db={db}
|
|
||||||
sslForced={sslForced}
|
|
||||||
dbModel={dbModel}
|
|
||||||
onAddTableCatalog={() => {
|
|
||||||
setDB({ type: ActionType.addTableCatalogSheet });
|
|
||||||
}}
|
|
||||||
onQueryChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.queryChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onExtraInputChange={({
|
|
||||||
target,
|
|
||||||
}: {
|
|
||||||
target: HTMLInputElement;
|
|
||||||
}) =>
|
|
||||||
onChange(ActionType.extraInputChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onRemoveTableCatalog={(idx: number) => {
|
|
||||||
setDB({
|
|
||||||
type: ActionType.removeTableCatalogSheet,
|
|
||||||
payload: { indexToDelete: idx },
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
onParametersChange={({
|
|
||||||
target,
|
|
||||||
}: {
|
|
||||||
target: HTMLInputElement;
|
|
||||||
}) =>
|
|
||||||
onChange(ActionType.parametersChange, {
|
|
||||||
type: target.type,
|
|
||||||
name: target.name,
|
|
||||||
checked: target.checked,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
onChange={({ target }: { target: HTMLInputElement }) =>
|
|
||||||
onChange(ActionType.textChange, {
|
|
||||||
name: target.name,
|
|
||||||
value: target.value,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
getValidation={() => getValidation(db)}
|
|
||||||
validationErrors={validationErrors}
|
|
||||||
getPlaceholder={getPlaceholder}
|
|
||||||
/>
|
|
||||||
<SSHTunnelContainer>
|
|
||||||
<SSHTunnelSwitchComponent
|
|
||||||
isEditMode={isEditMode}
|
|
||||||
dbFetched={dbFetched}
|
|
||||||
disableSSHTunnelingForEngine={disableSSHTunnelingForEngine}
|
|
||||||
useSSHTunneling={useSSHTunneling}
|
|
||||||
setUseSSHTunneling={setUseSSHTunneling}
|
|
||||||
setDB={setDB}
|
|
||||||
isSSHTunneling={isSSHTunneling}
|
|
||||||
/>
|
|
||||||
</SSHTunnelContainer>
|
|
||||||
{useSSHTunneling && (
|
|
||||||
<SSHTunnelContainer>
|
|
||||||
{renderSSHTunnelForm()}
|
|
||||||
</SSHTunnelContainer>
|
|
||||||
)}
|
|
||||||
<div css={(theme: SupersetTheme) => infoTooltip(theme)}>
|
<div css={(theme: SupersetTheme) => infoTooltip(theme)}>
|
||||||
{dbModel.engine !== Engines.GSheet && (
|
{dbModel.engine !== Engines.GSheet && (
|
||||||
<>
|
<>
|
||||||
|
Loading…
Reference in New Issue
Block a user