Commit Graph

377 Commits

Author SHA1 Message Date
Chris Hill-Scott
3989d1b576 Add pages for ‘service settings’ flow
Adds the pages and wires them together, so that it’s possible to click
through them.

The wording is not quite English, but attempts to be an rough description of
what the consequences are for each of the four actions.
2016-01-08 14:56:14 +00:00
Chris Hill-Scott
750c23e805 Merge pull request #48 from alphagov/dont_deploy_assets_II
Delete from current directory before deploying
2016-01-07 17:36:58 +00:00
Martyn Inglis
35fe1ae5a3 Live was set to debug mode 2016-01-07 16:24:10 +00:00
Martyn Inglis
cd1af56548 Fix python3/2 issues 2016-01-07 16:13:25 +00:00
Martyn Inglis
5cf3259dbf Fix python3/2 issues 2016-01-07 16:12:34 +00:00
Rebecca Law
548d086cbf Merge pull request #47 from alphagov/integrate-logging
Integrated logging from the utils repo
2016-01-07 15:58:05 +00:00
Martyn Inglis
684230370f Tests run in debug mode 2016-01-07 15:52:56 +00:00
Chris Hill-Scott
80f214e0fa Delete from current directory before deploying
Does what https://github.com/alphagov/notifications-admin/pull/45 intended to do
2016-01-07 15:52:49 +00:00
Martyn Inglis
55534522e0 updated config with logging properties 2016-01-07 15:42:16 +00:00
Rebecca Law
afd03ea5bf Merge pull request #46 from alphagov/add-useful-headers
Add some useful owasp suggested headers
2016-01-07 15:39:51 +00:00
Martyn Inglis
ef8964284c Integrated logging from the utils repo 2016-01-07 15:39:36 +00:00
Rebecca Law
cce3c91c4a Merge pull request #44 from alphagov/provide_logout_link
Provide logout link
2016-01-07 15:39:25 +00:00
Adam Shimali
4345eea9f9 Revert addition to ignore after learning of a better way 2016-01-07 15:32:17 +00:00
Adam Shimali
78b8aed96b Add some useful owasp suggested headers 2016-01-07 13:58:38 +00:00
Nicholas Staples
7001d8261d Fix for security hole with setting session['user_id'] before second factor of authentication has been authorised. 2016-01-07 12:43:10 +00:00
Chris Hill-Scott
30a5b771e2 Merge pull request #45 from alphagov/dont_deploy_assets
Don’t package raw front end assets for deployment
2016-01-07 12:25:13 +00:00
Chris Hill-Scott
f350f070b3 Don’t package raw front end assets for deployment
None of these files are used by the app when it’s running them.

Having them in the deployed blob only makes the deploy slower and 
the logs massive.
2016-01-07 11:46:15 +00:00
Chris Hill-Scott
1c99a88588 Merge pull request #43 from alphagov/fix-missing-jquery
Fix missing jQuery
2016-01-07 11:06:28 +00:00
Nicholas Staples
10c2978f85 Merge with master and test fix. 2016-01-06 17:17:02 +00:00
Nicholas Staples
0a4ea6ca2e Merge branch 'master' into provide_logout_link 2016-01-06 17:06:04 +00:00
NIcholas Staples
c7f130e503 Merge pull request #40 from alphagov/form_views_refactor
Form views refactor
2016-01-06 17:03:36 +00:00
Nicholas Staples
52df795743 Review fix. 2016-01-06 17:00:01 +00:00
Nicholas Staples
79c15ec9cf Code checks and all tests passing. 2016-01-06 16:51:35 +00:00
Nicholas Staples
5905229714 Logout functionality and test added. 2016-01-06 16:40:38 +00:00
Chris Hill-Scott
5d44a29c05 Fix missing jQuery
Somewhere in the many rebases the bits of code that add jQuery to the production
Javascript got lost.

This caused Javascript to fail on all pages.

This commit re-adds that missing code.
2016-01-06 14:50:02 +00:00
Martyn Inglis
03d81e5b47 Unicoded the £ sign and the ' needed to render the job page. 2016-01-06 13:22:15 +00:00
Martyn Inglis
416fa30929 Make the £ string a unicode string 2016-01-06 12:57:09 +00:00
Nicholas Staples
34bf03bae2 Readded git submodules. 2016-01-06 12:36:04 +00:00
Nicholas Staples
546b0b68b2 Merge branch 'master' into form_views_refactor 2016-01-06 11:46:58 +00:00
Martyn Inglis
260e1bad85 Removed build to heroku 2016-01-06 11:44:13 +00:00
Nicholas Staples
6fc39d1814 Add in macro import to our template, not govuk_template 2016-01-06 11:37:59 +00:00
Martyn Inglis
f92a46f419 updated readme 2016-01-06 11:37:37 +00:00
Rebecca Law
43a423b027 Update README.md
Added instructions to install n for node version management
2016-01-06 11:14:04 +00:00
minglis
3cbaa00930 Merge pull request #42 from alphagov/file-encoding
Added encoding to file
2016-01-06 11:10:59 +00:00
Nicholas Staples
4a43163603 Removed redundancy of removed included macro. 2016-01-06 11:10:23 +00:00
Martyn Inglis
b9895a805c Added encoding to file 2016-01-06 11:03:29 +00:00
Nicholas Staples
921c10a1fa Merge with master. 2016-01-06 10:55:45 +00:00
minglis
f9457d739e Merge pull request #41 from alphagov/putting-aws-back
Putting AWS back
2016-01-06 10:41:21 +00:00
Nicholas Staples
f2732eed14 Added back in span element in form. 2016-01-06 10:22:36 +00:00
Nicholas Staples
9d7c3566aa Removed validation check for unique mobile number on the system. 2016-01-06 09:54:10 +00:00
minglis
d179970032 Merge pull request #37 from alphagov/templating-flow
Manage templates flow
2016-01-06 09:45:01 +00:00
Martyn Inglis
6943c88c48 Putting AWS back 2016-01-06 09:40:53 +00:00
Chris Hill-Scott
84cdd2f4f0 Add Javascript feature detection for oninput
This commit adds a feature detection for the `oninput` event, which isn’t
supported in older browsers[1].

This means that the code that highlights placeholders will only be run in
browsers that support the `oninput` event.

1. http://caniuse.com/#feat=input-event
2016-01-06 09:39:42 +00:00
Chris Hill-Scott
74da3b1adf Use EcmaScript 6, w/ transpiling for compatibility
ES6 has some nice new features. Specifically relevant to this piece of
work are:

Arrow functions[1], whose `this` context is bound the value of `this` in the
current scope and can’t be overidden. The code is cleaner as a result, and
doesn’t need the addition of a bind polyfill for older browsers.

Template strings[2], which are similar to triple-quoted multi line strings in
Python. This means less fiddly and error-prone string concatenation.

This commit adds Babel[3] to the Gulp pipeline. This transpiles Javascript
written to the ES6 specification into code which is compatible with older
browsers that don’t understand ES6 syntax.

It also rewrites the gulpfile itself using some ES6 syntax, for the same reasons.

1. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
2. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/template_strings
3. https://babeljs.io
2016-01-06 09:39:42 +00:00
Chris Hill-Scott
3ed415fb75 Enhance message textbox by styling placeholders
Users can add placeholders to their messages, eg

> …your vehicle ((registration number))

when the message is sent, this gets replaced with the data the user uploads, eg

> …your vehicle LC12 BFL

We reckon that it will be useful to see that the placeholder has been
recognised, ie that its syntax is correct, before uploading any data.

We reckon that the best way to do this is by styling it differently to the rest
of the text that the user types.

This is not a trivial problem. There are two possible ways to do it:

1 Write a Google Docs-style text rendering engine, which completely replaces
  the native HTML `<textarea>` with a custom control, and programme what should
  happen when the user types something that looks like a placeholder, or
  presses an arrow key, or makes a selection, or…
2 Leave the `<textarea>` in place, unmodified, and duplicate layers in front
  of/behind it to visually replace a placeholder with the blue lozenge

Unsurprisingly, this commit implements 2.

There are four layers. Each layer contains live-updated copy of the text in the
textbox, and each is styled differently:
- one layer behind the textbox to make the blue background
- the textbox itself
- a layer with the white text, which overlays the black text of the textbox
- a layer with an inner shadow to knock back the brackets

This is because of some interesting limitations:
- The text in the foreground and background must occupy the same physical space,
  so no deleting characters from the duplicated layers
- Words can’t be split up into multiple elements,
  eg `<span>((</span>regist…`:—this results in slightly different kerning to
  `((regis…`, which messes up the alignment of the layers
- The textbox can’t be completely overlapped with a block of colour, because
  the cursor disappears behind it. Trying to edit text when you can’t see the
  cursor is hard.

Implementation

Technically this makes use of Paul Hayes work on Javascript modules in the
GOV.UK frontend toolkit[1].

It also makes use of the `oninput` event to detect changes to the textbox’s
contents. This is much more performant than `onkeydown`, `onpaste`, etc. Without
it the delay between user input and the layers all updating is too slow and you
see misalignment of the layers.

1. https://github.com/alphagov/govuk_frontend_toolkit/pull/227
2016-01-06 09:39:42 +00:00
Chris Hill-Scott
ba48707371 Add routing and pages for managing templates
So that users can see what it the flow is like to:
- add new templates
- edit existing templates
2016-01-06 09:39:42 +00:00
Chris Hill-Scott
5e0777b696 Add messages to the current job’s history
This mocks out a data structure for a job’s messages, and renders this data:
- on the notification page, as a table, which links through to…
- …the page for an indidivual message
2016-01-06 09:39:42 +00:00
Chris Hill-Scott
5ec1978dcb Make data consistent from dashboard -> job
- adds a table of recent activity to the job page, which is shared by the
  dashboard page
- uses the same filename and message template as the first job shown on the
  dashboard
- sets the time of file uploads/message delivery/message sending to always
  match ‘just now’
2016-01-06 09:39:42 +00:00
minglis
503c931a0a Merge pull request #36 from alphagov/service-activity-flow
Service activity flow
2016-01-06 09:36:23 +00:00
minglis
a109c6e82b Merge pull request #34 from alphagov/quarter-width-nav
Make navigation column 1/4 width
2016-01-06 09:35:35 +00:00