diff --git a/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ike_policy_help.html b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ike_policy_help.html
new file mode 100644
index 0000000000..bda75fc9ed
--- /dev/null
+++ b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ike_policy_help.html
@@ -0,0 +1,20 @@
+{% load i18n %}
+
+
{% trans "Create IKE Policy for current project." %}
+{% trans "An IKE policy is an association of the following attributes:" %}
+
+ - {% trans 'Authorization algorithm' %}
+ - {% trans 'Auth algorithm limited to SHA1 only.' %}
+ - {% trans 'Encryption algorithm' %}
+ - {% trans 'The type of algorithm (3des, aes-128, aes-192, aes-256) used in the IKE Policy.' %}
+ - {% trans 'IKE version' %}
+ - {% trans 'The type of version (v1/v2) that needs to be filtered.' %}
+ - {% trans 'Lifetime' %}
+ - {% trans "Life time consists of units and value. Units in 'seconds' and the default value is 3600." %}
+ - {% trans 'Perfect Forward Secrecy' %}
+ - {% trans 'PFS limited to using Diffie-Hellman groups 2, 5 (default) and 14.' %}
+ - {% trans 'IKE Phase 1 negotiation mode' %}
+ - {% trans "Limited to 'main' mode only." %}
+
+
+{% trans "All fields are optional." %}
diff --git a/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ipsec_policy_help.html b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ipsec_policy_help.html
new file mode 100644
index 0000000000..270855b137
--- /dev/null
+++ b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_ipsec_policy_help.html
@@ -0,0 +1,19 @@
+{% load i18n %}
+
+{% trans 'Create IPSec Policy for current project.' %}
+{% trans 'An IPSec policy is an association of the following attributes' %}
+
+ - {% trans 'Authorization algorithm' %}
+ - {% trans 'Auth algorithm limited to SHA1 only.' %}
+ - {% trans 'Encapsulation mode' %}
+ - {% trans 'The type of IPsec tunnel (tunnel/transport) to be used.' %}
+ - {% trans 'Encryption algorithm' %}
+ - {% trans 'The type of algorithm (3des, aes-128, aes-192, aes-256) used in the IPSec Policy.' %}
+ - {% trans 'Lifetime' %}
+ - {% trans "Life time consists of units and value. Units in 'seconds' and the default value is 3600." %}
+ - {% trans 'Perfect Forward Secrecy' %}
+ - {% trans 'PFS limited to using Diffie-Hellman groups 2, 5 (default) and 14.' %}
+ - {% trans 'Transform Protocol' %}
+ - {% trans 'The type of protocol (esp, ah, ah-esp) used in IPSec Policy.' %}
+
+{% trans 'All fields are optional.' %}
diff --git a/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_vpn_service_help.html b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_vpn_service_help.html
new file mode 100644
index 0000000000..3ce676b30f
--- /dev/null
+++ b/openstack_dashboard/dashboards/project/vpn/templates/vpn/_add_vpn_service_help.html
@@ -0,0 +1,7 @@
+{% load i18n %}
+
+{% trans "Create VPN service for current project." %}
+{% trans "The VPN service is attached to a router and references to a single subnet to push to a remote site." %}
+{% trans "Specify a name, description, router, and subnet for the VPN Service." %}
+{% trans "Admin State is UP (True) by default." %}
+{% trans "The router, subnet and admin state fields are required. All others are optional." %}
diff --git a/openstack_dashboard/dashboards/project/vpn/workflows.py b/openstack_dashboard/dashboards/project/vpn/workflows.py
index 4630fa5ee0..c5db0e3b4c 100644
--- a/openstack_dashboard/dashboards/project/vpn/workflows.py
+++ b/openstack_dashboard/dashboards/project/vpn/workflows.py
@@ -70,17 +70,7 @@ class AddVPNServiceAction(workflows.Action):
class Meta(object):
name = _("Add New VPN Service")
permissions = ('openstack.services.network',)
- help_text = _("Create VPN Service for current project.\n\n"
- "The VPN service is attached to a router "
- "and references to a single subnet "
- "to push to a remote site.\n"
- "Specify a name, description, router, and subnet "
- "for the VPN Service. "
- "Admin State is UP (True) by default.\n\n"
- "The router, subnet and admin state "
- "fields are required, "
- "all others are optional."
- )
+ help_text_template = "project/vpn/_add_vpn_service_help.html"
class AddVPNServiceStep(workflows.Step):
@@ -175,27 +165,7 @@ class AddIKEPolicyAction(workflows.Action):
class Meta(object):
name = _("Add New IKE Policy")
permissions = ('openstack.services.network',)
- help_text = _("Create IKE Policy for current project.\n\n"
- "An IKE policy is an association "
- "of the following attributes:\n\n"
- "Authorization algorithm: "
- "Auth algorithm limited to SHA1 only."
- "Encryption algorithm: "
- "The type of algorithm "
- "(3des, aes-128, aes-192, aes-256) "
- "used in the IKE Policy."
- "IKE version: The type of version (v1/v2) "
- "that needs to be filtered."
- "Lifetime: Life time consists of units and value. "
- "Units in 'seconds' "
- "and the default value is 3600."
- "Perfect Forward Secrecy: "
- "PFS limited to using Diffie-Hellman "
- "groups 2, 5(default) and 14."
- "IKE Phase 1 negotiation mode: "
- "Limited to 'main' mode only.\n"
- "All fields are optional."
- )
+ help_text_template = "project/vpn/_add_ike_policy_help.html"
class AddIKEPolicyStep(workflows.Step):
@@ -296,29 +266,7 @@ class AddIPSecPolicyAction(workflows.Action):
class Meta(object):
name = _("Add New IPSec Policy")
permissions = ('openstack.services.network',)
- help_text = _("Create IPSec Policy for current project.\n\n"
- "An IPSec policy is an association "
- "of the following attributes:\n\n"
- "Authorization algorithm: "
- "Auth_algorithm limited to SHA1 only."
- "Encapsulation mode: "
- "The type of IPsec tunnel (tunnel/transport) "
- "to be used."
- "Encryption algorithm: "
- "The type of algorithm "
- "(3des, aes-128, aes-192, aes-256) "
- "used in the IPSec Policy."
- "Lifetime: Life time consists of units and value. "
- "Units in 'seconds' "
- "and the default value is 3600."
- "Perfect Forward Secrecy: "
- "PFS limited to using Diffie-Hellman "
- "groups 2, 5(default) and 14."
- "Transform Protocol: "
- "The type of protocol "
- "(esp, ah, ah-esp) used in IPSec Policy.\n"
- "All fields are optional."
- )
+ help_text_template = 'project/vpn/_add_ipsec_policy_help.html'
class AddIPSecPolicyStep(workflows.Step):
@@ -441,8 +389,8 @@ class AddIPSecSiteConnectionAction(workflows.Action):
class Meta(object):
name = _("Add New IPSec Site Connection")
permissions = ('openstack.services.network',)
- help_text = _("Create IPSec Site Connection for current project.\n\n"
- "Assign a name and description for the "
+ help_text = _("Create IPSec Site Connection for current "
+ "project. Assign a name and description for the "
"IPSec Site Connection. "
"All fields in this tab are required."
)
diff --git a/openstack_dashboard/static/dashboard/scss/components/_dl_lists.scss b/openstack_dashboard/static/dashboard/scss/components/_dl_lists.scss
new file mode 100644
index 0000000000..37fbc9316b
--- /dev/null
+++ b/openstack_dashboard/static/dashboard/scss/components/_dl_lists.scss
@@ -0,0 +1,7 @@
+.dl-readable {
+ dd {
+ padding-left: $padding-base-vertical;
+ padding-bottom: $padding-base-horizontal;
+ }
+
+}
\ No newline at end of file
diff --git a/openstack_dashboard/static/dashboard/scss/horizon.scss b/openstack_dashboard/static/dashboard/scss/horizon.scss
index 93a5423a58..0012fae3a4 100644
--- a/openstack_dashboard/static/dashboard/scss/horizon.scss
+++ b/openstack_dashboard/static/dashboard/scss/horizon.scss
@@ -20,6 +20,7 @@
@import "components/charts";
@import "components/checkboxes";
@import "components/datepicker";
+@import "components/dl_lists";
@import "components/dropdowns";
@import "components/forms";
@import "components/help_panel";