Merge branch 'master' into international-letters-form

This commit is contained in:
Rebecca Law
2020-09-07 09:45:17 +01:00
184 changed files with 25298 additions and 3889 deletions

View File

@@ -26,7 +26,7 @@
{% call form_wrapper() %}
{{ textbox(form.name, hint="You can change this later") }}
{{ form.name(param_extensions={"hint": {"text": "You can change this later"}}) }}
{{ page_footer('Add service') }}

View File

@@ -1,6 +1,5 @@
{% extends "withoutnav_template.html" %}
{% from "components/radios.html" import radios %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -18,7 +17,7 @@
{% call form_wrapper() %}
{{ textbox(form.name, hint="You can change this later") }}
{{ form.name(param_extensions={"hint": {"text": "You can change this later"}}) }}
{% if not default_organisation_type %}
{{ radios(form.organisation_type) }}

View File

@@ -1,5 +1,4 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/radios.html" import radio, conditional_radio_panel %}
{% from "components/select-input.html" import select_wrapper %}
{% from "components/form.html" import form_wrapper %}
@@ -28,10 +27,14 @@
{% endfor %}
{% endcall %}
{% call conditional_radio_panel('on-behalf-of') %}
{{ textbox(form.on_behalf_of_name, width='1-1') }}
{{ textbox(form.on_behalf_of_email, width='1-1') }}
{{ form.on_behalf_of_name(param_extensions={"classes": "govuk-!-width-full"}) }}
{{ form.on_behalf_of_email(param_extensions={"classes": "govuk-!-width-full"}) }}
{% endcall %}
{{ textbox(form.version, width='1-3', hint='The version number is on the front page, for example 3.6') }}
{{ form.version(
param_extensions={
"hint": {"text": "The version number is on the front page, for example 3.6"},
"classes": "govuk-!-width-one-third"}
) }}
{{ page_footer('Continue') }}

View File

@@ -23,17 +23,17 @@
</p>
{% call form_wrapper() %}
{{ textbox(
form.url,
width='1-1',
hint='Must start with https://'
) }}
{{ textbox(
form.bearer_token,
width='1-1',
hint='At least 10 characters',
autocomplete='new-password'
) }}
{{ form.url(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Must start with https://"}
}) }}
{{ form.bearer_token(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "At least 10 characters"},
"autocomplete": "new-password"
}) }}
{{ page_footer('Save') }}
{% endcall %}
</div>

View File

@@ -21,17 +21,16 @@
</p>
{% call form_wrapper() %}
{{ textbox(
form.url,
width='1-1',
hint='Must start with https://'
) }}
{{ textbox(
form.bearer_token,
width='1-1',
hint='At least 10 characters',
autocomplete='new-password'
) }}
{{ form.url(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Must start with https://"}
}) }}
{{ form.bearer_token(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "At least 10 characters"},
"autocomplete": "new-password"
}) }}
{{ page_footer('Save') }}
{% endcall %}
</div>

View File

@@ -1,7 +1,6 @@
{% extends "withnav_template.html" %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/textbox.html" import textbox %}
{% from "components/radios.html" import radios %}
{% from "components/banner.html" import banner_wrapper %}
{% from "components/form.html" import form_wrapper %}
@@ -18,7 +17,7 @@
) }}
{% call form_wrapper() %}
{{ textbox(form.key_name, label='Name for this key') }}
{{ form.key_name }}
{{ radios(form.key_type, disable=disabled_options, option_hints=option_hints) }}
{{ page_footer('Continue') }}
{% endcall %}

View File

@@ -24,7 +24,8 @@
{{ api_key(
'{}-{}-{}'.format(key_name, service_id, secret),
'API key'
name='API key',
thing='API key'
) }}
{{ page_footer(

View File

@@ -0,0 +1,25 @@
{% from "components/page-header.html" import page_header %}
{% from "components/live-search.html" import live_search %}
{% extends "withnav_template.html" %}
{% block service_page_title %}
{{ page_title }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(
page_title,
back_link=url_for('.choose_broadcast_library', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
)}}
{{ live_search(target_selector='.file-list-item', show=show_search_form, form=search_form, label='Search by name') }}
{% for area in library|sort %}
<div class="file-list-item">
<a class="file-list-filename-large govuk-link govuk-link--no-visited-state" href="{{ url_for('.choose_broadcast_sub_area', service_id=current_service.id, broadcast_message_id=broadcast_message.id, library_slug=library.id, area_slug=area.id) }}">{{ area.name }}</a>
</div>
{% endfor %}
{% endblock %}

View File

@@ -18,7 +18,7 @@
</nav>
{% endif %}
<h2 class="heading-medium govuk-!-margin-bottom-2">Live broadcasts</h2>
<h2 class="heading-medium govuk-!-margin-bottom-2">Live alerts</h2>
{{ ajax_block(
partials,
@@ -34,7 +34,7 @@
'pending_approval_broadcasts'
) }}
<h2 class="heading-medium govuk-!-margin-bottom-2">Previous broadcasts</h2>
<h2 class="heading-medium govuk-!-margin-bottom-2">Previous alerts</h2>
{{ ajax_block(
partials,

View File

@@ -36,12 +36,35 @@
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(mymap);
{% for polygon in broadcast_message.polygons %}
{% for polygon in broadcast_message.simple_polygons.bleed.as_coordinate_pairs_lat_long %}
polygons.push(
L.polygon({{polygon}}, {
opacity: 0.5,
color: '#2B8CC4', // $light-blue
fillColor: '#2B8CC4', // $light-blue
fillOpacity: 0.2,
weight: 2
})
);
{% endfor %}
{% for polygon in broadcast_message.simple_polygons.as_coordinate_pairs_lat_long %}
polygons.push(
L.polygon({{polygon}}, {
opacity: 0.1,
color: '#2B8CC4', // $black
fillColor: '#2B8CC4', // $light-blue
fillOpacity: 0.4,
weight: 1
})
);
{% endfor %}
{% for polygon in broadcast_message.polygons.as_coordinate_pairs_lat_long %}
polygons.push(
L.polygon({{polygon}}, {
color: '#0b0b0c', // $black
fillColor: '#2B8CC4', // $light-blue
fillOpacity: 0.2,
fillOpacity: 0,
weight: 2
})
);
@@ -50,7 +73,7 @@
var polygonGroup = L.featureGroup(polygons).addTo(mymap);
mymap.fitBounds(
polygonGroup.getBounds(),
{padding: [5, 5]}
{padding: [1, 1]}
);
</script>
@@ -71,13 +94,13 @@
{{ area.name }} <a class="area-list-item-remove" href="{{ url_for('.remove_broadcast_area', service_id=current_service.id, broadcast_message_id=broadcast_message.id, area_slug=area.id) }}">remove</a>
</li>
{% if loop.last %}
</ul>
{{ govukButton({
"element": "a",
"text": "Add another area",
"href": url_for('.choose_broadcast_library', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
"classes": "govuk-button--secondary govuk-!-margin-bottom-5"
}) }}
</ul>
{% endif %}
{% else %}
<p class="govuk-body">

View File

@@ -29,17 +29,6 @@
{{ broadcast_message.template|string }}
{% call form_wrapper() %}
<h3 class="govuk-heading-s govuk-!-margin-top-6 govuk-!-margin-bottom-1">
Start time
</h3>
<p class="govuk-body govuk-!-margin-bottom-4">
Your broadcast will start when its approved by another member of your team.
</p>
{{ radio_select(
form.finishes_at,
show_now_as_default=False,
bold_legend=True
) }}
{{ page_footer('Submit for approval') }}
{% endcall %}

View File

@@ -0,0 +1,33 @@
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import sticky_page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/live-search.html" import live_search %}
{% extends "withnav_template.html" %}
{% block service_page_title %}
{{ page_title }}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(
page_title,
back_link=url_for('.choose_broadcast_library', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
)}}
{% call form_wrapper() %}
<div class="form-group govuk-!-margin-bottom-4">
{{ form.select_all }}
</div>
{{ live_search(target_selector='.govuk-checkboxes__item', show=show_search_form, form=search_form, label='Or by electoral ward') }}
{{ form.areas }}
{{ sticky_page_footer('Add to broadcast') }}
{% endcall %}
{% endblock %}

View File

@@ -3,7 +3,7 @@
{% extends "admin_template.html" %}
{% block per_page_title %}
Step 1
Youve been invited to use GOV.UK Notify for emergency alerts.
{% endblock %}
{% set mainClasses = "govuk-!-padding-top-0 govuk-!-padding-bottom-0" %}
@@ -14,20 +14,15 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-half">
<h1 class="heading-medium">
Youve been invited to use GOV.UK Notify to broadcast alerts
Youve been invited to use GOV.UK&nbsp;Notify for emergency alerts.
</h1>
<ul>
<li>
Broadcasting is a new technology for alerting members of the
public
</li>
<li>
It should be used when theres an imminent risk to life
</li>
</ul>
<p class="govuk-body heading-medium">
Emergency alerts let you warn the public about an
imminent risk to life.
</p>
<p class="govuk-body heading-medium">
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".broadcast_tour", service_id=current_service.id, step_index=2) }}'>
Find out how it works
Continue
</a>
</p>
</div>

View File

@@ -3,7 +3,8 @@
{% extends "admin_template.html" %}
{% block per_page_title %}
Step 2
In an emergency, you can broadcast an alert to every mobile phone in
the affected area at exactly the same time.
{% endblock %}
{% set mainClasses = "govuk-!-padding-top-0 govuk-!-padding-bottom-0" %}
@@ -14,23 +15,12 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-half">
<h1 class="heading-medium">
A broadcast will alert every phone in an area
In an emergency, you can broadcast an alert to every mobile phone in
the affected area at exactly the same time.
</h1>
<ul>
<li>
The alert will appear even if the phones screen is locked
</li>
<li>
The phone will play an alarm sound even if its set to silent
</li>
<li>
Any phone that enters the area while the broadcast is live will
get the alert
</li>
</ul>
<p class="govuk-body heading-medium govuk-!-margin-bottom-6">
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".broadcast_tour", service_id=current_service.id, step_index=3) }}'>
How to try it out
Continue
</a>
</p>
</div>

View File

@@ -3,7 +3,7 @@
{% extends "admin_template.html" %}
{% block per_page_title %}
Step 3
The phone will make a loud alarm noise, even if its set on silent.
{% endblock %}
{% set mainClasses = "govuk-!-padding-top-0 govuk-!-padding-bottom-0" %}
@@ -14,28 +14,17 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-half">
<h1 class="heading-medium">
You have a trial account
The phone will make a loud alarm noise, even if its set on silent.
</h1>
<ul>
<li>
Theres no risk of triggering a real, live broadcast
</li>
<li>
Get familiar with the system now, so youre ready to use it if
theres an emergency
</li>
<li>
When youre ready, apply for a live account
</li>
</ul>
<p class="govuk-body heading-medium">
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".service_dashboard", service_id=current_service.id) }}'>
Continue to dashboard
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".broadcast_tour", service_id=current_service.id, step_index=4) }}'>
Continue
</a>
</p>
</div>
<div class="govuk-grid-column-one-half">
<img src="{{ asset_url('images/broadcast-tour/3.png') }}" alt="">
<link rel="preload" href="{{ asset_url('images/broadcast-tour/4.png') }}" as="image">
</div>
</div>
</div>

View File

@@ -0,0 +1,35 @@
{% from "components/banner.html" import banner_wrapper %}
{% extends "admin_template.html" %}
{% block per_page_title %}
An alert is not a normal text message.
{% endblock %}
{% set mainClasses = "govuk-!-padding-top-0 govuk-!-padding-bottom-0" %}
{% block content %}
<div class="banner-tour banner-tour-no-fixed-height govuk-!-margin-top-0">
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-half">
<h1 class="heading-medium">
An alert is not a normal text message.
</h1>
<p class="govuk-body heading-medium">
Its broadcast directly from a mobile phone mast, so you dont
need to know anyones phone number.
</p>
<p class="govuk-body heading-medium">
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".broadcast_tour", service_id=current_service.id, step_index=5) }}'>
Continue
</a>
</p>
</div>
<div class="govuk-grid-column-one-half">
<img src="{{ asset_url('images/broadcast-tour/4.png') }}" alt="">
</div>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,43 @@
{% from "components/banner.html" import banner_wrapper %}
{% extends "admin_template.html" %}
{% block per_page_title %}
Youre in training mode.
{% endblock %}
{% set mainClasses = "govuk-!-padding-top-0 govuk-!-padding-bottom-0" %}
{% block content %}
<div class="navigation-service">
<div class="navigation-service-name govuk-!-font-weight-bold">
{{ current_service.name }} <span class="navigation-service-type--training">Training</span>
</div>
</div>
<div class="banner-tour banner-tour-no-fixed-height banner-tour-with-service-name">
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<h1 class="heading-medium">
Youre in training mode.
</h1>
<p class="govuk-body heading-medium">
Theres no risk of broadcasting a real alert.
</p>
<p class="govuk-body heading-medium">
Get used to the system now, so you know what to do in an&nbsp;emergency.
</p>
<p class="govuk-body heading-medium">
When youre ready, you can turn off training mode.
</p>
<p class="govuk-body heading-medium">
<a class="govuk-link govuk-link--no-visited-state" href='{{ url_for(".service_dashboard", service_id=current_service.id) }}'>
Continue to dashboard
</a>
</p>
</div>
</div>
</div>
{% endblock %}

View File

@@ -1,34 +1,94 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/button/macro.njk" import govukButton %}
{% from "components/form.html" import form_wrapper %}
{% from "components/banner.html" import banner %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% extends "withnav_template.html" %}
{% block service_page_title %}
{{ broadcast_message.template_name }}
{% if broadcast_message.status == 'pending-approval' %}
{% if broadcast_message.created_by == current_user and current_user.has_permissions('send_messages') %}
{{ broadcast_message.template_name }} is waiting for approval
{% elif current_user.has_permissions('send_messages') %}
{{ broadcast_message.created_by.name }} wants to broadcast
{{ broadcast_message.template_name }}
{% else %}
This alert is waiting for approval
{% endif %}
{% else %}
{{ broadcast_message.template_name }}
{% endif %}
{% endblock %}
{% block maincolumn_content %}
{{ page_header(
broadcast_message.template_name,
back_link=url_for('.broadcast_dashboard', service_id=current_service.id)
) }}
{{ govukBackLink({ "href": url_for('.broadcast_dashboard', service_id=current_service.id) }) }}
{% if broadcast_message.status == 'pending-approval' %}
{% call form_wrapper(class="banner govuk-!-margin-bottom-6") %}
<p class="govuk-body govuk-!-margin-top-0 govuk-!-margin-bottom-3">
{{ broadcast_message.created_by.name }} wants to broadcast this
message until {{ broadcast_message.finishes_at|format_datetime_relative }}.
</p>
{{ page_footer(
"Start broadcasting now",
delete_link=url_for('main.reject_broadcast_message', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
delete_link_text='Reject this broadcast'
) }}
{% endcall %}
{% if broadcast_message.created_by == current_user and current_user.has_permissions('send_messages') %}
<div class="banner govuk-!-margin-bottom-6">
<h1 class="govuk-heading-m govuk-!-margin-bottom-3">
{{ broadcast_message.template_name }} is waiting for approval
</h1>
{% if current_service.live %}
<p class="govuk-body">
You need another member of your team to approve your alert.
</p>
{{ page_footer(
delete_link=url_for('main.reject_broadcast_message', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
delete_link_text='Withdraw this alert'
) }}
{% else %}
<p class="govuk-body govuk-!-margin-bottom-3">
When you use a live account youll need another member of
your team to approve your alert.
</p>
<details class="govuk-details govuk-!-margin-bottom-0" data-module="govuk-details">
<summary class="govuk-details__summary govuk-clearfix">
Approve your own alert
</summary>
{% call form_wrapper() %}
<p class="govuk-body govuk-!-margin-top-2 govuk-!-margin-bottom-3">
Because youre in training mode you can approve
your own alerts, to see how it works.
</p>
<p class="govuk-body govuk-!-margin-top-0 govuk-!-margin-bottom-3">
No real alerts will be broadcast to anyones phone.
</p>
{{ page_footer(
"Start broadcasting now",
delete_link=url_for('main.reject_broadcast_message', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
delete_link_text='Cancel this alert'
) }}
{% endcall %}
</details>
{% endif %}
</div>
{% elif current_user.has_permissions('send_messages') %}
{% call form_wrapper(class="banner govuk-!-margin-bottom-6") %}
<h1 class="govuk-heading-m govuk-!-margin-top-0 govuk-!-margin-bottom-3">
{{ broadcast_message.created_by.name }} wants to broadcast
{{ broadcast_message.template_name }}
</h1>
{{ page_footer(
"Start broadcasting now",
delete_link=url_for('main.reject_broadcast_message', service_id=current_service.id, broadcast_message_id=broadcast_message.id),
delete_link_text='Reject this alert'
) }}
{% endcall %}
{% else %}
<div class="banner govuk-!-margin-bottom-6">
<h1 class="govuk-heading-m govuk-!-margin-bottom-3">This alert is waiting for approval</h1>
<p class="govuk-body">
You dont have permission to approve alerts.
</p>
</div>
{% endif %}
{% else %}
{{ page_header(broadcast_message.template_name) }}
<p class="govuk-body govuk-!-margin-bottom-3">
Created by {{ broadcast_message.created_by.name }} and approved by
{{ broadcast_message.approved_by.name }}.

View File

@@ -6,13 +6,6 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/message-count-label.html" import message_count_label %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
Error
{% endblock %}
@@ -135,8 +128,6 @@
{% endif %}
{{ skip_to_file_contents() }}
{% endcall %}
</div>
@@ -158,7 +149,7 @@
{% set column_headers = recipients._raw_column_headers if recipients.duplicate_recipient_column_headers else recipients.column_headers %}
<h2 class="heading-medium" id="{{ file_contents_header_id }}">{{ original_file_name }}</h2>
<h2 class="heading-medium" id="file-preview">{{ original_file_name }}</h2>
<div class="fullscreen-content" data-module="fullscreen-table">
{% call(item, row_number) list_table(

View File

@@ -5,13 +5,9 @@
{% from "components/page-header.html" import page_header %}
{% from "components/message-count-label.html" import message_count_label %}
{% from "components/button/macro.njk" import govukButton %}
{% from "components/skip-link/macro.njk" import govukSkipLink %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
{{ "Preview of {}".format(template.name) }}
@@ -30,7 +26,10 @@
{% endcall %}
{% endif %}
{{ skip_to_file_contents() }}
{{ govukSkipLink({
"text": "Skip to file contents",
"href": "#" + file_contents_header_id
}) }}
{{ template|string }}
<div class="bottom-gutter-3-2">

View File

@@ -6,13 +6,6 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/message-count-label.html" import message_count_label %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
Error
{% endblock %}
@@ -43,7 +36,6 @@
{% endfor %}
</ul>
{% endif %}
{{ skip_to_file_contents() }}
{% endcall %}
</div>
@@ -60,7 +52,7 @@
<div class="fullscreen-content" data-module="fullscreen-table">
{% call(item, row_number) mapping_table(
caption=original_file_name,
caption="Errors in " + original_file_name,
caption_visible=False,
field_headings=[
'<span class="govuk-visually-hidden">Row in file</span><span aria-hidden="true" class="table-field-invisible-error">1</span>'|safe

View File

@@ -5,20 +5,23 @@
{% from "components/form.html" import form_wrapper %}
{% block service_page_title %}
{{ heading_action }} broadcast template
{{ heading_action }} template
{% endblock %}
{% block maincolumn_content %}
{{ page_header(
'{} broadcast template'.format(heading_action),
'{} template'.format(heading_action),
back_link=url_for('main.view_template', service_id=current_service.id, template_id=template.id) if template else url_for('main.choose_template', service_id=current_service.id, template_folder_id=template_folder_id)
) }}
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
{{ textbox(form.name, width='1-1', hint='Your recipients will not see this') }}
{{ form.name(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Your recipients will not see this"},
}) }}
</div>
<div class="govuk-grid-column-two-thirds">
{{ textbox(form.template_content, highlight_placeholders=True, width='1-1', rows=5) }}

View File

@@ -19,7 +19,10 @@
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ textbox(form.name, width='1-1', hint='Your recipients will not see this', rows=10) }}
{{ form.name(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Your recipients will not see this"}
}) }}
{{ textbox(form.subject, width='1-1', highlight_placeholders=True, rows=2) }}
{{ textbox(form.template_content, highlight_placeholders=True, width='1-1', rows=8) }}
{% if current_user.platform_admin %}

View File

@@ -19,7 +19,10 @@
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-five-sixths">
{{ textbox(form.name, width='1-1', hint='Your recipients will not see this', rows=10) }}
{{ form.name(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Your recipients will not see this"}
}) }}
{{ textbox(form.subject, width='1-1', highlight_placeholders=True, rows=2) }}
{{ textbox(form.template_content, highlight_placeholders=True, width='1-1', rows=8) }}
{{ sticky_page_footer(

View File

@@ -19,7 +19,10 @@
{% call form_wrapper() %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
{{ textbox(form.name, width='1-1', hint='Your recipients will not see this') }}
{{ form.name(param_extensions={
"classes": "govuk-!-width-full",
"hint": {"text": "Your recipients will not see this"}
}) }}
</div>
<div class="govuk-grid-column-two-thirds">
{{ textbox(form.template_content, highlight_placeholders=True, width='1-1', rows=5) }}

View File

@@ -29,10 +29,10 @@
{{ file_upload(form.file, button_text='{} logo'.format('Update' if email_branding else 'Upload')) }}
{% call form_wrapper() %}
<div class="form-group">
<div style='margin-top:15px;'>{{textbox(form.name)}}</div>
<div style='margin-top:15px;'>{{textbox(form.text)}}</div>
{{ textbox(form.colour, width='1-4', colour_preview=True) }}
{{ radios(form.brand_type) }}
<div style='margin-top:15px;'>{{form.name}}</div>
<div style='margin-top:15px;'>{{form.text}}</div>
{{ form.colour }}
{{ radios(form.brand_type) }}
{{ page_footer(
'Save',
button_name='operation',

View File

@@ -23,7 +23,7 @@
<p class="govuk-body">You can also <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.documentation') }}">integrate with our API</a> to send letters automatically.</p>
<h3 class="heading-small" id="postage">Choose your postage</h3>
<p class="govuk-body">Notify can send letters by first or second class post.</p>
<p class="govuk-body">Notify can send UK letters by first or second class post.</p>
<p class="govuk-body">First class letters are delivered one day after theyre dispatched. Second class letters are delivered 2 days after theyre dispatched.</p>
<p class="govuk-body">Letters are printed at 5:30pm and dispatched the next working day (Monday to Friday). Royal Mail delivers from Monday to Saturday, excluding bank holidays.</p>
@@ -35,8 +35,12 @@
<p class="govuk-body">You can create reusable letter templates in Notify, or upload and send your own letters with the Notify API.</p>
<p class="govuk-body">Read our <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.documentation') }}">documentation</a>.</p>
<h3 class="heading heading-small" id="international-letters">International letters</h3>
<p class="govuk-body">Notify checks for international addresses and will automatically charge you the correct postage.</p>
<p class="govuk-body">Letters to Europe are delivered 3 to 5 days after theyre dispatched. Letters sent anywhere else in the world take 5 to 7 days to arrive.</p>
<h2 class="heading heading-medium">Pricing</h2>
<p class="govuk-body">It costs between 35p and 81p (plus VAT) to send a letter. Prices include:</p>
<p class="govuk-body">It costs between 35p and £1.16 (plus VAT) to send a letter. Prices include:</p>
<ul class="list list-bullet">
<li>paper</li>
<li>double-sided colour printing</li>

View File

@@ -19,11 +19,9 @@
class='govuk-grid-row'
) %}
<div class="govuk-grid-column-three-quarters">
{{ textbox(
form.search,
width='1-1',
label='Find services by name, or by partial name'
) }}
{{ form.search(param_extensions={
"label": {"text": "Find services by name, or by partial name"}
}) }}
</div>
<div class="govuk-grid-column-one-quarter">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">

View File

@@ -19,11 +19,9 @@
class='govuk-grid-row'
) %}
<div class="govuk-grid-column-three-quarters">
{{ textbox(
form.search,
width='1-1',
label='Find users by email, or by partial email'
) }}
{{ form.search(param_extensions={
"label": {"text": "Find users by email, or by partial email"}
}) }}
</div>
<div class="govuk-grid-column-one-quarter">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">

View File

@@ -1,5 +1,4 @@
{% extends "withoutnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -16,7 +15,7 @@ Create a new password
<p class="govuk-body">Well send you an email to create a new password.</p>
{% call form_wrapper() %}
{{ textbox(form.email_address, safe_error_message=True) }}
{{ form.email_address(error_message_with_html=True) }}
{{ page_footer("Send email") }}
{% endcall %}

View File

@@ -1,5 +1,4 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -17,7 +16,12 @@
{% call form_wrapper() %}
{{ textbox(form.email_address, width='1-1', safe_error_message=True) }}
{{ form.email_address(
param_extensions={
"classes": "govuk-!-width-full"
},
error_message_with_html=True
) }}
{% include 'views/manage-users/permissions.html' %}

View File

@@ -28,7 +28,9 @@
{{ file_upload(file_upload_form.file, button_text='{} logo'.format('Update' if is_update else 'Upload')) }}
{% call form_wrapper() %}
<div class="form-group">
<div style='margin-top:15px;'>{{textbox(letter_branding_details_form.name)}}</div>
{{ letter_branding_details_form.name(param_extensions={
"formGroup": {"classes": "govuk-!-margin-top-3"}
}) }}
{{ page_footer(
'Save',
button_name='operation',

View File

@@ -22,7 +22,7 @@
<div class="user-list">
{% for user in users %}
<div class="user-list-item">
<h3 title="{{ user.email_address }}">
<h2 class="user-list-item-heading" title="{{ user.email_address }}">
{%- if user.name -%}
<span class="heading-small live-search-relevant">{{ user.name }}</span>&ensp;
{%- endif -%}
@@ -37,7 +37,7 @@
<span class="live-search-relevant">{{ user.email_address }}</span>
{% endif %}
</span>
</h3>
</h2>
<ul class="tick-cross-list govuk-grid-row">
<div class="tick-cross-list-permissions govuk-grid-column-three-quarters">
{% for permission, label in permissions %}
@@ -73,9 +73,9 @@
{% if current_user.has_permissions('manage_service') %}
<li class="tick-cross-list-edit-link">
{% if user.status == 'pending' %}
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.cancel_invited_user', service_id=current_service.id, invited_user_id=user.id)}}">Cancel invitation</a>
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.cancel_invited_user', service_id=current_service.id, invited_user_id=user.id)}}">Cancel invitation<span class="govuk-visually-hidden"> for {{ user.email_address }}</span></a>
{% elif user.state == 'active' and current_user.id != user.id %}
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id)}}">Change details</a>
<a class="govuk-link govuk-link--no-visited-state" href="{{ url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id)}}">Change details<span class="govuk-visually-hidden"> for {{ user.name }} {{ user.email_address }}</span></a>
{% endif %}
</li>
{% endif %}

View File

@@ -1,5 +1,4 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -17,7 +16,7 @@
<p class="govuk-body" id="user_name">This will change the email address for {{ user.name }}.</p>
{% call form_wrapper() %}
{{ textbox(form.email_address, width='1-1', safe_error_message=True) }}
{{ form.email_address(param_extensions={"classes": "govuk-!-width-full"}, error_message_with_html=True) }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -19,7 +19,7 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper(class="extra-tracking") %}
{{ textbox(form.mobile_number) }}
{{ form.mobile_number }}
{{ page_footer('Save') }}
{% endcall %}
</div>

View File

@@ -1,5 +1,4 @@
{% extends "withoutnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -19,7 +18,7 @@
You can now create a new password for your account.
</p>
{% call form_wrapper() %}
{{ textbox(form.new_password, hint="At least 8 characters") }}
{{ form.new_password(param_extensions={"hint": {"text": "At least 8 characters"}}) }}
{{ page_footer("Continue") }}
{% endcall %}
{% else %}

View File

@@ -41,17 +41,17 @@
class="govuk-grid-row"
) %}
<div class="govuk-grid-column-three-quarters {% if message_type == 'sms' %}extra-tracking{% endif %}">
{{ textbox(
search_form.to,
width='1-1',
label=things_you_can_search_by|formatted_list(
conjunction='or',
before_each='',
after_each='',
prefix='Search by',
prefix_plural='Search by'
)
) }}
{{ search_form.to(param_extensions={
"label": {
"text": things_you_can_search_by|formatted_list(
conjunction='or',
before_each='',
after_each='',
prefix='Search by',
prefix_plural='Search by'
)
}
}) }}
</div>
<div class="govuk-grid-column-one-quarter">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
@@ -63,7 +63,7 @@
{% endcall %}
{% call form_wrapper(id="search-form") %}
<input type="hidden" name="to" value="{{ search_form.to.data }}">
<input type="hidden" name="to" {% if search_form.to.data %}value="{{ search_form.to.data }}{% endif %}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{% endcall %}

View File

@@ -22,7 +22,7 @@
{% endfor %}
{% endcall %}
{% call conditional_radio_panel('custom-organisation-name') %}
{{ textbox(form.name) }}
{{ form.name }}
{% endcall %}
{{ page_footer('Continue') }}
{% endcall %}

View File

@@ -26,9 +26,9 @@
{% block content %}
{{ page_header('New organisation') }}
{% call form_wrapper() %}
{{textbox(form.name)}}
{{radios(form.organisation_type)}}
{{radios(form.crown_status)}}
{{ form.name }}
{{ radios(form.organisation_type) }}
{{ radios(form.crown_status) }}
{{ page_footer('Save') }}
{% endcall %}
{% endblock %}

View File

@@ -1,5 +1,4 @@
{% extends "org_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -19,7 +18,7 @@
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper() %}
{{ textbox(form.password, autocomplete='current-password') }}
{{ form.password(param_extensions={"autocomplete": "current-password"}) }}
<p class="govuk-body"> Your organisation name will be changed from {{ current_org.name }} to {{ new_name }} </p>
{{ page_footer('Confirm') }}
{% endcall %}

View File

@@ -16,7 +16,7 @@
) }}
{% call form_wrapper() %}
{{textbox(form.name)}}
{{ form.name }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -25,7 +25,7 @@
<div class="user-list">
{% for user in users %}
<div class="user-list-item">
<h3>
<h2 class="user-list-item-heading">
{%- if user.name -%}
<span class="heading-small">{{ user.name }}</span>&ensp;
{%- endif -%}
@@ -40,7 +40,7 @@
{{ user.email_address }}
{% endif %}
</span>
</h3>
</h2>
<ul class="tick-cross-list">
<li class="tick-cross-list-edit-link">
{% if user.status == 'pending' %}

View File

@@ -1,6 +1,5 @@
{% extends "org_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/page-header.html" import page_header %}
{% from "components/form.html" import form_wrapper %}
@@ -16,7 +15,12 @@
back_link=url_for('.manage_org_users', org_id=current_org.id)
) }}
{% call form_wrapper() %}
{{ textbox(form.email_address, width='1-1', safe_error_message=True) }}
{{ form.email_address(
param_extensions={
"classes": "govuk-!-width-full"
},
error_message_with_html=True
) }}
<div class="bottom-gutter">
<p class="form-label">

View File

@@ -19,8 +19,8 @@
{% set details_content %}
{% call form_wrapper(method="get") %}
{{ textbox(form.start_date, hint="Enter start date in format YYYY-MM-DD") }}
{{ textbox(form.end_date, hint="Enter end date in format YYYY-MM-DD") }}
{{ form.start_date(param_extensions={"hint": {"text":"Enter start date in format YYYY-MM-DD"}}) }}
{{ form.end_date(param_extensions={"hint": {"text":"Enter end date in format YYYY-MM-DD"}}) }}
</br>
{{ govukButton({ "text": "Filter" }) }}
{% endcall %}

View File

@@ -12,8 +12,8 @@
</h1>
{% call form_wrapper() %}
{{ textbox(form.start_date, hint="Enter start date in format YYYY-MM-DD") }}
{{ textbox(form.end_date, hint="Enter end date in format YYYY-MM-DD") }}
{{ form.start_date(param_extensions={"hint": {"text": "Enter start date in format YYYY-MM-DD"}}) }}
{{ form.end_date(param_extensions={"hint": {"text": "Enter end date in format YYYY-MM-DD"}}) }}
{{ page_footer('Download report') }}
{% endcall %}

View File

@@ -67,8 +67,8 @@
{% set details_content %}
{% call form_wrapper(method="get") %}
{{ textbox(form.start_date, hint="Enter start date in format YYYY-MM-DD") }}
{{ textbox(form.end_date, hint="Enter end date in format YYYY-MM-DD") }}
{{ form.start_date(param_extensions={"hint": {"text": "Enter start date in format YYYY-MM-DD"}}) }}
{{ form.end_date(param_extensions={"hint": {"text": "Enter end date in format YYYY-MM-DD"}}) }}
{{ form.include_from_test_key }}
{{ govukButton({ "text": "Filter" }) }}
{% endcall %}

View File

@@ -12,9 +12,9 @@
</h1>
{% call form_wrapper() %}
{{ textbox(form.start_date, hint="Enter start date in format YYYY-MM-DD") }}
{{ textbox(form.end_date, hint="Enter end date in format YYYY-MM-DD") }}
{{ form.start_date(param_extensions={"hint": {"text": "Enter start date in format YYYY-MM-DD"}}) }}
{{ form.end_date(param_extensions={"hint": {"text": "Enter end date in format YYYY-MM-DD"}}) }}
{{ page_footer('Download report') }}
{% endcall %}
{% endblock %}
{% endblock %}

View File

@@ -193,37 +193,39 @@
<h2 class="heading-medium" id="letters">Letters</h2>
<p class="govuk-body">The cost of sending a letter depends on the postage you choose and how many sheets of paper you need.</p>
<p class="govuk-body">Prices include:</p>
<ul class="list list-bullet">
<li>paper</li>
<li>postage</li>
<li>double-sided colour printing</li>
<li>C5 size envelopes with an address window</li>
</ul>
<div>
{% call mapping_table(
caption='Letter pricing',
field_headings=['Paper', 'Second class', 'First class'],
field_headings=['Paper', 'Second class', 'First class', 'International'],
field_headings_visible=True,
caption_visible=False
) %}
{% for sheets, second, first in [
('1 sheet', '35', '61'),
('2 sheets', '40', '66'),
('3 sheets', '45', '71'),
('4 sheets', '50', '76'),
('5 sheets', '55', '81'),
{% for sheets, second, first, international in [
('1 sheet', '35p', '61p', '84p'),
('2 sheets', '40p', '66p', '92p'),
('3 sheets', '45p', '71p', '£1'),
('4 sheets', '50p', '76p', '£1.08'),
('5 sheets', '55p', '81p', '£1.16'),
] %}
{% call row() %}
{% call row_heading() %} {{ sheets }} (double-sided) {% endcall %}
{{ text_field(second + 'p + VAT') }}
{{ text_field(first + 'p + VAT') }}
{% call row_heading() %} {{ sheets }} {% endcall %}
{{ text_field(second + ' + VAT') }}
{{ text_field(first + ' + VAT') }}
{{ text_field(international + ' + VAT') }}
{% endcall %}
{% endfor %}
{% endcall %}
</div>
<div class="panel panel-border-wide">
<p class="govuk-body">These prices were updated on 1 October 2019.</p>
<p class="govuk-body">These prices were updated on 7 September 2020.</p>
</div>
<p class="govuk-body">Prices include:</p>
<ul class="list list-bullet">
<li>paper</li>
<li>double-sided colour printing</li>
<li>C5 size envelopes with an address window</li>
<li>first or second class postage</li>
</ul>
{% endblock %}

View File

@@ -25,7 +25,7 @@ Provider - {{provider.display_name}}
</ul>
{% call form_wrapper() %}
{{ textbox(form.priority) }}
{{ form.priority }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -17,13 +17,28 @@ Create an account
<span class="nowrap">{{invited_user.email_address}}</span>
</p>
{% call form_wrapper() %}
{{ textbox(form.name, width='3-4') }}
{#
This field is to enable password managers to capture the username as
well as the password, but should not be visible to users, nor should
the view process the input.
#}
<div class="govuk-visually-hidden">
<input type="email" name="username" id="username" value="{{ invited_user.email_address }}" disabled="disabled" tabindex="-1" aria-hidden="true" autocomplete="username" />
</div>
{{ form.name(param_extensions={"classes": "govuk-!-width-three-quarters"}) }}
{% if invited_user.auth_type == 'sms_auth' %}
<div class="extra-tracking">
{{ textbox(form.mobile_number, width='3-4', hint='Well send you a security code by text message') }}
{{ form.mobile_number(param_extensions={
"classes": "govuk-!-width-three-quarters",
"hint": {"text": "Well send you a security code by text message"}
}) }}
</div>
{% endif %}
{{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }}
{{ form.password(param_extensions={
"classes": "govuk-!-width-three-quarters",
"hint": {"text": "At least 8 characters"},
"autocomplete": "new-password"
}) }}
{{ page_footer("Continue") }}
{{form.service}}
{{form.email_address}}

View File

@@ -14,11 +14,18 @@ Create an account
<h1 class="heading-large">Create an account</h1>
<p class="govuk-body">Your account will be created with this email: {{invited_org_user.email_address}}</p>
{% call form_wrapper() %}
{{ textbox(form.name, width='3-4') }}
{{ form.name(param_extensions={"classes": "govuk-!-width-three-quarters"}) }}
<div class="extra-tracking">
{{ textbox(form.mobile_number, width='3-4', hint='Well send you a security code by text message') }}
{{ form.mobile_number(param_extensions={
"classes": "govuk-!-width-three-quarters",
"hint": {"text": "Well send you a security code by text message"}
}) }}
</div>
{{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }}
{{ form.password(param_extensions={
"classes": "govuk-!-width-three-quarters",
"hint": {"text": "At least 8 characters"},
"autocomplete": "new-password"
}) }}
{{ page_footer("Continue") }}
{{form.organisation}}
{{form.email_address}}

View File

@@ -13,13 +13,23 @@ Create an account
<div class="govuk-grid-column-two-thirds">
<h1 class="heading-large">Create an account</h1>
{% call form_wrapper(autocomplete=True) %}
{{ textbox(form.name, width='3-4') }}
{{ textbox(form.email_address, hint="Must be from a public sector organisation", width='3-4', safe_error_message=True, autocomplete='email') }}
{{ form.name(param_extensions={"classes": "govuk-!-width-three-quarters"}) }}
{{ form.email_address(
param_extensions={
"hint": {"text": "Must be from a public sector organisation"},
"classes": "govuk-!-width-three-quarters",
"autocomplete": "email"
},
error_message_with_html=True
) }}
<div class="extra-tracking">
{{ textbox(form.mobile_number, width='3-4', hint='Well send you a security code by text message') }}
{{ form.mobile_number(param_extensions={
"hint": {"text": "Well send you a security code by text message"},
"classes": "govuk-!-width-three-quarters"
}) }}
</div>
<input class="govuk-visually-hidden" aria-hidden="true" tabindex="-1" id="defeat-chrome-autocomplete">
{{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }}
{{ form.password(param_extensions={"hint": {"text": "At least 8 characters"}, "classes": "govuk-!-width-three-quarters", "autocomplete": "new-password"}) }}
{{form.auth_type}}
{{ page_footer("Continue") }}
{% endcall %}

View File

@@ -2,7 +2,6 @@
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/message-count-label.html" import recipient_count_label %}
{% from "components/textbox.html" import textbox %}
{% from "components/form.html" import form_wrapper %}
{% block service_page_title %}
@@ -23,10 +22,7 @@
) %}
<div class="govuk-grid-row">
<div class="govuk-grid-column-full {% if form.placeholder_value.label.text == 'phone number' %}extra-tracking{% endif %}">
{{ textbox(
form.placeholder_value,
width='1-1',
) }}
{{ form.placeholder_value(param_extensions={"classes": "govuk-!-width-full"}) }}
</div>
{% if skip_link or link_to_upload %}
<div class="govuk-grid-column-full">

View File

@@ -25,7 +25,8 @@
{{ edit_field(
'Change',
url_for('.service_name_change', service_id=current_service.id),
permissions=['manage_service']
permissions=['manage_service'],
suffix='service name',
)
}}
{% endcall %}
@@ -39,9 +40,9 @@
) }}
{{ edit_field(
'Change',
url_for('.service_set_auth_type',
service_id=current_service.id),
permissions=['manage_service']
url_for('.service_set_auth_type', service_id=current_service.id),
permissions=['manage_service'],
suffix='sign-in method',
)
}}
{% endcall %}
@@ -66,7 +67,8 @@
channel='email',
service_id=current_service.id
),
permissions=['manage_service']
permissions=['manage_service'],
suffix='your settings for sending emails',
)}}
{% endcall %}
@@ -82,9 +84,9 @@
{% endcall %}
{{ edit_field(
'Manage',
url_for('.service_email_reply_to',
service_id=current_service.id),
permissions=['manage_service','manage_api_keys']
url_for('.service_email_reply_to', service_id=current_service.id),
permissions=['manage_service','manage_api_keys'],
suffix='reply-to email addresses',
)
}}
{% endcall %}
@@ -96,6 +98,7 @@
'Change',
url_for('.branding_request', service_id=current_service.id, branding_type="email"),
permissions=['manage_service'],
suffix='email branding',
)}}
{% endcall %}
@@ -106,6 +109,7 @@
'Manage',
url_for('.send_files_by_email_contact_details', service_id=current_service.id),
permissions=['manage_service'],
suffix='sending files by email',
)}}
{% endcall %}
@@ -128,7 +132,8 @@
service_id=current_service.id,
channel='sms'
),
permissions=['manage_service']
permissions=['manage_service'],
suffix='your settings for sending text messages',
)}}
{% endcall %}
@@ -144,9 +149,9 @@
{% endcall %}
{{ edit_field(
'Manage',
url_for('.service_sms_senders',
service_id=current_service.id),
permissions=['manage_service','manage_api_keys']
url_for('.service_sms_senders', service_id=current_service.id),
permissions=['manage_service','manage_api_keys'],
suffix='text message senders',
)
}}
{% endcall %}
@@ -156,9 +161,9 @@
{{ boolean_field(current_service.prefix_sms) }}
{{ edit_field(
'Change',
url_for('.service_set_sms_prefix',
service_id=current_service.id),
permissions=['manage_service']
url_for('.service_set_sms_prefix', service_id=current_service.id),
permissions=['manage_service'],
suffix='your settings for starting text messages with service name',
)
}}
{% endcall %}
@@ -168,9 +173,9 @@
{{ 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']
url_for('.service_set_international_sms', service_id=current_service.id),
permissions=['manage_service'],
suffix='your settings for sending international text messages',
)
}}
{% endcall %}
@@ -180,9 +185,9 @@
{{ 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']
url_for('.service_set_inbound_sms', service_id=current_service.id),
permissions=['manage_service'],
suffix='your settings for receiving text messages',
)
}}
{% endcall %}
@@ -206,7 +211,8 @@
channel='letter',
service_id=current_service.id
),
permissions=['manage_service']
permissions=['manage_service'],
suffix='your settings for sending letters',
)}}
{% endcall %}
@@ -238,9 +244,9 @@
{% endcall %}
{{ edit_field(
'Manage',
url_for('.service_letter_contact_details',
service_id=current_service.id),
permissions=['manage_service','manage_api_keys']
url_for('.service_letter_contact_details', service_id=current_service.id),
permissions=['manage_service','manage_api_keys'],
suffix='sender addresses',
)
}}
{% endcall %}
@@ -251,7 +257,8 @@
{{ edit_field(
'Change',
url_for('.branding_request', service_id=current_service.id, branding_type="letter"),
permissions=['manage_service']
permissions=['manage_service'],
suffix='letter branding',
)}}
{% endcall %}
@@ -318,14 +325,14 @@
{{ text_field('') }}
{% else %}
{{ boolean_field(not current_service.trial_mode) }}
{{ edit_field('Change', url_for('.service_switch_live', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.service_switch_live', service_id=current_service.id), suffix='service status') }}
{% endif %}
{% endcall %}
{% call row() %}
{{ text_field('Count in list of live services')}}
{{ text_field('Yes' if current_service.count_as_live else 'No') }}
{{ edit_field('Change', url_for('.service_switch_count_as_live', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.service_switch_count_as_live', service_id=current_service.id), suffix='if service is counted in list of live services') }}
{% endcall %}
{% call row() %}
@@ -344,30 +351,30 @@
</div>
{% endif %}
{% endcall %}
{{ edit_field('Change', url_for('.link_service_to_organisation', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.link_service_to_organisation', service_id=current_service.id), suffix='organisation for service') }}
{% endcall %}
{% call row() %}
{{ text_field('Free text message allowance')}}
{{ text_field('{:,}'.format(current_service.free_sms_fragment_limit)) }}
{{ edit_field('Change', url_for('.set_free_sms_allowance', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.set_free_sms_allowance', service_id=current_service.id), suffix='free text message allowance') }}
{% endcall %}
{% call row() %}
{{ text_field('Email branding' )}}
{{ text_field(current_service.email_branding_name) }}
{{ edit_field('Change', url_for('.service_set_email_branding', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.service_set_email_branding', service_id=current_service.id), suffix='email branding (admin view)') }}
{% endcall %}
{% call row() %}
{{ text_field('Letter branding')}}
{{ optional_text_field(current_service.letter_branding.name) }}
{{ edit_field('Change', url_for('.service_set_letter_branding', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.service_set_letter_branding', service_id=current_service.id), suffix='letter branding (admin view)') }}
{% endcall %}
{% call row() %}
{{ text_field('Data retention')}}
{% call field() %}
{{ current_service.data_retention | join(', ', attribute='notification_type') }}
{% endcall %}
{{ edit_field('Change', url_for('.data_retention', service_id=current_service.id)) }}
{{ edit_field('Change', url_for('.data_retention', service_id=current_service.id), suffix='data retention') }}
{% endcall %}
{% for permission in service_permissions %}
@@ -375,7 +382,15 @@
{% call row() %}
{{ text_field(service_permissions[permission].title)}}
{{ boolean_field(current_service.has_permission(permission)) }}
{{ edit_field('Change', url_for(service_permissions[permission].endpoint or '.service_set_permission', service_id=current_service.id, permission=permission if not service_permissions[permission].endpoint else None)) }}
{{ edit_field(
'Change',
url_for(
service_permissions[permission].endpoint or '.service_set_permission',
service_id=current_service.id,
permission=permission if not service_permissions[permission].endpoint else None
),
suffix='your settings for ' + service_permissions[permission].title,
) }}
{% endcall %}
{% endif %}
{% endfor %}

View File

@@ -19,7 +19,7 @@
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper() %}
{{ textbox(form.password, autocomplete='current-password') }}
{{ form.password(param_extensions={"autocomplete": "current-password"}) }}
{{ page_footer(
'Confirm',
destructive=destructive

View File

@@ -18,7 +18,7 @@
{% call form_wrapper() %}
{{ radios(form.notification_type) }}
{{ textbox(form.days_of_retention) }}
{{ form.days_of_retention }}
{{ page_footer('Add') }}
{% endcall %}

View File

@@ -17,7 +17,7 @@
) }}
{% call form_wrapper() %}
{{ notification_type | capitalize}}
{{ textbox(form.days_of_retention) }}
{{ form.days_of_retention }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -1,5 +1,4 @@
{% from "components/banner.html" import banner, banner_wrapper %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% from "components/button/macro.njk" import govukButton %}
@@ -47,11 +46,12 @@
{% call form_wrapper(
action = form_url
) %}
{{ textbox(
form.email_address,
width='1-1',
safe_error_message=True,
hint='This should be a shared inbox managed by your team, not your own email address'
{{ form.email_address(
param_extensions={
"hint": {"text": "This should be a shared inbox managed by your team, not your own email address"},
"classes": "govuk-!-width-full"
},
error_message_with_html=True
) }}
{% if not first_email_address and not existing_is_default %}
{{ form.is_default }}

View File

@@ -1,5 +1,4 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -16,11 +15,12 @@
) }}
{% call form_wrapper() %}
{{ textbox(
form.email_address,
width='1-1',
hint='This should be a shared inbox managed by your team, not your own email address',
safe_error_message=True
{{ form.email_address(
param_extensions={
"hint": {"text": "This should be a shared inbox managed by your team, not your own email address"},
"classes": "govuk-!-width-full"
},
error_message_with_html=True
) }}
{% if not first_email_address %}
{{ form.is_default }}

View File

@@ -16,11 +16,12 @@
back_link=url_for('main.service_email_reply_to', service_id=current_service.id)
) }}
{% call form_wrapper() %}
{{ textbox(
form.email_address,
width='1-1',
safe_error_message=True,
hint='This should be a shared inbox managed by your team, not your own email address.'
{{ form.email_address(
param_extensions={
"hint": {"text": "This should be a shared inbox managed by your team, not your own email address"},
"classes": "govuk-!-width-full"
},
error_message_with_html=True
) }}
{% if form.is_default.data %}
<p class="form-group">

View File

@@ -23,18 +23,18 @@
{% endif %}
{% for item in current_service.email_reply_to_addresses %}
<div class="user-list-item">
<h3>
<h2 class="user-list-item-heading">
<span class="heading-small">{{ item.email_address }}</span>&ensp;<span class="hint">
{%- if item.is_default -%}
(default)
{% endif %}
</span>
</h3>
</h2>
{% if current_user.has_permissions('manage_service') %}
<a class="govuk-link govuk-link--no-visited-state user-list-edit-link" href="{{ url_for('.service_edit_email_reply_to', service_id =current_service.id, reply_to_email_id = item.id) }}">Change</a>
{% endif %}
{% if current_service.count_email_reply_to_addresses > 1 %}
{{ api_key(item.id, thing="ID") }}
{{ api_key(item.id, name=item.email_address, thing="ID") }}
{% endif %}
</div>
{% endfor %}

View File

@@ -27,9 +27,18 @@
{% endif %}
{% call form_wrapper() %}
<div class="form-group">
{{ textbox(form.volume_email, width='1-2', hint='For example, 50,000') }}
{{ textbox(form.volume_sms, width='1-2', hint='For example, 50,000') }}
{{ textbox(form.volume_letter, width='1-2', hint='For example, 50,000') }}
{{ form.volume_email(param_extensions={
"classes": "govuk-!-width-one-half",
"hint": {"text": "For example, 50,000"},
}) }}
{{ form.volume_sms(param_extensions={
"classes": "govuk-!-width-one-half",
"hint": {"text": "For example, 50,000"},
}) }}
{{ form.volume_letter(param_extensions={
"classes": "govuk-!-width-one-half",
"hint": {"text": "For example, 50,000"},
}) }}
</div>
{{ radios(form.consent_to_research, hint='You do not have to take part and you can unsubscribe at any time') }}
{{ page_footer('Continue') }}

View File

@@ -43,7 +43,8 @@
<a class="govuk-link govuk-link--no-visited-state user-list-edit-link" href="{{ url_for('.service_edit_letter_contact', service_id =current_service.id, letter_contact_id = item.id) }}">Change</a>
{% endif %}
{% if letter_contact_details|length > 1 %}
{{ api_key(item.id, thing="ID") }}
{% set first_line_of_contact_block = item.contact_block|normalise_lines|first %}
{{ api_key(item.id, name=first_line_of_contact_block, thing="ID") }}
{% endif %}
</div>
{% endfor %}

View File

@@ -1,6 +1,5 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -38,7 +37,7 @@
</div>
{% call form_wrapper() %}
{{ textbox(form.name) }}
{{ form.name }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -1,6 +1,5 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -29,7 +28,7 @@
</div>
{% call form_wrapper() %}
{{ textbox(form.name) }}
{{ form.name }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -1,5 +1,4 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/radios.html" import radio %}
@@ -35,7 +34,7 @@
{{ radio(option, data_target=data_target) }}
<div class="panel panel-border-narrow js-hidden" id={{data_target}}>
{{ textbox(form|attr(option.data), label=' ', width='1-1') }}
{{ form|attr(option.data)(param_extensions={"classes": "govuk-!-width-full", "label": {"text": " "}}) }}
</div>
{% endfor %}
{% endcall %}

View File

@@ -15,7 +15,7 @@
'Free text message allowance',
back_link=url_for('.service_settings', service_id=current_service.id)
) }}
{{ textbox(form.free_sms_allowance) }}
{{ form.free_sms_allowance }}
{{ page_footer('Save') }}
{% endcall %}

View File

@@ -17,7 +17,7 @@
back_link=url_for('main.service_settings', service_id=current_service.id)
) }}
<p class="govuk-body">
It costs between 35p and 81p to send a letter using Notify.
It costs between 35p and £1.16 to send a letter using Notify.
</p>
<p class="govuk-body">
See <a class="govuk-link govuk-link--no-visited-state" href="{{ url_for(".pricing", _anchor="letters") }}">pricing</a> for the list

View File

@@ -1,42 +0,0 @@
{% extends "withnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block service_page_title %}
Reply-to email address
{% endblock %}
{% block maincolumn_content %}
{{ page_header(
'Reply-to email address',
back_link=url_for('.service_settings', service_id=current_service.id)
) }}
<p class="govuk-body">
Your emails will be sent from
{{ current_service.email_from }}@notifications.service.gov.uk.
This is so they have the best chance of being delivered.
This email address cannot receive replies.
</p>
<p class="govuk-body">
Set up a separate email address to receive replies from
your users, then enter it here.
</p>
{% if current_service.trial_mode %}
<p class="govuk-body">
Your service cannot go live until youve done this.
</p>
{% endif %}
{% call form () %}
{{ textbox(
form.email_address,
width='2-3',
safe_error_message=True
) }}
{{ page_footer('Save') }}
{% endcall %}
{% endblock %}

View File

@@ -16,11 +16,10 @@
) }}
{% call form_wrapper() %}
{{ textbox(
form.sms_sender,
width='1-4',
hint='Up to 11 characters, letters, numbers and spaces only'
) }}
{{ form.sms_sender(param_extensions={
"classes": "govuk-!-width-one-quarter",
"hint": {"text": "Up to 11 characters, letters, numbers and spaces only"}
}) }}
{% if not first_sms_sender %}
{{ form.is_default }}
{% endif %}

View File

@@ -22,11 +22,10 @@
<span class="hint"> This phone number receives replies and cannot be changed </span>
</p>
{% else %}
{{ textbox(
form.sms_sender,
width='1-4',
hint='Up to 11 characters, letters, numbers and spaces only'
) }}
{{ form.sms_sender(param_extensions={
"classes": "govuk-!-width-one-quarter",
"hint": {"text": "Up to 11 characters, letters, numbers and spaces only"}
}) }}
{% endif %}
{% if form.is_default.data %}
<p class="form-group">

View File

@@ -23,7 +23,7 @@
{% endif %}
{% for item in current_service.sms_senders_with_hints %}
<div class="user-list-item">
<h3>
<h2 class="user-list-item-heading">
<span class="heading-small">{{ item.sms_sender }}</span>
{% if item.hint %}
&ensp;
@@ -31,12 +31,12 @@
{{ item.hint }}
</span>
{% endif %}
</h3>
</h2>
{% if current_user.has_permissions('manage_service') %}
<a class="govuk-link govuk-link--no-visited-state user-list-edit-link" href="{{ url_for('.service_edit_sms_sender', service_id=current_service.id, sms_sender_id = item.id) }}">Change</a>
{% endif %}
{% if current_service.count_sms_senders > 1 %}
{{ api_key(item.id, thing="ID") }}
{{ api_key(item.id, name=item.sms_sender, thing="ID") }}
{% endif %}
</div>
{% endfor %}

View File

@@ -1,5 +1,4 @@
{% extends "withoutnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -32,8 +31,8 @@
{% endif %}
{% call form_wrapper(autocomplete=True) %}
{{ textbox(form.email_address, autocomplete='email') }}
{{ textbox(form.password, autocomplete='current-password') }}
{{ form.email_address(param_extensions={"autocomplete": "email"}) }}
{{ form.password(param_extensions={"autocomplete": "current-password"}) }}
{{ page_footer("Continue", secondary_link=url_for('.forgot_password'), secondary_link_text="Forgotten your password?") }}
{% endcall %}
</div>

View File

@@ -27,8 +27,8 @@
{% call form_wrapper() %}
{{ textbox(form.feedback, width='1-1', hint='', rows=10, autosize=True) }}
{% if not current_user.is_authenticated %}
{{ textbox(form.name, width='1-1') }}
{{ textbox(form.email_address, width='1-1') }}
{{ form.name(param_extensions={"classes": "govuk-!-width-full"}) }}
{{ form.email_address(param_extensions={"classes": "govuk-!-width-full"}) }}
{% else %}
<p class="govuk-body">Well reply to {{ current_user.email_address }}</p>
{% endif %}

View File

@@ -10,13 +10,13 @@
{{ radios_nested(templates_and_folders_form.move_to, move_to_children, option_hints=option_hints) }}
</div>
<div class="js-will-stick-at-bottom-when-scrolling">
{{ page_footer('Move', button_name='operation', button_value='move-to-existing-folder') }}
{{ page_footer('Move', button_name='operation', button_value='move-to-existing-folder', button_text_hidden_suffix=' selection to folder') }}
</div>
</div>
<div id="move_to_new_folder_form">
<fieldset class="js-will-stick-at-bottom-when-scrolling">
<legend class="govuk-visually-hidden">Add to new folder</legend>
{{ textbox(templates_and_folders_form.move_to_new_folder_name, width='1-1') }}
{{ templates_and_folders_form.move_to_new_folder_name(param_extensions={"classes": "govuk-!-width-full"}) }}
{{ page_footer('Add to new folder', button_name='operation', button_value='move-to-new-folder') }}
</fieldset>
</div>
@@ -24,11 +24,11 @@
<div id="add_new_folder_form">
<fieldset class="js-will-stick-at-bottom-when-scrolling">
<legend class="govuk-visually-hidden">Add new folder</legend>
{{ textbox(templates_and_folders_form.add_new_folder_name, width='1-1') }}
{{ templates_and_folders_form.add_new_folder_name(param_extensions={"classes": "govuk-!-width-full"}) }}
{{ page_footer('Add new folder', button_name='operation', button_value='add-new-folder') }}
</fieldset>
</div>
<div id="add_new_template_form">
<div id="add_new_template_form" {% if single_notification_channel %}data-channel="{{single_notification_channel}}" data-service="{{current_service.id}}"{% endif %}>
<div class="js-will-stick-at-bottom-when-scrolling">
{{ radios(templates_and_folders_form.add_template_by_template_type) }}
</div>

View File

@@ -24,7 +24,7 @@
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) and not letter_too_long %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".set_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Send
Send<span class="govuk-visually-hidden"> a message using this template</span>
</a>
</div>
{% endif %}
@@ -39,7 +39,7 @@
{% if current_user.has_permissions('manage_templates') %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".edit_service_template", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Edit
Edit<span class="govuk-visually-hidden"> this template</span>
</a>
</div>
{% endif %}
@@ -47,7 +47,7 @@
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) %}
<div class="govuk-grid-column-one-half">
<a href="{{ url_for(".set_sender", service_id=current_service.id, template_id=template.id) }}" class="govuk-link govuk-link--no-visited-state pill-separate-item">
Send
Send<span class="govuk-visually-hidden"> a message using this template</span>
</a>
</div>
{% endif %}

View File

@@ -35,7 +35,7 @@
{% else %}
{{ live_search(target_selector='#template-list .govuk-grid-column-full', show=True, form=search_form) }}
{{ live_search(target_selector='#template-list .template-list-item', show=True, form=search_form) }}
<nav id="template-list">
{% for item in templates_and_folders %}

View File

@@ -23,7 +23,9 @@
</div>
{% call form_wrapper(action=url_for('main.manage_template_folder', service_id=current_service.id, template_folder_id=template_folder_id)) %}
{{ textbox(form.name, width='1-1') }}
{{ form.name(param_extensions={
"classes": "govuk-!-width-full"
}) }}
{% if current_user.has_permissions("manage_service") and form.users_with_permission.all_service_users %}
{{ form.users_with_permission }}
{% endif %}

View File

@@ -16,7 +16,7 @@ Check your mobile number
<p class="govuk-body">Check your mobile phone number is correct and then resend the security code.</p>
{% call form_wrapper() %}
{{ textbox(form.mobile_number) }}
{{ form.mobile_number }}
{{ page_footer("Resend security code") }}
{% endcall %}
</div>

View File

@@ -16,11 +16,10 @@
<p class="govuk-body">Weve sent you a text message with a security code.</p>
{% call form_wrapper(class="extra-tracking") %}
{{ textbox(
form.sms_code,
width='5em',
autofocus=True
) }}
{{ form.sms_code(param_extensions={
"classes": "govuk-input govuk-input--width-5",
"attributes": {"data-module": "autofocus"}
}) }}
{{ page_footer(
"Continue",
secondary_link=url_for('main.check_and_resend_text_code'),

View File

@@ -6,13 +6,6 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/message-count-label.html" import message_count_label, recipient_count_label %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
Error
{% endblock %}
@@ -48,9 +41,6 @@
</p>
{% endif %}
{{ skip_to_file_contents() }}
{% endcall %}
</div>
@@ -66,7 +56,7 @@
<a href="#content" class="govuk-link govuk-link--no-visited-state back-to-top-link">Back to top</a>
</div>
<h2 class="heading-medium" id="{{ file_contents_header_id }}">{{ original_file_name }}</h2>
<h2 class="heading-medium" id="file-preview">{{ original_file_name }}</h2>
{% call(item, row_number) list_table(
recipients.displayed_rows,

View File

@@ -6,13 +6,6 @@
{% from "components/message-count-label.html" import message_count_label, recipient_count_label %}
{% from "components/button/macro.njk" import govukButton %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
{{ original_file_name }}
{% endblock %}

View File

@@ -6,12 +6,6 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/message-count-label.html" import message_count_label %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
Error
@@ -43,7 +37,6 @@
{% endfor %}
</ul>
{% endif %}
{{ skip_to_file_contents() }}
{% endcall %}
</div>

View File

@@ -6,12 +6,6 @@
{% from "components/back-link/macro.njk" import govukBackLink %}
{% from "components/message-count-label.html" import message_count_label %}
{% set file_contents_header_id = 'file-preview' %}
{% macro skip_to_file_contents() %}
<p class="govuk-visually-hidden">
<a class="govuk-link govuk-link--no-visited-state" href="#{{ file_contents_header_id }}">Skip to file contents</a>
</p>
{% endmacro %}
{% block service_page_title %}
Error
@@ -56,9 +50,6 @@
</p>
{% endif %}
{{ skip_to_file_contents() }}
{% endcall %}
</div>
@@ -76,7 +67,7 @@
{% set column_headers = recipients._raw_column_headers if recipients.duplicate_recipient_column_headers else recipients.column_headers %}
<h2 class="heading-medium" id="{{ file_contents_header_id }}">{{ original_file_name }}</h2>
<h2 class="heading-medium" id="file-preview">{{ original_file_name }}</h2>
<div class="fullscreen-content" data-module="fullscreen-table">
{% call(item, row_number) list_table(

View File

@@ -19,7 +19,7 @@
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper(autocomplete=True) %}
{{ textbox(form.password, autocomplete='current-password') }}
{{ form.password(param_extensions={"autocomplete": "current-password"}) }}
{{ page_footer('Confirm') }}
{% endcall %}
</div>

View File

@@ -1,5 +1,4 @@
{% extends "withoutnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -18,8 +17,8 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper(autocomplete=True) %}
{{ textbox(form.old_password) }}
{{ textbox(form.new_password) }}
{{ form.old_password }}
{{ form.new_password }}
{{ page_footer('Save') }}
{% endcall %}
</div>

View File

@@ -1,5 +1,4 @@
{% extends "withoutnav_template.html" %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-header.html" import page_header %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
@@ -18,7 +17,7 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-three-quarters">
{% call form_wrapper() %}
{{ textbox(form_field, safe_error_message=True) }}
{{ form_field(error_message_with_html=True) }}
{{ page_footer('Save') }}
{% endcall %}
</div>

View File

@@ -21,11 +21,11 @@
Weve sent a security code to your new {{ thing }}.
</p>
{% call form_wrapper() %}
{{ textbox(
form_field,
width='5em',
autofocus=True
) }}
{{ form_field(param_extensions={
"classes": "govuk-input govuk-input--width-5",
"attributes": {"data-module": "autofocus"}
}) }}
{{ page_footer('Confirm') }}
{% endcall %}
</div>