From 85a9a831b9464dd82561966f0786a54232c311f8 Mon Sep 17 00:00:00 2001 From: zhuyue Date: Wed, 1 Sep 2021 14:19:19 +0800 Subject: [PATCH] fix: Fix for create & edit fip port forwarding fix for create & edit fip port forwarding Change-Id: I40f6a413f275a215d63d592c7818d200bd6c7a9d --- .../Detail/PortForwarding/actions/Edit.jsx | 18 +++++++++++++++++- .../FloatingIp/actions/CreateDNAT.jsx | 16 ++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/actions/Edit.jsx b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/actions/Edit.jsx index 07ec6ab2..8c1c171a 100644 --- a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/actions/Edit.jsx +++ b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/actions/Edit.jsx @@ -140,6 +140,10 @@ export default class Edit extends ModalAction { virtual_adapter: { selectedRowKeys: [internal_port_id], }, + fixed_ip_address: { + selectedRowKeys: [internal_ip_address], + selectedRows: [{ fixed_ip_address: internal_ip_address }], + }, ...rest, }; return value; @@ -170,7 +174,7 @@ export default class Edit extends ModalAction { return portFixedIPs; }; - static policy = 'update_floatingip'; + static policy = 'update_floatingip_port_forwarding'; static allowed = () => true; @@ -226,7 +230,13 @@ export default class Edit extends ModalAction { type: 'input-number', min: 1, max: 65535, + required: true, validator: (_, val) => { + if (!val) { + return Promise.reject( + new Error(`${t('Please input')} ${t('External Port')}`) + ); + } const { alreadyUsedPorts } = this.state; const { external_port: initialExternalPort } = this.item; const flag = alreadyUsedPorts.some( @@ -251,7 +261,13 @@ export default class Edit extends ModalAction { hidden: fixed_ip_address.selectedRows.length === 0, min: 1, max: 65535, + required: true, validator: (_, val) => { + if (!val) { + return Promise.reject( + new Error(`${t('Please input')} ${t('Internal Port')}`) + ); + } const formData = this.formRef.current.getFieldsValue([ 'virtual_adapter', 'fixed_ip_address', diff --git a/src/pages/network/containers/FloatingIp/actions/CreateDNAT.jsx b/src/pages/network/containers/FloatingIp/actions/CreateDNAT.jsx index 2b8476c2..4c8df61c 100644 --- a/src/pages/network/containers/FloatingIp/actions/CreateDNAT.jsx +++ b/src/pages/network/containers/FloatingIp/actions/CreateDNAT.jsx @@ -108,7 +108,7 @@ export default class CreateDNAT extends ModalAction { this.formRef.current.resetFields(['fixed_ip_address', 'internal_port']); }; - static policy = 'update_floatingip'; + static policy = 'create_floatingip_port_forwarding'; static allowed = (item) => Promise.resolve(isNull(item.fixed_ip_address)); @@ -161,7 +161,13 @@ export default class CreateDNAT extends ModalAction { type: 'input-number', min: 1, max: 65535, + required: true, validator: (_, val) => { + if (!val) { + return Promise.reject( + new Error(`${t('Please input')} ${t('External Port')}`) + ); + } const { alreadyUsedPorts } = this.state; const flag = alreadyUsedPorts.some((pf) => pf.external_port === val); if (flag) { @@ -181,7 +187,13 @@ export default class CreateDNAT extends ModalAction { hidden: fixed_ip_address.selectedRows.length === 0, min: 1, max: 65535, + required: true, validator: (_, val) => { + if (!val) { + return Promise.reject( + new Error(`${t('Please input')} ${t('Internal Port')}`) + ); + } const formData = this.formRef.current.getFieldsValue([ 'virtual_adapter', 'fixed_ip_address', @@ -190,7 +202,7 @@ export default class CreateDNAT extends ModalAction { formData.fixed_ip_address.selectedRows[0].fixed_ip_address; const internal_port_id = formData.virtual_adapter.selectedRows[0].id; const { alreadyUsedPorts } = this.state; - // 判断是否本FIP已经绑定了本虚拟网卡的本端口 + // determine whether the FIP has been bound to the port of the port const flag = alreadyUsedPorts.some( (pf) => pf.internal_port === val &&