add: filtering table of firewall + InterfaceSelector frontend fixes and improves

This commit is contained in:
Domingo Dirutigliano
2024-10-19 18:39:42 +02:00
parent 2658e74aca
commit d64e0aa73c
12 changed files with 147 additions and 86 deletions

View File

@@ -1,25 +1,27 @@
import { SegmentedControl, SegmentedControlProps } from "@mantine/core";
import { RuleMode } from "./utils";
import { RuleMode, Table } from "./utils";
import { table } from "console";
export const ModeSelector = (props:Omit<SegmentedControlProps, "data">) => (
<SegmentedControl
export const ModeSelector = (props:Omit<SegmentedControlProps, "data"> & { table: Table }) => {
const isFilterTable = props.table == Table.FILTER
return <SegmentedControl
data={[
{
value: RuleMode.IN,
label: 'IN',
label: isFilterTable?'IN':'PREROUTING',
},
{
...(isFilterTable?[{
value: RuleMode.FORWARD,
label: 'FWD',
},
}]:[]),
{
value: RuleMode.OUT,
label: 'OUT',
label: isFilterTable?'OUT':'POSTROUTING',
}
]}
size={props.size?props.size:"xs"}
{...props}
/>
)
}

View File

@@ -21,6 +21,11 @@ export enum RuleMode {
FORWARD = "forward"
}
export enum Table {
MANGLE = "mangle",
FILTER = "filter",
}
export type Rule = {
active: boolean
name:string,
@@ -33,6 +38,7 @@ export type Rule = {
port_dst_to: number,
action: ActionType,
mode: RuleMode,
table: Table
}
export type RuleInfo = {