diff --git a/package-lock.json b/package-lock.json
index b5ce66408..0fed49084 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,7 +16,7 @@
"@nethesis/nethesis-brands-svg-icons": "github:nethesis/Font-Awesome#ns-brands",
"@nethesis/nethesis-light-svg-icons": "github:nethesis/Font-Awesome#ns-light",
"@nethesis/nethesis-solid-svg-icons": "github:nethesis/Font-Awesome#ns-solid",
- "@nethserver/vue-tailwind-lib": "^0.0.89",
+ "@nethserver/vue-tailwind-lib": "^0.0.90",
"@types/lodash": "^4.14.195",
"@vueuse/core": "^10.5.0",
"axios": "^1.4.0",
@@ -1298,9 +1298,9 @@
}
},
"node_modules/@nethserver/vue-tailwind-lib": {
- "version": "0.0.89",
- "resolved": "https://registry.npmjs.org/@nethserver/vue-tailwind-lib/-/vue-tailwind-lib-0.0.89.tgz",
- "integrity": "sha512-G7x8JdZxoKo62hGJiN0XhHvgoxfhgZhCdOaBT2zQxUGh+FrHsLn8TMZQ9OIix5xEmKibgU/OzYe6xPVArTTHXA==",
+ "version": "0.0.90",
+ "resolved": "https://registry.npmjs.org/@nethserver/vue-tailwind-lib/-/vue-tailwind-lib-0.0.90.tgz",
+ "integrity": "sha512-qLhtacQ/uGcCBFhdBxgd0xAxWbWc+iL8OCOhwaVOdjorGkAHYL6nRbJ+roZ6vhl5UaXomLslfXAA7/N1qUvOVA==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.0",
"@fortawesome/free-solid-svg-icons": "github:nethesis/Font-Awesome#solid",
diff --git a/package.json b/package.json
index 061425928..42eb4d68d 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
"@nethesis/nethesis-brands-svg-icons": "github:nethesis/Font-Awesome#ns-brands",
"@nethesis/nethesis-light-svg-icons": "github:nethesis/Font-Awesome#ns-light",
"@nethesis/nethesis-solid-svg-icons": "github:nethesis/Font-Awesome#ns-solid",
- "@nethserver/vue-tailwind-lib": "^0.0.89",
+ "@nethserver/vue-tailwind-lib": "^0.0.90",
"@types/lodash": "^4.14.195",
"@vueuse/core": "^10.5.0",
"axios": "^1.4.0",
diff --git a/public/i18n/en/translation.json b/public/i18n/en/translation.json
index 9d002da31..a60784c53 100644
--- a/public/i18n/en/translation.json
+++ b/public/i18n/en/translation.json
@@ -14,6 +14,9 @@
"disable": "Disable",
"enabled": "Enabled",
"disabled": "Disabled",
+ "step": "Step",
+ "previous": "Previous",
+ "next": "Next",
"page_under_construction": "Page under construction"
},
"error": {
@@ -138,7 +141,10 @@
"cannot_disable_tunnel": "Cannot disable tunnel",
"cannot_retrieve_tunnel_options": "Cannot retrieve tunnel options",
"cannot_retrieve_tunnel_defaults": "Cannot retrieve tunnel defaults",
- "cannot_import_configuration": "Cannot import configuration"
+ "cannot_import_configuration": "Cannot import configuration",
+ "cannot_retrieve_ipsec_tunnels": "Cannot retrieve IPsec tunnels",
+ "cannot_retrieve_ipsec_algorithms": "Cannot retrieve IPsec algorithms",
+ "cannot_retrieve_tunnel_data": "Cannot retrieve tunnel data"
},
"ne_text_input": {
"show_password": "Show password",
@@ -907,6 +913,53 @@
"topology_tooltip_subnet_description": "This method offers a straightforward configuration approach. Instead of using a point-to-point setup, utilize a subnet configuration by specifying a local IP address and subnet mask for the tun interface. In this mode, each connected client is assigned a unique IP address, and it is compatible with Windows systems as well.",
"topology_tooltip_p2p_description": "Implement a point-to-point topology where the client's tun interface remote endpoint consistently points to the server's tun interface local endpoint. This configuration assigns a single IP address to each connected client. Utilize this mode exclusively when none of the connected clients operate on Windows systems."
},
+ "ipsec_tunnel": {
+ "title": "IPsec tunnel",
+ "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse gravida, nibh vel finibus suscipit, mauris erat porta",
+ "add_ipsec_tunnel": "Add IPsec tunnel",
+ "no_tunnel_found": "No tunnel found",
+ "name": "Name",
+ "local_networks": "Local networks",
+ "remote_networks": "Remote networks",
+ "received": "Received",
+ "sent": "Sent",
+ "started": "Started",
+ "status": "Status",
+ "connection": "Connection",
+ "connected": "Connected",
+ "not_connected": "Not connected",
+ "enable": "Enable",
+ "disable": "Disable",
+ "enabled": "Enabled",
+ "disabled": "Disabled",
+ "delete_tunnel": "Delete tunnel",
+ "delete_tunnel_message": "You are about to delete tunnel '{name}'",
+ "add_tunnel": "Add tunnel",
+ "edit_tunnel": "Edit tunnel",
+ "tunnel_name": "Tunnel name",
+ "wan_ip_address": "WAN IP address",
+ "remote_ip_address": "Remote IP address",
+ "local_identifier": "Local identifier",
+ "remote_identifier": "Remote identifier",
+ "choose_wan": "Choose WAN",
+ "add_network": "Add network",
+ "pre_shared_key": "Pre-shared key",
+ "generate_key": "Generate key",
+ "import_key": "Import key",
+ "dpd_dead_peer_detection": "DPD (dead peer detection)",
+ "pfs_perfect_forward_secrecy_disabled": "PFS (Perfect Forward Secrecy) disabled",
+ "compression": "Compression",
+ "phase_one_ike": "Phase 1 (IKE)",
+ "phase_two_esp": "Phase 2 (ESP)",
+ "ike_version": "IKE version",
+ "encryption_algorithm": "Encryption algorithm",
+ "integrity_algorithm": "Integrity algorithm",
+ "diffie_hellman_group": "Diffie-Hellman group",
+ "key_life_time_seconds": "Key life time (seconds)",
+ "remote_ip_address_tooltip": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse gravida, nibh vel finibus suscipit, mauris erat porta",
+ "local_identifier_tooltip": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse gravida, nibh vel finibus suscipit, mauris erat porta",
+ "edit_ipsec_tunnel": "Edit IPsec tunnel"
+ },
"logs": {
"title": "Logs",
"limit_rows": "Lines limit",
diff --git a/src/components/standalone/NeCopyField.vue b/src/components/standalone/NeCopyField.vue
new file mode 100644
index 000000000..92b15f9ba
--- /dev/null
+++ b/src/components/standalone/NeCopyField.vue
@@ -0,0 +1,48 @@
+
+
+
+
+ {{ label }}
+
+ {{ generalInvalidMessage }} +
+ Step {{ currentStep }}/{{ totalSteps }} +
+