diff --git a/packages/nc-gui-v2/pages/index/index/create-external.vue b/packages/nc-gui-v2/pages/index/index/create-external.vue index b8cd93585f..f76bc47a8f 100644 --- a/packages/nc-gui-v2/pages/index/index/create-external.vue +++ b/packages/nc-gui-v2/pages/index/index/create-external.vue @@ -2,7 +2,8 @@ import { Form, Modal, message } from 'ant-design-vue' import type { SelectHandler } from 'ant-design-vue/es/vc-select/Select' import { - certTypes, + CertTypes, + SSLUsage, clientTypes, computed, extractSdkResponseErrorMsg, @@ -16,7 +17,6 @@ import { projectTitleValidator, readFile, ref, - sslUsage, useApi, useI18n, useNuxtApp, @@ -24,6 +24,7 @@ import { watch, } from '#imports' import { ClientType } from '~/lib' +import { DefaultConnection, SQLiteConnection } from '~/utils' import type { ProjectCreateForm } from '~/utils' const useForm = Form.useForm @@ -47,7 +48,7 @@ let formState = $ref({ inflectionColumn: 'camelize', inflectionTable: 'camelize', }, - sslUse: sslUsage.No, + sslUse: SSLUsage.No, extraParameters: [], }) @@ -58,7 +59,7 @@ const customFormState = ref({ inflectionColumn: 'camelize', inflectionTable: 'camelize', }, - sslUse: sslUsage.No, + sslUse: SSLUsage.No, extraParameters: [], }) @@ -103,33 +104,39 @@ const onClientChange = () => { populateName(formState.title) } -const onSSLModeChange = ((mode: sslUsage) => { - switch (mode) { - case sslUsage.No: - delete formState.dataSource.connection.ssl - break - case sslUsage.Allowed: - formState.dataSource.connection.ssl = 'true' - break - default: - formState.dataSource.connection.ssl = { - ca: '', - cert: '', - key: '', - } - break +const onSSLModeChange = ((mode: SSLUsage) => { + if (formState.dataSource.client !== ClientType.SQLITE) { + const connection = formState.dataSource.connection as DefaultConnection + switch (mode) { + case SSLUsage.No: + delete connection.ssl + break + case SSLUsage.Allowed: + connection.ssl = 'true' + break + default: + connection.ssl = { + ca: '', + cert: '', + key: '', + } + break + } } }) as SelectHandler const updateSSLUse = () => { - if (formState.dataSource.connection.ssl) { - if (typeof formState.dataSource.connection.ssl === 'string') { - formState.sslUse = sslUsage.Allowed + if (formState.dataSource.client !== ClientType.SQLITE) { + const connection = formState.dataSource.connection as DefaultConnection + if (connection.ssl) { + if (typeof connection.ssl === 'string') { + formState.sslUse = SSLUsage.Allowed + } else { + formState.sslUse = SSLUsage.Preferred + } } else { - formState.sslUse = sslUsage.Preferred + formState.sslUse = SSLUsage.No } - } else { - formState.sslUse = sslUsage.No } } @@ -150,7 +157,7 @@ const caFileInput = ref() const keyFileInput = ref() const certFileInput = ref() -const onFileSelect = (key: certTypes, el?: HTMLInputElement) => { +const onFileSelect = (key: CertTypes, el?: HTMLInputElement) => { if (!el) return readFile(el, (content) => { @@ -160,7 +167,7 @@ const onFileSelect = (key: certTypes, el?: HTMLInputElement) => { } const sslFilesRequired = computed( - () => !!formState.sslUse && formState.sslUse !== sslUsage.No && formState.sslUse !== sslUsage.Allowed, + () => !!formState.sslUse && formState.sslUse !== SSLUsage.No && formState.sslUse !== SSLUsage.Allowed, ) function getConnectionConfig() { @@ -173,7 +180,7 @@ function getConnectionConfig() { if ('ssl' in connection && connection.ssl) { if ( - formState.sslUse === sslUsage.No || + formState.sslUse === SSLUsage.No || (typeof connection.ssl === 'object' && Object.values(connection.ssl).every((v) => !v)) ) { delete connection.ssl @@ -365,28 +372,34 @@ onMounted(() => { :label="$t('labels.sqliteFile')" v-bind="validateInfos['dataSource.connection.connection.filename']" > - +