Use a macro for form tags

This will stop us repeatedly forgetting to add `novalidate` and
`autocomplete='off'` to our forms (which is how most of them are set
up).

It uses sensible defaults, based on how we most-commonly configure
forms:
- most of our forms are `post`ed (but this can be overridden)
- `autocomplete` should only be enabled where it makes sense, otherwise
  it’s more annoying than useful (but this can be overriden)
- we should never be using HTML5 form validation because our own error
  styles and messages are better
This commit is contained in:
Chris Hill-Scott
2018-09-19 12:39:36 +01:00
parent 5ab876aeab
commit d9da219b7e
72 changed files with 257 additions and 170 deletions

View File

@@ -1,6 +1,7 @@
{% 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 %}
{% block per_page_title %}
Ask a question or give feedback
@@ -13,7 +14,7 @@
</h1>
<div class="grid-row">
<div class="column-two-thirds">
<form method="post" autocomplete="off" novalidate>
{% call form_wrapper() %}
{{ textbox(form.feedback, width='1-1', hint='', rows=10) }}
{% if not current_user.is_authenticated %}
<h3 class="heading-medium">Do you want a reply?</h3>
@@ -28,7 +29,7 @@
secondary_link=url_for('.support'),
secondary_link_text='Back to support',
) }}
</form>
{% endcall %}
</div>
</div>

View File

@@ -1,6 +1,7 @@
{% extends "withoutnav_template.html" %}
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block per_page_title %}
Support
@@ -13,10 +14,11 @@
<h1 class="heading-large">Support</h1>
<form method="post" class="bottom-gutter-2">
{% call form_wrapper(class="bottom-gutter-2") %}
{{ radios(form.support_type) }}
{{ page_footer('Continue') }}
</form>
{% endcall %}
<p>If somethings wrong, you can <a href="https://status.notifications.service.gov.uk/"> check the GOV.UK Notify system status page</a> to see if were already aware of it.</p>
<h2 class="heading-medium">24-hour support</h2>

View File

@@ -2,6 +2,7 @@
{% from "components/checkbox.html" import checkbox %}
{% from "components/textbox.html" import textbox %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block per_page_title %}
Report a problem
@@ -20,7 +21,7 @@
page to see if there are any known issues with GOV.UK Notify.
</p>
</div>
<form method="post" autocomplete="off" novalidate>
{% call form_wrapper() %}
{{ textbox(form.feedback, width='1-1', hint='', rows=10) }}
{% if not current_user.is_authenticated %}
{{ textbox(form.name, width='1-1') }}
@@ -33,7 +34,7 @@
secondary_link=url_for('.support'),
secondary_link_text='Back to support',
) }}
</form>
{% endcall %}
</div>
</div>

View File

@@ -1,6 +1,7 @@
{% extends "withoutnav_template.html" %}
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block per_page_title %}
Feedback
@@ -13,10 +14,10 @@
<h1 class="heading-large">
Report a problem
</h1>
<form method="post">
{% call form_wrapper() %}
{{ radios(form.severe) }}
{{ page_footer('Continue') }}
</form>
{% endcall %}
<h2 class="heading-small">
Its only an emergency if:
</h2>