diff --git a/public/i18n/en/translation.json b/public/i18n/en/translation.json index 27e99bee0..2f73e8bb6 100644 --- a/public/i18n/en/translation.json +++ b/public/i18n/en/translation.json @@ -355,7 +355,9 @@ "cannot_delete_backup": "Cannot delete remote backup", "end_must_be_greater_then_start": "IP end must be greater than start", "start_reserved": "First IP of network is reserved", - "cannot_retrieve_object_suggestions": "Cannot retrieve object suggestions" + "cannot_retrieve_object_suggestions": "Cannot retrieve object suggestions", + "cannot_retrieve_nat_helpers": "Cannot retrieve NAT helpers", + "cannot_save_nat_helper": "Cannot save NAT helper" }, "ne_text_input": { "show_password": "Show password", @@ -1864,7 +1866,8 @@ "rewrite_ip": "Rewrite IP", "delete_nat_rule": "Delete NAT rule", "confirm_delete_rule": "You are about to delete NAT rule '{name}'", - "any_address": "Any address" + "any_address": "Any address", + "rules_and_netmap": "Rules and NETMAP" }, "netmap": { "title": "NETMAP", @@ -1889,6 +1892,23 @@ "delete_netmap": "Delete NETMAP", "confirm_delete_rule": "You are about to delete NETMAP '{name}'" }, + "nat_helpers": { + "title": "NAT helpers", + "nat_helpers_description": "NAT helpers are used to automatically modify the payload of specific protocols to allow them to pass through NAT.", + "module": "Module", + "status": "Status", + "loaded_on_kernel": "Loaded on kernel", + "loaded": "Loaded", + "not_loaded": "Not loaded", + "enabled_but_not_loaded_tooltip": "The module is enabled but not loaded on the kernel.", + "disabled_but_loaded_tooltip": "This module is disabled but currently loaded on the kernel: you might need to reboot the unit to unload it.", + "filter_nat_helpers": "Filter NAT helpers", + "no_nat_helpers_found": "No NAT helpers found", + "edit_nat_helper": "Edit NAT helper", + "reboot_to_apply_changes": "Reboot to apply NAT helper changes", + "reboot_to_apply_changes_description": "Reboot the unit to apply the changes to module '{module}'", + "nat_helper_name_saved": "NAT helper '{module}' saved" + }, "conntrack": { "title": "Connections", "short_title": "Connections", diff --git a/src/components/standalone/firewall/nat/EditNatHelperDrawer.vue b/src/components/standalone/firewall/nat/EditNatHelperDrawer.vue new file mode 100644 index 000000000..d92e9fcb7 --- /dev/null +++ b/src/components/standalone/firewall/nat/EditNatHelperDrawer.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/src/components/standalone/firewall/nat/NatHelpers.vue b/src/components/standalone/firewall/nat/NatHelpers.vue new file mode 100644 index 000000000..3eaa4def9 --- /dev/null +++ b/src/components/standalone/firewall/nat/NatHelpers.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/components/standalone/firewall/nat/NatHelpersTable.vue b/src/components/standalone/firewall/nat/NatHelpersTable.vue new file mode 100644 index 000000000..58ee63a38 --- /dev/null +++ b/src/components/standalone/firewall/nat/NatHelpersTable.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/components/standalone/firewall/nat/NatRulesContent.vue b/src/components/standalone/firewall/nat/NatRulesContent.vue index 643098f67..745464a5c 100644 --- a/src/components/standalone/firewall/nat/NatRulesContent.vue +++ b/src/components/standalone/firewall/nat/NatRulesContent.vue @@ -87,7 +87,6 @@ function hideCreateOrEditRuleDrawer() {