This is an automated email from the ASF dual-hosted git repository.

leezng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e5242413 [INLONG-6772][Dashboard] MySQL sink supports selecting MySQL 
nodes (#6801)
4e5242413 is described below

commit 4e5242413c4aab0d67fe2d227542e06f5c1c30bc
Author: Lizhen <88174078+bluew...@users.noreply.github.com>
AuthorDate: Mon Dec 12 11:22:36 2022 +0800

    [INLONG-6772][Dashboard] MySQL sink supports selecting MySQL nodes (#6801)
---
 inlong-dashboard/src/locales/cn.json               |  1 +
 inlong-dashboard/src/locales/en.json               |  1 +
 inlong-dashboard/src/metas/nodes/defaults/MySQL.ts |  5 ++-
 inlong-dashboard/src/metas/sinks/defaults/MySQL.ts | 51 ++++++++++------------
 4 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/inlong-dashboard/src/locales/cn.json 
b/inlong-dashboard/src/locales/cn.json
index 16ba0ba58..988b3d771 100644
--- a/inlong-dashboard/src/locales/cn.json
+++ b/inlong-dashboard/src/locales/cn.json
@@ -211,6 +211,7 @@
   "meta.Sinks.MySQL.IsMetaField": "是否为元字段",
   "meta.Sinks.MySQL.FieldFormat": "字段格式",
   "meta.Sinks.MySQL.FieldDescription": "字段描述",
+  "meta.Sinks.MySQL.DataNodeName": "数据节点",
   "meta.Sinks.Oracle.TableName": "表名称",
   "meta.Sinks.Oracle.PrimaryKey": "主键",
   "meta.Sinks.Oracle.FieldName": "字段名",
diff --git a/inlong-dashboard/src/locales/en.json 
b/inlong-dashboard/src/locales/en.json
index bbe1abac3..a44cfedc3 100644
--- a/inlong-dashboard/src/locales/en.json
+++ b/inlong-dashboard/src/locales/en.json
@@ -210,6 +210,7 @@
   "meta.Sinks.MySQL.IsMetaField": "IsMetaField",
   "meta.Sinks.MySQL.FieldFormat": "FieldFormat",
   "meta.Sinks.MySQL.FieldDescription": "FieldDescription",
+  "meta.Sinks.MySQL.DataNodeName": "DataNode",
   "meta.Sinks.Oracle.TableName": "TableName",
   "meta.Sinks.Oracle.PrimaryKey": "PrimaryKey",
   "meta.Sinks.Oracle.FieldName": "FieldName",
diff --git a/inlong-dashboard/src/metas/nodes/defaults/MySQL.ts 
b/inlong-dashboard/src/metas/nodes/defaults/MySQL.ts
index be6feb65f..d8bf75ec7 100644
--- a/inlong-dashboard/src/metas/nodes/defaults/MySQL.ts
+++ b/inlong-dashboard/src/metas/nodes/defaults/MySQL.ts
@@ -34,7 +34,7 @@ export default class MySQLNode extends NodeInfo implements 
DataWithBackend, Rend
   username: string;
 
   @FieldDecorator({
-    type: 'input',
+    type: 'password',
     rules: [{ required: true }],
   })
   @I18n('meta.Nodes.MySQL.Password')
@@ -43,6 +43,9 @@ export default class MySQLNode extends NodeInfo implements 
DataWithBackend, Rend
   @FieldDecorator({
     type: 'input',
     rules: [{ required: true }],
+    props: {
+      placeholder: 'jdbc:mysql://127.0.0.1:3306/write',
+    },
   })
   @I18n('meta.Nodes.MySQL.Url')
   url: string;
diff --git a/inlong-dashboard/src/metas/sinks/defaults/MySQL.ts 
b/inlong-dashboard/src/metas/sinks/defaults/MySQL.ts
index 0960ed616..c4f2df323 100644
--- a/inlong-dashboard/src/metas/sinks/defaults/MySQL.ts
+++ b/inlong-dashboard/src/metas/sinks/defaults/MySQL.ts
@@ -63,18 +63,6 @@ const fieldTypes = Object.keys(fieldTypesConf).reduce(
 );
 
 export default class HiveSink extends SinkInfo implements DataWithBackend, 
RenderRow, RenderList {
-  @FieldDecorator({
-    type: 'input',
-    rules: [{ required: true }],
-    props: values => ({
-      disabled: [110, 130].includes(values?.status),
-      placeholder: 'jdbc:mysql://127.0.0.1:3306/write',
-    }),
-  })
-  @ColumnDecorator()
-  @I18n('JDBC URL')
-  jdbcUrl: string;
-
   @FieldDecorator({
     type: 'input',
     rules: [{ required: true }],
@@ -120,26 +108,35 @@ export default class HiveSink extends SinkInfo implements 
DataWithBackend, Rende
   enableCreateResource: number;
 
   @FieldDecorator({
-    type: 'input',
-    rules: [{ required: true }],
-    props: values => ({
-      disabled: [110, 130].includes(values?.status),
-    }),
-  })
-  @ColumnDecorator()
-  @I18n('meta.Sinks.Username')
-  username: string;
-
-  @FieldDecorator({
-    type: 'password',
+    type: 'select',
     rules: [{ required: true }],
     props: values => ({
+      showSearch: true,
       disabled: [110, 130].includes(values?.status),
+      options: {
+        requestTrigger: ['onSearch'],
+        requestService: keyword => ({
+          url: '/node/list',
+          method: 'POST',
+          data: {
+            keyword,
+            type: 'MYSQL',
+            pageNum: 1,
+            pageSize: 20,
+          },
+        }),
+        requestParams: {
+          formatResult: result =>
+            result?.list?.map(item => ({
+              label: item.name,
+              value: item.name,
+            })),
+        },
+      },
     }),
   })
-  @ColumnDecorator()
-  @I18n('meta.Sinks.Password')
-  password: string;
+  @I18n('meta.Sinks.MySQL.DataNodeName')
+  dataNodeName: string;
 
   @FieldDecorator({
     type: EditableTable,

Reply via email to