From eb5f6075a5b10bbada22df483f8a1df2a82ef4af Mon Sep 17 00:00:00 2001 From: Arash Date: Thu, 8 Jul 2021 17:55:35 -0400 Subject: [PATCH 1/6] first draft --- .../DatabaseModal/DatabaseConnectionForm.tsx | 52 ++++++++++++++----- .../data/database/DatabaseModal/index.tsx | 15 +++++- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx index ca4fd3a3af54..0ae851420055 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx @@ -66,6 +66,7 @@ interface FieldPropTypes { sslForced?: boolean; defaultDBName?: string; editNewDb?: boolean; + setPublicSheets: (value: string) => void; } const CredentialsInfo = ({ @@ -299,19 +300,42 @@ const displayField = ({ getValidation, validationErrors, db, + setPublicSheets, }: FieldPropTypes) => ( - + <> + + + {db?.engine === 'gsheets' && ( + <> + {t('Type of Google Sheets Allowed')} + + + )} + ); const queryField = ({ @@ -388,10 +412,13 @@ const DatabaseConnectionForm = ({ isEditMode = false, sslForced, editNewDb, + setPublicSheets, }: { isEditMode?: boolean; sslForced: boolean; editNewDb?: boolean; + isPublic?: boolean; + setPublicSheets: (value: string) => void; dbModel: DatabaseForm; db: Partial | null; onParametersChange: ( @@ -434,6 +461,7 @@ const DatabaseConnectionForm = ({ isEditMode, sslForced, editNewDb, + setPublicSheets, }), )} 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 6c397d41d6b1..df5c8ab13030 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -338,6 +338,7 @@ const DatabaseModal: FunctionComponent = ({ const [dbName, setDbName] = useState(''); const [editNewDb, setEditNewDb] = useState(false); const [isLoading, setLoading] = useState(false); + const [isPublic, setPublic] = useState(true); const conf = useCommonConf(); const dbImages = getDatabaseImages(); const connectionAlert = getConnectionAlert(); @@ -360,7 +361,7 @@ const DatabaseModal: FunctionComponent = ({ t('database'), addDangerToast, ); - + console.log(isPublic); const isDynamic = (engine: string | undefined) => availableDbs?.databases.filter( (DB: DatabaseObject) => DB.backend === engine || DB.engine === engine, @@ -530,6 +531,14 @@ const DatabaseModal: FunctionComponent = ({ } }; + const setPublicSheets = (value: string) => { + if (value === 'true') { + setPublic(true); + } else { + setPublic(false); + } + }; + const setDatabaseModel = (engine: string) => { const selectedDbModel = availableDbs?.databases.filter( (db: DatabaseObject) => db.engine === engine, @@ -802,6 +811,7 @@ const DatabaseModal: FunctionComponent = ({ isEditMode sslForced={sslForced} dbModel={dbModel} + setPublicSheets={setPublicSheets} db={db as DatabaseObject} onParametersChange={({ target }: { target: HTMLInputElement }) => onChange(ActionType.parametersChange, { @@ -912,6 +922,8 @@ const DatabaseModal: FunctionComponent = ({ ) : ( = ({ )} Date: Fri, 9 Jul 2021 13:24:53 -0400 Subject: [PATCH 2/6] added table_catalog --- .../DatabaseModal/DatabaseConnectionForm.tsx | 150 ++++++++++-------- .../data/database/DatabaseModal/index.tsx | 4 +- 2 files changed, 88 insertions(+), 66 deletions(-) diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx index 0ae851420055..c151a067586e 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm.tsx @@ -46,6 +46,7 @@ export const FormFieldOrder = [ 'password', 'database_name', 'credentials_info', + 'table_catalog', 'query', 'encryption', ]; @@ -67,6 +68,7 @@ interface FieldPropTypes { defaultDBName?: string; editNewDb?: boolean; setPublicSheets: (value: string) => void; + isPublic?: boolean; } const CredentialsInfo = ({ @@ -74,6 +76,7 @@ const CredentialsInfo = ({ isEditMode, db, editNewDb, + isPublic, }: FieldPropTypes) => { const [uploadOption, setUploadOption] = useState( CredentialInfoOptions.jsonUpload.valueOf(), @@ -81,9 +84,10 @@ const CredentialsInfo = ({ const [fileToUpload, setFileToUpload] = useState( null, ); + console.log('in credentials', isPublic); return ( - {!isEditMode && ( + {!isEditMode && db?.engine === 'bigquery' && ( <> {t('How do you want to enter service account credentials?')} @@ -105,9 +109,10 @@ const CredentialsInfo = ({ )} {uploadOption === CredentialInfoOptions.copyPaste || isEditMode || - editNewDb ? ( + editNewDb || + (db?.engine === 'gsheets' && !isPublic) ? (
- {t('Service Account')} + {t('Service Account Information')}