Commit Graph

3354 Commits

Author SHA1 Message Date
Chris Hill-Scott
8ea3f0141c Give estimates of the number of phones in a broadcast area
We need to give people a better feel for the consequences of
broadcasting an alert. We’ve seen in research that some users will
assume it is subscription based, or opt-in, rather than going to every
phone in the area.

I reckon that the most effective way to communicate this is to put some
numbers next to the areas, to give people an idea of how many people
will get alerted.

We can estimate how many phones are in an area by:
- taking the population of all electoral wards in that area
- multiplying it by the percentage of people who own an internet
  connected phone[1]

The Office for National Statistics publish both these datasets.

The number of people who own an intenet connected phone varies a lot by
age. Since the population data for each ward is broken down by age we
can factor this in. Simplified, the calculation looks like this:
- take the _Abbey_ ward of _Barking and Dagenham_
- in this ward there are 26 people aged 80
- 40% of people over 65 have an internet-connected phone
- therefore 10 of these 80-year-olds would be likely to receive a
  broadcast
- (repeat for all other ages)

These numbers won’t be exact, but should be enough to give people a feel
for the severity of what they’re about to do. We can see if they acheive
this aim in user research.

1. This is a proxy for the number of people who are likely to have a 4G
   capable phone, because only 4G capable phones will be receiving
   broadcasts to begin with
2020-09-14 16:26:09 +01:00
Tom Byers
9cba1e17e0 Merge pull request #3619 from alphagov/add-context-to-letter-template-links
Give links context on letter template page
2020-09-11 14:07:25 +01:00
David McDonald
5b5c240b05 Remove reference to special category data cant be sent
Supposedly this is old and is no longer accurate
2020-09-11 12:27:11 +01:00
Tom Byers
84b7227d4a Merge pull request #3605 from alphagov/prevent-user-name-email-being-cut-off
Prevent user name email being cut off
2020-09-10 15:10:58 +01:00
Chris Hill-Scott
f824b3a5eb Give specific error if international letters off
If a service doesn’t have permission to send international letters but
someone tries to upload a letter with a valid international address we
just tell them that the last line must be a UK postcode.

This is a bit opaque and:
- suggests that we’re not recognising at all that it’s not a UK letter
- doesn’t explain why it must be a UK postcode

This commit adds a new, error message which tells users why their letter
can’t be sent. And hopefully will give them a better idea of how to
resolve the problem, if they really do need to be able to send
international letters.
2020-09-10 11:25:17 +01:00
Tom Byers
c777b0eafb Give links context on letter template page 2020-09-09 21:27:58 +01:00
Chris Hill-Scott
5e579ed45c Merge pull request #3595 from alphagov/map-key
Add a key to the map
2020-09-09 16:03:27 +01:00
Leo Hemsted
256d2b2b60 add counties page
What was previously ward -> local authority is now a ward -> local
authority -> county. County only covers rural counties and not
metropolitan boroughs and other unitary authorities. Previously, there
was a page full of local authorities (unitary authorities and
districts), and each one of those would have a list of electoral wards.
However, now there are counties that contain a list of districts - so
this needs a new page - a checkbox for "select the county" and then a
list of links to district pages.

If you want to select multiple districts, you'll need to go into each
one of those sub-sections in turn and click select all.

Needed to tweak the query to retrieve the list of areas in a list for a
library. Previously, it just returned anything at top level (ie: didn't
have a parent). However, rural districts now have parents (the rural
counties themselves). So the query now returns "everything that isn't a
leaf node", or in more specific terms, everything that has at least
other row referring to it as a parent. So no electoral wards, since
they dont have any children, but yes to districts and counties.
2020-09-09 14:39:12 +01:00
Chris Hill-Scott
f553158846 Add estimated areas for non-visual users
Since the key relies on visual association between the shapes on the
maps and the styling of the key, it won’t work for non-visual users.
An alternative way of giving them the same information is by providing
the size of the area numerically.
2020-09-08 16:56:39 +01:00
Chris Hill-Scott
0369472a76 Add a key to the map
To help people understand that broadcasting is not a precise technology,
we have shown the estimate bleed area on the map.

Because people aren’t familiar with the technology a visual only clue is
not enough. So this commit adds a key to the map, which explains what
the different outlines mean.

It also removes the sticky footer from this page to:
- make the key visible on the page
- make people scroll and review the map before they get to the big green
  button
- not reduce the size of the map any further
2020-09-08 16:44:49 +01:00
Tom Byers
9e6daecba3 Merge pull request #3610 from alphagov/fix-pill-tab-problems
Fix pill tab problems
2020-09-08 14:51:12 +01:00
David McDonald
9664af387e Merge pull request #3608 from alphagov/more-maps
Add map of broadcast areas to view-broadcast page
2020-09-08 14:26:16 +01:00
Rebecca Law
7cae303104 Fix unit tests for changes to the pill component. 2020-09-08 10:12:23 +01:00
Chris Hill-Scott
3af8ed521d Merge pull request #3594 from alphagov/fix-live-search-sub-areas
Don’t filter ‘All of’ choice with live search
2020-09-07 12:57:58 +01:00
Rebecca Law
52954191fa Merge branch 'master' into international-letters-form 2020-09-07 09:45:17 +01:00
Rebecca Law
0f64d4d136 Merge pull request #3564 from alphagov/int-letters-content
Add international letter rates to pricing page
2020-09-07 08:13:43 +01:00
karlchillmaid
f775e18361 Add price update date
Added Monday's date, as that's when we plan to merge and deploy.
2020-09-04 14:28:23 +01:00
David McDonald
bf5ee37d6c Add margin to area list above map as looks cleaner 2020-09-04 10:27:19 +01:00
David McDonald
be563e73c6 Add map in details to broadcast view
Avoided using `closest` as not supported by IE8-11
https://caniuse.com/#search=closest

Used `parentElement` supported by IE9+
https://caniuse.com/#search=parentElement

Used `className` as supported by IE9+
https://caniuse.com/#search=className

Also rearranged the javascript for maps such that figuring out the
polygon array is done first and then the time when we need to have the
details component open before closing it again is kept to minimum
2020-09-04 10:20:54 +01:00
Tom Byers
c6711a113c Update h1 on pill pages to work with new pill
Pill pages are:
- /notifications
- /template-usage
- /monthly
- /organisations/<organisation_id>
- /templates

Includes changes to:
- the folder-path component
- the page-header component

...all their h1s have the same id.
2020-09-04 09:02:36 +01:00
David McDonald
32a794aacd Move styling into separate files for reuse 2020-09-03 10:50:58 +01:00
Tom Byers
0a93752af4 Fix organisation team members page
Includes removal of a redundant import.
2020-09-02 16:21:42 +01:00
Tom Byers
047a65a276 Fix SMS Senders page 2020-09-02 16:21:42 +01:00
Tom Byers
17f74cf621 Fix data retention page 2020-09-02 16:21:41 +01:00
Tom Byers
50c3475eb3 Fix email reply-to addresses page 2020-09-02 16:21:41 +01:00
Tom Byers
23afe6fe36 Fix letter contact details page 2020-09-02 16:21:41 +01:00
Tom Byers
be83ea36ea Change list items on /users page
Change the HTML & CSS for user-list-item's to
support their content being split into 2 columns
of a grid instead of the edit link being
positioned absolutely.

Also includes:
1. removes `<div>`s from `<ul>` (non-valid HTML)
2. split action link out from permissions list
3. split summary of folder permissions out from
   permissions list
4. introduces a class for blocks of text that
   appear when there are no items.
5. fixes tests broken by changes to HTML
2020-09-02 16:21:41 +01:00
Tom Byers
d9655f16f5 Add missing </span>
Missed out from this PR:

https://github.com/alphagov/notifications-admin/pull/3593
2020-09-02 15:53:49 +01:00
karlchillmaid
ae1dc14ff2 Update heading class and add ID 2020-09-01 18:36:33 +01:00
Tom Byers
676a9297fe Merge pull request #3593 from alphagov/fix-link-and-button-text-across-pages
Fix link and button text across pages
2020-09-01 15:11:09 +01:00
Tom Byers
d446a91a8e Merge pull request #3591 from alphagov/fix-copy-to-clipboard
Fix copy to clipboard
2020-08-28 10:58:36 +01:00
Chris Hill-Scott
344d8646a3 Merge pull request #3590 from alphagov/buffer-de-buffer
Make simplification of polygons more sophisticated
2020-08-28 10:15:49 +01:00
Chris Hill-Scott
459b7b6018 Reword title of screen 4 of broadcast tour
We want to emphasise the difference over the similarity.
2020-08-27 11:34:21 +01:00
karlchillmaid
8913eee803 Add 'you can' for clarity and readability 2020-08-26 21:52:55 +01:00
Chris Hill-Scott
dbfe293b4e Improve pacing and sequence of information in the broadcast tour
This commit refines which information we show on each page.

Specifically we’re
- adding some wording (‘at exactly the same time’) to try to communicate
  the immediacy
- giving the ‘loud noises’ message it’s own screen to really draw
  attention to it
- moving the ‘no phone numbers bit’ later in the journey, and
  experimenting with explaining why that is, to make it clearer how it’s
  different to a text message
2020-08-26 16:42:52 +01:00
Chris Hill-Scott
2ede3ef8f0 Don’t filter ‘All of’ choice with live search
Because the ‘All of’ choice appears above the search field, it shouldn’t
be filtered by the search field.

We can fix this by wrapping the sub-areas in a `<div>` and make the
selector more specific.
2020-08-26 10:59:29 +01:00
Chris Hill-Scott
64291c8c95 Remove padding on map render
We don’t need it now we’re projecting a bigger bleed.
2020-08-26 09:18:25 +01:00
Chris Hill-Scott
3d9d663b27 Refactor coordinate processing into Polygons class
We have a bunch of stuff for doing lat/long transformation in the
`BroadcastMessage` class. This is not a good separation of concerns, now
that we have a separate class for dealing with polygons and coordinates.
2020-08-26 09:17:03 +01:00
Chris Hill-Scott
c49a6338af Store simplifed polygons in the SQLite database
This commit does two things:
- uses our new polygon-simplifying library to process the polygons
  before storing them, rather than processing them in real time
- stores only the polygons in the database, rather than the whole
  GeoJSON feature, because we don’t need any of the other information
  about the feature
2020-08-26 09:09:45 +01:00
Chris Hill-Scott
3470c5bb31 Make simplification of polygons more sophisticated
Simplifying polygons means reducing the number of points used to render
them. This commit implements simplification such that, for any given
input polygons, the combined point count of the simplified polygons is
less than 100.

When simplifying the polygons we are trying to get the smallest number
of points while meeting these two rules:
1. No part of the area the user has chosen can be cut off
2. The area of the simplified polygon should be as small as possible

This commit introduces two techniques we weren’t using before:
1. Dilating and eroding the area to fill in concave details of the
   shape, like inlets and harbours[1]
2. Making the simplification threshold proportionate to the perimeter of
   all polygons, so bigger and crinklier polygons get more
   simplification applied

It also shows the estimated bleed as a separate polygon. This lets us
make it bigger (so it’s more closer the the approximate bleed) without
having to send a bigger area to the CBC and compounding the amount of
actual bleed.

1. Inspired by this blog post about ‘removing the crinkley bits’ from
   Vancouver Island:
   http://blog.cleverelephant.ca/2010/11/removing-complexities.html
2020-08-26 09:04:54 +01:00
Tom Byers
e42adecd07 Add context to service settings links 2020-08-25 21:27:03 +01:00
Tom Byers
aa0b21b8f6 Add context to Send button on template page 2020-08-25 20:54:35 +01:00
Tom Byers
aacac232bf Add context to 'Cancel invitation' links 2020-08-25 20:52:45 +01:00
Tom Byers
0933485995 Add context to 'Move' button on /templates
Includes adding an extra parameter to the
page_footer component.
2020-08-25 20:52:21 +01:00
Tom Byers
a52aa406df Add context to template page 'Send' and 'Edit' 2020-08-25 20:52:21 +01:00
Tom Byers
3fe7fd7367 Add context to 'Change details' links on /users 2020-08-25 20:52:21 +01:00
Tom Byers
04160800f0 Update call to api_key component across pages
Includes the following pages:
- letter contact (in service settings)
- sms-senders page (in service settings)
- email reply-to (in service settings)
- API key page

Note: the call on the letter contact page uses
the first line of the contact address as the
unique identifier for each button.
2020-08-25 10:54:42 +01:00
Tom Byers
7fd034a83f Change how live region works with API key JS
Includes implementation of new code on Reply-to
email addresses page.

The existing code put the live region on the
module element so the id and button were
read out when the state changed.

The report from the Digital Accessibility Centre
(DAC) said screenreader users were confused by the
content changing because it wasn't announced.

These changes attempt to make the state changes
clearer by:
1. moving the live region out into a separate
  element so we can better control what is
  announced
2. adding hidden text around to the button and text
  above (sometimes the id, sometimes the 'Copied
  to clipboard' text) to give more context

When the id is copied to clipboard, the button
changes but this is not announced as the
live-region text takes precedence (due to being
set to 'assertive'). Because of this, hidden text
has been added in change 2 to explain what the new
button does.
2020-08-25 10:54:42 +01:00
Chris Hill-Scott
19ce1bd43a Merge pull request #3579 from alphagov/selected-area-spacing
Fix spacing between button and selected areas
2020-08-25 09:41:53 +01:00
Chris Hill-Scott
8ea7acce15 Merge pull request #3585 from alphagov/self-approve-broadcasts
Let people approve own broadcasts in training mode
2020-08-25 09:25:38 +01:00