diff --git a/app/templates/components/table.html b/app/templates/components/table.html
index e47858de0..d787c0010 100644
--- a/app/templates/components/table.html
+++ b/app/templates/components/table.html
@@ -56,6 +56,15 @@
{%- endmacro %}
+{% macro settings_row(if_has_permission='') -%}
+ {% set parent_caller = caller %}
+ {% if if_has_permission in current_service.permissions %}
+ {% call row() %}
+ {{ parent_caller() }}
+ {% endcall %}
+ {% endif %}
+{%- endmacro %}
+
{% macro field(align='left', status='', border=True) -%}
{% set field_alignment = 'table-field-right-aligned' if align == 'right' else 'table-field-center-aligned' %}
diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html
index 11f608a41..22b9667fd 100644
--- a/app/templates/views/service-settings.html
+++ b/app/templates/views/service-settings.html
@@ -1,6 +1,6 @@
{% extends "withnav_template.html" %}
{% from "components/banner.html" import banner_wrapper %}
-{% from "components/table.html" import mapping_table, row, text_field, optional_text_field, edit_field, field, boolean_field with context %}
+{% from "components/table.html" import mapping_table, row, settings_row, text_field, optional_text_field, edit_field, field, boolean_field with context %}
{% block service_page_title %}
Settings
@@ -46,8 +46,7 @@
}}
{% endcall %}
- {% if 'upload_document' in current_service.permissions %}
- {% call row() %}
+ {% call settings_row(if_has_permission='upload_document') %}
{{ text_field('Contact link') }}
{{ text_field(current_service.contact_link, truncate=true) }}
{{ edit_field(
@@ -58,7 +57,6 @@
)
}}
{% endcall %}
- {% endif %}
{% endcall %}
@@ -81,40 +79,36 @@
}}
{% endcall %}
- {% if 'email' in current_service.permissions %}
+ {% call settings_row(if_has_permission='email') %}
+ {{ text_field('Email reply to addresses') }}
+ {% call field(status='default' if default_reply_to_email_address == "Not set" else '') %}
- {% call row() %}
- {{ text_field('Email reply to addresses') }}
- {% call field(status='default' if default_reply_to_email_address == "Not set" else '') %}
-
- {{ default_reply_to_email_address }}
- {% if reply_to_email_address_count > 1 %}
-
- {{ '…and %d more' | format(reply_to_email_address_count - 1) }}
-
- {% endif %}
- {% endcall %}
- {{ edit_field(
- 'Manage' if reply_to_email_address_count else 'Change',
- url_for('.service_email_reply_to',
- service_id=current_service.id),
- permissions=['manage_service','manage_api_keys']
- )
- }}
+ {{ default_reply_to_email_address }}
+ {% if reply_to_email_address_count > 1 %}
+
+ {{ '…and %d more' | format(reply_to_email_address_count - 1) }}
+
+ {% endif %}
{% endcall %}
+ {{ edit_field(
+ 'Manage' if reply_to_email_address_count else 'Change',
+ url_for('.service_email_reply_to',
+ service_id=current_service.id),
+ permissions=['manage_service','manage_api_keys']
+ )
+ }}
+ {% endcall %}
- {% call row() %}
- {{ text_field('Email branding') }}
- {{ text_field(
- 'GOV.UK' if current_service.branding == 'govuk' else 'Your branding'
- ) }}
- {{ edit_field(
- 'Change',
- url_for('.branding_request', service_id=current_service.id),
- )}}
- {% endcall %}
-
- {% endif %}
+ {% call settings_row(if_has_permission='email') %}
+ {{ text_field('Email branding') }}
+ {{ text_field(
+ 'GOV.UK' if current_service.branding == 'govuk' else 'Your branding'
+ ) }}
+ {{ edit_field(
+ 'Change',
+ url_for('.branding_request', service_id=current_service.id),
+ )}}
+ {% endcall %}
{% endcall %}
@@ -137,64 +131,60 @@
}}
{% endcall %}
- {% if 'sms' in current_service.permissions %}
-
- {% call row() %}
- {{ text_field('Text message sender') }}
- {% call field(status='default' if default_sms_sender == "None" else '') %}
- {{ default_sms_sender | string | nl2br | safe if default_sms_sender else 'None'}}
- {% if sms_sender_count > 1 %}
-
- {{ '…and %d more' | format(sms_sender_count - 1) }}
-
- {% endif %}
- {% endcall %}
- {{ edit_field(
- 'Manage' if sms_sender_count else 'Change',
- url_for('.service_sms_senders',
- service_id=current_service.id),
- permissions=['manage_service','manage_api_keys']
- )
- }}
+ {% call settings_row(if_has_permission='sms') %}
+ {{ text_field('Text message sender') }}
+ {% call field(status='default' if default_sms_sender == "None" else '') %}
+ {{ default_sms_sender | string | nl2br | safe if default_sms_sender else 'None'}}
+ {% if sms_sender_count > 1 %}
+
+ {{ '…and %d more' | format(sms_sender_count - 1) }}
+
+ {% endif %}
{% endcall %}
+ {{ edit_field(
+ 'Manage' if sms_sender_count else 'Change',
+ url_for('.service_sms_senders',
+ service_id=current_service.id),
+ permissions=['manage_service','manage_api_keys']
+ )
+ }}
+ {% endcall %}
- {% call row() %}
- {{ text_field('Text messages start with service name') }}
- {{ boolean_field(prefix_sms) }}
- {{ edit_field(
- 'Change',
- url_for('.service_set_sms_prefix',
- service_id=current_service.id),
- permissions=['manage_service']
- )
- }}
- {% endcall %}
+ {% call settings_row(if_has_permission='sms') %}
+ {{ text_field('Text messages start with service name') }}
+ {{ boolean_field(prefix_sms) }}
+ {{ edit_field(
+ 'Change',
+ url_for('.service_set_sms_prefix',
+ service_id=current_service.id),
+ permissions=['manage_service']
+ )
+ }}
+ {% endcall %}
- {% call row() %}
- {{ text_field('International text messages') }}
- {{ boolean_field('international_sms' in current_service.permissions) }}
- {{ edit_field(
- 'Change',
- url_for('.service_set_international_sms',
- service_id=current_service.id),
- permissions=['manage_service']
- )
- }}
- {% endcall %}
+ {% call settings_row(if_has_permission='sms') %}
+ {{ text_field('International text messages') }}
+ {{ boolean_field('international_sms' in current_service.permissions) }}
+ {{ edit_field(
+ 'Change',
+ url_for('.service_set_international_sms',
+ service_id=current_service.id),
+ permissions=['manage_service']
+ )
+ }}
+ {% endcall %}
- {% call row() %}
- {{ text_field('Receive text messages') }}
- {{ boolean_field('inbound_sms' in current_service.permissions) }}
- {{ edit_field(
- 'Change',
- url_for('.service_set_inbound_sms',
- service_id=current_service.id),
- permissions=['manage_service']
- )
- }}
- {% endcall %}
-
- {% endif %}
+ {% call settings_row(if_has_permission='sms') %}
+ {{ text_field('Receive text messages') }}
+ {{ boolean_field('inbound_sms' in current_service.permissions) }}
+ {{ edit_field(
+ 'Change',
+ url_for('.service_set_inbound_sms',
+ service_id=current_service.id),
+ permissions=['manage_service']
+ )
+ }}
+ {% endcall %}
{% endcall %}
@@ -217,26 +207,24 @@
}}
{% endcall %}
- {% if 'letter' in current_service.permissions %}
- {% call row() %}
- {{ text_field('Sender addresses') }}
- {% call field(status='default' if default_letter_contact_block == "Not set" else '') %}
- {{ default_letter_contact_block | string | nl2br | safe if default_letter_contact_block else 'Not set'}}
- {% if letter_contact_details_count > 1 %}
-
- {{ '…and %d more' | format(letter_contact_details_count - 1) }}
-
- {% endif %}
- {% endcall %}
- {{ edit_field(
- 'Manage' if letter_contact_details_count else 'Change',
- url_for('.service_letter_contact_details',
- service_id=current_service.id),
- permissions=['manage_service','manage_api_keys']
- )
- }}
+ {% call settings_row(if_has_permission='letter') %}
+ {{ text_field('Sender addresses') }}
+ {% call field(status='default' if default_letter_contact_block == "Not set" else '') %}
+ {{ default_letter_contact_block | string | nl2br | safe if default_letter_contact_block else 'Not set'}}
+ {% if letter_contact_details_count > 1 %}
+
+ {{ '…and %d more' | format(letter_contact_details_count - 1) }}
+
+ {% endif %}
{% endcall %}
- {% endif %}
+ {{ edit_field(
+ 'Manage' if letter_contact_details_count else 'Change',
+ url_for('.service_letter_contact_details',
+ service_id=current_service.id),
+ permissions=['manage_service','manage_api_keys']
+ )
+ }}
+ {% endcall %}
{% endcall %}