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': '发送超时',