diff --git a/client/src/definitions.ts b/client/src/definitions.ts
index e300b99..3e377cf 100644
--- a/client/src/definitions.ts
+++ b/client/src/definitions.ts
@@ -4,90 +4,90 @@ import { SearchProvider, Options } from '~/components/inputs/DropdownInput.vue';
import { apiCall } from './api';
const GetHardwareInterfaces: SearchProvider = async (o) => {
- let res = await apiCall("Network.GetLinks", {});
+ let res = await apiCall('network.get_links', {});
if (res.Error === null) {
- console.debug("links", res.Data.Links);
- return Object.fromEntries(res.Data.Links.map(r => [r.name, { display: r.name }]));
+ console.debug('links', res.Data);
+ return Object.fromEntries(res.Data.map(r => [r.name, { display: r.name }]));
} else {
- console.debug("error", res);
+ console.debug('error', res);
return {} as Options;
}
};
const GetInterfaces: SearchProvider = async (o) => {
- let res = await apiCall("Network.GetInterfaces", {});
+ let res = await apiCall('network.get_interfaces', {});
if (res.Error === null) {
- console.debug("interfaces", res.Data.Interfaces);
+ console.debug('interfaces', res.Data);
let obj = {} as Options;
- Object.keys(res.Data.Interfaces).forEach(function (key, index) {
+ Object.keys(res.Data).forEach(function (key, index) {
obj[key] = {
display: key,
};
});
return obj;
} else {
- console.debug("error", res);
+ console.debug('error', res);
return {} as Options;
}
};
const GetAddresses: SearchProvider = async (o) => {
- let res = await apiCall("Object.GetAddresses", {});
+ let res = await apiCall('object.get_addresses', {});
if (res.Error === null) {
- console.debug("addresses", res.Data.Addresses);
+ console.debug('addresses', res.Data);
let obj = {} as Options;
- Object.keys(res.Data.Addresses).forEach(function (key, index) {
+ Object.keys(res.Data).forEach(function (key, index) {
obj[key] = {
display: key,
};
});
return obj;
} else {
- console.debug("error", res);
+ console.debug('error', res);
return {} as Options;
}
};
const GetServices: SearchProvider = async (o) => {
- let res = await apiCall("Object.GetServices", {});
+ let res = await apiCall('Object.get_services', {});
if (res.Error === null) {
- console.debug("services", res.Data.Services);
+ console.debug('services', res.Data);
let obj = {} as Options;
- Object.keys(res.Data.Services).forEach(function (key, index) {
+ Object.keys(res.Data).forEach(function (key, index) {
obj[key] = {
display: key,
};
});
return obj;
} else {
- console.debug("error", res);
+ console.debug('error', res);
return {} as Options;
}
};
const GetPeers: SearchProvider = async (o) => {
- let res = await apiCall("VPN.GetWireguardPeers", {});
+ let res = await apiCall('VPN.get_wireguard_peers', {});
if (res.Error === null) {
- console.debug("peers", res.Data.WireguardPeers);
+ console.debug('peers', res.Data);
let obj = {} as Options;
- Object.keys(res.Data.WireguardPeers).forEach(function (key, index) {
+ Object.keys(res.Data).forEach(function (key, index) {
obj[key] = {
display: key,
};
});
return obj;
} else {
- console.debug("error", res);
+ console.debug('error', res);
return {} as Options;
}
};
export const editTypes: { [key: string]: { [key: string]: any } } = {
- "firewall": {
- name: "Firewall",
- "forwardrules": {
- name: "ForwardRule",
- idType: "Number",
+ 'firewall': {
+ name: 'Firewall',
+ 'forwardrules': {
+ name: 'ForwardRule',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
name: zod.string(),
@@ -99,20 +99,20 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox" },
- { key: "match.source_addresses", label: "Source", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.destination_addresses", label: "Destination", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.services", label: "Services", as: "MultiSelect", props: { searchProvider: GetServices } },
- { key: "verdict", label: "Verdict", as: "PillBar", props: { options: { accept: { display: 'Accept' }, drop: { display: 'Drop' }, continue: { display: 'Continue' } } } },
- { key: "counter", label: "Counter", as: "CheckBox" },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox' },
+ { key: 'match.source_addresses', label: 'Source', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.destination_addresses', label: 'Destination', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.services', label: 'Services', as: 'MultiSelect', props: { searchProvider: GetServices } },
+ { key: 'verdict', label: 'Verdict', as: 'PillBar', props: { options: { accept: { display: 'Accept' }, drop: { display: 'Drop' }, continue: { display: 'Continue' } } } },
+ { key: 'counter', label: 'Counter', as: 'CheckBox' },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "destinationnatrules": {
- name: "DestinationNATRule",
- idType: "Number",
+ 'destinationnatrules': {
+ name: 'DestinationNATRule',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
name: zod.string(),
@@ -124,26 +124,26 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox" },
- { key: "match.source_addresses", label: "Source", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.destination_addresses", label: "Destination", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.services", label: "Services", as: "MultiSelect", props: { searchProvider: GetServices } },
+ { key: 'name', label: 'Name', as: 'TextBox' },
+ { key: 'match.source_addresses', label: 'Source', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.destination_addresses', label: 'Destination', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.services', label: 'Services', as: 'MultiSelect', props: { searchProvider: GetServices } },
],
},
{
- title: "DNAT",
+ title: 'DNAT',
fields: [
- { key: "address", label: "Destination", as: "SingleSelect", props: { searchProvider: GetAddresses } },
- { key: "service", label: "Service", as: "SingleSelect", props: { searchProvider: GetServices } },
- { key: "counter", label: "Counter", as: "CheckBox" },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'address', label: 'Destination', as: 'SingleSelect', props: { searchProvider: GetAddresses } },
+ { key: 'service', label: 'Service', as: 'SingleSelect', props: { searchProvider: GetServices } },
+ { key: 'counter', label: 'Counter', as: 'CheckBox' },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "sourcenatrules": {
- name: "SourceNATRule",
- idType: "Number",
+ 'sourcenatrules': {
+ name: 'SourceNATRule',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
name: zod.string(),
@@ -155,29 +155,29 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox" },
- { key: "match.source_addresses", label: "Source", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.destination_addresses", label: "Destination", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "match.services", label: "Services", as: "MultiSelect", props: { searchProvider: GetServices } },
+ { key: 'name', label: 'Name', as: 'TextBox' },
+ { key: 'match.source_addresses', label: 'Source', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.destination_addresses', label: 'Destination', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'match.services', label: 'Services', as: 'MultiSelect', props: { searchProvider: GetServices } },
],
},
{
- title: "SNAT",
+ title: 'SNAT',
fields: [
- { key: "type", label: "Type", as: "PillBar", props: { options: { snat: { display: 'SNAT' }, masquerade: { display: 'Masquerade' } } } },
- { key: "address", label: "Source", as: "SingleSelect", enabled: (values: any) => (values["type"] == 'snat'), props: { searchProvider: GetAddresses } },
- { key: "service", label: "Service", as: "SingleSelect", enabled: (values: any) => (values["type"] == 'snat'), props: { searchProvider: GetServices } },
- { key: "counter", label: "Counter", as: "CheckBox" },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'type', label: 'Type', as: 'PillBar', props: { options: { snat: { display: 'SNAT' }, masquerade: { display: 'Masquerade' } } } },
+ { key: 'address', label: 'Source', as: 'SingleSelect', enabled: (values: any) => (values['type'] == 'snat'), props: { searchProvider: GetAddresses } },
+ { key: 'service', label: 'Service', as: 'SingleSelect', enabled: (values: any) => (values['type'] == 'snat'), props: { searchProvider: GetServices } },
+ { key: 'counter', label: 'Counter', as: 'CheckBox' },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
},
- "network": {
- name: "Network",
- "interfaces": {
- name: "Interface",
+ 'network': {
+ name: 'Network',
+ 'interfaces': {
+ name: 'Interface',
validationSchema: toFormValidator(
zod.object({
name: zod.string(),
@@ -190,28 +190,28 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox", default: "placeholder" },
- { key: "type", label: "Type", as: "PillBar", props: { options: { hardware: { display: 'Hardware' }, vlan: { display: 'VLAN' }, bond: { display: 'Bond' }, bridge: { display: 'Bridge' } } } },
- { key: "hardware_device", label: "Hardware Device", as: "SingleSelect", enabled: (values: any) => (values["type"] == 'hardware'), props: { searchProvider: GetHardwareInterfaces } },
- { key: "vlan_parent", label: "VLAN Parent", as: "SingleSelect", enabled: (values: any) => (values["type"] == 'vlan'), props: { searchProvider: GetInterfaces } },
- { key: "vlan_id", label: "VLAN ID", as: "NumberBox", props: { min: 1, max: 4094 }, enabled: (values: any) => (values["type"] == 'vlan') },
- { key: "bond_members", label: "Bond Members", as: "MultiSelect", enabled: (values: any) => (values["type"] == 'bond'), props: { searchProvider: GetHardwareInterfaces } },
- { key: "bridge_members", label: "Bridge Members", as: "MultiSelect", enabled: (values: any) => (values["type"] == 'bridge'), props: { searchProvider: GetHardwareInterfaces } },
+ { key: 'name', label: 'Name', as: 'TextBox', default: 'placeholder' },
+ { key: 'type', label: 'Type', as: 'PillBar', props: { options: { hardware: { display: 'Hardware' }, vlan: { display: 'VLAN' }, bond: { display: 'Bond' }, bridge: { display: 'Bridge' } } } },
+ { key: 'hardware_device', label: 'Hardware Device', as: 'SingleSelect', enabled: (values: any) => (values['type'] == 'hardware'), props: { searchProvider: GetHardwareInterfaces } },
+ { key: 'vlan_parent', label: 'VLAN Parent', as: 'SingleSelect', enabled: (values: any) => (values['type'] == 'vlan'), props: { searchProvider: GetInterfaces } },
+ { key: 'vlan_id', label: 'VLAN ID', as: 'NumberBox', props: { min: 1, max: 4094 }, enabled: (values: any) => (values['type'] == 'vlan') },
+ { key: 'bond_members', label: 'Bond Members', as: 'MultiSelect', enabled: (values: any) => (values['type'] == 'bond'), props: { searchProvider: GetHardwareInterfaces } },
+ { key: 'bridge_members', label: 'Bridge Members', as: 'MultiSelect', enabled: (values: any) => (values['type'] == 'bridge'), props: { searchProvider: GetHardwareInterfaces } },
],
},
{
- title: "Addressing",
+ title: 'Addressing',
fields: [
- { key: "addressing_mode", label: "Addressing Mode", as: "PillBar", props: { options: { none: { display: 'None' }, static: { display: 'Static' }, dhcp: { display: 'DHCP' } } } },
- { key: "address", label: "Address", as: "TextBox", enabled: (values: any) => (values["addressing_mode"] == 'static') },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'addressing_mode', label: 'Addressing Mode', as: 'PillBar', props: { options: { none: { display: 'None' }, static: { display: 'Static' }, dhcp: { display: 'DHCP' } } } },
+ { key: 'address', label: 'Address', as: 'TextBox', enabled: (values: any) => (values['addressing_mode'] == 'static') },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "staticroutes": {
- name: "StaticRoute",
- idType: "Number",
+ 'staticroutes': {
+ name: 'StaticRoute',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
name: zod.string(),
@@ -220,20 +220,20 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox" },
- { key: "interface", label: "Interface", as: "SingleSelect", props: { searchProvider: GetInterfaces } },
- { key: "gateway", label: "Gateway", as: "TextBox" },
- { key: "destination", label: "Destination", as: "TextBox" },
- { key: "metric", label: "Metric", as: "NumberBox" },
+ { key: 'name', label: 'Name', as: 'TextBox' },
+ { key: 'interface', label: 'Interface', as: 'SingleSelect', props: { searchProvider: GetInterfaces } },
+ { key: 'gateway', label: 'Gateway', as: 'TextBox' },
+ { key: 'destination', label: 'Destination', as: 'TextBox' },
+ { key: 'metric', label: 'Metric', as: 'NumberBox' },
],
},
],
},
},
- "object": {
- name: "Object",
- "addresses": {
- name: "Address",
+ 'object': {
+ name: 'Object',
+ 'addresses': {
+ name: 'Address',
validationSchema: toFormValidator(
zod.object({
}),
@@ -241,19 +241,19 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox", default: "placeholder" },
- { key: "type", label: "Type", as: "PillBar", props: { options: { host: { display: 'Host' }, range: { display: 'Range' }, network: { display: 'Network' }, group: { display: 'Group' } } } },
- { key: "host", label: "Host", as: "TextBox", default: "placeholder", enabled: (values: any) => (values["type"] == 'host') },
- { key: "range", label: "Range", as: "TextBox", default: "placeholder", enabled: (values: any) => (values["type"] == 'range') },
- { key: "network", label: "Network", as: "TextBox", default: "placeholder", enabled: (values: any) => (values["type"] == 'network') },
- { key: "children", label: "Children", as: "MultiSelect", enabled: (values: any) => (values["type"] == 'group'), props: { searchProvider: GetAddresses } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox', default: 'placeholder' },
+ { key: 'type', label: 'Type', as: 'PillBar', props: { options: { host: { display: 'Host' }, range: { display: 'Range' }, network: { display: 'Network' }, group: { display: 'Group' } } } },
+ { key: 'host', label: 'Host', as: 'TextBox', default: 'placeholder', enabled: (values: any) => (values['type'] == 'host') },
+ { key: 'range', label: 'Range', as: 'TextBox', default: 'placeholder', enabled: (values: any) => (values['type'] == 'range') },
+ { key: 'network', label: 'Network', as: 'TextBox', default: 'placeholder', enabled: (values: any) => (values['type'] == 'network') },
+ { key: 'children', label: 'Children', as: 'MultiSelect', enabled: (values: any) => (values['type'] == 'group'), props: { searchProvider: GetAddresses } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "services": {
- name: "Service",
+ 'services': {
+ name: 'Service',
validationSchema: toFormValidator(
zod.object({
}),
@@ -261,25 +261,25 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox", default: "placeholder" },
- { key: "type", label: "Type", as: "PillBar", props: { options: { tcp: { display: 'TCP' }, udp: { display: 'UDP' }, icmp: { display: 'ICMP' }, group: { display: 'Group' } } } },
- { key: "sport_start", label: "Source Port Start", as: "NumberBox", enabled: (values: any) => (values["type"] == 'tcp' || values["type"] == 'udp') },
- { key: "sport_end", label: "Source Port End", as: "NumberBox", enabled: (values: any) => (values["type"] == 'tcp' || values["type"] == 'udp') },
- { key: "dport_start", label: "Destination Port Start", as: "NumberBox", enabled: (values: any) => (values["type"] == 'tcp' || values["type"] == 'udp') },
- { key: "dport_end", label: "Destination Port End", as: "NumberBox", enabled: (values: any) => (values["type"] == 'tcp' || values["type"] == 'udp') },
- { key: "icmp_code", label: "ICMP Code", as: "NumberBox", enabled: (values: any) => (values["type"] == 'icmp') },
- { key: "children", label: "Children", as: "MultiSelect", enabled: (values: any) => (values["type"] == 'group'), props: { searchProvider: GetServices } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox', default: 'placeholder' },
+ { key: 'type', label: 'Type', as: 'PillBar', props: { options: { tcp: { display: 'TCP' }, udp: { display: 'UDP' }, icmp: { display: 'ICMP' }, group: { display: 'Group' } } } },
+ { key: 'sport_start', label: 'Source Port Start', as: 'NumberBox', enabled: (values: any) => (values['type'] == 'tcp' || values['type'] == 'udp') },
+ { key: 'sport_end', label: 'Source Port End', as: 'NumberBox', enabled: (values: any) => (values['type'] == 'tcp' || values['type'] == 'udp') },
+ { key: 'dport_start', label: 'Destination Port Start', as: 'NumberBox', enabled: (values: any) => (values['type'] == 'tcp' || values['type'] == 'udp') },
+ { key: 'dport_end', label: 'Destination Port End', as: 'NumberBox', enabled: (values: any) => (values['type'] == 'tcp' || values['type'] == 'udp') },
+ { key: 'icmp_code', label: 'ICMP Code', as: 'NumberBox', enabled: (values: any) => (values['type'] == 'icmp') },
+ { key: 'children', label: 'Children', as: 'MultiSelect', enabled: (values: any) => (values['type'] == 'group'), props: { searchProvider: GetServices } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
},
- "service": {
- name: "Service",
- "dhcpv4servers": {
- name: "DHCPv4Server",
- idType: "Number",
+ 'service': {
+ name: 'Service',
+ 'dhcpv4servers': {
+ name: 'DHCPv4Server',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
}),
@@ -287,24 +287,24 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "interface", label: "Interface", as: "SingleSelect", props: { searchProvider: GetInterfaces } },
- { key: "pool", label: "Pool", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "gateway_mode", label: "Gateway Mode", as: "PillBar", props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
- { key: "gateway", label: "Gateway", as: "SingleSelect", enabled: (values: any) => (values["gateway_mode"] == 'specify'), props: { searchProvider: GetAddresses } },
- { key: "dns_server_mode", label: "DNS Server Mode", as: "PillBar", props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
- { key: "dns_servers", label: "DNS Servers", as: "MultiSelect", enabled: (values: any) => (values["dns_server_mode"] == 'specify'), props: { searchProvider: GetAddresses } },
- { key: "ntp_server_mode", label: "NTP Server Mode", as: "PillBar", props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
- { key: "ntp_servers", label: "NTP Servers", as: "MultiSelect", enabled: (values: any) => (values["ntp_server_mode"] == 'specify'), props: { searchProvider: GetAddresses } },
- { key: "default_lease_time", label: "Default Lease Time", as: "NumberBox" },
- { key: "max_lease_time", label: "Max Lease Time", as: "NumberBox" },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'interface', label: 'Interface', as: 'SingleSelect', props: { searchProvider: GetInterfaces } },
+ { key: 'pool', label: 'Pool', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'gateway_mode', label: 'Gateway Mode', as: 'PillBar', props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
+ { key: 'gateway', label: 'Gateway', as: 'SingleSelect', enabled: (values: any) => (values['gateway_mode'] == 'specify'), props: { searchProvider: GetAddresses } },
+ { key: 'dns_server_mode', label: 'DNS Server Mode', as: 'PillBar', props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
+ { key: 'dns_servers', label: 'DNS Servers', as: 'MultiSelect', enabled: (values: any) => (values['dns_server_mode'] == 'specify'), props: { searchProvider: GetAddresses } },
+ { key: 'ntp_server_mode', label: 'NTP Server Mode', as: 'PillBar', props: { options: { none: { display: 'None' }, interface: { display: 'Interface' }, specify: { display: 'Specify' } } } },
+ { key: 'ntp_servers', label: 'NTP Servers', as: 'MultiSelect', enabled: (values: any) => (values['ntp_server_mode'] == 'specify'), props: { searchProvider: GetAddresses } },
+ { key: 'default_lease_time', label: 'Default Lease Time', as: 'NumberBox' },
+ { key: 'max_lease_time', label: 'Max Lease Time', as: 'NumberBox' },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "ntpservers": {
- name: "NTPServer",
- idType: "Number",
+ 'ntpservers': {
+ name: 'NTPServer',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
}),
@@ -312,15 +312,15 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "interface", label: "Interface", as: "SingleSelect", props: { searchProvider: GetInterfaces } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'interface', label: 'Interface', as: 'SingleSelect', props: { searchProvider: GetInterfaces } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "dnsservers": {
- name: "DNSServer",
- idType: "Number",
+ 'dnsservers': {
+ name: 'DNSServer',
+ idType: 'Number',
validationSchema: toFormValidator(
zod.object({
}),
@@ -328,17 +328,17 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "interface", label: "Interface", as: "SingleSelect", props: { searchProvider: GetInterfaces } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'interface', label: 'Interface', as: 'SingleSelect', props: { searchProvider: GetInterfaces } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
},
- "vpn": {
- name: "VPN",
- "wireguardinterfaces": {
- name: "WireguardInterface",
+ 'vpn': {
+ name: 'VPN',
+ 'wireguardinterfaces': {
+ name: 'WireguardInterface',
validationSchema: toFormValidator(
zod.object({
}),
@@ -346,18 +346,18 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox", default: "placeholder" },
- { key: "public_key", label: "Public Key", as: "TextBox", default: "placeholder" },
- { key: "private_key", label: "Private Key", as: "TextBox", default: "placeholder" },
- { key: "listen_port", label: "Listen Port", as: "NumberBox" },
- { key: "peers", label: "Peers", as: "MultiSelect", props: { searchProvider: GetPeers } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox', default: 'placeholder' },
+ { key: 'public_key', label: 'Public Key', as: 'TextBox', default: 'placeholder' },
+ { key: 'private_key', label: 'Private Key', as: 'TextBox', default: 'placeholder' },
+ { key: 'listen_port', label: 'Listen Port', as: 'NumberBox' },
+ { key: 'peers', label: 'Peers', as: 'MultiSelect', props: { searchProvider: GetPeers } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
- "wireguardpeers": {
- name: "WireguardPeer",
+ 'wireguardpeers': {
+ name: 'WireguardPeer',
validationSchema: toFormValidator(
zod.object({
}),
@@ -365,22 +365,22 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox", default: "placeholder" },
- { key: "public_key", label: "Public Key", as: "TextBox", default: "placeholder" },
- { key: "preshared_key", label: "Preshared Key", as: "TextBox", default: "placeholder" },
- { key: "allowed_ips", label: "Allowed IPs", as: "MultiSelect", props: { searchProvider: GetAddresses } },
- { key: "endpoint", label: "Endpoint", as: "TextBox", default: "placeholder" },
- { key: "persistent_keepalive", label: "Persistent Keepalive", as: "NumberBox" },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox', default: 'placeholder' },
+ { key: 'public_key', label: 'Public Key', as: 'TextBox', default: 'placeholder' },
+ { key: 'preshared_key', label: 'Preshared Key', as: 'TextBox', default: 'placeholder' },
+ { key: 'allowed_ips', label: 'Allowed IPs', as: 'MultiSelect', props: { searchProvider: GetAddresses } },
+ { key: 'endpoint', label: 'Endpoint', as: 'TextBox', default: 'placeholder' },
+ { key: 'persistent_keepalive', label: 'Persistent Keepalive', as: 'NumberBox' },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
},
},
- "system": {
- name: "System",
- "users": {
- name: "User",
+ 'system': {
+ name: 'System',
+ 'users': {
+ name: 'User',
validationSchema: toFormValidator(
zod.object({
}),
@@ -388,9 +388,9 @@ export const editTypes: { [key: string]: { [key: string]: any } } = {
sections: [
{
fields: [
- { key: "name", label: "Name", as: "TextBox" },
- { key: "password", label: "Password", as: "TextBox", props: { type: "password" } },
- { key: "comment", label: "Comment", as: "MultilineTextBox" },
+ { key: 'name', label: 'Name', as: 'TextBox' },
+ { key: 'password', label: 'Password', as: 'TextBox', props: { type: 'password' } },
+ { key: 'comment', label: 'Comment', as: 'MultilineTextBox' },
],
},
],
diff --git a/client/src/pages/[subsystem]/[entity]/edit/[id].vue b/client/src/pages/[subsystem]/[entity]/edit/[id].vue
index dd7a231..864859d 100644
--- a/client/src/pages/[subsystem]/[entity]/edit/[id].vue
+++ b/client/src/pages/[subsystem]/[entity]/edit/[id].vue
@@ -1,6 +1,6 @@
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/client/src/pages/firewall/DestinationNATRules.vue b/client/src/pages/firewall/DestinationNATRules.vue
index e75cdea..e756dd8 100644
--- a/client/src/pages/firewall/DestinationNATRules.vue
+++ b/client/src/pages/firewall/DestinationNATRules.vue
@@ -1,5 +1,5 @@