|
|
|
@ -40,9 +40,11 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
formKeyPath: FormItem; |
|
|
|
|
formKrb5File: FormItem; |
|
|
|
|
labelTips: Label; |
|
|
|
|
schemaForm: FormItem; |
|
|
|
|
|
|
|
|
|
form = { |
|
|
|
|
connectionName: null, |
|
|
|
|
version: null, |
|
|
|
|
driver: null, |
|
|
|
|
database: null, |
|
|
|
|
host: null, |
|
|
|
@ -138,8 +140,8 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
} = connectionPoolAttr as ConnectionPoolJDBC; |
|
|
|
|
const databaseType = getJdbcDatabaseType(database, driver); |
|
|
|
|
this.databaseType = databaseType; |
|
|
|
|
|
|
|
|
|
const { host, port, databaseName } = resolveUrlInfo(url, database); |
|
|
|
|
const { host, port, databaseName, version } = resolveUrlInfo(url, database); |
|
|
|
|
this.version = !BI.isUndefined(databaseType.versions) ? (version ?? databaseType.versions[0]) : version; |
|
|
|
|
const { hgap, vgap } = CONNECTION_LAYOUT; |
|
|
|
|
|
|
|
|
|
const valueRangeConfig = { |
|
|
|
@ -171,6 +173,41 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
// 版本
|
|
|
|
|
{ |
|
|
|
|
type: FormItem.xtype, |
|
|
|
|
name: BI.i18nText('Dec-Basic_Version'), |
|
|
|
|
invisible: BI.isUndefined(databaseType.versions), |
|
|
|
|
forms: [ |
|
|
|
|
{ |
|
|
|
|
type: BI.TextValueCombo.xtype, |
|
|
|
|
width: 300, |
|
|
|
|
value: this.version, |
|
|
|
|
items: () => databaseType.versions.map(item => { |
|
|
|
|
return { |
|
|
|
|
text: BI.i18nText('Dec-Migration_Database_Version', item), |
|
|
|
|
value: item, |
|
|
|
|
} |
|
|
|
|
}), |
|
|
|
|
ref: (_ref: TextValueCombo) => { |
|
|
|
|
this.form.version = _ref; |
|
|
|
|
}, |
|
|
|
|
listeners: [ |
|
|
|
|
{ |
|
|
|
|
eventName: BI.TextValueCombo.EVENT_CHANGE, |
|
|
|
|
action: () => { |
|
|
|
|
const version = this.form.version.getValue()[0]; |
|
|
|
|
this.version = version; |
|
|
|
|
this.sslCollapse.setCollapse(true); |
|
|
|
|
this.sslCollapse.setVisible(this.getSslSetEnabled()); |
|
|
|
|
!BI.isUndefined(databaseType.hasSchemas) && this.schemaForm.setVisible(databaseType.hasSchemas[version]); |
|
|
|
|
this.form.driver.setDefaultDrivers(version); |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
// 驱动
|
|
|
|
|
{ |
|
|
|
|
type: FormItem.xtype, |
|
|
|
@ -184,6 +221,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
driver, |
|
|
|
|
driverSource, |
|
|
|
|
connectionData, |
|
|
|
|
version: this.version, |
|
|
|
|
listeners: [ |
|
|
|
|
{ |
|
|
|
|
eventName: 'EVENT_CHANGE', |
|
|
|
@ -405,7 +443,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
{ |
|
|
|
|
eventName: FileUpload.EVENT_CHECK_SUCCESS, |
|
|
|
|
action: (value) => { |
|
|
|
|
const principalsItems = BI.map(value.principals, function(index, item) { |
|
|
|
|
const principalsItems = BI.map(value.principals, function (index, item) { |
|
|
|
|
return { |
|
|
|
|
text: item, |
|
|
|
|
value: item |
|
|
|
@ -485,7 +523,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
action: () => { |
|
|
|
|
this.setKerberos(); |
|
|
|
|
}, |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
@ -510,7 +548,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
// 模式
|
|
|
|
|
{ |
|
|
|
|
type: FormItem.xtype, |
|
|
|
|
invisible: !databaseType.hasSchema, |
|
|
|
|
invisible: BI.isUndefined(databaseType.hasSchemas) ? !databaseType.hasSchema : !databaseType.hasSchemas[this.version], |
|
|
|
|
height: 64, |
|
|
|
|
name: BI.i18nText('Dec-Dcm_Connection_Form_Pattern'), |
|
|
|
|
forms: [ |
|
|
|
@ -551,6 +589,9 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
ref: (_ref: FormItem) => { |
|
|
|
|
this.schemaForm = _ref; |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
// 分隔线
|
|
|
|
|
{ |
|
|
|
@ -866,6 +907,9 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
width: 100, |
|
|
|
|
name: BI.i18nText('Dec-Dcm_Connection_Setting', 'SSL'), |
|
|
|
|
invisible: !this.getSslSetEnabled(), |
|
|
|
|
ref: (_ref: Collapse) => { |
|
|
|
|
this.sslCollapse = _ref; |
|
|
|
|
}, |
|
|
|
|
listeners: [ |
|
|
|
|
{ |
|
|
|
|
eventName: EVENT_CHANGE, |
|
|
|
@ -1252,17 +1296,17 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
const connectionType = getJdbcDatabaseType(connectionData.database, connectionData.driver); |
|
|
|
|
const drivers = connectionType.drivers |
|
|
|
|
? connectionType.drivers.map((item) => { |
|
|
|
|
return { |
|
|
|
|
text: item, |
|
|
|
|
value: item, |
|
|
|
|
}; |
|
|
|
|
}) |
|
|
|
|
return { |
|
|
|
|
text: item, |
|
|
|
|
value: item, |
|
|
|
|
}; |
|
|
|
|
}) |
|
|
|
|
: [ |
|
|
|
|
{ |
|
|
|
|
text: connectionType.driver, |
|
|
|
|
value: connectionType.driver, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
{ |
|
|
|
|
text: connectionType.driver, |
|
|
|
|
value: connectionType.driver, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
if (!drivers.some((item) => item.text === connectionData.driver)) { |
|
|
|
|
return [ |
|
|
|
@ -1309,7 +1353,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
|
|
|
|
|
private getSslSetEnabled(): boolean { |
|
|
|
|
const { databaseType } = this.databaseType; |
|
|
|
|
return databaseType === 'mysql'; |
|
|
|
|
return databaseType === 'mysql' || this.version === 'mysql'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public setSchemas(schemas: string[]) { |
|
|
|
@ -1329,7 +1373,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public setKerberos() { |
|
|
|
|
const KerberosParams = BI.extend({},{ |
|
|
|
|
const KerberosParams = BI.extend({}, { |
|
|
|
|
keytabPath: this.form.keyPath.getValue(), |
|
|
|
|
krb5ConfPath: this.form.krb5Path.getValue(), |
|
|
|
|
principal: this.form.principal.getValue()[0] |
|
|
|
@ -1341,7 +1385,7 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
public initPrincipals(keyPath, principal) { |
|
|
|
|
let self = this; |
|
|
|
|
api.getPrincipals(keyPath).then(res => { |
|
|
|
|
const principalsItems = BI.map(res.data, function(index, item) { |
|
|
|
|
const principalsItems = BI.map(res.data, function (index, item) { |
|
|
|
|
return { |
|
|
|
|
text: item, |
|
|
|
|
value: item |
|
|
|
@ -1354,12 +1398,12 @@ export class FormJdbc extends BI.Widget {
|
|
|
|
|
|
|
|
|
|
public changePrincipal() { |
|
|
|
|
let self = this; |
|
|
|
|
const KerberosParams = BI.extend({},{ |
|
|
|
|
const KerberosParams = BI.extend({}, { |
|
|
|
|
keytabPath: this.form.keyPath.getValue(), |
|
|
|
|
krb5ConfPath: this.form.krb5Path.getValue(), |
|
|
|
|
principal: this.form.principal.getValue()[0] |
|
|
|
|
}); |
|
|
|
|
api.changePrincipal(KerberosParams).then(res =>{ |
|
|
|
|
api.changePrincipal(KerberosParams).then(res => { |
|
|
|
|
self.form.keyPath.setValue(res.data.keytabPath); |
|
|
|
|
self.form.krb5Path.setValue(res.data.krb5ConfPath); |
|
|
|
|
}); |
|
|
|
|