Skip to content

Commit 936195c

Browse files
committed
[KNOWAGE-9904] restore multischema attributes in datasource creation
1 parent 6abadec commit 936195c

2 files changed

Lines changed: 35 additions & 2 deletions

File tree

src/modules/managers/dataSourceManagement/DataSourceTabView/DataSourceDetail.vue

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
<q-btn-toggle
8080
v-model="jdbcOrJndi.type"
8181
toggle-color="primary"
82+
@update:model-value="clearType"
8283
:options="[
8384
{ label: 'JDBC', value: 'JDBC', disabled: readOnly, title: $t('managers.dataSourceManagement.form.jdbcInfo') },
8485
{ label: 'JNDI', value: 'JNDI', disabled: readOnly || !currentUser.isSuperadmin, title: $t('managers.dataSourceManagement.form.jndiInfo') }
@@ -103,6 +104,32 @@
103104
</template>
104105
</q-input>
105106
</div>
107+
<div v-if="jdbcOrJndi.type == 'JNDI'" class="row q-mt-sm q-col-gutter-sm">
108+
<div class="col-12">
109+
<q-checkbox
110+
v-model="datasource.multiSchema"
111+
size="sm"
112+
:disable="readOnly"
113+
:label="$t('managers.dataSourceManagement.form.multischema')"
114+
@update:model-value="onFieldChange"
115+
data-test="multischema-checkbox"
116+
/>
117+
</div>
118+
<div v-if="datasource.multiSchema" class="col-12">
119+
<q-input
120+
filled
121+
dense
122+
v-model="v$.datasource.schemaAttribute.$model"
123+
maxlength="45"
124+
:disable="readOnly"
125+
:error="v$.datasource.schemaAttribute.$invalid && v$.datasource.schemaAttribute.$dirty"
126+
:label="$t('managers.dataSourceManagement.form.schemaAttribute')"
127+
@update:model-value="onFieldChange"
128+
data-test="schema-attribute-input"
129+
/>
130+
<KnValidationMessages :v-comp="v$.datasource.schemaAttribute" :additional-translate-params="{ fieldName: $t('managers.dataSourceManagement.form.schemaAttribute') }" />
131+
</div>
132+
</div>
106133
<div v-if="jdbcOrJndi.type == 'JDBC'" class="row q-mt-md q-col-gutter-sm">
107134
<q-input
108135
filled
@@ -155,6 +182,7 @@
155182
/* eslint-disable no-prototype-builtins */
156183
import { defineComponent } from 'vue'
157184
import { createValidations, ICustomValidatorMap } from '@/helpers/commons/validationHelper'
185+
import { extendedAlphanumeric } from '@/helpers/commons/regexHelper'
158186
import { AxiosResponse } from 'axios'
159187
import useValidate from '@vuelidate/core'
160188
import dataSourceDescriptor from '../DataSourceDescriptor.json'
@@ -274,10 +302,14 @@ export default defineComponent({
274302
const jndiTypeFormat = (value) => {
275303
return this.jdbcOrJndi.type != 'JNDI' || value.match(/java:comp\/env\/jdbc\/[A-Za-z\d\-_|#$]+/g)
276304
}
305+
const schemaAttributeRegex = (value) => {
306+
return this.jdbcOrJndi.type != 'JNDI' || !this.datasource.multiSchema || extendedAlphanumeric.test(value ?? '')
307+
}
277308
const customValidators: ICustomValidatorMap = {
278309
'jndi-name-required': jndiTypeRequired('JNDI'),
279310
'jdbc-data-required': jndiTypeRequired('JDBC'),
280-
'jndi-format': jndiTypeFormat
311+
'jndi-format': jndiTypeFormat,
312+
'schema-attribute-regex': schemaAttributeRegex
281313
}
282314
const validationObject = {
283315
datasource: createValidations('datasource', dataSourceDetailValidationDescriptor.validations.datasource, customValidators)
@@ -370,6 +402,7 @@ export default defineComponent({
370402
}
371403
}
372404
}
405+
this.onFieldChange()
373406
},
374407
375408
checkIfReadOnly() {

src/modules/managers/dataSourceManagement/DataSourceTabView/DataSourceDetailValidationDescriptor.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
{
2424
"key": "regex",
2525
"validator": {
26-
"type": "extendedAlphanumericRegex"
26+
"type": "schema-attribute-regex"
2727
}
2828
}
2929
]

0 commit comments

Comments
 (0)