Commit Graph

10992 Commits

Author SHA1 Message Date
Rebecca Law
01a3df6edc Update _delete_template_cache_for_service to delete all template version cache and not just the one ending in "None"
Update all methods that were previous calling @cache.delete('service-{service-id}-template-None') to instead call _delete_template_cache_for_service
Remove call to get service templates, it's not needed since all template version cache is being deleted.
2021-01-25 16:28:20 +00:00
Pea Tyczynska
e2ecff050d Merge pull request #3772 from alphagov/add-service-notes
Add service notes
2021-01-20 17:19:22 +00:00
Chris Hill-Scott
87a12b8e3b Merge pull request #3751 from alphagov/new-alert
Let users create an emergency alert without a template
2021-01-20 16:37:00 +00:00
Chris Hill-Scott
506e8cc773 Add extra space between back link and legend
Co-authored-by: Tom Byers <tombaromba@gmail.com>
2021-01-20 16:15:40 +00:00
Chris Hill-Scott
066aca4673 Use legend as H1
…seeing as the radios are the only control in the form.

Follows the pattern in
https://github.com/alphagov/notifications-admin/pull/3771/files
2021-01-20 15:43:58 +00:00
Chris Hill-Scott
8e7ff4c71f Merge two consecutive two-thirds columns 2021-01-20 15:32:51 +00:00
Tom Byers
2c3ab130f1 Merge pull request #3774 from alphagov/basic-accessibility-fixes-for-radio-select
Basic accessibility fixes for radio select
2021-01-20 15:17:21 +00:00
Tom Byers
ba6b4682c3 Add comments to JS and improve selector in test
After talking with the reviewer, it was decided
that:
1. the JS could do with some comments to explain
   its structure and what various functions do
   better
2. some CSS selectors in the tests don't need to
   be as complex and simplifying them makes the
   test easier to read
2021-01-20 11:23:01 +00:00
Chris Hill-Scott
db4d9f886c Display broadcasts without a template
At the moment the admin app expects all broadcasts to have a template,
and expects the content of the alert to come from the template.

This commit makes it so those pages can still get a `Template` instance,
but populated with content straight from the `content` field in the
database.
2021-01-20 11:18:13 +00:00
Pea Tyczynska
5eb6ac2311 Add test for textarea
Also remove redundant error handling - if unexpected error happens,
it will be handled at the app level.
2021-01-19 18:25:52 +00:00
Pea Tyczynska
5ec49fc976 Refactor form instantiation
Form can be pre-filled with existing data upon instantiation.
WTForms will know not to do this on POST request.

Co-authored-by: Chris Hill-Scott <me@quis.cc>
2021-01-19 18:24:56 +00:00
Tom Byers
9651da1292 Improve focus control of radioSelect
Makes focus shift to the first time in the range
when you select a day.

Also rewrites the code for controlling focus so it
explains itself better, now it has different
settings.
2021-01-19 14:14:37 +00:00
Tom Byers
e7291ffd51 Add expanded semantics to radioSelect buttons
All buttons that open or close a region of the
component should have aria-expanded attributes to
show:
- they have that control
- the state of the region
2021-01-19 14:14:37 +00:00
Chris Hill-Scott
74243a88fb Remove prompt from dashboard
It’s no longer true to say that you need a template to create an alert.
The grey button should be the primary call to action on this page
instead.
2021-01-18 17:09:01 +00:00
Chris Hill-Scott
8f2dc72881 Add the new alert button to previous alerts page
Feels like it should behave the same way as the current alerts page.
2021-01-18 17:09:01 +00:00
Chris Hill-Scott
99b7d8a66f Add flow for composing an alert without a template
We think that in some cases alerts will be composed in the moment, and
therefore making people first create a template is:
- not a good use of their time
- adding some conceptual complexity which they don’t need

This commit makes it possible to type some words and have them go
straight into the `content` field in the database.

In the future we might want to progressively enhance the radio buttons
so they show on the same page (like we do with the grey buttons on the
templates page).
2021-01-18 17:09:01 +00:00
Pea Tyczynska
341933478b Succesfully update service notes 2021-01-15 15:38:39 +00:00
Pea Tyczynska
6d7b16fd59 View edit service notes page 2021-01-15 13:36:12 +00:00
Pea Tyczynska
5818942908 'Change' link links to edit_service_notes 2021-01-14 18:00:44 +00:00
Tom Byers
81b576acad Merge pull request #3769 from alphagov/update-accessibility-statement-with-dac-testing
Update issue with moving templates/folders
2021-01-14 15:06:51 +00:00
Tom Byers
a6e4022ce7 Fix typo in status page issue
Co-authored-by: karlchillmaid <karl.chillmaid@digital.cabinet-office.gov.uk>
2021-01-14 14:03:57 +00:00
Tom Byers
900c2b9f8c Bump updated date to be today 2021-01-14 11:55:50 +00:00
Tom Byers
181b45c319 Update issue with moving templates/folders 2021-01-14 10:17:47 +00:00
Pea Tyczynska
89b3f6ace2 Display notes section in Service Settings 2021-01-13 18:48:20 +00:00
Chris Hill-Scott
248406938f Merge pull request #3766 from alphagov/remove-session-size-logging
Remove logging of session size
2021-01-13 13:40:48 +00:00
Chris Hill-Scott
2bdd86c044 Remove logging of session size
There’s no record of this warning in our logs at the moment.
2021-01-13 13:11:58 +00:00
Rebecca Law
9058edca90 Merge pull request #3767 from alphagov/clear-org-cache
Clear the organisation cache when a service's organisation is changed.
2021-01-13 09:22:23 +00:00
Rebecca Law
6639dc6061 Add a test that the redis delete cache is being called. 2021-01-12 15:39:51 +00:00
Rebecca Law
c36180741b Clear the organisation cache when a service's organisation is changed.
The /organisations page was showing the wrong live services count after a change is made to the service organisation.
2021-01-12 13:45:28 +00:00
karlchillmaid
56239999d8 Merge pull request #3765 from alphagov/update-support-introduction
Update support page content
2021-01-11 16:25:53 +00:00
karlchillmaid
0dd107b2b8 Update support page content 2021-01-11 13:05:00 +00:00
Chris Hill-Scott
4e99cc1448 Merge pull request #3753 from alphagov/use-pip-tools
Use pip-tools
2021-01-11 10:56:12 +00:00
Chris Hill-Scott
54d3d0421b Restore and add comments 2021-01-08 17:02:39 +00:00
Chris Hill-Scott
8b1e4afd3b Install pip tools as part of freeze-requirements
Makes the command faster and more self contained.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
1cfd1ca7b9 Delete requirements-app.txt
This is the file we used to use to specify direct dependencies. We use
`requirements.in` now instead.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
fdb659e2bd Run pip-compile command and commit output
This command freezes all our requirements into the `.txt` files.

We want these files version controlled so that our builds are exactly
reproducible from environment to environment.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
f97517c6b0 Tell PyUp to look at .in files
We only want PyUp to be checking for the dependencies we specify
directly, not any sub-dependencies.

By telling it to now look only at `.in` files we preserve this existing
behaviour.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
0f68d25265 Replace custom pip freeze script with pip-tools
In the past we've avoided using out-of-the-box solutions for Python
dependency resolution because a) they haven't been very mature and b)
we've had lots of issues with version conflicts. See [[1]], [[2]] for
details. Instead, we've been using a custom Python script that
under-the-hood runs `pip freeze` and saves the output to
`requirements.txt`.

This script works well for us, but it doesn't integrate well with other
tools. On the other hand [`pip-tools`](https://github.com/jazzband/pip-tools)
as of 2020 seems to be well-supported by its maintainers and other
tools; for instance, GitHub's automated update service
[Dependabot](https://dependabot.com) supports `requirements.in` files.

This commit replaces our `freeze-requirements` make command with
`pip-compile`.

The Digital Marketplace team have made this change and seem happy with
the results.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
6786b892fd Copy requirements files to .in
We’re going to move to using pip-tools for freezing requirements.

pip-tools uses `.in` files for the un-frozen list of requirements, and
then generates `.txt` equivalents.

This commit just copies our existing `.txt` files, keeping the same name
but giving them a `.in` extension ready for pip-tools to use.
2021-01-08 17:02:39 +00:00
Chris Hill-Scott
287689c1b3 Merge pull request #3763 from alphagov/count-chars-sms-broadcast-templates
Add fragment or character counting when editing text message or broadcast templates
2021-01-08 16:38:03 +00:00
Chris Hill-Scott
43e57b7089 Handle textbox without existing aria-described-by
jQuery.attr returns `undefined` if an element does not have an
attribute. We want an empty string, rather than the default of coercing
`undefined` to the string `'undefined'`.
2021-01-08 16:05:55 +00:00
Chris Hill-Scott
638e505432 Stop content length message from making page jumpy
The content length message was making the page jumpy and causing reflows
in three ways. This commit addresses each of those ways:

As the user scrolled
---

The footer went from fixed to sticky and the spacing around the message
changed. This change in spacing was needed so that the message looked
right in both contexts.

I think the best way to resolve this is to not use the sticky footer
when editing text message or broadcast templates.

On my 1440×900 screen I can fit a 5 fragment text message, plus the
‘will be charged as 5 text messages’ message, plus the save button.

Our top 10 screen resolutions according to our analytics are:

Position | Resolution | Percentage of users
---------|------------|--------------------
 1       | 1920x1080  | 27.37%
 2       | 1280×720   | 11.07%
 3       | 1366×768   |  8.88%
 4       | 1536×864   |  5.79%
 5       | 1440×900   |  4.52%
 6       | 1600×900   |  3.71%
 7       | 1280×1024  |  3.10%
 8       | 1680×1050  |  2.42%
 9       | 1920×1200  |  2.33%
10       | 2560×1440  | 1.99%

When the page first loaded
---

The message is empty so takes up no space, then the javascript fires
and inserts the message, taking up a line of space.

This is resolved by making the empty message take up space with a
non-breaking space character.

When the user first typed
---

We previously didn’t show any message until the user started typing.
This meant that, with the above fix, there was a larger than normal
empty space between the textarea and the save button.

This is resolved by always showing the message, even when the user
hasn’t typed anything yet.

***

These are design decisions which made sense when the message was
displayed along side the button, but we’ve had to change now that the
message is above the button.
2021-01-08 15:39:21 +00:00
Chris Hill-Scott
c127de4268 Move message length information before the button
We feel that this is more appropriate because it’s part of the
information you’re agreeing to before you hit submit.

Sometimes users can missing information that doesn’t start left-aligned
to the column they’re interacting with.

It also makes it closer to the Design System component.

We’re keeping it in the sticky footer, so that it’s always visible no
matter where in the message you’re scrolled to (this means you won’t
have to edited to content then scroll down to check whether you’ve
made it fit).
2021-01-08 14:55:52 +00:00
Chris Hill-Scott
6f514ef019 Describe example textbox by hint not label
The `<textarea>` should have its existing `aria-describedby` point to a
hint. Pointing to the label is bad practice as it would duplicate the
accessible name into the accessible description. It’s good not to have
that in the tests in case anyone copies the code elsewhere.
2021-01-08 12:53:06 +00:00
Chris Hill-Scott
55c0e566a2 Use <div> for block level content 2021-01-08 12:49:05 +00:00
Chris Hill-Scott
dd30c9f970 Style template length message to sit inline
This looks tidy, and because of the sticky footer it means the message
is always visible, even if your template is quite long. So no matter
where you’re scrolled to in the template you don’t have to scroll to the
bottom to see the count update.
2021-01-08 12:49:05 +00:00
Chris Hill-Scott
d452c0081d Add throttling to AJAX calls
The endpoint that count characters should be pretty low-load because it
won’t talk to the database (unless, on the first request, the user and
service aren’t cached in Redis).

The response size is also very small, only one line of text wrapped in a
single `<span>`, so won’t be as CPU-intensive to render as a whole page.

Still, we don’t want to completely hammer the server if a user types
very quickly.

This commit adds some throttling, so that we wait until there’s a
certain amount of delay between keystrokes before firing off the request
to the backend.

I’ve set the delay at 150ms. At normal typing speed this makes the lag
feel fairly imperceptible – it feels like you get an updated count in
response to most keystrokes. It’s only if you really mash the keyboard
that the count won’t update until you take a breath.
2021-01-08 12:49:05 +00:00
Chris Hill-Scott
64835cba86 Merge pull request #3475 from alphagov/request-invite
Allow invite form to be pre-populated with an existing user
2021-01-08 11:16:18 +00:00
Chris Hill-Scott
fbd58ef1f8 Add separate messages for invited/team member
2 messages seems like a good idea.
2021-01-08 10:56:59 +00:00
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