mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-10 18:38:22 +00:00
adjust apicalls for rust backend
This commit is contained in:
parent
39abbf9a60
commit
c0b5aefa4a
19 changed files with 352 additions and 352 deletions
|
@ -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' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script setup lang="ts">
|
||||
import { editTypes } from "../../../../definitions";
|
||||
import { apiCall } from "../../../../api";
|
||||
import { editTypes } from '../../../../definitions';
|
||||
import { apiCall } from '../../../../api';
|
||||
import getPlugins from '../../../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -13,29 +13,29 @@ let loading = $ref(true);
|
|||
async function load(){
|
||||
loading = true;
|
||||
let res: any;
|
||||
if (editTypes[subsystem][entity].idType == "Number") {
|
||||
res = await apiCall(editTypes[subsystem].name +".Get"+ editTypes[subsystem][entity].name, {id: id as number - 0});
|
||||
if (editTypes[subsystem][entity].idType == 'Number') {
|
||||
res = await apiCall(`${editTypes[subsystem].name }.get_${ editTypes[subsystem][entity].name}`, {id: id as number - 0});
|
||||
} else {
|
||||
res = await apiCall(editTypes[subsystem].name +".Get"+ editTypes[subsystem][entity].name, {id: id});
|
||||
res = await apiCall(`${editTypes[subsystem].name }.get_${ editTypes[subsystem][entity].name}`, {id: id});
|
||||
}
|
||||
|
||||
if (res.Error === null) {
|
||||
console.debug("update data", res.Data);
|
||||
console.debug('update data', res.Data);
|
||||
initialValues = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function update(value: any) {
|
||||
console.debug("value", value);
|
||||
let res = await apiCall(editTypes[subsystem].name +".Update"+ editTypes[subsystem][entity].name, value);
|
||||
console.debug('value', value);
|
||||
let res = await apiCall(`${editTypes[subsystem].name }.update_${ editTypes[subsystem][entity].name}`, value);
|
||||
if (res.Error === null) {
|
||||
p.toast.success("Updated " + editTypes[subsystem][entity].name);
|
||||
p.toast.success(`Updated ${ editTypes[subsystem][entity].name}`);
|
||||
p.router.go(-1);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script setup lang="ts">
|
||||
import { editTypes } from "../../../../definitions";
|
||||
import { apiCall } from "../../../../api";
|
||||
import { editTypes } from '../../../../definitions';
|
||||
import { apiCall } from '../../../../api';
|
||||
import getPlugins from '../../../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -8,13 +8,13 @@ const props = $defineProps<{subsystem: string, entity: string}>();
|
|||
const { subsystem, entity } = $(props);
|
||||
|
||||
async function create(value: any) {
|
||||
console.debug("value", value);
|
||||
let res = await apiCall(editTypes[subsystem].name +".Create"+ editTypes[subsystem][entity].name, value);
|
||||
console.debug('value', value);
|
||||
let res = await apiCall(`${editTypes[subsystem].name }.create_${ editTypes[subsystem][entity].name}`, value);
|
||||
if (res.Error === null) {
|
||||
p.toast.success("Created " + editTypes[subsystem][entity].name);
|
||||
p.toast.success(`Created ${ editTypes[subsystem][entity].name}`);
|
||||
p.router.go(-1);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -29,37 +29,37 @@ const displayData = $computed(() => {
|
|||
});
|
||||
|
||||
async function load(){
|
||||
loading = true
|
||||
let res = await apiCall("Config.GetPendingChangelog", {});
|
||||
loading = true;
|
||||
let res = await apiCall('config.get_pending_changelog', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("changelog", res.Data.Changelog);
|
||||
changelog = res.Data.Changelog;
|
||||
console.debug('changelog', res.Data);
|
||||
changelog = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function apply(){
|
||||
let res = await apiCall("Config.ApplyPendingChanges", {});
|
||||
let res = await apiCall('config.apply_pending_changes', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("apply");
|
||||
p.toast.success("Applied Pending Config");
|
||||
console.debug('apply');
|
||||
p.toast.success('Applied Pending Config');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load()
|
||||
load();
|
||||
}
|
||||
|
||||
async function discard(){
|
||||
let res = await apiCall("Config.DiscardPendingChanges", {});
|
||||
let res = await apiCall('config.discard_pending_changes', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("discard");
|
||||
p.toast.success("Discarded Pending Config");
|
||||
console.debug('discard');
|
||||
p.toast.success('Discarded Pending Config');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load()
|
||||
load();
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
@ -69,9 +69,9 @@ onMounted(async() => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<TableView title="Pending Changes" :columns="columns" :loading="loading" v-model:data="displayData" :table-props="{sort:true, sortSelf: true}">
|
||||
<button @click="load">Refresh</button>
|
||||
<button @click="apply">Apply</button>
|
||||
<button @click="discard">Discard</button>
|
||||
</TableView>
|
||||
<TableView title="Pending Changes" :columns="columns" :loading="loading" v-model:data="displayData" :table-props="{sort:true, sortSelf: true}">
|
||||
<button @click="load">Refresh</button>
|
||||
<button @click="apply">Apply</button>
|
||||
<button @click="discard">Discard</button>
|
||||
</TableView>
|
||||
</template>
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -19,34 +19,34 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Firewall.GetDestinationNATRules", {});
|
||||
let res = await apiCall('firewall.get_destination_nat_rules', {});
|
||||
if (res.Error === null) {
|
||||
rules = res.Data.destination_nat_rules;
|
||||
console.debug("rules", rules);
|
||||
rules = res.Data;
|
||||
console.debug('rules', rules);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Firewall.DeleteDestinationNATRule", {index: selection[0]});
|
||||
let res = await apiCall('firewall.delete_destination_nat_rule', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted rule");
|
||||
p.toast.success("Deleted Rule");
|
||||
console.debug('deleted rule');
|
||||
p.toast.success('Deleted Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function draggedRow(draggedRow: number, draggedOverRow: number) {
|
||||
console.log("dragged", draggedRow, draggedOverRow);
|
||||
let res = await apiCall("Firewall.MoveDestinationNATRule", {index: draggedRow, to_index: draggedOverRow});
|
||||
console.log('dragged', draggedRow, draggedOverRow);
|
||||
let res = await apiCall('firewall.move_destination_nat_rule', {index: draggedRow, to_index: draggedOverRow});
|
||||
if (res.Error === null) {
|
||||
console.debug("moved rule");
|
||||
p.toast.success("Moved Rule");
|
||||
console.debug('moved rule');
|
||||
p.toast.success('Moved Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -18,34 +18,34 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Firewall.GetForwardRules", {});
|
||||
let res = await apiCall('firewall.get_forward_rules', {});
|
||||
if (res.Error === null) {
|
||||
rules = res.Data.forward_rules;
|
||||
console.debug("rules", rules);
|
||||
rules = res.Data;
|
||||
console.debug('rules', rules);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Firewall.DeleteForwardRule", {index: selection[0]});
|
||||
let res = await apiCall('firewall.delete_forward_rule', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted rule");
|
||||
p.toast.success("Deleted Rule");
|
||||
console.debug('deleted rule');
|
||||
p.toast.success('Deleted Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function draggedRow(draggedRow: number, draggedOverRow: number) {
|
||||
console.log("dragged", draggedRow, draggedOverRow);
|
||||
let res = await apiCall("Firewall.MoveForwardRule", {index: draggedRow, to_index: draggedOverRow});
|
||||
console.log('dragged', draggedRow, draggedOverRow);
|
||||
let res = await apiCall('firewall.move_forward_rule', {index: draggedRow, to_index: draggedOverRow});
|
||||
if (res.Error === null) {
|
||||
console.debug("moved rule");
|
||||
p.toast.success("Moved Rule");
|
||||
console.debug('moved rule');
|
||||
p.toast.success('Moved Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ onMounted(async() => {
|
|||
|
||||
<template>
|
||||
<div>
|
||||
<TableView title="Forward Rules" :columns="columns" :loading="loading" @draggedRow="draggedRow" v-model:selection="selection" v-model:data="rules" :table-props="{sort:true, sortSelf: true, draggable: true}">
|
||||
<TableView title="Forward Rules" :columns="columns" :loading="loading" @draggedRow="draggedRow" v-model:selection="selection" v-model:data="rules" :table-props="{sort:true, sortSelf: true, draggable: true}">
|
||||
<button @click="load">Refresh</button>
|
||||
<router-link class="button" to="/firewall/forwardrules/edit">Create</router-link>
|
||||
<router-link class="button" :class="{ disabled: selection.length != 1 }" :to="'/firewall/forwardrules/edit/' + selection[0]">Edit</router-link>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -19,34 +19,34 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Firewall.GetSourceNATRules", {});
|
||||
let res = await apiCall('firewall.get_source_nat_rules', {});
|
||||
if (res.Error === null) {
|
||||
rules = res.Data.source_nat_rules;
|
||||
console.debug("rules", rules);
|
||||
rules = res.Data;
|
||||
console.debug('rules', rules);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Firewall.DeleteSourceNATRule", {index: selection[0]});
|
||||
let res = await apiCall('firewall.delete_source_nat:rule', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted rule");
|
||||
p.toast.success("Deleted Rule");
|
||||
console.debug('deleted rule');
|
||||
p.toast.success('Deleted Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function draggedRow(draggedRow: number, draggedOverRow: number) {
|
||||
console.log("dragged", draggedRow, draggedOverRow);
|
||||
let res = await apiCall("Firewall.MoveSourceNATRule", {index: draggedRow, to_index: draggedOverRow});
|
||||
console.log('dragged', draggedRow, draggedOverRow);
|
||||
let res = await apiCall('firewall.move_source_nat_rule', {index: draggedRow, to_index: draggedOverRow});
|
||||
if (res.Error === null) {
|
||||
console.debug("moved rule");
|
||||
p.toast.success("Moved Rule");
|
||||
console.debug('moved rule');
|
||||
p.toast.success('Moved Rule');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../api";
|
||||
import { apiCall } from '../api';
|
||||
|
||||
let links = $ref([]);
|
||||
let loading = $ref(false);
|
||||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("Network.GetLinks", {});
|
||||
let res = await apiCall('network.get_links', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("links", res.Data.Links);
|
||||
links = res.Data.Links;
|
||||
console.debug('links', res.Data);
|
||||
links = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -31,29 +31,29 @@ const displayData = $computed(() => {
|
|||
});
|
||||
|
||||
async function load(){
|
||||
loading = true
|
||||
let res = await apiCall("Network.GetInterfaces", {});
|
||||
loading = true;
|
||||
let res = await apiCall('network.get_interfaces', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("interfaces", res.Data.Interfaces);
|
||||
interfaces = res.Data.Interfaces;
|
||||
console.debug('interfaces', res.Data);
|
||||
interfaces = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function deleteInterface(){
|
||||
let res = await apiCall("Network.DeleteInterface", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('network.delete_interface', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted interface");
|
||||
console.debug('deleted interface');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editInterface() {
|
||||
p.router.push("/network/interfaces/edit/" + displayData[selection[0]].name)
|
||||
p.router.push(`/network/interfaces/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
|
||||
let staticRoutes = $ref([]);
|
||||
let loading = $ref(false);
|
||||
|
@ -14,23 +14,23 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
loading = true
|
||||
let res = await apiCall("Network.GetStaticRoutes", {});
|
||||
loading = true;
|
||||
let res = await apiCall('network.get_static_routes', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("staticRoutes", res.Data.StaticRoutes);
|
||||
staticRoutes = res.Data.StaticRoutes;
|
||||
console.debug('staticRoutes', res.Data);
|
||||
staticRoutes = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function deleteStaticRoutes(){
|
||||
let res = await apiCall("Network.DeleteStaticRoute", {index: selection[0]});
|
||||
let res = await apiCall('network.delete_static_route', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted static routes");
|
||||
console.debug('deleted static routes');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -16,12 +16,12 @@ const columns = [
|
|||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("Object.GetAddresses", {});
|
||||
let res = await apiCall('object.get_addresses', {});
|
||||
if (res.Error === null) {
|
||||
addresses = res.Data.Addresses;
|
||||
console.debug("addresses", addresses);
|
||||
addresses = res.Data;
|
||||
console.debug('addresses', addresses);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
@ -43,36 +43,36 @@ const displayData = $computed(() => {
|
|||
function getAddressValue(s: any): string {
|
||||
let value: string;
|
||||
switch (s.type) {
|
||||
case "host":
|
||||
case 'host':
|
||||
value = s.host;
|
||||
break;
|
||||
case "range":
|
||||
case 'range':
|
||||
value = s.range;
|
||||
break;
|
||||
case "network":
|
||||
case 'network':
|
||||
value = s.network;
|
||||
break;
|
||||
case "group":
|
||||
case 'group':
|
||||
value = s.children;
|
||||
break;
|
||||
default:
|
||||
value = "unkown";
|
||||
value = 'unkown';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
async function deleteAddress(){
|
||||
let res = await apiCall("Object.DeleteAddress", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('object.delete_address', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted address");
|
||||
console.debug('deleted address');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editAddress() {
|
||||
p.router.push("/object/addresses/edit/" + displayData[selection[0]].name);
|
||||
p.router.push(`/object/addresses/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -31,53 +31,53 @@ const displayData = $computed(() => {
|
|||
function getServiceValue(s: any): string {
|
||||
let value: string;
|
||||
switch (s.type) {
|
||||
case "tcp":
|
||||
case "udp":
|
||||
case 'tcp':
|
||||
case 'udp':
|
||||
value = getServicePortRange(s);
|
||||
break;
|
||||
case "icmp":
|
||||
value = "icmp";
|
||||
case 'icmp':
|
||||
value = 'icmp';
|
||||
break;
|
||||
case "group":
|
||||
case 'group':
|
||||
value = s.children;
|
||||
break;
|
||||
default:
|
||||
value = "unkown";
|
||||
value = 'unkown';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function getServicePortRange(s:any): string {
|
||||
if (s.dport_end) {
|
||||
return s.dport_start + "-" + s.dport_end;
|
||||
return `${s.dport_start }-${ s.dport_end}`;
|
||||
}
|
||||
return s.dport_start;
|
||||
}
|
||||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("Object.GetServices", {});
|
||||
let res = await apiCall('object.get_services', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("services", res.Data.Services);
|
||||
services = res.Data.Services;
|
||||
console.debug('services', res.Data);
|
||||
services = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function deleteService(){
|
||||
let res = await apiCall("Object.DeleteService", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('object.delete_service', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted service");
|
||||
console.debug('deleted service');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editService() {
|
||||
p.router.push("/object/services/edit/" + displayData[selection[0]].name);
|
||||
p.router.push(`/object/services/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -13,22 +13,22 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Service.GetDHCPv4Servers", {});
|
||||
let res = await apiCall('service.get_dhcp_v4_servers', {});
|
||||
if (res.Error === null) {
|
||||
servers = res.Data.dhcp_v4_servers;
|
||||
console.debug("rules", servers);
|
||||
servers = res.Data;
|
||||
console.debug('rules', servers);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Service.DeleteDHCPv4Server", {index: selection[0]});
|
||||
let res = await apiCall('service.delete_dhcp_v4_server', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted server");
|
||||
p.toast.success("Deleted DHCP Server");
|
||||
console.debug('deleted server');
|
||||
p.toast.success('Deleted DHCP Server');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -13,22 +13,22 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Service.GetDNSServers", {});
|
||||
let res = await apiCall('service.get_dns_servers', {});
|
||||
if (res.Error === null) {
|
||||
servers = res.Data.dns_servers;
|
||||
console.debug("rules", servers);
|
||||
servers = res.Data;
|
||||
console.debug('rules', servers);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Service.DeleteDNSServer", {index: selection[0]});
|
||||
let res = await apiCall('service.delete_dns_server', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted server");
|
||||
p.toast.success("Deleted DNS Server");
|
||||
console.debug('deleted server');
|
||||
p.toast.success('Deleted DNS Server');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -13,22 +13,22 @@ const columns = [
|
|||
];
|
||||
|
||||
async function load(){
|
||||
let res = await apiCall("Service.GetNTPServers", {});
|
||||
let res = await apiCall('service.get_ntp_servers', {});
|
||||
if (res.Error === null) {
|
||||
servers = res.Data.ntp_servers;
|
||||
console.debug("rules", servers);
|
||||
servers = res.Data;
|
||||
console.debug('rules', servers);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteRule(){
|
||||
let res = await apiCall("Service.DeleteNTPServer", {index: selection[0]});
|
||||
let res = await apiCall('service.delete_ntp_server', {index: selection[0]});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted server");
|
||||
p.toast.success("Deleted NTP Server");
|
||||
console.debug('deleted server');
|
||||
p.toast.success('Deleted NTP Server');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -14,12 +14,12 @@ const columns = [
|
|||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("System.GetUsers", {});
|
||||
let res = await apiCall('system.get_users', {});
|
||||
if (res.Error === null) {
|
||||
users = res.Data.Users;
|
||||
console.debug("users", users);
|
||||
users = res.Data;
|
||||
console.debug('users', users);
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
@ -38,17 +38,17 @@ const displayData = $computed(() => {
|
|||
|
||||
|
||||
async function deleteUser(){
|
||||
let res = await apiCall("System.DeleteUser", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('system.delete_user', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted user");
|
||||
console.debug('deleted user');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editUser() {
|
||||
p.router.push("/system/users/edit/" + displayData[selection[0]].name);
|
||||
p.router.push(`/system/users/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -31,28 +31,28 @@ const displayData = $computed(() => {
|
|||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("VPN.GetWireguardInterfaces", {});
|
||||
let res = await apiCall('cpn.get_wireguard_interfaces', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("interfaces", res.Data.Interfaces);
|
||||
interfaces = res.Data.Interfaces;
|
||||
console.debug('interfaces', res.Data);
|
||||
interfaces = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function deleteInterface(){
|
||||
let res = await apiCall("VPN.DeleteWireguardInterface", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('vpn.delete_wireguard_interface', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted interface");
|
||||
console.debug('deleted interface');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editInterface() {
|
||||
p.router.push("/vpn/wireguardinterfaces/edit/" + displayData[selection[0]].name);
|
||||
p.router.push(`/vpn/wireguardinterfaces/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
import getPlugins from '../../plugins';
|
||||
const p = getPlugins();
|
||||
|
||||
|
@ -32,28 +32,28 @@ const displayData = $computed(() => {
|
|||
|
||||
async function load(){
|
||||
loading = true;
|
||||
let res = await apiCall("VPN.GetWireguardPeers", {});
|
||||
let res = await apiCall('vpn.get_wireguard_peers', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("peers", res.Data.WireguardPeers);
|
||||
peers = res.Data.WireguardPeers;
|
||||
console.debug('peers', res.Data);
|
||||
peers = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function deletePeer(){
|
||||
let res = await apiCall("VPN.DeleteWireguardPeer", {name: displayData[selection[0]].name});
|
||||
let res = await apiCall('vpn.delete_wireguard_peer', {name: displayData[selection[0]].name});
|
||||
if (res.Error === null) {
|
||||
console.debug("deleted peer");
|
||||
console.debug('deleted peer');
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
load();
|
||||
}
|
||||
|
||||
async function editPeer() {
|
||||
p.router.push("/vpn/wireguardpeers/edit/" + displayData[selection[0]].name);
|
||||
p.router.push(`/vpn/wireguardpeers/edit/${ displayData[selection[0]].name}`);
|
||||
}
|
||||
|
||||
onMounted(async() => {
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
<script setup lang="ts">
|
||||
import { apiCall } from "../../api";
|
||||
import { apiCall } from '../../api';
|
||||
|
||||
let status = $ref("");
|
||||
let status = $ref('');
|
||||
let loading = $ref(false);
|
||||
|
||||
async function load() {
|
||||
loading = true;
|
||||
let res = await apiCall("VPN.GetWireguardStatus", {});
|
||||
let res = await apiCall('vpn.get_wireguard_status', {});
|
||||
if (res.Error === null) {
|
||||
console.debug("status", res.Data.Status);
|
||||
status = res.Data.Status;
|
||||
console.debug('status', res.Data);
|
||||
status = res.Data;
|
||||
} else {
|
||||
console.debug("error", res);
|
||||
console.debug('error', res);
|
||||
}
|
||||
loading = false;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue