diff --git a/src/components/Tables/SimpleTable/index.jsx b/src/components/Tables/SimpleTable/index.jsx index ff63d6b2..002f07a2 100644 --- a/src/components/Tables/SimpleTable/index.jsx +++ b/src/components/Tables/SimpleTable/index.jsx @@ -267,7 +267,7 @@ export default class SimpleTable extends React.Component { const { filterFunc } = searchFilters.find((i) => i.name === key); if (filterFunc) { - return !filterFunc(value, filterValue); + return !filterFunc(value, filterValue, data); } const isInclude = this.checkFilterInclude(key); diff --git a/src/containers/List/index.jsx b/src/containers/List/index.jsx index 758d53ad..fddf0768 100644 --- a/src/containers/List/index.jsx +++ b/src/containers/List/index.jsx @@ -843,7 +843,7 @@ export default class BaseList extends React.Component { (i) => i.name === key ); if (filterFunc) { - return !filterFunc(value, filterValue); + return !filterFunc(value, filterValue, data); } const isInclude = this.checkFilterInclude(key); diff --git a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx index e2ee4712..aa4469ba 100644 --- a/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx +++ b/src/pages/network/containers/FloatingIp/Detail/PortForwarding/index.jsx @@ -98,12 +98,33 @@ export class PortForwarding extends Base { options: getOptions(portForwardingProtocols), }, { - label: t('External Port'), + label: t('External Port/Port Range'), name: 'external_port', + filterFunc: (_, filter, data) => { + const { external_port, external_port_range } = data || {}; + return ( + `${external_port || ''}`.includes(filter) || + `${external_port_range || ''}`.includes(filter) + ); + }, }, { - label: t('External Port Range'), - name: 'external_port_range', + label: t('Internal Ip Address'), + name: 'internal_ip_address', + filterFunc: (value, filter) => { + return value.includes(filter); + }, + }, + { + label: t('Internal Port/Port Range'), + name: 'internal_port', + filterFunc: (_, filter, data) => { + const { internal_port, internal_port_range } = data || {}; + return ( + `${internal_port || ''}`.includes(filter) || + `${internal_port_range || ''}`.includes(filter) + ); + }, }, { label: t('Description'),