Commit Graph

4158 Commits

Author SHA1 Message Date
Chris Hill-Scott
c3b6c03411 Add ARIA attributes from Design System component
This commit copies the same ARIA attributes that are added to the
character count component[1] in the GOV.UK Design System.

This means that screen reader users will hear the count message when
they stop typing.

1. https://design-system.service.gov.uk/components/character-count/
2021-01-07 17:14:12 +00:00
Chris Hill-Scott
3fdaa29f35 Fetch template length message as user types
This commit adds some Javascript that makes AJAX requests as the users
changes the content of their template.

It then takes the content returned by the backend and inserts it in the
page.
2021-01-07 17:11:43 +00:00
Chris Hill-Scott
ca50d77ac2 Make sticky footer take up full width
So that we have space to display the message about how long the template
content is alongside the button, without the message wrapping.
2021-01-07 17:11:07 +00:00
Chris Hill-Scott
48577b823e Add an endpoint to count the length of templates
Users sending text messages are sometimes unaware that long messages
will cost more.

Users sending broadcast messages need to be aware that there’s a
character limit, so they can take this into account when planning their
messages.

This commit adds an endpoint which counts the number of characters in
some template content, and returns a snippet of useful info about how
long the message is.

In subsequent commits we’ll be able to use AJAX to fetch this snippet as
the user types.

There’s a surprising amount of complexity in counting the length of
messages. So we’ll need to do this in Python because it would be too
convoluted to re-implement the length counting in client side code, let
alone ensuring it had parity with its Python equivalent.
2021-01-07 17:07:51 +00:00
Chris Hill-Scott
ac44e6f2ef Remove message count macro file
It’s empty now, we can delete it.
2021-01-07 14:53:12 +00:00
Chris Hill-Scott
24b579418f Replace message count macros with formatters
We prefer formatters now. Removing uses of the aliasing macro lets
remove it entirely.
2021-01-07 14:53:12 +00:00
Chris Hill-Scott
0327ece7ad Replace iteration count macro with formatters
We prefer formatters now. Removing uses of the aliasing macro lets
remove it entirely.
2021-01-07 11:57:30 +00:00
Chris Hill-Scott
4615c0ea3d Replace recipient macros with formatters
We prefer formatters now. Removing uses of the aliasing macro lets
remove it entirely.
2021-01-07 11:57:30 +00:00
Chris Hill-Scott
462294c9d1 Make message and recipient counters formatters
As formatters we can use them in Jinja or Python code.

It also means we don’t need to import them every time we want to use
them – they’re always available in the template context.

For now this doesn’t remove the macros, it just aliases them to the
formatters. This gives us confidence that the formatters are working the
same way the old macros did, and reduces the diff size of each commit.
2021-01-07 11:57:30 +00:00
Tom Byers
77c1595826 Add label for hidden username field 2021-01-07 10:34:47 +00:00
Tom Byers
d6ffcd3abe Remove hack for bug in Chrome autocomplete
We added an extra, hidden, <input> to our /sign-in
and /register forms to stop Chrome's form
heuristics filling the fields in wrong.

See the commit that added it:

33b15cdec6

This removes it after testing with the following
Chrome/OS combinations and all working without the
hack:

- Chrome 87, Windows 7
- Chrome 86, Windows 7
- Chrome 86, Windows 10
- Chrome 85, Windows 7
- Chrome 80, Windows 10
- Chrome 81, Windows 7
- Chrome 52, Windows 7
- Chrome 68, Windows 7
- Chrome 78, Windows 8.1
- Chrome 86, Windows 8.1

These combinations were based on the most-used
versions recorded in our analytics for the last 3
months.
2021-01-05 17:08:50 +00:00
Tom Byers
72bf9679c6 Remove big_number import from _upcoming template
Think the only use of the macro in this page was
removed in:

https://github.com/alphagov/notifications-admin/pull/3316

...but the import wasn't. This removes it.
2021-01-05 11:44:35 +00:00
Tom Byers
ab8a68ccd1 Remove jobs/_scheduled.html template
From what I can determine, the last include for
this template was removed in:

https://github.com/alphagov/notifications-admin/pull/3338

This assumes that it should have been removed then
so removes it now.
2021-01-05 11:44:35 +00:00
Tom Byers
0237ce7725 Remove big_number import from _inbox partial
It was used for the spark bar but, I think, wasn't
removed when the call to big_number_with_status
was:

https://github.com/alphagov/notifications-admin/pull/3295
2021-01-05 11:44:35 +00:00
Tom Byers
fb442237a1 Remove big_number import from dashboard
It was added in:

https://github.com/alphagov/notifications-admin/pull/734

but neither macro is called so assuming it can be
removed.
2021-01-05 11:44:35 +00:00
Tom Byers
5205743871 Remove big_number import from uploaded-letters
Looks like the import was there when the template
was added but there are no calls to it so removing
it.
2021-01-05 11:44:35 +00:00
Tom Byers
24af978871 Remove big_number import from table component
Looks like this was added in:

4a226a7a29

...and used in the spark_bar_field macro. That
macro was removed in:

89b88ee4cb

..but the import was missed out.
2021-01-05 11:43:57 +00:00
Tom Byers
663df4a4f9 Remove <div>s from big_number text
An accessiblity audit done as part of Notify's
service assessment raised the following problem
with our big_number component.

When you turn CSS off, the sentence in the
component is split onto separate lines.

This was because the number part is wrapped in a
<div> which browsers were interpreting as being a
separate sentence to the label.

So "1 letter", where "letter" is the label, was
seen as:

"1"
"letter"

The accessibility expert consulted on this pointed
out that this would sound confusing for users of
screen readers when moving through the document
sentence by sentence.

These changes:
- make the <div>s into <span>s which are 'phrasing
  content' and so are interpreted as part of the
  same sentence
- change the CSS so the number will still sit
  on top of its label text

The HTML5 spec has a section on how browsers
should arrange text into paragraphs that explains
what was happening in more detail:

https://www.w3.org/TR/html52/dom.html#paragraphs
2021-01-05 11:39:18 +00:00
Chris Hill-Scott
8a751aa5df Merge pull request #3750 from alphagov/validate-broadcast-content-length
Validate length of broadcast content
2021-01-04 11:21:49 +00:00
karlchillmaid
6d8fdb669c Update contact list content (#3464)
* Make the naming of contact lists consistent

* Update content

* Update caption

* Update content

* Update content

* Update content

* Update tests

Co-authored-by: Chris Hill-Scott <me@quis.cc>
2020-12-31 14:03:54 +00:00
Chris Hill-Scott
ea124f2886 Tell browsers to preload fonts
When looking at Google’s PageSpeed Insights tool as part of the
compression work I noticed a suggestion that we preload our font files.
The tool suggests this should save about 300ms on first page load time.

***

Our font files are referenced from our CSS. This means that the browser
has to download and parse the CSS before it knows where to find the font
files. This means the requests happen in sequence.

We can make the requests happen in parallel by using a `<link>` tag with
`rel=preload`. This tells the browser to start downloading the fonts
before it’s even started downloading the CSS (the CSS will be the next
thing to start downloading, since it’s the next `<link>` element in the
head of the HTML).

Downloading fonts before things like images is important because once
the font is downloaded it causes the layout to repaint, and shift
everything around. So the page doesn’t feel stable until after the fonts
have loaded.

Google call this [cumulative layout shift](https://web.dev/cls/) which
is a score for how much the page moves around. A lower score means a
better experience (and, less importantly for us, means the page might
rank higher in search results)

We’re only preloading the WOFF2 fonts because only modern browsers
support preload, and these browsers also all support WOFF2.

We set an empty `crossorigin` attribute (which means anonymous-mode)
because the preload request needs to match the origin’s CORS mode. See
https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content#CORS-enabled_fetches
for more details.

We set `as=font` because this helps the browser use the correct content
security policy, and prioritise which requests to make first.
2020-12-29 16:31:11 +00:00
Chris Hill-Scott
810dc03628 Make broadcast template editor expand to fit
It’s fiddly having to scroll within a small textbox to see all the
content. Let’s make the box expand to fit the contents like we do
elsewhere. This was removed by accident when we stopped highlighting
placeholders in broadcast templates in
https://github.com/alphagov/notifications-admin/pull/3672/files
2020-12-29 11:29:57 +00:00
karlchillmaid
f588105aeb Use the singular for Royal Mail
We should use the singular verb form when referring to organisations by name. 

As described in the GOV.UK style guide: https://www.gov.uk/guidance/style-guide/a-to-z-of-gov-uk-style#organisations
2020-12-23 13:56:37 +00:00
karlchillmaid
c8f9ef29f0 Update content 2020-12-23 11:12:19 +00:00
karlchillmaid
4ee309fab6 Update rate increase content 2020-12-23 10:58:48 +00:00
karlchillmaid
661b9df643 Revert letter price 2020-12-23 10:30:57 +00:00
karlchillmaid
78135840d4 Update price increases 2020-12-23 10:30:17 +00:00
karlchillmaid
58eba5c148 Get ready to update product page
Price of a single letter will need to change
2020-12-22 15:43:53 +00:00
karlchillmaid
f11d18c885 Add warning that prices will increase
Add warning that prices will increase – we’re still waiting on confirmation of the price increase and the date.
2020-12-22 15:29:40 +00:00
Tom Byers
5a44cae266 Merge pull request #3734 from alphagov/give-cookie-banner-accessible-name
Give the cookie banner an accessible name
2020-12-22 11:29:53 +00:00
Tom Byers
e80b02d2c9 Merge pull request #3742 from alphagov/fix-for-file-input-in-safari
Fix for file input bug in safari
2020-12-17 14:24:25 +00:00
Tom Byers
55a4ca6579 Remove set-to-string conversion from upload code
Also changes the allowed_spreadsheet_file_extensions
variable to allowed_file_extensions for
consistency.
2020-12-17 13:04:27 +00:00
Tom Byers
ea3d61e6b9 Use format_list_items in file_upload component 2020-12-17 11:32:02 +00:00
Tom Byers
97bc2817bc Merge pull request #3731 from alphagov/add-govuk-radios-5
Add GOVUK radios [part 5]
2020-12-16 14:48:49 +00:00
Tom Byers
51cc2a5296 Set accepted files for branding upload 2020-12-16 14:48:10 +00:00
Tom Byers
1096d1f707 Set accepted files for contact list upload 2020-12-16 14:48:10 +00:00
Tom Byers
fb1ac8bc42 Set accepted files for letter upload 2020-12-16 14:48:10 +00:00
Tom Byers
b8f8d743d5 Set accepted files for job spreadsheet upload 2020-12-16 14:48:10 +00:00
Tom Byers
eaa1a67d76 Add allowed_file_extensions arg to file_upload
Safari has a bug where it stops input[type=file]
elements working if they don't specify the types
of file to accept (via the `accept` attribute).

It seems to just effect certain versions of Mojave
but completely blocks this action so worth fixing.

This adds a 'allowed_file_extensions' keyword
argument to the file_upload component to let you
specify a value to be passed to `accept`.

This was spotted on x-gov Slack:

https://ukgovernmentdigital.slack.com/archives/C06GCJW7R/p1607952390112800

...and StackOverflow:

https://stackoverflow.com/q/64843459/679924
2020-12-16 14:48:10 +00:00
Tom Byers
ea98681b24 Update liveSearch selector in set email|letter
Changes the selector the live search in the set
email and letter branding pages in service
settings and organisation settings. The current
one targeted the old radios HTML whereas this
version targets the same for the GOVUK Frontend
radios.
2020-12-15 12:08:09 +00:00
Tom Byers
4fc6bc10c7 Convert radios on set letter branding page 2020-12-11 13:58:40 +00:00
Tom Byers
22e6421799 Convert radios on email branding page 2020-12-11 13:58:40 +00:00
Tom Byers
8e3cddd66d Convert radios on set letter brand page 2020-12-11 13:58:40 +00:00
Tom Byers
e8a74b7ed1 Convert radios on set email branding page
Changes SetEmailBranding.branding_style to
GovukRadiosFieldWithNoneOption.
2020-12-11 13:58:40 +00:00
Katie Smith
373365b2b0 Add class to letter specification links
To make them show up as non-visited links.
2020-12-11 11:33:34 +00:00
Tom Byers
0cae383294 Merge pull request #3730 from alphagov/add-govuk-radios-4
Add GOVUK radios [part 4]
2020-12-11 11:31:58 +00:00
Chris Hill-Scott
f3bf8c88b0 Merge pull request #3726 from alphagov/uksv
Update link to reflect withdrawn guidance
2020-12-10 13:58:08 +00:00
Tom Byers
b1d0d216e0 Convert radios on add org page
Changes OrganisationCrownStatusForm.crown_status.

This also effects NewOrganisationForm, which
inherits from OrganisationCrownStatusForm.

Because of that this commit also updates the
template used for the edit org crown status page,
which uses NewOrganisationForm for its form.
2020-12-10 10:19:50 +00:00
Tom Byers
0cdbb850aa Convert radios in edit org type page (basic)
Changes the OrganisationTypeField class used by
OrganisationOrganisationTypeForm.organisation_type

OrganisationTypeField is also used by the forms in
/add-service:
- CreateServiceForm
- CreateNhsServiceForm

Because of that, this commit also includes changes
to the template for that route.

Note: this also moves where OrganisationTypeField
appears in app/main/forms.py so it can use
GovukRadiosField.
2020-12-10 10:19:49 +00:00
Tom Byers
58149ce34c Convert radios on SMS prefix page
Includes changing form.enabled to use
OnOffField, for consistency with other on/off
fields.

OnOffField's data is a boolean, not a string, so
some of the logic using it needed to be changed.
2020-12-09 15:03:43 +00:00