diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx index 34c21466bec8d..a608f1468a6d6 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx @@ -76,6 +76,7 @@ export const databaseField = ({ changeMethods, getValidation, validationErrors, + placeholder, db, }: FieldPropTypes) => ( ); export const usernameField = ({ diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/index.tsx index 84108e40dcc65..e9b562a919910 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/index.tsx @@ -57,6 +57,7 @@ export interface FieldPropTypes { required: boolean; hasTooltip?: boolean; tooltipText?: (value: any) => string; + placeholder?: string; onParametersChange: (value: any) => string; onParametersUploadFileChange: (value: any) => string; changeMethods: { onParametersChange: (value: any) => string } & { @@ -108,6 +109,7 @@ const DatabaseConnectionForm = ({ isEditMode = false, sslForced, editNewDb, + getPlaceholder, }: { isEditMode?: boolean; sslForced: boolean; @@ -130,6 +132,7 @@ const DatabaseConnectionForm = ({ onRemoveTableCatalog: (idx: number) => void; validationErrors: JsonObject | null; getValidation: () => void; + getPlaceholder?: (field: string) => string | undefined; }) => (
diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx index 681d0a1f79611..5283049e8cc7e 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -59,6 +59,7 @@ import { DatabaseForm, CONFIGURATION_METHOD, CatalogObject, + Engines, } from 'src/views/CRUD/data/database/types'; import Loading from 'src/components/Loading'; import ExtraOptions from './ExtraOptions'; @@ -87,11 +88,6 @@ import { } from './styles'; import ModalHeader, { DOCUMENTATION_LINK } from './ModalHeader'; -enum Engines { - GSheet = 'gsheets', - Snowflake = 'snowflake', -} - const engineSpecificAlertMapping = { [Engines.GSheet]: { message: 'Why do I need to create a database?', @@ -519,6 +515,18 @@ const DatabaseModal: FunctionComponent = ({ ); }; + const getPlaceholder = (field: string) => { + if (field === 'database') { + switch (db?.engine) { + case Engines.Snowflake: + return t('e.g. xy12345.us-east-2.aws'); + default: + return t('e.g. world_population'); + } + } + return undefined; + }; + const removeFile = (removedFile: UploadFile) => { setFileList(fileList.filter(file => file.uid !== removedFile.uid)); return false; @@ -1617,6 +1625,7 @@ const DatabaseModal: FunctionComponent = ({ } getValidation={() => getValidation(db)} validationErrors={validationErrors} + getPlaceholder={getPlaceholder} />
infoTooltip(theme)}> {dbModel.engine !== Engines.GSheet && ( diff --git a/superset-frontend/src/views/CRUD/data/database/types.ts b/superset-frontend/src/views/CRUD/data/database/types.ts index d48fa956e28b2..e42a8f6429b69 100644 --- a/superset-frontend/src/views/CRUD/data/database/types.ts +++ b/superset-frontend/src/views/CRUD/data/database/types.ts @@ -161,3 +161,8 @@ export enum CONFIGURATION_METHOD { SQLALCHEMY_URI = 'sqlalchemy_form', DYNAMIC_FORM = 'dynamic_form', } + +export enum Engines { + GSheet = 'gsheets', + Snowflake = 'snowflake', +}