From 08c558a3ef3b5a745699c8fe40a4976d1a67d788 Mon Sep 17 00:00:00 2001 From: zhuyue Date: Wed, 1 Sep 2021 16:30:35 +0800 Subject: [PATCH] feat: Add filter for fip port forwarding & fix download 1. add filter for fip port forwarding 2. fix for download 3. make external_port not hideable Change-Id: I549925ee1403de99e9a543936bb4f4d44e764b4e --- .../Detail/PortForwarding/index.jsx | 33 +++++++++++++++---- .../network/containers/FloatingIp/index.jsx | 16 +++++++-- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx index 3f4a3b57..6211c5e5 100644 --- a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx +++ b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx @@ -22,6 +22,7 @@ import actionConfigs from './actions'; export default class PortForwarding extends Base { init() { this.store = new PortForwardingStore(); + this.downloadStore = new PortForwardingStore(); } get policy() { @@ -32,11 +33,7 @@ export default class PortForwarding extends Base { return t('port forwardings'); } - get isFilterByBackend() { - return true; - } - - updateFetchParams = (params) => { + updateFetchParamsByPage = (params) => { const { id, all_projects, ...rest } = params; return { fipId: id, @@ -45,6 +42,10 @@ export default class PortForwarding extends Base { }; }; + get isFilterByBackend() { + return true; + } + get actionConfigs() { return this.isAdminPage ? actionConfigs.actionConfigsAdmin @@ -55,7 +56,6 @@ export default class PortForwarding extends Base { { title: t('External Port'), dataIndex: 'external_port', - isHideable: true, }, { title: t('Internal Ip Address'), @@ -75,6 +75,25 @@ export default class PortForwarding extends Base { ]; get searchFilters() { - return []; + return [ + { + label: t('Protocol'), + name: 'protocol', + options: [ + { + label: 'TCP', + key: 'tcp', + }, + { + label: 'UDP', + key: 'udp', + }, + ], + }, + { + label: t('External Port'), + name: 'external_port', + }, + ]; } } diff --git a/src/pages/network/containers/FloatingIp/index.jsx b/src/pages/network/containers/FloatingIp/index.jsx index b3d754c9..61918c8d 100644 --- a/src/pages/network/containers/FloatingIp/index.jsx +++ b/src/pages/network/containers/FloatingIp/index.jsx @@ -163,8 +163,8 @@ export default class FloatingIps extends Base { {record.port_forwardings .sort((a, b) => a.external_port - b.external_port) - .map((i) => ( - + .map((i, idx) => ( + {`${record.floating_ip_address}:${i.external_port} => ${i.internal_ip_address}:${i.internal_port}`} ))} @@ -180,6 +180,18 @@ export default class FloatingIps extends Base { } return resource_name || ''; }, + stringify: (resource_name, record) => { + if (!resource_name && record.port_forwardings.length !== 0) { + const ret = record.port_forwardings + .sort((a, b) => a.external_port - b.external_port) + .map( + (i) => + `${record.floating_ip_address}:${i.external_port} => ${i.internal_ip_address}:${i.internal_port}` + ); + return ret.join('\n'); + } + return resource_name; + }, isHideable: true, sorter: false, },