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 %}