Browse Source

feat: 国际化

qufenxi
langwenda 6 years ago
parent
commit
cecb3f1eb5
  1. 1
      package.json
  2. 2
      src/app/app.model.ts
  3. 2
      src/app/link_set/left/left.service.ts
  4. 10
      src/app/link_set/left/left_item/left.item.component.ts
  5. 6
      src/app/link_set/left/left_item/left.item.icon.component.ts
  6. 2
      src/app/link_set/link-set.component.ts
  7. 16
      src/app/link_set/link-set.model.ts
  8. 2
      src/app/link_set/more/more.link.component.ts
  9. 6
      src/app/link_set/more/more.link.service.ts
  10. 8
      src/app/link_set/right/nothing.component.ts
  11. 48
      src/app/link_set/right/right_edit/right.edit.component.ts
  12. 1
      src/app/link_set/right/right_edit/right.edit.constant.ts
  13. 42
      src/app/link_set/right/right_edit/right.edit.mysql.component.ts
  14. 24
      src/app/link_set/right/right_show/right.show.component.ts
  15. 11
      src/app/link_set/right/right_title/right.title.component.ts
  16. 12
      src/app/link_set/select/select.component.ts
  17. 4
      src/app/link_set/select/select.service.ts
  18. 2
      src/app/link_status/left/left.service.ts
  19. 4
      src/app/link_status/link_status.component.ts
  20. 4
      src/app/link_status/right/right.card.component.ts
  21. 4
      src/app/link_status/right/right.component.ts
  22. 4
      src/app/title/title.component.ts
  23. 2
      src/app/title/title_item/title_item.component.ts
  24. 12
      src/demo/plugin.redis.edit.ts
  25. 6
      src/demo/plugin.redis.preview.ts
  26. 3
      src/demo/plugin.tedis.pool.ts
  27. 1
      src/index.html
  28. 1
      src/index.ts
  29. 61
      src/lib/locale/i18n_zh_CN.js
  30. 12
      src/shared/service/dialog.service.ts
  31. 1
      types/globals.d.ts

1
package.json

@ -10,6 +10,7 @@
"author": "alan <alan@fanrun.com>", "author": "alan <alan@fanrun.com>",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/node": "^12.0.2",
"@typescript-eslint/eslint-plugin": "^1.6.0", "@typescript-eslint/eslint-plugin": "^1.6.0",
"@typescript-eslint/parser": "^1.6.0", "@typescript-eslint/parser": "^1.6.0",
"copy-webpack-plugin": "^5.0.2", "copy-webpack-plugin": "^5.0.2",

2
src/app/app.model.ts

@ -7,7 +7,7 @@ const Model: ModelType = {
childContext: ['tab', 'linkList', 'linkSelected', 'linkUpdate', 'moreLinkSelected', 'statusSelected', 'connectionNameErr'], childContext: ['tab', 'linkList', 'linkSelected', 'linkUpdate', 'moreLinkSelected', 'statusSelected', 'connectionNameErr'],
state () { state () {
return { return {
tab: '数据连接管理', tab: BI.i18nText('BI-Data_Connection_Management'),
linkList, linkList,
linkSelected: {}, linkSelected: {},
linkUpdate: {}, linkUpdate: {},

2
src/app/link_set/left/left.service.ts

@ -10,7 +10,7 @@ export const getLinks = (linkList: LinkType[]): any => {
title: item.connectionName, title: item.connectionName,
id: item.connectionId, id: item.connectionId,
creator: item.creator, creator: item.creator,
text: item.text ? item.text : '默认', text: item.text ? item.text : BI.i18nText('BI-Default'),
}); });
}); });

10
src/app/link_set/left/left_item/left.item.component.ts

@ -24,7 +24,7 @@ const Widget: WidgetType = {
cls: 'link-font', cls: 'link-font',
height: 24, height: 24,
width: 26, width: 26,
text: '连接', text: BI.i18nText('BI-Connections'),
title, title,
}, },
{ {
@ -41,25 +41,25 @@ const Widget: WidgetType = {
{ {
type: ItemIcon, type: ItemIcon,
cls: 'link-text-font', cls: 'link-text-font',
title: '测试连接', title: BI.i18nText('BI-Test-Connection'),
id, id,
}, },
{ {
type: ItemIcon, type: ItemIcon,
cls: 'copy-font', cls: 'copy-font',
title: '复制', title: BI.i18nText('BI-Copy'),
id, id,
}, },
{ {
type: ItemIcon, type: ItemIcon,
cls: 'info-font', cls: 'info-font',
title: `类型${text === 'DESIGNER' ? '其他' : text} \r\n创建者${creator}`, title: `${BI.i18nText('BI-Type')}${text === 'DESIGNER' ? BI.i18nText('BI-Other') : text} \r\n${BI.i18nText('BI-Creator')}${creator}`,
id, id,
}, },
{ {
type: ItemIcon, type: ItemIcon,
cls: 'delete-font', cls: 'delete-font',
title: '删除', title: BI.i18nText('BI-Delete'),
id, id,
}, },
], ],

6
src/app/link_set/left/left_item/left.item.icon.component.ts

@ -10,7 +10,7 @@ const Widget: WidgetType = {
const that = this; const that = this;
let iconContent: any = null; let iconContent: any = null;
let combo: any = null; let combo: any = null;
if (title === '删除') { if (title === BI.i18nText('BI-Delete')) {
return { return {
type: BubbleCombo, type: BubbleCombo,
direction: 'bottom', direction: 'bottom',
@ -30,7 +30,7 @@ const Widget: WidgetType = {
}, },
popup: { popup: {
type: TextBubblePopupBarView, type: TextBubblePopupBarView,
text: '确定删除该数据连接?', text: BI.i18nText('BI-Connection-Make-Sure-Delete'),
listeners: [{ listeners: [{
eventName: BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON, eventName: BI.BubblePopupBarView.EVENT_CLICK_TOOLBAR_BUTTON,
action (type: boolean) { action (type: boolean) {
@ -70,7 +70,7 @@ const Widget: WidgetType = {
}, },
mounted() { mounted() {
const {title, id} = this.options; const {title, id} = this.options;
if (title !== '删除') { if (title !== BI.i18nText('BI-Delete')) {
this.element.on('click', (event: any) => { this.element.on('click', (event: any) => {
event.stopPropagation(); event.stopPropagation();
this.store.onIconClick(title, id); this.store.onIconClick(title, id);

2
src/app/link_set/link-set.component.ts

@ -10,7 +10,7 @@ const Widget: WidgetType = {
}, },
watch:{ watch:{
tab(tab: string) { tab(tab: string) {
this.setVisible(tab === '数据连接管理'); this.setVisible(tab === BI.i18nText('BI-Data_Connection_Management'));
}, },
}, },
render() { render() {

16
src/app/link_set/link-set.model.ts

@ -33,17 +33,17 @@ const Model: ModelType = {
}, },
onIconClick(title: string, id: string) { onIconClick(title: string, id: string) {
switch (title) { switch (title) {
case '删除': case BI.i18nText('BI-Delete'):
deleteConnection(id, () => { deleteConnection(id, () => {
this.model.linkList = [...this.model.linkList.filter((item: LinkType) => item.connectionId !== id)]; this.model.linkList = [...this.model.linkList.filter((item: LinkType) => item.connectionId !== id)];
this.model.linkSelected = {}; this.model.linkSelected = {};
this.model.linkUpdate = {}; this.model.linkUpdate = {};
}); });
break; break;
case '测试连接': case BI.i18nText('BI-Test-Connection'):
this._textLink(id); this._textLink(id);
break; break;
case '复制': case BI.i18nText('BI-Copy'):
this.noSaveConfirm(() => { this.noSaveConfirm(() => {
this.copyLink(id); this.copyLink(id);
}); });
@ -53,16 +53,16 @@ const Model: ModelType = {
} }
}, },
_textLink(id: string) { _textLink(id: string) {
const loadingId = dialog.loading('正在测试连接,请稍候...'); const loadingId = dialog.loading(BI.i18nText('BI-Connection-Testing'));
const link = this.model.linkList.find((item: LinkType) => item.connectionId === id); const link = this.model.linkList.find((item: LinkType) => item.connectionId === id);
testConnection(link, (res: any) => { testConnection(link, (res: any) => {
dialog.close(loadingId); dialog.close(loadingId);
if (res && res.errorCode) { if (res && res.errorCode) {
dialog.linkFail(`${link.connectionName}测试连接失败`, res.errorMsg, () => { dialog.linkFail(`${link.connectionName}${BI.i18nText('BI-Connection-Test-Fail')}`, res.errorMsg, () => {
this._textLink(id); this._textLink(id);
}); });
} else { } else {
dialog.success('连接成功'); dialog.success(BI.i18nText('BI-Connection-Test-Success'));
} }
}); });
}, },
@ -125,7 +125,7 @@ const Model: ModelType = {
}, },
setNewLink(value: string) { setNewLink(value: string) {
if (!databaseTyle.some(item => item.text === value) && !BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${value.toLowerCase()}.edit`)) { if (!databaseTyle.some(item => item.text === value) && !BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${value.toLowerCase()}.edit`)) {
dialog.error('找不到该连接的配置信息'); dialog.error(BI.i18nText('BI-Connection-Option-Cannot-Find'));
return; return;
} }
@ -167,7 +167,7 @@ const Model: ModelType = {
}, },
noSaveConfirm(cb: Function) { noSaveConfirm(cb: Function) {
if (this.model.linkSelected && this.model.linkSelected.isSelected) { if (this.model.linkSelected && this.model.linkSelected.isSelected) {
dialog.confirm('当前设置尚未保存,是否保存?', (isConfirm: boolean) => { dialog.confirm(BI.i18nText('BI-Connection-Config-No-Save'), (isConfirm: boolean) => {
if (isConfirm) { if (isConfirm) {
this.saveLink(); this.saveLink();
} else { } else {

2
src/app/link_set/more/more.link.component.ts

@ -15,7 +15,7 @@ const Widget: WidgetType = {
items:[{ items:[{
type: SearchEditor, type: SearchEditor,
width: 300, width: 300,
watermark: '搜索', watermark: BI.i18nText('BI-Search'),
}], }],
}, },
height: 30, height: 30,

6
src/app/link_set/more/more.link.service.ts

@ -7,7 +7,7 @@ export const moreLink = (onConfirm?: Function): void => {
BI.Popovers.create(id, { BI.Popovers.create(id, {
type: 'bi.bar_popover', type: 'bi.bar_popover',
size: 'normal', size: 'normal',
header: '更多数据连接', header: BI.i18nText('BI-Connection-More-Title'),
width: 550, width: 550,
height: 500, height: 500,
body: { body: {
@ -27,7 +27,7 @@ export const moreLink = (onConfirm?: Function): void => {
lgap: 10, lgap: 10,
items: [{ items: [{
type: 'bi.button', type: 'bi.button',
text: '取消', text: BI.i18nText('BI-Basic_Cancel'),
value: 1, value: 1,
level: 'ignore', level: 'ignore',
handler (v: any) { handler (v: any) {
@ -35,7 +35,7 @@ export const moreLink = (onConfirm?: Function): void => {
}, },
}, { }, {
type: 'bi.button', type: 'bi.button',
text: '确定', text: BI.i18nText('BI-Basic_Sure'),
disabled: true, disabled: true,
value: 0, value: 0,
ref(ref: any) { ref(ref: any) {

8
src/app/link_set/right/nothing.component.ts

@ -19,13 +19,7 @@ const Widget: WidgetType = {
type:Label, type:Label,
cls: 'bi-tips', cls: 'bi-tips',
height: 20, height: 20,
text:'请选择左侧数据连接或点击新建数据连接', text: BI.i18nText('BI-Connection-Plase-Add-One'),
},
{
type:Label,
cls: 'bi-tips',
height: 20,
text:'平台仅支持使用JDBC的数据连接的管理',
}, },
], ],

48
src/app/link_set/right/right_edit/right.edit.component.ts

@ -32,8 +32,8 @@ const Widget: WidgetType = {
items: [ items: [
{ {
type: FormItem, type: FormItem,
text: '数据连接名', text: BI.i18nText('BI-Connection-Form-ConnectionName'),
hint: '*修改数据连接名会影响相关数据表和仪表板', hint: BI.i18nText('BI-Connection-Form-ConnectionName-Change-Confirm'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
@ -60,7 +60,7 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '第一步', text: BI.i18nText('BI-First_Step'),
height: 400, height: 400,
form:{ form:{
type: Vertical, type: Vertical,
@ -68,7 +68,7 @@ const Widget: WidgetType = {
items:[ items:[
{ {
type: FormItem, type: FormItem,
text: '驱动器', text: BI.i18nText('BI-Connection-Form-Driver'),
form:{ form:{
type: TextValueCombo, type: TextValueCombo,
cls: 'bi-border', cls: 'bi-border',
@ -88,11 +88,11 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: 'URL', text: BI.i18nText('BI-Connection-Form-URL'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.url, value: linkSelected.url,
listeners: [{ listeners: [{
@ -108,12 +108,12 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '编码', text: BI.i18nText('BI-Connection-Form-OriginalCharsetName'),
form:{ form:{
type: TextValueCombo, type: TextValueCombo,
cls: 'bi-border', cls: 'bi-border',
width: 300, width: 300,
text: linkSelected.originalCharsetName === '' ? '自动' : linkSelected.originalCharsetName, text: linkSelected.originalCharsetName === '' ? BI.i18nText('BI-Connection-Form-Auto') : linkSelected.originalCharsetName,
items: BI.Constants.getConstant(charset), items: BI.Constants.getConstant(charset),
listeners: [{ listeners: [{
eventName: BI.TextValueCombo.EVENT_CHANGE, eventName: BI.TextValueCombo.EVENT_CHANGE,
@ -128,12 +128,12 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '用户名', text: BI.i18nText('BI-Connection-Form-UserName'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.user, value: linkSelected.user,
listeners: [{ listeners: [{
@ -149,13 +149,13 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '密码', text: BI.i18nText('BI-Connection-Form-Password'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
inputType:'password', inputType:'password',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.password, value: linkSelected.password,
listeners: [{ listeners: [{
@ -171,17 +171,17 @@ const Widget: WidgetType = {
}, },
{ {
type: Title, type: Title,
text: '连接池属性', text: BI.i18nText('BI-Connection-Form-Pool-Properties'),
}, },
{ {
type: FormItem, type: FormItem,
text: 'SQL验证查询', text: BI.i18nText('BI-Connection-Form-SQL-Validation-Query'),
height: 100, height: 100,
form:{ form:{
type: TextAreaEditor, type: TextAreaEditor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
height:100, height:100,
value: linkSelected.validationQuery, value: linkSelected.validationQuery,
@ -198,10 +198,10 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '获取连接前校验', text: BI.i18nText('BI-Connection-Form-Connection-Check'),
form:{ form:{
type: MultiSelectItem, type: MultiSelectItem,
text: '是', text: BI.i18nText('BI-Yes'),
selected: linkSelected.testOnBorrow, selected: linkSelected.testOnBorrow,
width: 60, width: 60,
listeners: [{ listeners: [{
@ -217,15 +217,15 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '最大活动连接数', text: BI.i18nText('BI-Connection-Form-Connection-Max-Number'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 60, width: 60,
value: linkSelected.maxActive, value: linkSelected.maxActive,
errorText: '请输入有效的正整数', errorText: BI.i18nText('BI-Connection-Form-Place-Input-Number'),
validationChecker (v: string) { validationChecker (v: string) {
if (/^\+?[1-9][0-9]*$/.test(v)) { if (/^\+?[1-9][0-9]*$/.test(v)) {
return true; return true;
@ -249,19 +249,19 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '第二步', text: BI.i18nText('BI-Second_Step'),
form: { form: {
type: Button, type: Button,
text: '测试连接', text: BI.i18nText('BI-Test-Connection'),
level: 'ignore', level: 'ignore',
}, },
}, },
{ {
type: FormItem, type: FormItem,
text: '第三步', text: BI.i18nText('BI-Third_Step'),
form: { form: {
type: FormItem, type: FormItem,
text: '模式', text: BI.i18nText('BI-Connection-Form-Pattern'),
form: { form: {
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',

1
src/app/link_set/right/right_edit/right.edit.constant.ts

@ -1,4 +1,5 @@
export const ConstantName = 'bi.constant.database.conf.charset.list'; export const ConstantName = 'bi.constant.database.conf.charset.list';
export const Constant = BI.constant(ConstantName, [ export const Constant = BI.constant(ConstantName, [
{ {
text: '自动', text: '自动',

42
src/app/link_set/right/right_edit/right.edit.mysql.component.ts

@ -20,8 +20,8 @@ const Widget: WidgetType = {
items: [ items: [
{ {
type: FormItem, type: FormItem,
text: '数据连接名', text: BI.i18nText('BI-Connection-Form-ConnectionName'),
hint: '*修改数据连接名会影响相关数据表和仪表板', hint: BI.i18nText('BI-Connection-Form-ConnectionName-Change-Confirm'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
@ -40,7 +40,7 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '驱动器', text: BI.i18nText('BI-Connection-Form-Driver'),
form:{ form:{
type: TextValueCombo, type: TextValueCombo,
cls: 'bi-border', cls: 'bi-border',
@ -60,11 +60,11 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: 'URL', text: BI.i18nText('BI-Connection-Form-URL'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.url, value: linkSelected.url,
listeners: [{ listeners: [{
@ -80,12 +80,12 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '编码', text: BI.i18nText('BI-Connection-Form-OriginalCharsetName'),
form:{ form:{
type: TextValueCombo, type: TextValueCombo,
cls: 'bi-border', cls: 'bi-border',
width: 300, width: 300,
text: linkSelected.originalCharsetName === '' ? '自动' : linkSelected.originalCharsetName, text: linkSelected.originalCharsetName === '' ? BI.i18nText('BI-Connection-Form-Auto') : linkSelected.originalCharsetName,
items: BI.Constants.getConstant(charset), items: BI.Constants.getConstant(charset),
listeners: [{ listeners: [{
eventName: BI.TextValueCombo.EVENT_CHANGE, eventName: BI.TextValueCombo.EVENT_CHANGE,
@ -100,12 +100,12 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '用户名', text: BI.i18nText('BI-Connection-Form-UserName'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.user, value: linkSelected.user,
listeners: [{ listeners: [{
@ -121,13 +121,13 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '密码', text: BI.i18nText('BI-Connection-Form-Password'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
inputType:'password', inputType:'password',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
value: linkSelected.password, value: linkSelected.password,
listeners: [{ listeners: [{
@ -143,17 +143,17 @@ const Widget: WidgetType = {
}, },
{ {
type: Title, type: Title,
text: '连接池属性', text: BI.i18nText('BI-Connection-Form-Pool-Properties'),
}, },
{ {
type: FormItem, type: FormItem,
text: 'SQL验证查询', text: BI.i18nText('BI-Connection-Form-SQL-Validation-Query'),
height: 100, height: 100,
form:{ form:{
type: TextAreaEditor, type: TextAreaEditor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 300, width: 300,
height:100, height:100,
value: linkSelected.validationQuery, value: linkSelected.validationQuery,
@ -170,10 +170,10 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '获取连接前校验', text: BI.i18nText('BI-Connection-Form-Connection-Check'),
form:{ form:{
type: MultiSelectItem, type: MultiSelectItem,
text: '是', text: BI.i18nText('BI-Yes'),
selected: linkSelected.testOnBorrow, selected: linkSelected.testOnBorrow,
width: 60, width: 60,
listeners: [{ listeners: [{
@ -189,15 +189,15 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '最大活动连接数', text: BI.i18nText('BI-Connection-Form-Connection-Max-Number'),
form:{ form:{
type: Editor, type: Editor,
cls: 'bi-border', cls: 'bi-border',
allowBlank:true, allowBlank:true,
watermark:'请输入', watermark:BI.i18nText('BI-Connection-Form-Place-Input'),
width: 60, width: 60,
value: linkSelected.maxActive, value: linkSelected.maxActive,
errorText: '请输入有效的正整数', errorText: BI.i18nText('BI-Connection-Form-Place-Input-Number'),
validationChecker (v: string) { validationChecker (v: string) {
if (/^\+?[1-9][0-9]*$/.test(v)) { if (/^\+?[1-9][0-9]*$/.test(v)) {
return true; return true;
@ -218,10 +218,10 @@ const Widget: WidgetType = {
}, },
{ {
type: FormItem, type: FormItem,
text: '测试连接', text: BI.i18nText('BI-Test-Connection'),
form: { form: {
type: Button, type: Button,
text: '测试连接', text: BI.i18nText('BI-Test-Connection'),
level: 'ignore', level: 'ignore',
}, },
}, },

24
src/app/link_set/right/right_show/right.show.component.ts

@ -17,51 +17,51 @@ const Widget: WidgetType = {
items: [ items: [
{ {
type: BothSide, type: BothSide,
leftText: '数据连接名', leftText: BI.i18nText('BI-Connection-Form-ConnectionName'),
rightText: linkSelected.connectionName, rightText: linkSelected.connectionName,
}, },
{ {
type: BothSide, type: BothSide,
leftText: '驱动器', leftText: BI.i18nText('BI-Connection-Form-Driver'),
rightText: linkSelected.driver, rightText: linkSelected.driver,
}, },
{ {
type: BothSide, type: BothSide,
leftText: 'URL', leftText: BI.i18nText('BI-Connection-Form-URL'),
rightText: linkSelected.url, rightText: linkSelected.url,
}, },
{ {
type: BothSide, type: BothSide,
leftText: '编码', leftText: BI.i18nText('BI-Connection-Form-OriginalCharsetName'),
rightText: linkSelected.originalCharsetName === '' ? '自动' : linkSelected.originalCharsetName, rightText: linkSelected.originalCharsetName === '' ? BI.i18nText('BI-Connection-Form-Auto') : linkSelected.originalCharsetName,
}, },
{ {
type: BothSide, type: BothSide,
leftText: '用户名', leftText: BI.i18nText('BI-Connection-Form-UserName'),
rightText: linkSelected.user, rightText: linkSelected.user,
}, },
{ {
type: BothSide, type: BothSide,
leftText: '密码', leftText: BI.i18nText('BI-Connection-Form-Password'),
rightText: linkSelected.password, rightText: linkSelected.password,
}, },
{ {
type: Title, type: Title,
text: '连接池属性', text: BI.i18nText('BI-Connection-Form-Pool-Properties'),
}, },
{ {
type: BothSide, type: BothSide,
leftText: 'SQL验证查询', leftText: BI.i18nText('BI-Connection-Form-SQL-Validation-Query'),
rightText: linkSelected.validationQuery, rightText: linkSelected.validationQuery,
}, },
{ {
type: BothSide, type: BothSide,
leftText: '获取连接前校验', leftText: BI.i18nText('BI-Connection-Form-Connection-Check'),
rightText: linkSelected.testOnBorrow ? '是' : '否', rightText: linkSelected.testOnBorrow ? BI.i18nText('BI-Yes') : BI.i18nText('BI-No'),
}, },
{ {
type: BothSide, type: BothSide,
leftText: '最大连接数量', leftText: BI.i18nText('BI-Connection-Form-Connection-Max-Number'),
rightText: linkSelected.maxActive, rightText: linkSelected.maxActive,
}, },
], ],

11
src/app/link_set/right/right_title/right.title.component.ts

@ -12,6 +12,7 @@ const Widget: WidgetType = {
const linkList: LinkType[] = this.model.linkList; const linkList: LinkType[] = this.model.linkList;
const that = this; const that = this;
const {isEdit} = this.options; const {isEdit} = this.options;
const title = linkSelected.text === 'other' ? BI.i18nText('BI-Connection-Other') : linkSelected.text;
return { return {
type: Left, type: Left,
@ -21,13 +22,13 @@ const Widget: WidgetType = {
{ {
type: Label, type: Label,
cls: 'right-title-text', cls: 'right-title-text',
text: `数据连接(${linkSelected.text ? linkSelected.text : '默认'})`, text: `${BI.i18nText('BI-Data_Connections')}(${title ? title : BI.i18nText('BI-Default')})`,
}, },
{ {
type: Button, type: Button,
cls:'right-title-button', cls:'right-title-button',
invisible: isEdit, invisible: isEdit,
text: '编辑', text: BI.i18nText('BI-Edit'),
handler() { handler() {
that.store.setEdit(true); that.store.setEdit(true);
}, },
@ -36,11 +37,11 @@ const Widget: WidgetType = {
type: Button, type: Button,
cls:'right-title-button', cls:'right-title-button',
invisible: !isEdit, invisible: !isEdit,
text: '保存', text: BI.i18nText('BI-Save'),
handler() { handler() {
const result = BI.find(linkList, (idx: number, value: LinkType) => that.model.linkUpdate.connectionName === value.connectionName && value.connectionId !== that.model.linkUpdate.connectionId); const result = BI.find(linkList, (idx: number, value: LinkType) => that.model.linkUpdate.connectionName === value.connectionName && value.connectionId !== that.model.linkUpdate.connectionId);
if (result) { if (result) {
that.store.setConnectionNameErr('数据连接名已存在'); that.store.setConnectionNameErr(BI.i18nText('BI-Connection-Is-Existence'));
} else { } else {
that.store.saveLink(); that.store.saveLink();
} }
@ -51,7 +52,7 @@ const Widget: WidgetType = {
cls:'right-title-button', cls:'right-title-button',
invisible: !isEdit, invisible: !isEdit,
level: 'ignore', level: 'ignore',
text: '取消', text: BI.i18nText('BI-Basic_Cancel'),
handler() { handler() {
that.store.setCancel(); that.store.setCancel();
}, },

12
src/app/link_set/select/select.component.ts

@ -17,7 +17,7 @@ const Widget: WidgetType = {
adjustYOffset: 4, adjustYOffset: 4,
el: { el: {
type: 'bi.button', type: 'bi.button',
text: '新建数据连接', text: BI.i18nText('BI-Connection-New'),
height: 24, height: 24,
}, },
popup: { popup: {
@ -38,17 +38,17 @@ const Widget: WidgetType = {
cls: 'link-item', cls: 'link-item',
height: 24, height: 24,
width: 152, width: 152,
text: '更多数据连接...', text: BI.i18nText('BI-Connection-More'),
title:'更多数据连接...', title: BI.i18nText('BI-Connection-More'),
value: 'more', value: 'more',
}, { }, {
type: TextItem, type: TextItem,
cls: 'link-item', cls: 'link-item',
height: 24, height: 24,
width: 152, width: 152,
text: '其他', text: BI.i18nText('BI-Connection-Other'),
title:'其他', title: BI.i18nText('BI-Connection-Other'),
value: '其他', value: 'other',
}], }],
layouts: [{ layouts: [{
type: Vertical, type: Vertical,

4
src/app/link_set/select/select.service.ts

@ -70,7 +70,7 @@ export const databaseTyle = [
url: 'jdbc:mysql://localhost/dbname', url: 'jdbc:mysql://localhost/dbname',
}, },
{ {
text:'其他', text:'other',
databaseType: 'other', databaseType: 'other',
driver: 'org.h2.Driver', driver: 'org.h2.Driver',
drivers:['org.h2.Driver', 'com.fr.third.org.hsqldb.jdbcDriver', 'org.sqlite.JDBC'], drivers:['org.h2.Driver', 'com.fr.third.org.hsqldb.jdbcDriver', 'org.sqlite.JDBC'],
@ -266,7 +266,7 @@ export const getCnnectionName = (links: LinkType[], name: string): string => {
let nameIndex = 0; let nameIndex = 0;
const title = name.replace(/[0-9]/g, ''); const title = name.replace(/[0-9]/g, '');
const isPlugin = BI.some(plugins, (index: number, item: string) => item === title); const isPlugin = BI.some(plugins, (index: number, item: string) => item === title);
const startWith = isPlugin ? title : '数据连接'; const startWith = isPlugin ? title : BI.i18nText('BI-Data_Connections');
links.forEach(link => { links.forEach(link => {
link.isSelected = false; link.isSelected = false;

2
src/app/link_status/left/left.service.ts

@ -10,7 +10,7 @@ export const getLinks = (linkList: LinkType[], selectTitle = ''): any => {
title: item.connectionName, title: item.connectionName,
id: item.connectionId, id: item.connectionId,
creator: item.creator, creator: item.creator,
text: item.text ? item.text : '默认', text: item.text ? item.text : BI.i18nText('BI-Default'),
}); });
}); });

4
src/app/link_status/link_status.component.ts

@ -10,7 +10,7 @@ const Widget: WidgetType = {
}, },
watch:{ watch:{
tab(tab: string) { tab(tab: string) {
this.setVisible(tab === '连接池状态'); this.setVisible(tab === BI.i18nText('BI-Pool_Connection_Management'));
}, },
}, },
render() { render() {
@ -30,7 +30,7 @@ const Widget: WidgetType = {
{ {
type: Label, type: Label,
cls:'status-title', cls:'status-title',
text: '数据连接', text: BI.i18nText('BI-Data_Connections'),
}, },
], ],
}, },

4
src/app/link_status/right/right.card.component.ts

@ -40,7 +40,7 @@ const Widget: WidgetType = {
{ {
type: Label, type: Label,
height: 20, height: 20,
text: '活动连接数', text: BI.i18nText('BI-Active_Connections_Number'),
}, },
], ],
}, },
@ -79,7 +79,7 @@ const Widget: WidgetType = {
{ {
type: Label, type: Label,
height: 20, height: 20,
text: '空闲连接数', text: BI.i18nText('BI-Leisure_Connections_Number'),
}, },
], ],
}, },

4
src/app/link_status/right/right.component.ts

@ -26,7 +26,7 @@ const Widget: WidgetType = {
...res, ...res,
}])); }]));
}); });
Title.setText(`数据连接(${title})`); Title.setText(`${BI.i18nText('BI-Data_Connections')}(${title})`);
}, },
}, },
render() { render() {
@ -41,7 +41,7 @@ const Widget: WidgetType = {
items:[ items:[
{ {
type: Label, type: Label,
text:'数据连接', text:BI.i18nText('BI-Data_Connections'),
}, },
], ],
ref(ref: any) { ref(ref: any) {

4
src/app/title/title.component.ts

@ -1,7 +1,7 @@
import {Left, WidgetType, IconButton} from '@ui/index'; import {Left, WidgetType, IconButton} from '@ui/index';
import TitleItem from './title_item/title_item.component'; import TitleItem from './title_item/title_item.component';
import {isDesigner, closeWindow} from '@shared/crud/crud.request'; import {isDesigner, closeWindow} from '@shared/crud/crud.request';
const tabs = ['数据连接管理', '连接池状态']; const tabs = ['BI-Data_Connection_Management', 'BI-Pool_Connection_Management'];
const className = 'fr.title'; const className = 'fr.title';
const Widget: WidgetType = { const Widget: WidgetType = {
render() { render() {
@ -12,7 +12,7 @@ const Widget: WidgetType = {
...BI.map(tabs, (index: number, text: string) => { ...BI.map(tabs, (index: number, text: string) => {
return { return {
type: TitleItem, type: TitleItem,
text, text: BI.i18nText(text),
}; };
}), }),
{ {

2
src/app/title/title_item/title_item.component.ts

@ -26,7 +26,7 @@ const Widget = BI.inherit(BI.Widget, {
}, },
mounted() { mounted() {
const {text} = this.options; const {text} = this.options;
this.element.css(getSelectStyle('数据连接管理', text)); this.element.css(getSelectStyle(BI.i18nText('BI-Data_Connection_Management'), text));
this.element.on('click', () => { this.element.on('click', () => {
this.store.setTab(text); this.store.setTab(text);
}); });

12
src/demo/plugin.redis.edit.ts

@ -20,7 +20,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '数据库地址:', text: BI.i18nText('BI-Connection-Form-Database-Addr'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',
@ -28,7 +28,7 @@ const Widget = BI.inherit(BI.Widget, {
{ {
type: 'bi.editor', type: 'bi.editor',
cls: 'bi-border', cls: 'bi-border',
watermark: '数据库地址', watermark: BI.i18nText('BI-Connection-Form-Database-Addr'),
value:form.url, value:form.url,
allowBlank: true, allowBlank: true,
width: 300, width: 300,
@ -41,7 +41,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '端口:', text: BI.i18nText('BI-Connection-Form-Database-Port'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',
@ -49,12 +49,12 @@ const Widget = BI.inherit(BI.Widget, {
{ {
type: 'bi.editor', type: 'bi.editor',
cls: 'bi-border', cls: 'bi-border',
watermark: '端口', watermark: BI.i18nText('BI-Connection-Form-Database-Port'),
allowBlank: true, allowBlank: true,
width: 300, width: 300,
height: 24, height: 24,
value: form.port, value: form.port,
errorText: '请输入有效的正整数', errorText: BI.i18nText('BI-Connection-Form-Place-Input-Number'),
validationChecker (v: string) { validationChecker (v: string) {
if (/^\+?[1-9][0-9]*$/.test(v)) { if (/^\+?[1-9][0-9]*$/.test(v)) {
return true; return true;
@ -70,7 +70,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '密码:', text: BI.i18nText('BI-Connection-Form-Password'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',

6
src/demo/plugin.redis.preview.ts

@ -15,7 +15,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '数据库地址:', text: BI.i18nText('BI-Connection-Form-Database-Addr'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',
@ -32,7 +32,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '端口:', text: BI.i18nText('BI-Connection-Form-Database-Port'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',
@ -49,7 +49,7 @@ const Widget = BI.inherit(BI.Widget, {
items: [ items: [
{ {
type: 'bi.label', type: 'bi.label',
text: '密码:', text: BI.i18nText('BI-Connection-Form-Password'),
height: 24, height: 24,
width: 115, width: 115,
textAlign: 'left', textAlign: 'left',

3
src/demo/plugin.tedis.pool.ts

@ -39,7 +39,8 @@ const WidgetPool = BI.inherit(BI.Widget, {
}, },
{ {
type: 'bi.label', type: 'bi.label',
text: 'Redis连接数', height: 20,
text: BI.i18nText('BI-Active_Connections_Number'),
}, },
], ],
}, },

1
src/index.html

@ -7,6 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="./lib/fineui.min.css" /> <link rel="stylesheet" type="text/css" href="./lib/fineui.min.css" />
<script type="text/javascript" charset="UTF-8" src="./lib/fineui.min.js"></script> <script type="text/javascript" charset="UTF-8" src="./lib/fineui.min.js"></script>
<script type="text/javascript" charset="UTF-8" src="./lib/locale/i18n_zh_CN.js"></script>
</head> </head>
<body> <body>
<noscript> You need to enable JavaScript to run this app. </noscript> <noscript> You need to enable JavaScript to run this app. </noscript>

1
src/index.ts

@ -1,5 +1,6 @@
BI.DOM.ready(() => { BI.DOM.ready(() => {
const app = require('./app/app.component').default; const app = require('./app/app.component').default;
BI.i18n = Store.i18n;
BI.createWidget({ BI.createWidget({
type:app, type:app,
element: 'body', element: 'body',

61
src/lib/locale/i18n_zh_CN.js

@ -0,0 +1,61 @@
var Store = {
i18n : {
'BI-Basic_Cancel': '取消',
'BI-Basic_Sure': '确定',
'BI-Data_Connection_Management': '数据连接管理',
'BI-Pool_Connection_Management': '连接池管理',
'BI-Data_Connections': '数据连接',
'BI-Active_Connections_Number': '活动连接数',
'BI-Leisure_Connections_Number': '空闲连接数',
'BI-Connections': '连接',
'BI-Default': '默认',
'BI-Delete': '删除',
'BI-Test-Connection': '测试连接',
'BI-Copy': '复制',
'BI-Edit': '编辑',
'BI-Save': '保存',
'BI-Yes': '是',
'BI-No': '否',
'BI-Search': '搜索',
'BI-Type': '类型',
'BI-Other': '其他',
'BI-Tips': '提示',
'BI-Back': '返回',
'BI-Creator': '创建者',
'BI-First_Step': '第一步',
'BI-Second_Step': '第一步',
'BI-Third_Step': '第一步',
'BI-Connection-Detailed-Information': '详细信息',
'BI-Connection-Handup-Information': '收起信息',
'BI-Connection-Testing': '正在测试连接,请稍候...',
'BI-Connection-Test-Fail': '测试连接失败',
'BI-Connection-Test-Success': '连接成功',
'BI-Connection-Option-Cannot-Find': '找不到该连接的配置信息',
'BI-Connection-Config-No-Save': '当前设置尚未保存,是否保存?',
'BI-Connection-New': '新建数据连接',
'BI-Connection-More': '更多数据连接...',
'BI-Connection-More-Title': '更多数据连接',
'BI-Connection-Other': '其他',
'BI-Connection-Plase-Add-One': '请选择左侧数据连接或点击新建数据连接',
'BI-Connection-Is-Existence': '数据连接名已存在',
'BI-Connection-Form-ConnectionName': '数据连接名',
'BI-Connection-Form-ConnectionName-Change-Confirm': '*修改数据连接名会影响相关数据表和仪表板',
'BI-Connection-Form-Driver': '驱动器',
'BI-Connection-Form-URL': 'URL',
'BI-Connection-Form-Place-Input': '请输入',
'BI-Connection-Form-OriginalCharsetName': '编码',
'BI-Connection-Form-Auto': '自动',
'BI-Connection-Form-UserName': '用户名',
'BI-Connection-Form-Password': '密码',
'BI-Connection-Form-Pool-Properties': '连接池属性',
'BI-Connection-Form-SQL-Validation-Query': 'SQL验证查询',
'BI-Connection-Form-Connection-Check': '获取连接前校验',
'BI-Connection-Form-Connection-Max-Number': '最大活动连接数',
'BI-Connection-Form-Place-Input-Number': '请输入有效的正整数',
'BI-Connection-Form-Pattern': '模式',
'BI-Connection-Form-Database-Addr': '数据库地址',
'BI-Connection-Form-Database-Port': '端口号',
'BI-Connection-Make-Sure-Delete': '确定删除该数据连接?',
'BI-Connection-ReConnect': '重新连接',
}}
window.Store = Store;

12
src/shared/service/dialog.service.ts

@ -10,7 +10,7 @@ class Dialog {
BI.Popovers.create(id, { BI.Popovers.create(id, {
type: 'bi.bar_popover', type: 'bi.bar_popover',
size: 'normal', size: 'normal',
header: '提示', header: BI.i18nText('BI-Tips'),
width: 450, width: 450,
height: 220, height: 220,
body: { body: {
@ -156,20 +156,20 @@ class Dialog {
items:[ items:[
{ {
type: Button, type: Button,
text:'详细信息', text: BI.i18nText('BI-Connection-Detailed-Information'),
level: 'ignore', level: 'ignore',
handler() { handler() {
const isHide = this.getText() === '详细信息'; const isHide = this.getText() === BI.i18nText('BI-Connection-Detailed-Information');
Popover.element.css({ Popover.element.css({
height: isHide ? '290' : '220', height: isHide ? '290' : '220',
}); });
More.setVisible(isHide); More.setVisible(isHide);
this.setText(isHide ? '收起信息' : '详细信息'); this.setText(isHide ? BI.i18nText('BI-Connection-Handup-Information') : BI.i18nText('BI-Connection-Detailed-Information'));
}, },
}, },
{ {
type: Button, type: Button,
text:'返回', text: BI.i18nText('BI-Back'),
level: 'ignore', level: 'ignore',
handler() { handler() {
that.close(id); that.close(id);
@ -177,7 +177,7 @@ class Dialog {
}, },
{ {
type: Button, type: Button,
text:'重新连接', text: BI.i18nText('BI-Connection-ReConnect'),
handler() { handler() {
that.close(id); that.close(id);
cb ? cb() : null; cb ? cb() : null;

1
types/globals.d.ts vendored

@ -6,3 +6,4 @@ declare let BI: Obj;
declare const Fix: Obj; declare const Fix: Obj;
declare const Dec: Obj; declare const Dec: Obj;
declare const PluginHelper: Obj; declare const PluginHelper: Obj;
declare const Store: Obj;

Loading…
Cancel
Save