Browse Source

Pull request #189: 无jira任务, release/10.0 合 feature/10.0

Merge in DEC/decision-webui-dcm from release/10.0 to feature/10.0

* commit '973fe5ca553d117b92c014152f879e3322a30419':
  KERNEL-4727 refactor: 【平台】使用babel-preset-fineui插件配置babel
  KERNEL-4727 refactor: 【平台】使用babel-preset-fineui插件配置babel
  fix: 添加判断
  DEC-14009 1.8以上版本JDK支持ODBC连接
  fix:调整名称
  DEC-13832 fix: 调整id
  DEC-13832 chore:覆盖数据连接id
  BI-66943 fix: 【513】全局更新设置定时更新,明细频率执行,应该只有选项前面的选项是勾选状态,整一行没有蓝色选中
  DEC-13518 fix: 数据连接高级属性,单独修改“开启空闲回收器检验”不生效
  无JIRA 修复husky pre-push报错
  DEC-13363 feat: 加载动画统一
research/11.0
ju.ju 4 years ago
parent
commit
661866b36b
  1. 2
      .npmrc
  2. 30
      babel.config.js
  3. 2
      config/jest.environment.js
  4. 48
      index.html
  5. 13
      package.json
  6. 2
      src/less/lib/background.less
  7. 1
      src/modules/components/collapse/collapse.ts
  8. 4
      src/modules/components/test_status/tip_icon/tip_fail.ts
  9. 4
      src/modules/components/test_status/tip_icon/tip_icon.ts
  10. 3
      src/modules/components/text_checker/text_checker.ts
  11. 3
      src/modules/constants/constant.ts
  12. 5
      src/modules/crud/api.ts
  13. 4
      src/modules/crud/decision.api.ts
  14. 5
      src/modules/crud/design.api.ts
  15. 1
      src/modules/pages/connection/components/form_item/form_item.ts
  16. 1
      src/modules/pages/connection/connection.ts
  17. 1
      src/modules/pages/connection/connection_jndi/connection_jndi.ts
  18. 13
      src/modules/pages/connection/list/list_item/list_item.ts
  19. 3
      src/modules/pages/connection_pool/list_item/list_item.ts
  20. 9
      src/modules/pages/connection_pool/pool/pool.ts
  21. 5
      src/modules/pages/database/database.ts
  22. 2
      src/modules/pages/database/database_type/database_type.less
  23. 3
      src/modules/pages/database/database_type/database_type.ts
  24. 6
      src/modules/pages/database/filter/filter.less
  25. 4
      src/modules/pages/database/filter/filter.ts
  26. 1
      src/modules/pages/maintain/components/form_item/form_item.ts
  27. 33
      src/modules/pages/maintain/forms/components/form.jdbc.ts
  28. 19
      src/modules/pages/maintain/forms/components/form.jndi.ts
  29. 8
      src/modules/pages/maintain/forms/form.server.ts
  30. 1
      src/modules/pages/maintain/maintain.ts
  31. 2
      src/modules/title/title.ts
  32. 2
      src/modules/title/title_database/title_datebase.ts
  33. 3
      src/modules/title/title_maintain/title_maintain.ts
  34. 2
      webpack/webpack.dev.js

2
.npmrc

@ -0,0 +1,2 @@
puppeteer_download_host=https://npm.taobao.org/mirrors
@fui:registry=https://npm.fineres.com/

30
babel.config.js

@ -1,29 +1,3 @@
module.exports = function(api) { module.exports = function (api) {
api.cache(true); return require("@fui/babel-preset-fineui").configs.base(api)
const presets = [
[
'@babel/preset-env',
{
targets: {
ie: 9,
chrome: 47,
},
},
],
'@babel/preset-typescript',
];
const plugins = [
[
'@babel/plugin-proposal-decorators',
{
legacy: true,
},
],
'@babel/plugin-proposal-class-properties',
];
return {
presets,
plugins,
};
}; };

2
config/jest.environment.js

@ -12,7 +12,7 @@ class FineUiEnvironment extends JsdomEnvironment {
[ [
'../node_modules/fineui/dist/fineui.js', '../node_modules/fineui/dist/fineui.js',
'../node_modules/fineui-materials/docs/materials.js', '../node_modules/@fui/materials/docs/materials.js',
'../config/fineui.prepare.js', '../config/fineui.prepare.js',
'./fineui.setup.js', './fineui.setup.js',
].forEach(scriptRelativePath => { ].forEach(scriptRelativePath => {

48
index.html

@ -1,34 +1,22 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="UTF-8" />
<title>Fine Report</title>
<!--核心css文件-->
<link
rel="preload"
href="./node_modules/fineui/dist/font/iconfont.woff"
as="font"
type="font/woff"
crossorigin=""
/>
<link
rel="stylesheet"
type="text/css"
href="./node_modules/fineui/dist/fineui.min.css"
/>
<link
rel="stylesheet"
type="text/css"
href="./node_modules/fineui-materials/docs/materials.css"
/>
</head>
<body id="body"> <head>
<div id="wrapper"></div> <meta charset="UTF-8" />
<script src="./node_modules/fineui/dist/fineui.min.js"></script> <title>Fine Report</title>
<script src="./node_modules/fineui/i18n/i18n.cn.js"></script> <!--核心css文件-->
<script src="./node_modules/fineui-materials/docs/materials.js"></script> <link rel="preload" href="./node_modules/fineui/dist/font/iconfont.woff" as="font" type="font/woff" crossorigin="" />
<script src="./assets/scripts/dec.js"></script> <link rel="stylesheet" type="text/css" href="./node_modules/fineui/dist/fineui.css" />
<script src="./redis.js"></script> <link rel="stylesheet" type="text/css" href="./node_modules/@fui/materials/docs/materials.css" />
</body> </head>
<body id="body">
<div id="wrapper"></div>
<script src="./node_modules/fineui/dist/fineui.js"></script>
<script src="./node_modules/fineui/dist/utils.js"></script>
<script src="./node_modules/@fui/materials/docs/materials.js"></script>
<script src="./assets/scripts/dec.js"></script>
<script src="./redis.js"></script>
</body>
</html> </html>

13
package.json

@ -16,12 +16,6 @@
"nprogress": "0.2.0" "nprogress": "0.2.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.4.5",
"@babel/plugin-proposal-class-properties": "^7.5.0",
"@babel/plugin-proposal-decorators": "7.4.4",
"@babel/polyfill": "^7.8.3",
"@babel/preset-env": "7.4.5",
"@babel/preset-typescript": "7.3.3",
"@types/jest": "24.0.11", "@types/jest": "24.0.11",
"@typescript-eslint/eslint-plugin": "1.7.0", "@typescript-eslint/eslint-plugin": "1.7.0",
"@typescript-eslint/parser": "1.7.0", "@typescript-eslint/parser": "1.7.0",
@ -57,12 +51,11 @@
"webpack-cli": "3.3.5", "webpack-cli": "3.3.5",
"webpack-dev-server": "3.7.2", "webpack-dev-server": "3.7.2",
"webpack-merge": "4.2.1", "webpack-merge": "4.2.1",
"ydoc": "4.1.0", "@fui/babel-preset-fineui": "^1.0.0"
"ydoc-plugin-jsdoc": "0.0.3"
}, },
"optionalDependencies": { "optionalDependencies": {
"fineui": "git+ssh://git@cloud.finedevelop.com:7999/visual/fineui.git", "fineui": "^2.0.0",
"fineui-materials": "git+ssh://git@cloud.finedevelop.com:7999/fui/fineui-materials.git#release/10.0" "@fui/materials": "10.0.0-release - 10.0.0-release.99999999999999"
}, },
"scripts": { "scripts": {
"dev": "cross-env NODE_ENV=mock webpack-dev-server -p --progress --config=webpack/webpack.dev.js --mode development --open", "dev": "cross-env NODE_ENV=mock webpack-dev-server -p --progress --config=webpack/webpack.dev.js --mode development --open",

2
src/less/lib/background.less

@ -1,5 +1,5 @@
@background-data-connection: "background/data-connection-tip.png"; @background-data-connection: "background/data-connection-tip.png";
@icon-upload-loading: "icon/upload_loading.gif"; @icon-upload-loading: "icon/wave_loading.gif";
@icon-upload-fail: "icon/upload_fail.png"; @icon-upload-fail: "icon/upload_fail.png";
@icon-upload-success: "icon/upload_success.png"; @icon-upload-success: "icon/upload_success.png";
@background-error-page: "background/error_page.png"; @background-error-page: "background/error_page.png";

1
src/modules/components/collapse/collapse.ts

@ -10,6 +10,7 @@ export class Collapse extends BI.BasicButton {
props = { props = {
name: '', name: '',
isCollapse: true, isCollapse: true,
$testId: 'dec-dcm-components-collapse',
} }
rightFont: any; rightFont: any;

4
src/modules/components/test_status/tip_icon/tip_fail.ts

@ -42,8 +42,8 @@ export class TipFail extends BI.Widget {
bgap: 20, bgap: 20,
items: [{ items: [{
type: 'bi.icon', type: 'bi.icon',
width: 96, width: 60,
height: 96, height: 60,
}], }],
}, { }, {
type: Label, type: Label,

4
src/modules/components/test_status/tip_icon/tip_icon.ts

@ -22,8 +22,8 @@ export class TipIcon extends BI.Widget {
bgap: 20, bgap: 20,
items: [{ items: [{
type: 'bi.icon', type: 'bi.icon',
width: 96, width: 60,
height: 96, height: 60,
}], }],
}, { }, {
type: Label, type: Label,

3
src/modules/components/text_checker/text_checker.ts

@ -26,7 +26,7 @@ export class TextChecker extends BI.Widget {
} }
render() { render() {
const { width, allowBlank, value, watermark, validationChecker } = this.options; const { width, allowBlank, value, watermark, validationChecker, $value } = this.options;
this.value = value; this.value = value;
return { return {
@ -36,6 +36,7 @@ export class TextChecker extends BI.Widget {
items: [{ items: [{
el: { el: {
type: TextEditor, type: TextEditor,
$value,
width, width,
allowBlank, allowBlank,
value, value,

3
src/modules/constants/constant.ts

@ -9,6 +9,9 @@ export const PAGE_INDEX = {
export const OTHER_JDBC = 'otherJDBC'; export const OTHER_JDBC = 'otherJDBC';
export const JDBC_ODBC_DRIVER = 'sun.jdbc.odbc.JdbcOdbcDriver';
export const JDBC_ODBC_DRIVER_HELP_LINK = DecCst && DecCst.Hyperlink ? DecCst.Hyperlink.Database.OTHER_ODBC : '';
export const DATEBASE_FILTER_TYPE = { export const DATEBASE_FILTER_TYPE = {
COMMONLY: 'commonly', COMMONLY: 'commonly',
ALL: 'all', ALL: 'all',

5
src/modules/crud/api.ts

@ -61,4 +61,9 @@ export interface Api {
* *
*/ */
isDriverError(errorCode: string): boolean; isDriverError(errorCode: string): boolean;
/**
*
*/
getCipher(password: string): string;
} }

4
src/modules/crud/decision.api.ts

@ -93,6 +93,10 @@ export class DecisionApi implements Api {
return false; return false;
} }
getCipher(password: string) {
return BI.Providers.getProvider('dec.provider.cipher').getCipher(password);
}
private sendEditStatusEvent(name: string, type: string): Promise<SocketResult> { private sendEditStatusEvent(name: string, type: string): Promise<SocketResult> {
return new Promise(resolve => { return new Promise(resolve => {
if (Dec && Dec.socket.connected) { if (Dec && Dec.socket.connected) {

5
src/modules/crud/design.api.ts

@ -66,4 +66,9 @@ export class DesignApi implements Api {
// 设计器暂不校验 // 设计器暂不校验
return false; return false;
} }
getCipher(password: string) {
// 设计器加密方法
return password;
}
} }

1
src/modules/pages/connection/components/form_item/form_item.ts

@ -9,6 +9,7 @@ export class FormItem extends BI.Widget {
unit: '', unit: '',
isBold: true, isBold: true,
nameWidth: 140, nameWidth: 140,
$testId: 'dec-dcm-connection-form-item',
} }
render () { render () {

1
src/modules/pages/connection/connection.ts

@ -102,6 +102,7 @@ export class Connection extends BI.Widget {
type: VerticalAdapt, type: VerticalAdapt,
items: [{ items: [{
type: Button, type: Button,
$value: 'connection-edit',
invisible: true, invisible: true,
text: BI.i18nText('Dec-Dcm_Edit'), text: BI.i18nText('Dec-Dcm_Edit'),
ref: (_ref: any) => { ref: (_ref: any) => {

1
src/modules/pages/connection/connection_jndi/connection_jndi.ts

@ -21,6 +21,7 @@ export class ConnectionJdbc extends BI.Widget {
return { return {
type: Vertical, type: Vertical,
$testId: 'dec-dcm-connection-jndi',
hgap, hgap,
vgap, vgap,
items: [ items: [

13
src/modules/pages/connection/list/list_item/list_item.ts

@ -16,7 +16,8 @@ export class ListItem extends BI.BasicButton {
creator: '', creator: '',
databaseType: '', databaseType: '',
height: 25, height: 25,
baseCls: 'dec-dcm-connection-list-item bi-list-item-active', baseCls: 'dec-dcm-connection-list-item bi-list-item-active2',
$testId: 'dec-dcm-connection-list-item',
} }
store: ListItemModel['store']; store: ListItemModel['store'];
@ -42,6 +43,7 @@ export class ListItem extends BI.BasicButton {
return { return {
type: Htape, type: Htape,
$scope: name,
items: [{ items: [{
el: { el: {
type: IconLabel, type: IconLabel,
@ -64,6 +66,7 @@ export class ListItem extends BI.BasicButton {
}, },
{ {
type: SignEditor, type: SignEditor,
$value: 'connection-name',
value: name, value: name,
invisible: !this.model.isEdit, invisible: !this.model.isEdit,
ref: (_ref: any) => { ref: (_ref: any) => {
@ -107,6 +110,7 @@ export class ListItem extends BI.BasicButton {
hgap: 8, hgap: 8,
el: { el: {
type: IconButton, type: IconButton,
$value: 'other-edit',
cls: 'dcm-link-other-font icon-size-16', cls: 'dcm-link-other-font icon-size-16',
}, },
items: this.renderDownList(), items: this.renderDownList(),
@ -158,29 +162,34 @@ export class ListItem extends BI.BasicButton {
[ [
{ {
text: BI.i18nText('Dec-Dcm_Test_Connection'), text: BI.i18nText('Dec-Dcm_Test_Connection'),
$testId: 'dec-dcm-connection-list-btn',
cls: 'dcm-test-font', cls: 'dcm-test-font',
value: 'test', value: 'test',
}, },
{ {
text: BI.i18nText('Dec-Dcm_Edit'), text: BI.i18nText('Dec-Dcm_Edit'),
$testId: 'dec-dcm-connection-list-btn',
cls: 'dcm-link-edit-font', cls: 'dcm-link-edit-font',
value: 'edit', value: 'edit',
invisible: !canEdit, invisible: !canEdit,
}, },
{ {
text: BI.i18nText('Dec-Dcm_Change_Name'), text: BI.i18nText('Dec-Dcm_Change_Name'),
$testId: 'dec-dcm-connection-list-btn',
cls: 'dcm-change-name-font', cls: 'dcm-change-name-font',
value: 'changeName', value: 'changeName',
invisible: !canEdit, invisible: !canEdit,
}, },
{ {
text: BI.i18nText('Dec-Dcm_Copy'), text: BI.i18nText('Dec-Dcm_Copy'),
$testId: 'dec-dcm-connection-list-btn',
cls: 'copy-font', cls: 'copy-font',
value: 'copy', value: 'copy',
invisible: !canEdit, invisible: !canEdit,
}, },
{ {
text: BI.i18nText('Dec-Dcm_Delete'), text: BI.i18nText('Dec-Dcm_Delete'),
$testId: 'dec-dcm-connection-list-btn',
cls: 'dcm-delete-font', cls: 'dcm-delete-font',
value: 'delete', value: 'delete',
invisible: !canEdit, invisible: !canEdit,
@ -211,7 +220,7 @@ export class ListItem extends BI.BasicButton {
this.store.setPageIndex(PAGE_INDEX.MAINTAIN); this.store.setPageIndex(PAGE_INDEX.MAINTAIN);
this.store.setDatebaseTypeSelected(''); this.store.setDatebaseTypeSelected('');
}) })
.catch(() => {}); .catch(() => { });
}, },
changeName: () => { changeName: () => {
this.store.setIsEdit(true, name); this.store.setIsEdit(true, name);

3
src/modules/pages/connection_pool/list_item/list_item.ts

@ -8,7 +8,8 @@ export class ListItem extends BI.BasicButton {
props = { props = {
name: '', name: '',
height: 25, height: 25,
baseCls: 'dec-dcm-connection-pool-list-item bi-list-item-active', baseCls: 'dec-dcm-connection-pool-list-item bi-list-item-active2',
$testId: 'dec-dcm-connection-pool-list-item',
} }
store: ListItemModel['store']; store: ListItemModel['store'];

9
src/modules/pages/connection_pool/pool/pool.ts

@ -10,6 +10,7 @@ export const PoolXtype = 'dec.dcm.connection_pool.pool';
export class Pool extends BI.Widget { export class Pool extends BI.Widget {
props = { props = {
baseCls: 'dec-dcm-connection-pool', baseCls: 'dec-dcm-connection-pool',
$testId: 'dec-dcm-connection-pool',
} }
model: PoolModel['model']; model: PoolModel['model'];
@ -54,6 +55,8 @@ export class Pool extends BI.Widget {
items: [ items: [
{ {
type: Label, type: Label,
$testId: 'dec-dcm-pool-status-number',
$value: 'active',
cls: 'bi-high-light card-font-heighlight', cls: 'bi-high-light card-font-heighlight',
ref: (_ref: any) => { ref: (_ref: any) => {
this.numActive = _ref; this.numActive = _ref;
@ -65,6 +68,8 @@ export class Pool extends BI.Widget {
}, },
{ {
type: Label, type: Label,
$testId: 'dec-dcm-pool-status-max',
$value: 'active',
ref: (_ref: any) => { ref: (_ref: any) => {
this.maxActive = _ref; this.maxActive = _ref;
}, },
@ -98,6 +103,8 @@ export class Pool extends BI.Widget {
items: [ items: [
{ {
type: Label, type: Label,
$testId: 'dec-dcm-pool-status-number',
$value: 'idle',
cls: 'bi-high-light card-font-heighlight', cls: 'bi-high-light card-font-heighlight',
ref: (_ref: any) => { ref: (_ref: any) => {
this.numIdle = _ref; this.numIdle = _ref;
@ -109,6 +116,8 @@ export class Pool extends BI.Widget {
}, },
{ {
type: Label, type: Label,
$testId: 'dec-dcm-pool-status-max',
$value: 'idle',
ref: (_ref: any) => { ref: (_ref: any) => {
this.maxIdle = _ref; this.maxIdle = _ref;
}, },

5
src/modules/pages/database/database.ts

@ -1,4 +1,4 @@
import { SearchEditor, Vtape, Right, Htape, Vertical, ButtonGroup, Left, VerticalAdapt, Label, MultiSelectItem, CenterAdapt } from 'ui'; import { SearchEditor, Vtape, Right, Htape, Vertical, ButtonGroup, Left, Label, MultiSelectItem, CenterAdapt } from 'ui';
import { shortcut, store } from '@core/core'; import { shortcut, store } from '@core/core';
import { FilterXtype } from './filter/filter'; import { FilterXtype } from './filter/filter';
import { DatebaseModel, DatebaseModelXtype } from './database.model'; import { DatebaseModel, DatebaseModelXtype } from './database.model';
@ -45,7 +45,7 @@ export class Datebase extends BI.Widget {
datebaseTypes: () => { datebaseTypes: () => {
this.datebaseType.populate(this.renderDatebaseType()); this.datebaseType.populate(this.renderDatebaseType());
}, },
'isInternal || isPlugin' : () => { 'isInternal || isPlugin': () => {
this.internalWidget.setSelected(this.model.isInternal); this.internalWidget.setSelected(this.model.isInternal);
this.pluginWidget.setSelected(this.model.isPlugin); this.pluginWidget.setSelected(this.model.isPlugin);
if (this.model.filter === DATEBASE_FILTER_TYPE.ALL) { if (this.model.filter === DATEBASE_FILTER_TYPE.ALL) {
@ -81,6 +81,7 @@ export class Datebase extends BI.Widget {
items: [ items: [
{ {
type: SearchEditor, type: SearchEditor,
$value: 'database-type',
width: 300, width: 300,
watermark: BI.i18nText('BI-Basic_Search'), watermark: BI.i18nText('BI-Basic_Search'),
ref: (_ref: any) => { ref: (_ref: any) => {

2
src/modules/pages/database/database_type/database_type.less

@ -1,6 +1,6 @@
@import '../../../../less/index.less'; @import '../../../../less/index.less';
.dec-dcm-datebase-type{ .dec-dcm-database-type{
.bi-list-item-active{ .bi-list-item-active{
&:hover{ &:hover{
.box-shadow(0 1px 5px 0, fade(@color-bi-background-black, 20)); .box-shadow(0 1px 5px 0, fade(@color-bi-background-black, 20));

3
src/modules/pages/database/database_type/database_type.ts

@ -18,7 +18,8 @@ export class DatebaseType extends BI.BasicButton {
keyword: '', keyword: '',
databaseType: '', databaseType: '',
iconUrl: '', iconUrl: '',
baseCls: 'dec-dcm-datebase-type', baseCls: 'dec-dcm-database-type',
$testId: 'dec-dcm-database-type',
} }
img: any; img: any;

6
src/modules/pages/database/filter/filter.less

@ -1,6 +0,0 @@
@import "../../../../less/index.less";
.bi-list-item-active{
&:active, &.active {
background-color: @color-bi-light-blue-60;
}
}

4
src/modules/pages/database/filter/filter.ts

@ -1,7 +1,6 @@
import { shortcut, store } from '@core/core'; import { shortcut, store } from '@core/core';
import { Label } from 'ui'; import { Label } from 'ui';
import { FilterModel, FilterModelXtype } from './filter.model'; import { FilterModel, FilterModelXtype } from './filter.model';
import './filter.less';
export const FilterXtype = 'dec.dcm.datebase.filter'; export const FilterXtype = 'dec.dcm.datebase.filter';
@shortcut(FilterXtype) @shortcut(FilterXtype)
@ -11,7 +10,8 @@ export class Filter extends BI.BasicButton {
props = { props = {
text: '', text: '',
value: '', value: '',
baseCls: 'bi-list-item-active', baseCls: 'bi-list-item-active2',
$testId: 'dec-dcm-database-filter',
} }
render() { render() {

1
src/modules/pages/maintain/components/form_item/form_item.ts

@ -9,6 +9,7 @@ export class FormItem extends BI.Widget {
forms: '', forms: '',
nameWidth: 140, nameWidth: 140,
isBold: true, isBold: true,
$testId: 'dec-dcm-maintain-form-item',
} }
render () { render () {

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

@ -7,6 +7,9 @@ import { connectionType } from '@constants/env';
import { CONNECT_CHARSET, CONNECTION_LAYOUT, INT_MAX_VALUE, INT_MIN_VALUE } from '@constants/constant'; import { CONNECT_CHARSET, CONNECTION_LAYOUT, INT_MAX_VALUE, INT_MIN_VALUE } from '@constants/constant';
import { getAllDatabaseTypes, getJdbcDatabaseType, resolveUrlInfo, splitUrl } from '../../../../app.service'; import { getAllDatabaseTypes, getJdbcDatabaseType, resolveUrlInfo, splitUrl } from '../../../../app.service';
import { TextCheckerXtype } from '../../../../components/text_checker/text_checker'; import { TextCheckerXtype } from '../../../../components/text_checker/text_checker';
import { ApiFactory } from 'src/modules/crud/apiFactory';
const api = new ApiFactory().create();
export const FormJdbcXtype = 'dec.dcm.maintain.form.jdbc'; export const FormJdbcXtype = 'dec.dcm.maintain.form.jdbc';
@shortcut(FormJdbcXtype) @shortcut(FormJdbcXtype)
export class FormJdbc extends BI.Widget { export class FormJdbc extends BI.Widget {
@ -78,6 +81,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Name'), name: BI.i18nText('Dec-Dcm_Connection_Name'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'connection-name',
width: 300, width: 300,
value: connectionName, value: connectionName,
allowBlank: true, allowBlank: true,
@ -92,6 +96,8 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Driver'), name: BI.i18nText('Dec-Dcm_Connection_Form_Driver'),
forms: [{ forms: [{
type: EdirotIconCheckCombo, type: EdirotIconCheckCombo,
$testId: 'dec-editor-icon-check-combo',
$value: 'driver',
width: 300, width: 300,
value: driver, value: driver,
ref: (_ref: any) => { ref: (_ref: any) => {
@ -119,6 +125,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'),
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'database-name',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'), watermark: BI.i18nText('Dec-Dcm_Connection_Form_Database_Name'),
@ -139,6 +146,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Host'), name: BI.i18nText('Dec-Dcm_Connection_Form_Host'),
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'database-host',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: host, value: host,
@ -159,6 +167,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Port'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'database-port',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: port, value: port,
@ -185,6 +194,7 @@ export class FormJdbc extends BI.Widget {
invisible: !databaseType.kerberos, invisible: !databaseType.kerberos,
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'auth-type',
width: 300, width: 300,
value: authType, value: authType,
ref: (_ref: any) => { ref: (_ref: any) => {
@ -224,6 +234,7 @@ export class FormJdbc extends BI.Widget {
}, },
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'username',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: user, value: user,
@ -242,6 +253,7 @@ export class FormJdbc extends BI.Widget {
}, },
forms: [{ forms: [{
type: Editor, type: Editor,
$value: 'password',
cls: 'bi-border bi-border-radius', cls: 'bi-border bi-border-radius',
width: 300, width: 300,
height: 20, height: 20,
@ -263,6 +275,7 @@ export class FormJdbc extends BI.Widget {
}, },
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'principal',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: principal, value: principal,
@ -281,6 +294,7 @@ export class FormJdbc extends BI.Widget {
}, },
forms: [{ forms: [{
type: Editor, type: Editor,
$value: 'key-path',
cls: 'bi-border', cls: 'bi-border',
width: 300, width: 300,
height: 20, height: 20,
@ -307,6 +321,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'), name: BI.i18nText('Dec-Dcm_Connection_Form_OriginalCharsetName'),
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'original-charset-name',
width: 300, width: 300,
value: originalCharsetName ? originalCharsetName : '', value: originalCharsetName ? originalCharsetName : '',
items: CONNECT_CHARSET, items: CONNECT_CHARSET,
@ -339,6 +354,7 @@ export class FormJdbc extends BI.Widget {
}], }],
}, { }, {
type: TextValueCombo, type: TextValueCombo,
$value: 'schema',
width: 300, width: 300,
vgap: 15, vgap: 15,
disabled: true, disabled: true,
@ -360,6 +376,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_URL'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_URL'),
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'database-url',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: url, value: url,
@ -407,6 +424,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Initial_Size'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Initial_Size'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'initial-size',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: initialSize, value: initialSize,
@ -426,6 +444,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Active'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Active'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'max-active',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: maxActive, value: maxActive,
@ -445,6 +464,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Idle'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Max_Idle'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'max-idle',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: maxIdle, value: maxIdle,
@ -464,6 +484,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Min_Idle'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Min_Idle'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'min-idle',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: minIdle, value: minIdle,
@ -484,6 +505,7 @@ export class FormJdbc extends BI.Widget {
forms: [ forms: [
{ {
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'max-wait',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: maxWait, value: maxWait,
@ -510,6 +532,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'), name: BI.i18nText('Dec-Dcm_Connection_Form_SQL_Validation_Query'),
forms: [{ forms: [{
type: TextAreaEditor, type: TextAreaEditor,
$value: 'validation-query',
cls: 'bi-border', cls: 'bi-border',
allowBlank: true, allowBlank: true,
watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'), watermark: BI.i18nText('Dec-Dcm_Connection_Form_Place_Input'),
@ -526,6 +549,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'), name: BI.i18nText('Dec-Dcm_Connection_Form_Connection-Check'),
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'check',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: testOnBorrow, value: testOnBorrow,
@ -541,6 +565,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Return'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_On_Return'),
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'test-on-return',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: testOnReturn, value: testOnReturn,
@ -556,6 +581,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_While_Idle'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Test_While_Idle'),
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'test-while-idle',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: testWhileIdle, value: testWhileIdle,
@ -572,6 +598,7 @@ export class FormJdbc extends BI.Widget {
forms: [ forms: [
{ {
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'test-between-evicition-millis',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: timeBetweenEvictionRunsMillis, value: timeBetweenEvictionRunsMillis,
@ -598,6 +625,7 @@ export class FormJdbc extends BI.Widget {
name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num'), name: BI.i18nText('Dec-Dcm_Connection_Form_Database_Tests_PerEviction_Run_Num'),
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'test-pereviction-run-num',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: numTestsPerEvictionRun, value: numTestsPerEvictionRun,
@ -618,6 +646,7 @@ export class FormJdbc extends BI.Widget {
forms: [ forms: [
{ {
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'min-evictable-idle-time-millis',
width: 300, width: 300,
allowBlank: false, allowBlank: false,
value: minEvictableIdleTimeMillis, value: minEvictableIdleTimeMillis,
@ -742,7 +771,7 @@ export class FormJdbc extends BI.Widget {
driver: this.form.driver.getValue(), driver: this.form.driver.getValue(),
url: this.form.url.getValue(), url: this.form.url.getValue(),
user: this.form.user.getValue(), user: this.form.user.getValue(),
password: this.oldPassword === this.form.password.getValue() ? this.oldPassword : BI.Providers.getProvider('dec.provider.cipher').getCipher(this.form.password.getValue()), password: this.oldPassword === this.form.password.getValue() ? this.oldPassword : api.getCipher(this.form.password.getValue()),
queryType: '', queryType: '',
newCharsetName: originalCharsetName ? 'gbk' : '', // 后台要求,originalCharsetName不为空时,newCharsetName为gbk newCharsetName: originalCharsetName ? 'gbk' : '', // 后台要求,originalCharsetName不为空时,newCharsetName为gbk
originalCharsetName, originalCharsetName,
@ -761,7 +790,7 @@ export class FormJdbc extends BI.Widget {
validationQuery: this.form.validationQuery.getValue(), validationQuery: this.form.validationQuery.getValue(),
testOnBorrow: BI.size(this.form.testOnBorrow.getValue()) > 0 ? this.form.testOnBorrow.getValue()[0] : connectionPoolAttr.testOnBorrow, testOnBorrow: BI.size(this.form.testOnBorrow.getValue()) > 0 ? this.form.testOnBorrow.getValue()[0] : connectionPoolAttr.testOnBorrow,
testOnReturn: BI.size(this.form.testOnReturn.getValue()) > 0 ? this.form.testOnReturn.getValue()[0] : connectionPoolAttr.testOnReturn, testOnReturn: BI.size(this.form.testOnReturn.getValue()) > 0 ? this.form.testOnReturn.getValue()[0] : connectionPoolAttr.testOnReturn,
testWhileIdle: BI.size(this.form.testOnReturn.getValue()) > 0 ? this.form.testWhileIdle.getValue()[0] : connectionPoolAttr.testWhileIdle, testWhileIdle: BI.size(this.form.testWhileIdle.getValue()) > 0 ? this.form.testWhileIdle.getValue()[0] : connectionPoolAttr.testWhileIdle,
timeBetweenEvictionRunsMillis: this.form.timeBetweenEvictionRunsMillis.getValue(), timeBetweenEvictionRunsMillis: this.form.timeBetweenEvictionRunsMillis.getValue(),
numTestsPerEvictionRun: this.form.numTestsPerEvictionRun.getValue(), numTestsPerEvictionRun: this.form.numTestsPerEvictionRun.getValue(),
minEvictableIdleTimeMillis: this.form.minEvictableIdleTimeMillis.getValue(), minEvictableIdleTimeMillis: this.form.minEvictableIdleTimeMillis.getValue(),

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

@ -51,6 +51,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextCheckerXtype, type: TextCheckerXtype,
$value: 'connection-name',
width: 300, width: 300,
value: connectionName, value: connectionName,
ref: (_ref: any) => { ref: (_ref: any) => {
@ -64,6 +65,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'jdni-name',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: jndiName, value: jndiName,
@ -102,6 +104,8 @@ export class FormJndi extends BI.Widget {
isBold: false, isBold: false,
forms: [{ forms: [{
type: EdirotIconCheckCombo, type: EdirotIconCheckCombo,
$testId: 'dec-editor-icon-check-combo',
$value: 'initial',
width: 300, width: 300,
value: contextHashtable['java.naming.factory.initial'], value: contextHashtable['java.naming.factory.initial'],
ref: (_ref: any) => { ref: (_ref: any) => {
@ -130,6 +134,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'provider-url',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.provider.url'], value: contextHashtable['java.naming.provider.url'],
@ -145,6 +150,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'security-principal',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.security.principal'], value: contextHashtable['java.naming.security.principal'],
@ -160,6 +166,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'security-credentials',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.security.credentials'], value: contextHashtable['java.naming.security.credentials'],
@ -185,6 +192,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextValueCombo, type: TextValueCombo,
$value: 'new-charset-name',
width: 300, width: 300,
value: newCharsetName ? newCharsetName : '', value: newCharsetName ? newCharsetName : '',
items: CONNECT_CHARSET, items: CONNECT_CHARSET,
@ -221,6 +229,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'factory-object',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.factory.object'], value: contextHashtable['java.naming.factory.object'],
@ -235,6 +244,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'factory-state',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.factory.state'], value: contextHashtable['java.naming.factory.state'],
@ -249,6 +259,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'factory-url-pkgs',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.factory.url.pkgs'], value: contextHashtable['java.naming.factory.url.pkgs'],
@ -263,6 +274,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'dns-url',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.dns.url'], value: contextHashtable['java.naming.dns.url'],
@ -277,6 +289,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'authoritative',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.authoritative'], value: contextHashtable['java.naming.authoritative'],
@ -291,6 +304,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'batchsize',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.batchsize'], value: contextHashtable['java.naming.batchsize'],
@ -305,6 +319,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'referral',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.referral'], value: contextHashtable['java.naming.referral'],
@ -319,6 +334,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'security-protocol',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.security.protocol'], value: contextHashtable['java.naming.security.protocol'],
@ -333,6 +349,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'security-authentication',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.security.authentication'], value: contextHashtable['java.naming.security.authentication'],
@ -347,6 +364,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'language',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.language'], value: contextHashtable['java.naming.language'],
@ -361,6 +379,7 @@ export class FormJndi extends BI.Widget {
nameWidth: 200, nameWidth: 200,
forms: [{ forms: [{
type: TextEditor, type: TextEditor,
$value: 'applet',
width: 300, width: 300,
allowBlank: true, allowBlank: true,
value: contextHashtable['java.naming.applet'], value: contextHashtable['java.naming.applet'],

8
src/modules/pages/maintain/forms/form.server.ts

@ -1,6 +1,6 @@
import { Connection, ConnectionJDBC } from '../../../crud/crud.typings'; import { Connection, ConnectionJDBC } from '../../../crud/crud.typings';
import { connectionType, errorCode } from '@constants/env'; import { connectionType, errorCode } from '@constants/env';
import { DATA_BASE_DRIVER_LINK } from '@constants/constant'; import { DATA_BASE_DRIVER_LINK, JDBC_ODBC_DRIVER, JDBC_ODBC_DRIVER_HELP_LINK } from '@constants/constant';
import { TestStatusXtype, EVENT_RELOAD, EVENT_CLOSE } from '../../../components/test_status/test_status'; import { TestStatusXtype, EVENT_RELOAD, EVENT_CLOSE } from '../../../components/test_status/test_status';
import { ApiFactory } from '../../../crud/apiFactory'; import { ApiFactory } from '../../../crud/apiFactory';
const api = new ApiFactory().create(); const api = new ApiFactory().create();
@ -23,6 +23,12 @@ export function testConnection(value: Connection): Promise<string[]> {
if (api.isDriverError(re.errorCode)) { if (api.isDriverError(re.errorCode)) {
if (formValue.connectionType === connectionType.JDBC) { if (formValue.connectionType === connectionType.JDBC) {
const driver = (formValue.connectionData as ConnectionJDBC).driver; const driver = (formValue.connectionData as ConnectionJDBC).driver;
// DEC-14009 1.8以上版本JDK支持ODBC连接
if (driver === JDBC_ODBC_DRIVER) {
testStatus.setFail(re.errorMsg, driver, Dec.system[DecCst.Hyperlink.DECISION_HYPERLINK_CONFIG][JDBC_ODBC_DRIVER_HELP_LINK]);
return;
}
const databaseType = (formValue.connectionData as ConnectionJDBC).database; const databaseType = (formValue.connectionData as ConnectionJDBC).database;
const databaseLink = BI.get(DATA_BASE_DRIVER_LINK.find(item => item.databaseType === databaseType), 'link'); const databaseLink = BI.get(DATA_BASE_DRIVER_LINK.find(item => item.databaseType === databaseType), 'link');
testStatus.setFail(re.errorMsg, driver, Dec.system[DecCst.Hyperlink.DECISION_HYPERLINK_CONFIG][databaseLink]); testStatus.setFail(re.errorMsg, driver, Dec.system[DecCst.Hyperlink.DECISION_HYPERLINK_CONFIG][databaseLink]);

1
src/modules/pages/maintain/maintain.ts

@ -35,6 +35,7 @@ export class Maintain extends BI.Widget {
items: [ items: [
{ {
type: IconButton, type: IconButton,
$value: 'back-databases',
cls: 'dcm-back-font', cls: 'dcm-back-font',
height: 15, height: 15,
invisible: this.model.isCopy || isEdit, invisible: this.model.isCopy || isEdit,

2
src/modules/title/title.ts

@ -44,12 +44,14 @@ export class Title extends BI.Widget {
items: [ items: [
{ {
text: BI.i18nText('Dec-Dcm_Connection_Management'), text: BI.i18nText('Dec-Dcm_Connection_Management'),
$testId: 'dec-dcm-connection-tab',
selected: true, selected: true,
value: PAGE_INDEX.CONNECTION, value: PAGE_INDEX.CONNECTION,
hgap: 15, hgap: 15,
}, },
{ {
text: BI.i18nText('Dec-Dcm_Pool_Connection_Management'), text: BI.i18nText('Dec-Dcm_Pool_Connection_Management'),
$testId: 'dec-dcm-connection-tab',
value: PAGE_INDEX.POOL, value: PAGE_INDEX.POOL,
hgap: 15, hgap: 15,
}, },

2
src/modules/title/title_database/title_datebase.ts

@ -29,6 +29,7 @@ export class TitleDatabaseWidget extends BI.Widget {
items: [ items: [
{ {
type: Button, type: Button,
$value: 'title-database-cancel',
text: BI.i18nText('BI-Basic_Cancel'), text: BI.i18nText('BI-Basic_Cancel'),
level: 'ignore', level: 'ignore',
handler: () => { handler: () => {
@ -37,6 +38,7 @@ export class TitleDatabaseWidget extends BI.Widget {
}, },
{ {
type: Button, type: Button,
$value: 'title-database-save',
text: BI.i18nText('BI-Basic_Save'), text: BI.i18nText('BI-Basic_Save'),
disabled: !this.model.datebaseTypeSelected, disabled: !this.model.datebaseTypeSelected,
ref: (_ref: any) => { ref: (_ref: any) => {

3
src/modules/title/title_maintain/title_maintain.ts

@ -19,6 +19,7 @@ export class TitleMaintainWidget extends BI.Widget {
items: [ items: [
{ {
type: Button, type: Button,
$value: 'title-maintain-cancel',
text: BI.i18nText('BI-Basic_Cancel'), text: BI.i18nText('BI-Basic_Cancel'),
level: 'ignore', level: 'ignore',
handler: () => { handler: () => {
@ -29,6 +30,7 @@ export class TitleMaintainWidget extends BI.Widget {
}, },
{ {
type: Button, type: Button,
$value: 'title-maintain-connection-test',
text: BI.i18nText('Dec-Dcm_Connection_Test'), text: BI.i18nText('Dec-Dcm_Connection_Test'),
level: 'ignore', level: 'ignore',
handler: () => { handler: () => {
@ -37,6 +39,7 @@ export class TitleMaintainWidget extends BI.Widget {
}, },
{ {
type: Button, type: Button,
$value: 'title-maintain-save',
text: BI.i18nText('BI-Basic_Save'), text: BI.i18nText('BI-Basic_Save'),
handler: () => { handler: () => {
this.store.setSaveEvent(); this.store.setSaveEvent();

2
webpack/webpack.dev.js

@ -36,7 +36,7 @@ chokidar
module.exports = merge(common, { module.exports = merge(common, {
devtool: 'eval-source-map', devtool: 'eval-source-map',
entry: { entry: {
show: ['babel-polyfill', './src/i18n.ts', './src/request.ts', './src/index.ts'], show: ['./src/i18n.ts', './src/request.ts', './src/index.ts'],
}, },
output: { output: {
path: dirs.DEST, path: dirs.DEST,

Loading…
Cancel
Save