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

juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 072d497  feat: upstream support set `pass_host` parameter (#1088)
072d497 is described below

commit 072d497bfe0f805a481f71901fd7c72f4a5cf817
Author: guoqqqi <72343596+guoq...@users.noreply.github.com>
AuthorDate: Mon Dec 21 15:00:44 2020 +0800

    feat: upstream support set `pass_host` parameter (#1088)
    
    * feat: upstream support set `pass_host` parameter
    
    * feat: i18n
---
 web/src/components/Upstream/UpstreamForm.tsx | 51 +++++++++++++++++++++++++---
 web/src/pages/Upstream/locales/en-US.ts      |  6 ++++
 web/src/pages/Upstream/locales/zh-CN.ts      |  6 ++++
 3 files changed, 58 insertions(+), 5 deletions(-)

diff --git a/web/src/components/Upstream/UpstreamForm.tsx 
b/web/src/components/Upstream/UpstreamForm.tsx
index 1e4c196..a6838e4 100644
--- a/web/src/components/Upstream/UpstreamForm.tsx
+++ b/web/src/components/Upstream/UpstreamForm.tsx
@@ -247,10 +247,7 @@ const UpstreamForm: React.FC<Props> = forwardRef(
         </Form.Item>
 
         <Form.Item label={formatMessage({ id: 
'upstream.step.healthy.checks.active.port' })}>
-          <Form.Item
-            name={['checks', 'active', 'port']}
-            noStyle
-          >
+          <Form.Item name={['checks', 'active', 'port']} noStyle>
             <InputNumber
               placeholder={formatMessage({ id: 
'upstream.step.input.healthy.checks.active.port' })}
               disabled={readonly}
@@ -557,7 +554,13 @@ const UpstreamForm: React.FC<Props> = forwardRef(
     );
 
     return (
-      <Form form={form} labelCol={{ span: 3 }}>
+      <Form
+        form={form}
+        labelCol={{ span: 3 }}
+        initialValues={{
+          pass_host: 'pass',
+        }}
+      >
         {showSelector && (
           <Form.Item label="选择上游" name="upstream_id">
             <Select
@@ -603,6 +606,44 @@ const UpstreamForm: React.FC<Props> = forwardRef(
 
         <NodeList />
 
+        <Form.Item
+          label={formatMessage({ id: 'upstream.step.pass-host' })}
+          name="pass_host"
+          extra={formatMessage({ id: 'upstream.step.pass-host.tips' })}
+        >
+          <Select disabled={readonly}>
+            <Select.Option value="pass">
+              {formatMessage({ id: 'upstream.step.pass-host.pass' })}
+            </Select.Option>
+            <Select.Option value="node">
+              {formatMessage({ id: 'upstream.step.pass-host.node' })}
+            </Select.Option>
+            <Select.Option value="rewrite">
+              {formatMessage({ id: 'upstream.step.pass-host.rewrite' })}
+            </Select.Option>
+          </Select>
+        </Form.Item>
+        <Form.Item
+          noStyle
+          shouldUpdate={(prev, next) => {
+            return prev.pass_host !== next.pass_host;
+          }}
+        >
+          {() => {
+            if (form.getFieldValue('pass_host') === 'rewrite') {
+              return (
+                <Form.Item
+                  label={formatMessage({ id: 
'upstream.step.pass-host.upstream_host' })}
+                  name="upstream_host"
+                >
+                  <Input disabled={readonly} />
+                </Form.Item>
+              );
+            }
+            return null;
+          }}
+        </Form.Item>
+
         {timeoutFields.map(({ label, name }) => (
           <Form.Item label={label} required key={label}>
             <Form.Item
diff --git a/web/src/pages/Upstream/locales/en-US.ts 
b/web/src/pages/Upstream/locales/en-US.ts
index d8e54b3..a339961 100644
--- a/web/src/pages/Upstream/locales/en-US.ts
+++ b/web/src/pages/Upstream/locales/en-US.ts
@@ -32,6 +32,12 @@ export default {
   'upstream.step.description': 'Description',
   'upstream.step.input.description': 'Please input description',
   'upstream.step.type': 'Type',
+  'upstream.step.pass-host': 'Pass Host',
+  'upstream.step.pass-host.tips': 'When selecting node, there can only be ONE 
node in node list.',
+  'upstream.step.pass-host.pass': 'pass',
+  'upstream.step.pass-host.node': 'node',
+  'upstream.step.pass-host.rewrite': 'rewrite',
+  'upstream.step.pass-host.upstream_host': 'Upstream Host',
   'upstream.step.connect.timeout': 'Connect Timeout',
   'upstream.step.input.connect.timeout': 'Please input connect timeout',
   'upstream.step.send.timeout': 'Send Timeout',
diff --git a/web/src/pages/Upstream/locales/zh-CN.ts 
b/web/src/pages/Upstream/locales/zh-CN.ts
index 878036e..44bae36 100644
--- a/web/src/pages/Upstream/locales/zh-CN.ts
+++ b/web/src/pages/Upstream/locales/zh-CN.ts
@@ -32,6 +32,12 @@ export default {
   'upstream.step.description': '描述',
   'upstream.step.input.description': '请输入描述',
   'upstream.step.type': '类型',
+  'upstream.step.pass-host': '传递域名',
+  'upstream.step.pass-host.tips': '当选择节点时,节点域名只能有一条数据。',
+  'upstream.step.pass-host.pass': '透传',
+  'upstream.step.pass-host.node': '节点',
+  'upstream.step.pass-host.rewrite': '重写',
+  'upstream.step.pass-host.upstream_host': '上游域名',
   'upstream.step.connect.timeout': '连接超时',
   'upstream.step.input.connect.timeout': '请输入连接超时时间',
   'upstream.step.send.timeout': '发送超时',

Reply via email to