hof 22.0.0-timeout-warning-beta.4 → 22.0.0-timeout-warning-beta.6

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 2024, Version 22.0.0, @Rhodine-orleans-lindsay
2
+ * Adds session timeout warning
3
+ * Fixes accessibility issues
4
+ * Sandbox area for testing hof changes
5
+ * Updates patch and minor dependency versions
6
+
1
7
  ## 2024-07-22, Version 21.0.0 (Stable), @Rhodine-orleans-lindsay
2
8
  * Replaces deprecated request module with axios
3
9
  - refactors the hof model and apis to use axios instead of request
@@ -38,7 +38,7 @@ const defaults = {
38
38
  host: process.env.REDIS_HOST || '127.0.0.1'
39
39
  },
40
40
  session: {
41
- ttl: process.env.SESSION_TTL || 1800,
41
+ ttl: process.env.SESSION_TTL || 61,
42
42
  secret: process.env.SESSION_SECRET || 'changethis',
43
43
  name: process.env.SESSION_NAME || 'hod.sid',
44
44
  sanitiseInputs: false
@@ -47,7 +47,7 @@ const defaults = {
47
47
  pdfConverter: process.env.PDF_CONVERTER_URL
48
48
  },
49
49
  serveStatic: process.env.SERVE_STATIC_FILES !== 'false',
50
- sessionTimeOutWarning: process.env.SESSION_TIMEOUT_WARNING || 300
50
+ sessionTimeOutWarning: process.env.SESSION_TIMEOUT_WARNING || 60
51
51
  };
52
52
 
53
53
  module.exports = Object.assign({}, defaults, rateLimits);
@@ -13,5 +13,6 @@ data-url-redirect="/session-timeout" class="modal-dialog dialog" role="dialog"
13
13
  <div class="modal-dialog__inner__block">
14
14
  <button class="govuk-button dialog-button modal-dialog__inner__button js-dialog-close" id="timeout-continue-button">Stay on this page</button>
15
15
  </div>
16
+ <a href="/" class="govuk-link dialog-exit-link" role="button">Leave this form</a>
16
17
  </div>
17
18
  </dialog>
@@ -115,7 +115,6 @@ window.GOVUK.sessionDialog = {
115
115
  let chunk;
116
116
  let ints;
117
117
  let i;
118
- let word;
119
118
  let words = 'and';
120
119
 
121
120
  if (parseInt(string, 10) === 0) {
@@ -159,24 +158,24 @@ window.GOVUK.sessionDialog = {
159
158
  ints[0] += 10;
160
159
  }
161
160
 
162
- /* Add scale word if chunk is not zero and array item exists */
163
- if ((word === scales[i])) {
164
- words.push(word);
161
+ /* Add scale word if chunk array item exists */
162
+ if (scales[i]) {
163
+ words.push(scales[i]);
165
164
  }
166
165
 
167
166
  /* Add unit word if array item exists */
168
- if ((word === units[ints[0]])) {
169
- words.push(word);
167
+ if (units[ints[0]]) {
168
+ words.push(units[ints[0]]);
170
169
  }
171
170
 
172
171
  /* Add tens word if array item exists */
173
- if ((word === tens[ints[1]])) {
174
- words.push(word);
172
+ if (tens[ints[1]]) {
173
+ words.push(tens[ints[1]]);
175
174
  }
176
175
 
177
176
  /* Add hundreds word if array item exists */
178
- if ((word === units[ints[2]])) {
179
- words.push(word + ' hundred');
177
+ if (units[ints[2]]) {
178
+ words.push(units[ints[2]] + ' hundred');
180
179
  }
181
180
  }
182
181
  }
@@ -238,8 +237,6 @@ window.GOVUK.sessionDialog = {
238
237
  if (!timerExpired) {
239
238
  const minutesLeft = parseInt(secondsUntilSessionTimeout / 60, 10);
240
239
  const secondsLeft = parseInt(secondsUntilSessionTimeout % 60, 10);
241
- const atMinutesText = window.GOVUK.sessionDialog.timeToWords(minutesLeft, 'minute');
242
- const atSecondsText = window.GOVUK.sessionDialog.timeToWords(secondsLeft, 'second');
243
240
 
244
241
  // Below string will get read out by screen readers every time
245
242
  // the timeout refreshes.
@@ -247,8 +244,8 @@ window.GOVUK.sessionDialog = {
247
244
  // first time the time out opens
248
245
  const countdownText = window.GOVUK.sessionDialog.countdownText(minutesLeft, secondsLeft);
249
246
  const text = window.GOVUK.sessionDialog.warningTextPrefix + '<strong>' + countdownText + '</strong>' + window.GOVUK.sessionDialog.warningTextSuffix;
250
- const countdownAtText = window.GOVUK.sessionDialog.countdownAtText(atMinutesText, atSecondsText);
251
- const atText = window.GOVUK.sessionDialog.warningTextPrefix + countdownAtText + window.GOVUK.sessionDialog.warningTextSuffix + 'bgbhj ' + window.GOVUK.sessionDialog.warningText;
247
+ const countdownAtText = window.GOVUK.sessionDialog.countdownAtText(minutesLeft, secondsLeft);
248
+ const atText = window.GOVUK.sessionDialog.warningTextPrefix + countdownAtText + window.GOVUK.sessionDialog.warningTextSuffix + ' ' + window.GOVUK.sessionDialog.warningText;
252
249
  const extraText = '\n' + window.GOVUK.sessionDialog.warningTextExtra;
253
250
 
254
251
  $timer.html(text + ' ' + extraText);
@@ -193,7 +193,7 @@ dialog {
193
193
  font-family: "ntatabularnumbers", "nta", Arial, sans-serif;
194
194
  }
195
195
 
196
- .dialog-sign-out-link {
196
+ .dialog-exit-link {
197
197
  @include govuk-font($size: 24);
198
198
  display: inline-block;
199
199
  margin: 5px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hof",
3
3
  "description": "A bootstrap for HOF projects",
4
- "version": "22.0.0-timeout-warning-beta.4",
4
+ "version": "22.0.0-timeout-warning-beta.6",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
7
7
  "author": "HomeOffice",
@@ -9351,7 +9351,7 @@ dialog[open] + .backdrop, dialog[open]::backdrop {
9351
9351
  font-family: "ntatabularnumbers", "nta", Arial, sans-serif;
9352
9352
  }
9353
9353
 
9354
- .dialog-sign-out-link {
9354
+ .dialog-exit-link {
9355
9355
  font-family: "GDS Transport", arial, sans-serif;
9356
9356
  -webkit-font-smoothing: antialiased;
9357
9357
  -moz-osx-font-smoothing: grayscale;
@@ -9363,25 +9363,25 @@ dialog[open] + .backdrop, dialog[open]::backdrop {
9363
9363
  margin: 5px;
9364
9364
  }
9365
9365
  @media print {
9366
- .dialog-sign-out-link {
9366
+ .dialog-exit-link {
9367
9367
  font-family: sans-serif;
9368
9368
  }
9369
9369
  }
9370
9370
  @media (min-width: 40.0625em) {
9371
- .dialog-sign-out-link {
9371
+ .dialog-exit-link {
9372
9372
  font-size: 24px;
9373
9373
  font-size: 1.5rem;
9374
9374
  line-height: 1.25;
9375
9375
  }
9376
9376
  }
9377
9377
  @media print {
9378
- .dialog-sign-out-link {
9378
+ .dialog-exit-link {
9379
9379
  font-size: 18pt;
9380
9380
  line-height: 1.15;
9381
9381
  }
9382
9382
  }
9383
9383
  @media (min-width: 40.0625em) {
9384
- .dialog-sign-out-link {
9384
+ .dialog-exit-link {
9385
9385
  font-family: "GDS Transport", arial, sans-serif;
9386
9386
  -webkit-font-smoothing: antialiased;
9387
9387
  -moz-osx-font-smoothing: grayscale;
@@ -9396,19 +9396,19 @@ dialog[open] + .backdrop, dialog[open]::backdrop {
9396
9396
  }
9397
9397
  }
9398
9398
  @media print and (min-width: 40.0625em) {
9399
- .dialog-sign-out-link {
9399
+ .dialog-exit-link {
9400
9400
  font-family: sans-serif;
9401
9401
  }
9402
9402
  }
9403
9403
  @media (min-width: 40.0625em) and (min-width: 40.0625em) {
9404
- .dialog-sign-out-link {
9404
+ .dialog-exit-link {
9405
9405
  font-size: 19px;
9406
9406
  font-size: 1.1875rem;
9407
9407
  line-height: 1.3157894737;
9408
9408
  }
9409
9409
  }
9410
9410
  @media print and (min-width: 40.0625em) {
9411
- .dialog-sign-out-link {
9411
+ .dialog-exit-link {
9412
9412
  font-size: 14pt;
9413
9413
  line-height: 1.15;
9414
9414
  }
@@ -459,24 +459,24 @@ window.GOVUK.sessionDialog = {
459
459
  ints[0] += 10;
460
460
  }
461
461
 
462
- /* Add scale word if chunk is not zero and array item exists */
463
- if ((word === scales[i])) {
464
- words.push(word);
462
+ /* Add scale word if chunk array item exists */
463
+ if (scales[i]) {
464
+ words.push(scales[i]);
465
465
  }
466
466
 
467
467
  /* Add unit word if array item exists */
468
- if ((word === units[ints[0]])) {
469
- words.push(word);
468
+ if (units[ints[0]]) {
469
+ words.push(units[ints[0]]);
470
470
  }
471
471
 
472
472
  /* Add tens word if array item exists */
473
- if ((word === tens[ints[1]])) {
474
- words.push(word);
473
+ if (word = tens[ints[1]]) {
474
+ words.push(tens[ints[1]]);
475
475
  }
476
476
 
477
477
  /* Add hundreds word if array item exists */
478
- if ((word === units[ints[2]])) {
479
- words.push(word + ' hundred');
478
+ if (units[ints[2]]) {
479
+ words.push(units[ints[2]] + ' hundred');
480
480
  }
481
481
  }
482
482
  }
@@ -538,8 +538,6 @@ window.GOVUK.sessionDialog = {
538
538
  if (!timerExpired) {
539
539
  const minutesLeft = parseInt(secondsUntilSessionTimeout / 60, 10);
540
540
  const secondsLeft = parseInt(secondsUntilSessionTimeout % 60, 10);
541
- const atMinutesText = window.GOVUK.sessionDialog.timeToWords(minutesLeft, 'minute');
542
- const atSecondsText = window.GOVUK.sessionDialog.timeToWords(secondsLeft, 'second');
543
541
 
544
542
  // Below string will get read out by screen readers every time
545
543
  // the timeout refreshes.
@@ -547,8 +545,8 @@ window.GOVUK.sessionDialog = {
547
545
  // first time the time out opens
548
546
  const countdownText = window.GOVUK.sessionDialog.countdownText(minutesLeft, secondsLeft);
549
547
  const text = window.GOVUK.sessionDialog.warningTextPrefix + '<strong>' + countdownText + '</strong>' + window.GOVUK.sessionDialog.warningTextSuffix;
550
- const countdownAtText = window.GOVUK.sessionDialog.countdownAtText(atMinutesText, atSecondsText);
551
- const atText = window.GOVUK.sessionDialog.warningTextPrefix + countdownAtText + window.GOVUK.sessionDialog.warningTextSuffix + 'bgbhj ' + window.GOVUK.sessionDialog.warningText;
548
+ const countdownAtText = window.GOVUK.sessionDialog.countdownAtText(minutesLeft, secondsLeft);
549
+ const atText = window.GOVUK.sessionDialog.warningTextPrefix + countdownAtText + window.GOVUK.sessionDialog.warningTextSuffix + ' ' + window.GOVUK.sessionDialog.warningText;
552
550
  const extraText = '\n' + window.GOVUK.sessionDialog.warningTextExtra;
553
551
 
554
552
  $timer.html(text + ' ' + extraText);