fix: update port forwarding filters by front-end

1. Support port forwarding filters with protocol, external port/port range, internal port/port range, internal ip address and description by front-end fuzzy query
2. Update SimpleTable/List component to support filterFunc with origin data

Change-Id: Ib14cabdbe7295296caf770849c1fc6a1adc118c6
This commit is contained in:
Jingwei.Zhang
2022-08-30 09:54:00 +08:00
parent 353949be7a
commit ffe6e3a982
3 changed files with 26 additions and 5 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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'),