Browse Source

Merge pull request #2311 in DEC/decision-webui-dcm from final/10.0 to persist/10.0

* commit 'dd180a6a9dc3a5e5bec6df33259420abf8b2f6db':
  DEC-19154 fix: 【自动化】数据连接-高级设置中查看和编辑时-获取连接前检验的文本不同
  DEC-19116 fix: 【专题】【主题框架】部分数据连接缺少驱动时的链接跳转不正确
  DEC-18651 feat: 适配hologres数据集
  DEC-18828 feat: 隔离插件支持kerberos认证前后端交互connectionData中新增useJaas字段
persist/10.0 10.0.17.2021.06.24
superman 3 years ago
parent
commit
2f2154719c
  1. 12
      src/modules/constants/constant.ts
  2. 1
      src/modules/crud/crud.typings.d.ts
  3. 48
      src/modules/pages/maintain/forms/components/form.jdbc.ts
  4. 6
      src/modules/pages/maintain/forms/components/form.jndi.ts
  5. 8
      src/modules/pages/maintain/forms/components/form.plugin.ts

12
src/modules/constants/constant.ts

@ -45,7 +45,7 @@ export const DATA_BASE_DRIVER_LINK = DecCst && DecCst.Hyperlink ? [
},
{
databaseType: 'apache-kylin',
link: DecCst.Hyperlink.Database.PHOENIX,
link: DecCst.Hyperlink.Database.KYLIN,
},
{
databaseType: 'apache-phoenix',
@ -400,6 +400,16 @@ export const DATA_BASE_TYPES = [
type: 'jdbc',
hasSchema: true,
kerberos: true,
}, {
text: 'Hologres',
databaseType: 'hologres',
driver: 'org.postgresql.Driver',
url: 'jdbc:postgresql://hostname:port/database',
commonly: false,
internal: true,
type: 'jdbc',
hasSchema: true,
kerberos: false,
}, {
text: 'HP Vertica',
databaseType: 'hp-vertica',

1
src/modules/crud/crud.typings.d.ts vendored

@ -1,4 +1,3 @@
export interface CrudReqOpts {
url?: string;
type?: 'GET' | 'POST' | 'DELETE' | 'PUT';

48
src/modules/pages/maintain/forms/components/form.jdbc.ts

@ -7,7 +7,16 @@ import { CONNECT_CHARSET, CONNECTION_LAYOUT, INT_MAX_VALUE, INT_MIN_VALUE } from
import {getAllDatabaseTypes, getJdbcDatabaseType, resolveUrlInfo, splitUrl} from '../../../../app.service';
import {TextChecker} from '../../../../components/text_checker/text_checker';
import {ApiFactory} from 'src/modules/crud/apiFactory';
import { Editor, EditorIconCheckCombo, Label, TextAreaEditor, TextEditor, TextValueCombo, VerticalLayout } from '@fui/core';
import {
Editor,
EditorIconCheckCombo,
Label,
TextAreaEditor,
TextEditor,
TextValueCombo,
VerticalLayout
} from '@fui/core';
const api = new ApiFactory().create();
@shortcut()
@ -58,8 +67,33 @@ export class FormJdbc extends BI.Widget {
render() {
const {connectionName, connectionData} = this.options.formData;
const { driver, user, password, originalCharsetName, schema, url, connectionPoolAttr, database, authType, principal, keyPath } = connectionData as ConnectionJDBC;
const { initialSize, maxActive, maxIdle, maxWait, validationQuery, testOnBorrow, testOnReturn, testWhileIdle, timeBetweenEvictionRunsMillis, numTestsPerEvictionRun, minIdle, minEvictableIdleTimeMillis } = connectionPoolAttr as ConnectionPoolJDBC;
const {
driver,
user,
password,
originalCharsetName,
schema,
url,
connectionPoolAttr,
database,
authType,
principal,
keyPath
} = connectionData as ConnectionJDBC;
const {
initialSize,
maxActive,
maxIdle,
maxWait,
validationQuery,
testOnBorrow,
testOnReturn,
testWhileIdle,
timeBetweenEvictionRunsMillis,
numTestsPerEvictionRun,
minIdle,
minEvictableIdleTimeMillis
} = connectionPoolAttr as ConnectionPoolJDBC;
const databaseType = getJdbcDatabaseType(database, driver);
this.oldPassword = password;
const {host, port, databaseName} = resolveUrlInfo(url, database);
@ -547,7 +581,7 @@ export class FormJdbc extends BI.Widget {
},
{
type: FormItem.xtype,
name: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'),
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Borrow'),
forms: [{
type: BI.TextValueCombo.xtype,
$value: 'check',
@ -555,7 +589,7 @@ export class FormJdbc extends BI.Widget {
allowBlank: true,
value: testOnBorrow,
items: this.getBooleanItem(),
watermark: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'),
watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Borrow'),
ref: (_ref: TextValueCombo) => {
this.form.testOnBorrow = _ref;
},
@ -766,7 +800,7 @@ export class FormJdbc extends BI.Widget {
connectionType: connectionType.JDBC,
connectionId: this.form.connectionName.getValue(),
connectionName: this.form.connectionName.getValue(),
connectionData: {
connectionData: <ConnectionJDBC>BI.extend({}, connectionData, {
database: connectionData.database,
connectionName: this.form.connectionName.getValue(),
driver: this.form.driver.getValue(),
@ -796,7 +830,7 @@ export class FormJdbc extends BI.Widget {
numTestsPerEvictionRun: this.form.numTestsPerEvictionRun.getValue(),
minEvictableIdleTimeMillis: this.form.minEvictableIdleTimeMillis.getValue(),
},
},
}),
};
}
}

6
src/modules/pages/maintain/forms/components/form.jndi.ts

@ -400,6 +400,8 @@ export class FormJndi extends BI.Widget {
}
public getSubmitValue(): Connection {
const connectionData = this.options.formData.connectionData as ConnectionJNDI;
const contextHashtable = {
'java.naming.factory.initial': this.form.initial.getValue(),
'java.naming.provider.url': this.form.providerUrl.getValue(),
@ -428,13 +430,13 @@ export class FormJndi extends BI.Widget {
connectionId: this.form.connectionName.getValue(),
connectionName: this.form.connectionName.getValue(),
connectionType: connectionType.JNDI,
connectionData: {
connectionData: <ConnectionJNDI>BI.extend({}, connectionData, {
jndiName: this.form.jndiName.getValue(),
newCharsetName: this.form.newCharsetName.getValue()[0] || '',
originalCharsetName: this.form.newCharsetName.getValue()[0] || '',
creator: Dec ? Dec.personal.username : '',
contextHashtable: contextHashtable as ContextHashtable,
},
}),
};
}
}

8
src/modules/pages/maintain/forms/components/form.plugin.ts

@ -1,5 +1,5 @@
import { shortcut } from '@core/core';
import {Connection} from 'src/modules/crud/crud.typings';
import { Connection, ConnectionPlugin } from 'src/modules/crud/crud.typings';
import { getPluginWidgetEdit } from '../../../../app.service';
@shortcut()
@ -7,7 +7,7 @@ export class FormPlugin extends BI.Widget {
static xtype = 'dec.dcm.maintain_plugin';
props = {
formData: {} as Connection,
}
};
plugin: any;
@ -28,13 +28,13 @@ export class FormPlugin extends BI.Widget {
}
public getSubmitValue(): Connection {
const { connectionType, connectionId, connectionName } = this.options.formData;
const { connectionType, connectionId, connectionName, connectionData } = this.options.formData;
return {
connectionId,
connectionType,
connectionName: this.plugin.getConnectionName ? this.plugin.getConnectionName() : connectionName,
connectionData: this.plugin.getValue(),
connectionData: <ConnectionPlugin>BI.extend({}, connectionData, this.plugin.getValue()),
};
}
}

Loading…
Cancel
Save