Create a widget to define priority
This commit is contained in:
		
							
								
								
									
										21
									
								
								virtweb_frontend/src/widgets/forms/NWFilterPriorityInput.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								virtweb_frontend/src/widgets/forms/NWFilterPriorityInput.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| import { ServerApi } from "../../api/ServerApi"; | ||||
| import { TextInput } from "./TextInput"; | ||||
|  | ||||
| export function NWFilterPriorityInput(p: { | ||||
|   editable: boolean; | ||||
|   label: string; | ||||
|   value?: number; | ||||
|   onChange: (priority?: number) => void; | ||||
| }): React.ReactElement { | ||||
|   return ( | ||||
|     <TextInput | ||||
|       {...p} | ||||
|       value={p.value?.toString()} | ||||
|       type="number" | ||||
|       onValueChange={(v) => { | ||||
|         p.onChange?.(v && v !== "" ? Number(v) : undefined); | ||||
|       }} | ||||
|       size={ServerApi.Config.constraints.nwfilter_priority} | ||||
|     /> | ||||
|   ); | ||||
| } | ||||
| @@ -26,6 +26,7 @@ import { MACInput } from "./MACInput"; | ||||
| import { PortInput } from "./PortInput"; | ||||
| import { SelectInput } from "./SelectInput"; | ||||
| import { TextInput } from "./TextInput"; | ||||
| import { NWFilterPriorityInput } from "./NWFilterPriorityInput"; | ||||
|  | ||||
| export function NWFilterRules(p: { | ||||
|   editable: boolean; | ||||
| @@ -133,16 +134,14 @@ function NWRuleEdit(p: { | ||||
|             ]} | ||||
|           /> | ||||
|           <span style={{ width: "20px" }}></span> | ||||
|           <TextInput | ||||
|           <NWFilterPriorityInput | ||||
|             {...p} | ||||
|             label="Priority" | ||||
|             editable={p.editable} | ||||
|             value={p.rule.priority?.toString()} | ||||
|             type="number" | ||||
|             onValueChange={(v) => { | ||||
|               p.rule.priority = v && v !== "" ? Number(v) : undefined; | ||||
|             value={p.rule.priority} | ||||
|             onChange={(v) => { | ||||
|               p.rule.priority = v; | ||||
|               p.onChange?.(); | ||||
|             }} | ||||
|             size={ServerApi.Config.constraints.nwfilter_priority} | ||||
|           /> | ||||
|         </div> | ||||
|  | ||||
|   | ||||
| @@ -18,6 +18,7 @@ import { ServerApi } from "../../api/ServerApi"; | ||||
| import { SelectInput } from "../forms/SelectInput"; | ||||
| import { NWFSelectReferencedFilters } from "../forms/NWFSelectReferencedFilters"; | ||||
| import { NWFilterRules } from "../forms/NWFilterRules"; | ||||
| import { NWFilterPriorityInput } from "../forms/NWFilterPriorityInput"; | ||||
|  | ||||
| interface DetailsProps { | ||||
|   nwfilter: NWFilter; | ||||
| @@ -133,16 +134,14 @@ function NetworkFilterDetailsTabGeneral( | ||||
|           })} | ||||
|         /> | ||||
|  | ||||
|         <TextInput | ||||
|         <NWFilterPriorityInput | ||||
|           {...p} | ||||
|           label="Priority" | ||||
|           editable={p.editable} | ||||
|           value={p.nwfilter.priority?.toString()} | ||||
|           type="number" | ||||
|           onValueChange={(v) => { | ||||
|             p.nwfilter.priority = v && v !== "" ? Number(v) : undefined; | ||||
|           value={p.nwfilter.priority} | ||||
|           onChange={(pri) => { | ||||
|             p.nwfilter.priority = pri; | ||||
|             p.onChange?.(); | ||||
|           }} | ||||
|           size={ServerApi.Config.constraints.nwfilter_priority} | ||||
|         /> | ||||
|       </EditSection> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user