Skip to content

Commit 218de6e

Browse files
fix(ssh_tunnel): Display SSHTunnel Switch when editing a DB that was created with the Dynamic Form (#23195)
1 parent a70b7ac commit 218de6e

File tree

1 file changed

+66
-155
lines changed
  • superset-frontend/src/views/CRUD/data/database/DatabaseModal

1 file changed

+66
-155
lines changed

superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Lines changed: 66 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,6 +1532,69 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
15321532
</StyledBtns>
15331533
);
15341534

1535+
const renderDatabaseConnectionForm = () => (
1536+
<>
1537+
<DatabaseConnectionForm
1538+
isEditMode={isEditMode}
1539+
db={db as DatabaseObject}
1540+
sslForced={sslForced}
1541+
dbModel={dbModel}
1542+
onAddTableCatalog={() => {
1543+
setDB({ type: ActionType.addTableCatalogSheet });
1544+
}}
1545+
onQueryChange={({ target }: { target: HTMLInputElement }) =>
1546+
onChange(ActionType.queryChange, {
1547+
name: target.name,
1548+
value: target.value,
1549+
})
1550+
}
1551+
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
1552+
onChange(ActionType.extraInputChange, {
1553+
name: target.name,
1554+
value: target.value,
1555+
})
1556+
}
1557+
onRemoveTableCatalog={(idx: number) => {
1558+
setDB({
1559+
type: ActionType.removeTableCatalogSheet,
1560+
payload: { indexToDelete: idx },
1561+
});
1562+
}}
1563+
onParametersChange={({ target }: { target: HTMLInputElement }) =>
1564+
onChange(ActionType.parametersChange, {
1565+
type: target.type,
1566+
name: target.name,
1567+
checked: target.checked,
1568+
value: target.value,
1569+
})
1570+
}
1571+
onChange={({ target }: { target: HTMLInputElement }) =>
1572+
onChange(ActionType.textChange, {
1573+
name: target.name,
1574+
value: target.value,
1575+
})
1576+
}
1577+
getValidation={() => getValidation(db)}
1578+
validationErrors={validationErrors}
1579+
getPlaceholder={getPlaceholder}
1580+
/>
1581+
<SSHTunnelContainer>
1582+
<SSHTunnelSwitchComponent
1583+
isEditMode={isEditMode}
1584+
dbFetched={dbFetched}
1585+
disableSSHTunnelingForEngine={disableSSHTunnelingForEngine}
1586+
useSSHTunneling={useSSHTunneling}
1587+
setUseSSHTunneling={setUseSSHTunneling}
1588+
setDB={setDB}
1589+
isSSHTunneling={isSSHTunneling}
1590+
/>
1591+
</SSHTunnelContainer>
1592+
{useSSHTunneling && (
1593+
<SSHTunnelContainer>{renderSSHTunnelForm()}</SSHTunnelContainer>
1594+
)}
1595+
</>
1596+
);
1597+
15351598
const renderFinishState = () => {
15361599
if (!editNewDb) {
15371600
return (
@@ -1568,51 +1631,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
15681631
/>
15691632
);
15701633
}
1571-
return (
1572-
<DatabaseConnectionForm
1573-
isEditMode
1574-
sslForced={sslForced}
1575-
dbModel={dbModel}
1576-
db={db as DatabaseObject}
1577-
onParametersChange={({ target }: { target: HTMLInputElement }) =>
1578-
onChange(ActionType.parametersChange, {
1579-
type: target.type,
1580-
name: target.name,
1581-
checked: target.checked,
1582-
value: target.value,
1583-
})
1584-
}
1585-
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
1586-
onChange(ActionType.extraInputChange, {
1587-
name: target.name,
1588-
value: target.value,
1589-
})
1590-
}
1591-
onChange={({ target }: { target: HTMLInputElement }) =>
1592-
onChange(ActionType.textChange, {
1593-
name: target.name,
1594-
value: target.value,
1595-
})
1596-
}
1597-
onQueryChange={({ target }: { target: HTMLInputElement }) =>
1598-
onChange(ActionType.queryChange, {
1599-
name: target.name,
1600-
value: target.value,
1601-
})
1602-
}
1603-
onAddTableCatalog={() =>
1604-
setDB({ type: ActionType.addTableCatalogSheet })
1605-
}
1606-
onRemoveTableCatalog={(idx: number) =>
1607-
setDB({
1608-
type: ActionType.removeTableCatalogSheet,
1609-
payload: { indexToDelete: idx },
1610-
})
1611-
}
1612-
getValidation={() => getValidation(db)}
1613-
validationErrors={validationErrors}
1614-
/>
1615-
);
1634+
return renderDatabaseConnectionForm();
16161635
};
16171636

16181637
if (
@@ -1758,49 +1777,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
17581777
)}
17591778
</StyledAlignment>
17601779
) : (
1761-
<DatabaseConnectionForm
1762-
isEditMode
1763-
sslForced={sslForced}
1764-
dbModel={dbModel}
1765-
db={db as DatabaseObject}
1766-
onParametersChange={({ target }: { target: HTMLInputElement }) =>
1767-
onChange(ActionType.parametersChange, {
1768-
type: target.type,
1769-
name: target.name,
1770-
checked: target.checked,
1771-
value: target.value,
1772-
})
1773-
}
1774-
onExtraInputChange={({ target }: { target: HTMLInputElement }) =>
1775-
onChange(ActionType.extraInputChange, {
1776-
name: target.name,
1777-
value: target.value,
1778-
})
1779-
}
1780-
onChange={({ target }: { target: HTMLInputElement }) =>
1781-
onChange(ActionType.textChange, {
1782-
name: target.name,
1783-
value: target.value,
1784-
})
1785-
}
1786-
onQueryChange={({ target }: { target: HTMLInputElement }) =>
1787-
onChange(ActionType.queryChange, {
1788-
name: target.name,
1789-
value: target.value,
1790-
})
1791-
}
1792-
onAddTableCatalog={() =>
1793-
setDB({ type: ActionType.addTableCatalogSheet })
1794-
}
1795-
onRemoveTableCatalog={(idx: number) =>
1796-
setDB({
1797-
type: ActionType.removeTableCatalogSheet,
1798-
payload: { indexToDelete: idx },
1799-
})
1800-
}
1801-
getValidation={() => getValidation(db)}
1802-
validationErrors={validationErrors}
1803-
/>
1780+
renderDatabaseConnectionForm()
18041781
)}
18051782
{!isEditMode && (
18061783
<StyledAlertMargin>
@@ -1950,73 +1927,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
19501927
dbModel={dbModel}
19511928
/>
19521929
{hasAlert && renderStepTwoAlert()}
1953-
<DatabaseConnectionForm
1954-
db={db}
1955-
sslForced={sslForced}
1956-
dbModel={dbModel}
1957-
onAddTableCatalog={() => {
1958-
setDB({ type: ActionType.addTableCatalogSheet });
1959-
}}
1960-
onQueryChange={({ target }: { target: HTMLInputElement }) =>
1961-
onChange(ActionType.queryChange, {
1962-
name: target.name,
1963-
value: target.value,
1964-
})
1965-
}
1966-
onExtraInputChange={({
1967-
target,
1968-
}: {
1969-
target: HTMLInputElement;
1970-
}) =>
1971-
onChange(ActionType.extraInputChange, {
1972-
name: target.name,
1973-
value: target.value,
1974-
})
1975-
}
1976-
onRemoveTableCatalog={(idx: number) => {
1977-
setDB({
1978-
type: ActionType.removeTableCatalogSheet,
1979-
payload: { indexToDelete: idx },
1980-
});
1981-
}}
1982-
onParametersChange={({
1983-
target,
1984-
}: {
1985-
target: HTMLInputElement;
1986-
}) =>
1987-
onChange(ActionType.parametersChange, {
1988-
type: target.type,
1989-
name: target.name,
1990-
checked: target.checked,
1991-
value: target.value,
1992-
})
1993-
}
1994-
onChange={({ target }: { target: HTMLInputElement }) =>
1995-
onChange(ActionType.textChange, {
1996-
name: target.name,
1997-
value: target.value,
1998-
})
1999-
}
2000-
getValidation={() => getValidation(db)}
2001-
validationErrors={validationErrors}
2002-
getPlaceholder={getPlaceholder}
2003-
/>
2004-
<SSHTunnelContainer>
2005-
<SSHTunnelSwitchComponent
2006-
isEditMode={isEditMode}
2007-
dbFetched={dbFetched}
2008-
disableSSHTunnelingForEngine={disableSSHTunnelingForEngine}
2009-
useSSHTunneling={useSSHTunneling}
2010-
setUseSSHTunneling={setUseSSHTunneling}
2011-
setDB={setDB}
2012-
isSSHTunneling={isSSHTunneling}
2013-
/>
2014-
</SSHTunnelContainer>
2015-
{useSSHTunneling && (
2016-
<SSHTunnelContainer>
2017-
{renderSSHTunnelForm()}
2018-
</SSHTunnelContainer>
2019-
)}
1930+
{renderDatabaseConnectionForm()}
20201931
<div css={(theme: SupersetTheme) => infoTooltip(theme)}>
20211932
{dbModel.engine !== Engines.GSheet && (
20221933
<>

0 commit comments

Comments
 (0)