metadata_presenter 2.14.1 → 2.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/metadata_presenter/grid.rb +17 -38
- data/app/models/metadata_presenter/page_warning.rb +24 -0
- data/app/validators/metadata_presenter/email_validator.rb +8 -0
- data/app/views/metadata_presenter/component/_email.html.erb +11 -0
- data/config/initializers/supported_components.rb +2 -2
- data/default_metadata/component/email.json +13 -0
- data/default_metadata/string/error.email.json +6 -0
- data/fixtures/version.json +31 -0
- data/lib/metadata_presenter/version.rb +1 -1
- data/schemas/component/email.json +23 -0
- data/schemas/component/text.json +0 -3
- data/schemas/component/textarea.json +0 -3
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c193e65ab0f33ff31b7493e07470de7020282d5bf194e7bfe3263ca7466b8c3b
|
4
|
+
data.tar.gz: 7ae63df4cd59d812f375a716a1d04785ca1ad050577ca5cfa5ec3c355be78282
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3df3cf7faee63fe939f79cdb59df22c6263beb1cb65f34878e7a8062da829f4c883bc085a5f7bd435ff4f1f39696d220d6e92db3163bab66816e60786ce3fa4f
|
7
|
+
data.tar.gz: e84b4bc9e3a506d3f9161f17884cda0ce40d22859b11f002885978763b77db546404aeb36648dbd5da932b4d49061b6ccdeafa26a2e1551c38e3c2272284a13a
|
@@ -19,7 +19,7 @@ module MetadataPresenter
|
|
19
19
|
|
20
20
|
class Grid
|
21
21
|
include BranchDestinations
|
22
|
-
attr_reader :start_from
|
22
|
+
attr_reader :service, :start_from
|
23
23
|
|
24
24
|
def initialize(service, start_from: nil, main_flow: [])
|
25
25
|
@service = service
|
@@ -67,9 +67,13 @@ module MetadataPresenter
|
|
67
67
|
ordered_pages.map(&:uuid)
|
68
68
|
end
|
69
69
|
|
70
|
+
def show_warning?
|
71
|
+
checkanswers_warning.show_warning? || confirmation_warning.show_warning?
|
72
|
+
end
|
73
|
+
|
70
74
|
private
|
71
75
|
|
72
|
-
attr_reader :
|
76
|
+
attr_reader :main_flow
|
73
77
|
attr_accessor :ordered, :traversed, :routes, :coordinates
|
74
78
|
|
75
79
|
def route_from_start
|
@@ -277,46 +281,21 @@ module MetadataPresenter
|
|
277
281
|
# Include a warning if a service does not have a CYA or Confirmation page in the
|
278
282
|
# main flow. The warning should always be in the first row, last column.
|
279
283
|
def insert_warning
|
280
|
-
if
|
281
|
-
cya_and_confirmation_pages_detached?
|
282
|
-
@ordered.append([MetadataPresenter::Warning.new])
|
283
|
-
end
|
284
|
-
end
|
285
|
-
|
286
|
-
def cya_and_confirmation_pages_not_in_service?
|
287
|
-
(checkanswers_not_in_service? && confirmation_not_in_service?) ||
|
288
|
-
checkanswers_not_in_service? ||
|
289
|
-
confirmation_not_in_service?
|
290
|
-
end
|
291
|
-
|
292
|
-
def checkanswers_not_in_service?
|
293
|
-
service.checkanswers_page.blank?
|
284
|
+
@ordered.append([MetadataPresenter::Warning.new]) if show_warning?
|
294
285
|
end
|
295
286
|
|
296
|
-
def
|
297
|
-
|
287
|
+
def checkanswers_warning
|
288
|
+
MetadataPresenter::PageWarning.new(
|
289
|
+
page: service.checkanswers_page,
|
290
|
+
main_flow_uuids: flow_uuids
|
291
|
+
)
|
298
292
|
end
|
299
293
|
|
300
|
-
def
|
301
|
-
(
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
def checkanswers_detached?
|
307
|
-
if service.checkanswers_page.present?
|
308
|
-
uuid = service.checkanswers_page.uuid
|
309
|
-
position = coordinates.positions[uuid]
|
310
|
-
detached?(position)
|
311
|
-
end
|
312
|
-
end
|
313
|
-
|
314
|
-
def confirmation_detached?
|
315
|
-
if service.confirmation_page.present?
|
316
|
-
uuid = service.confirmation_page.uuid
|
317
|
-
position = coordinates.positions[uuid]
|
318
|
-
detached?(position)
|
319
|
-
end
|
294
|
+
def confirmation_warning
|
295
|
+
MetadataPresenter::PageWarning.new(
|
296
|
+
page: service.confirmation_page,
|
297
|
+
main_flow_uuids: flow_uuids
|
298
|
+
)
|
320
299
|
end
|
321
300
|
|
322
301
|
# Any destinations exiting the branch that have not already been traversed.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module MetadataPresenter
|
2
|
+
class PageWarning
|
3
|
+
def initialize(page:, main_flow_uuids:)
|
4
|
+
@page = page
|
5
|
+
@main_flow_uuids = main_flow_uuids
|
6
|
+
end
|
7
|
+
|
8
|
+
def show_warning?
|
9
|
+
missing? || detached?
|
10
|
+
end
|
11
|
+
|
12
|
+
def missing?
|
13
|
+
page.blank?
|
14
|
+
end
|
15
|
+
|
16
|
+
def detached?
|
17
|
+
main_flow_uuids.exclude?(page&.uuid)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
attr_reader :page, :main_flow_uuids
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%=
|
2
|
+
f.govuk_email_field component.id.to_sym,
|
3
|
+
label: { text: input_title },
|
4
|
+
hint: {
|
5
|
+
data: { "fb-default-text" => default_text('hint') },
|
6
|
+
text: component.hint
|
7
|
+
},
|
8
|
+
name: "answers[#{component.name}]",
|
9
|
+
spellcheck: "false",
|
10
|
+
autocomplete: "email"
|
11
|
+
%>
|
@@ -17,11 +17,11 @@ Rails.application.config.supported_components =
|
|
17
17
|
content: %w(content)
|
18
18
|
},
|
19
19
|
multiplequestions: {
|
20
|
-
input: %w(text textarea number date radios checkboxes),
|
20
|
+
input: %w(text textarea number date radios checkboxes email),
|
21
21
|
content: %w(content)
|
22
22
|
},
|
23
23
|
singlequestion: {
|
24
|
-
input: %w(text textarea number date radios checkboxes upload),
|
24
|
+
input: %w(text textarea number date radios checkboxes email upload),
|
25
25
|
content: %w()
|
26
26
|
}
|
27
27
|
})
|
data/fixtures/version.json
CHANGED
@@ -63,6 +63,12 @@
|
|
63
63
|
}
|
64
64
|
},
|
65
65
|
"80420693-d6f2-4fce-a860-777ca774a6f5": {
|
66
|
+
"_type": "flow.page",
|
67
|
+
"next": {
|
68
|
+
"default": "adcb61c3-52b1-479b-be51-1bb610876d54"
|
69
|
+
}
|
70
|
+
},
|
71
|
+
"adcb61c3-52b1-479b-be51-1bb610876d54" : {
|
66
72
|
"_type": "flow.page",
|
67
73
|
"next": {
|
68
74
|
"default": "2ef7d11e-0307-49e9-9fe2-345dc528dd66"
|
@@ -503,6 +509,31 @@
|
|
503
509
|
"add_component": "content",
|
504
510
|
"section_heading": "Chain of Command"
|
505
511
|
},
|
512
|
+
{
|
513
|
+
"_id": "page.email",
|
514
|
+
"url": "email",
|
515
|
+
"body": "Body section",
|
516
|
+
"_type": "page.singlequestion",
|
517
|
+
"_uuid": "adcb61c3-52b1-479b-be51-1bb610876d54",
|
518
|
+
"heading": "Email",
|
519
|
+
"components": [
|
520
|
+
{
|
521
|
+
"_id": "email-address_email_1",
|
522
|
+
"hint": "",
|
523
|
+
"name": "email-address_email_1",
|
524
|
+
"_type": "email",
|
525
|
+
"_uuid": "482cb2d0-fda7-4e5c-9591-96dcb546e181",
|
526
|
+
"label": "Email address",
|
527
|
+
"errors": {},
|
528
|
+
"collection": "components",
|
529
|
+
"validation": {
|
530
|
+
"required": true,
|
531
|
+
"email": true,
|
532
|
+
"max_length": 256
|
533
|
+
}
|
534
|
+
}
|
535
|
+
]
|
536
|
+
},
|
506
537
|
{
|
507
538
|
"_id": "page.dog-picture",
|
508
539
|
"url": "dog-picture",
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/email",
|
3
|
+
"_name": "component.email",
|
4
|
+
"title": "Email",
|
5
|
+
"description": "Let users enter an email address",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "email"
|
10
|
+
}
|
11
|
+
},
|
12
|
+
"allOf": [
|
13
|
+
{
|
14
|
+
"$ref": "http://gov.uk/schema/v1.0.0/definition/field"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"$ref": "http://gov.uk/schema/v1.0.0/definition/widthclass/input"
|
18
|
+
}
|
19
|
+
],
|
20
|
+
"validation": {
|
21
|
+
"format": "email"
|
22
|
+
}
|
23
|
+
}
|
data/schemas/component/text.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metadata_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.15.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Forms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_design_system_formbuilder
|
@@ -295,6 +295,7 @@ files:
|
|
295
295
|
- app/models/metadata_presenter/offline_upload_adapter.rb
|
296
296
|
- app/models/metadata_presenter/page.rb
|
297
297
|
- app/models/metadata_presenter/page_answers.rb
|
298
|
+
- app/models/metadata_presenter/page_warning.rb
|
298
299
|
- app/models/metadata_presenter/previous_page.rb
|
299
300
|
- app/models/metadata_presenter/route.rb
|
300
301
|
- app/models/metadata_presenter/row_number.rb
|
@@ -311,6 +312,7 @@ files:
|
|
311
312
|
- app/validators/metadata_presenter/accept_validator.rb
|
312
313
|
- app/validators/metadata_presenter/base_validator.rb
|
313
314
|
- app/validators/metadata_presenter/date_validator.rb
|
315
|
+
- app/validators/metadata_presenter/email_validator.rb
|
314
316
|
- app/validators/metadata_presenter/max_length_validator.rb
|
315
317
|
- app/validators/metadata_presenter/max_size_validator.rb
|
316
318
|
- app/validators/metadata_presenter/min_length_validator.rb
|
@@ -330,6 +332,7 @@ files:
|
|
330
332
|
- app/views/metadata_presenter/component/_components.html.erb
|
331
333
|
- app/views/metadata_presenter/component/_content.html.erb
|
332
334
|
- app/views/metadata_presenter/component/_date.html.erb
|
335
|
+
- app/views/metadata_presenter/component/_email.html.erb
|
333
336
|
- app/views/metadata_presenter/component/_number.html.erb
|
334
337
|
- app/views/metadata_presenter/component/_radios.html.erb
|
335
338
|
- app/views/metadata_presenter/component/_text.html.erb
|
@@ -356,6 +359,7 @@ files:
|
|
356
359
|
- default_metadata/component/checkboxes.json
|
357
360
|
- default_metadata/component/content.json
|
358
361
|
- default_metadata/component/date.json
|
362
|
+
- default_metadata/component/email.json
|
359
363
|
- default_metadata/component/number.json
|
360
364
|
- default_metadata/component/radios.json
|
361
365
|
- default_metadata/component/text.json
|
@@ -380,6 +384,7 @@ files:
|
|
380
384
|
- default_metadata/service/base.json
|
381
385
|
- default_metadata/string/error.accept.json
|
382
386
|
- default_metadata/string/error.date.json
|
387
|
+
- default_metadata/string/error.email.json
|
383
388
|
- default_metadata/string/error.max_length.json
|
384
389
|
- default_metadata/string/error.max_size.json
|
385
390
|
- default_metadata/string/error.min_length.json
|
@@ -422,6 +427,7 @@ files:
|
|
422
427
|
- schemas/component/checkboxes.json
|
423
428
|
- schemas/component/content.json
|
424
429
|
- schemas/component/date.json
|
430
|
+
- schemas/component/email.json
|
425
431
|
- schemas/component/number.json
|
426
432
|
- schemas/component/radios.json
|
427
433
|
- schemas/component/text.json
|
@@ -502,7 +508,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
502
508
|
- !ruby/object:Gem::Version
|
503
509
|
version: '0'
|
504
510
|
requirements: []
|
505
|
-
rubygems_version: 3.2.
|
511
|
+
rubygems_version: 3.2.32
|
506
512
|
signing_key:
|
507
513
|
specification_version: 4
|
508
514
|
summary: Service Metadata Presenter
|