|
|
|
@ -8,7 +8,7 @@ import {
|
|
|
|
|
DefaultConnection, |
|
|
|
|
SQLiteConnection, |
|
|
|
|
SSLUsage, |
|
|
|
|
clientTypes, |
|
|
|
|
clientTypes as _clientTypes, |
|
|
|
|
computed, |
|
|
|
|
extractSdkResponseErrorMsg, |
|
|
|
|
fieldRequiredValidator, |
|
|
|
@ -21,6 +21,7 @@ import {
|
|
|
|
|
readFile, |
|
|
|
|
ref, |
|
|
|
|
useApi, |
|
|
|
|
useGlobal, |
|
|
|
|
useI18n, |
|
|
|
|
useNuxtApp, |
|
|
|
|
watch, |
|
|
|
@ -30,6 +31,8 @@ const { connectionType } = defineProps<{ connectionType: ClientType }>()
|
|
|
|
|
|
|
|
|
|
const emit = defineEmits(['baseCreated']) |
|
|
|
|
|
|
|
|
|
const { appInfo } = useGlobal() |
|
|
|
|
|
|
|
|
|
const { project, loadProject } = useProject() |
|
|
|
|
|
|
|
|
|
const useForm = Form.useForm |
|
|
|
@ -68,23 +71,29 @@ const customFormState = ref<ProjectCreateForm>({
|
|
|
|
|
extraParameters: [], |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const clientTypes = computed(() => { |
|
|
|
|
return _clientTypes.filter((type) => { |
|
|
|
|
return appInfo.value?.ee || type.value !== ClientType.SNOWFLAKE |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const validators = computed(() => { |
|
|
|
|
return { |
|
|
|
|
'title': [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: 'Base name is required', |
|
|
|
|
}, |
|
|
|
|
projectTitleValidator, |
|
|
|
|
], |
|
|
|
|
'extraParameters': [extraParameterValidator], |
|
|
|
|
'dataSource.client': [fieldRequiredValidator()], |
|
|
|
|
...(formState.dataSource.client === ClientType.SQLITE |
|
|
|
|
? { |
|
|
|
|
let clientValidations: Record<string, any[]> = { |
|
|
|
|
'dataSource.connection.host': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.port': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.user': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.password': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.database': [fieldRequiredValidator()], |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (formState.dataSource.client) { |
|
|
|
|
case ClientType.SQLITE: |
|
|
|
|
clientValidations = { |
|
|
|
|
'dataSource.connection.connection.filename': [fieldRequiredValidator()], |
|
|
|
|
} |
|
|
|
|
: formState.dataSource.client === ClientType.SNOWFLAKE |
|
|
|
|
? { |
|
|
|
|
break |
|
|
|
|
case ClientType.SNOWFLAKE: |
|
|
|
|
clientValidations = { |
|
|
|
|
'dataSource.connection.account': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.username': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.password': [fieldRequiredValidator()], |
|
|
|
@ -92,18 +101,24 @@ const validators = computed(() => {
|
|
|
|
|
'dataSource.connection.database': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.schema': [fieldRequiredValidator()], |
|
|
|
|
} |
|
|
|
|
: { |
|
|
|
|
'dataSource.connection.host': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.port': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.user': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.password': [fieldRequiredValidator()], |
|
|
|
|
'dataSource.connection.database': [fieldRequiredValidator()], |
|
|
|
|
...([ClientType.PG, ClientType.MSSQL].includes(formState.dataSource.client) |
|
|
|
|
? { |
|
|
|
|
'dataSource.searchPath.0': [fieldRequiredValidator()], |
|
|
|
|
break |
|
|
|
|
case ClientType.PG: |
|
|
|
|
case ClientType.MSSQL: |
|
|
|
|
clientValidations['dataSource.searchPath.0'] = [fieldRequiredValidator()] |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
: {}), |
|
|
|
|
}), |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
'title': [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: 'Project name is required', |
|
|
|
|
}, |
|
|
|
|
projectTitleValidator, |
|
|
|
|
], |
|
|
|
|
'extraParameters': [extraParameterValidator], |
|
|
|
|
'dataSource.client': [fieldRequiredValidator()], |
|
|
|
|
...clientValidations, |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|