metadata_presenter 0.12.1 → 0.13.1
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/presenters/metadata_presenter/page_answers_presenter.rb +19 -8
- data/app/validators/metadata_presenter/base_validator.rb +6 -1
- data/app/views/metadata_presenter/component/_checkboxes.html.erb +9 -0
- data/default_metadata/component/checkboxes.json +9 -0
- data/default_metadata/definition/checkbox.json +7 -0
- data/fixtures/version.json +43 -0
- data/lib/metadata_presenter/version.rb +1 -1
- data/schemas/component/checkboxes.json +33 -0
- data/schemas/definition/checkbox.json +47 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a8dce466c95696d58b5bcacb36d9718dc7c0896be25c34f07897f3ef294dd11
|
4
|
+
data.tar.gz: b32d4a787136f21eeeb72f667b40628739c1f8c48444a500cf936adb17d7decb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7b10768d74009b16cd78a6d58d454e6c4fab8dbcb5fcf19f9af447f071910e9bb0801fb4e7816709aa8d58c5ac9ef12f23ac0fae235748cb78391a03a74a0d5
|
7
|
+
data.tar.gz: 2982e42f4bec096e62bc686d29ab544feb709a5aa84c428bd6b6572bfbac32affe3e760089522a3145aed0e9b4577fd7a29828a6a11a14e976e80e98f2878b9e
|
@@ -30,17 +30,28 @@ module MetadataPresenter
|
|
30
30
|
value = @page_answers.send(component.id)
|
31
31
|
|
32
32
|
return '' if value.blank?
|
33
|
-
|
34
|
-
|
35
|
-
I18n.l(
|
36
|
-
Date.civil(value.year.to_i, value.month.to_i, value.day.to_i),
|
37
|
-
format: '%d %B %Y'
|
38
|
-
)
|
39
|
-
elsif component.type == 'textarea'
|
40
|
-
view.simple_format(value)
|
33
|
+
if self.class.private_method_defined?(component.type.to_sym)
|
34
|
+
send(component.type.to_sym, value)
|
41
35
|
else
|
42
36
|
value
|
43
37
|
end
|
44
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def date(value)
|
43
|
+
I18n.l(
|
44
|
+
Date.civil(value.year.to_i, value.month.to_i, value.day.to_i),
|
45
|
+
format: '%d %B %Y'
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def textarea(value)
|
50
|
+
view.simple_format(value, {}, wrapper_tag: 'span')
|
51
|
+
end
|
52
|
+
|
53
|
+
def checkboxes(value)
|
54
|
+
value.reject(&:blank?).join("<br>").html_safe
|
55
|
+
end
|
45
56
|
end
|
46
57
|
end
|
@@ -63,7 +63,12 @@ module MetadataPresenter
|
|
63
63
|
# @return [String] user answer for the specific component
|
64
64
|
#
|
65
65
|
def user_answer
|
66
|
-
page_answers.send(component.name)
|
66
|
+
value = page_answers.send(component.name)
|
67
|
+
if component.type == 'checkboxes'
|
68
|
+
Array(value).reject(&:blank?)
|
69
|
+
else
|
70
|
+
value
|
71
|
+
end
|
67
72
|
end
|
68
73
|
|
69
74
|
# The default error message will be look using the schema key.
|
data/fixtures/version.json
CHANGED
@@ -223,6 +223,49 @@
|
|
223
223
|
}
|
224
224
|
]
|
225
225
|
},
|
226
|
+
{
|
227
|
+
"_uuid": "7b748584-100e-4d81-a54a-5049190136cc",
|
228
|
+
"_id": "page.burgers",
|
229
|
+
"_type": "page.singlequestion",
|
230
|
+
"components": [
|
231
|
+
{
|
232
|
+
"_id": "burgers_checkboxes_1",
|
233
|
+
"_type": "checkboxes",
|
234
|
+
"errors": {},
|
235
|
+
"hint": "Select all that apply",
|
236
|
+
"legend": "What would you like on your burger?",
|
237
|
+
"items": [
|
238
|
+
{
|
239
|
+
"_id": "burgers_checkbox_1",
|
240
|
+
"_type": "checkbox",
|
241
|
+
"label": "Beef, cheese, tomato",
|
242
|
+
"hint": "Optional item hint",
|
243
|
+
"value": "beef-cheese-tomato"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"_id": "burgers_checkbox_2",
|
247
|
+
"_type": "checkbox",
|
248
|
+
"label": "Chicken, cheese, tomato",
|
249
|
+
"hint": "Optional item hint",
|
250
|
+
"value": "chicken-cheese-tomato"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
"_id": "burgers_checkbox_3",
|
254
|
+
"_type": "checkbox",
|
255
|
+
"label": "Mozzarella, cheddar, feta",
|
256
|
+
"hint": "Optional item hint",
|
257
|
+
"value": "mozzarella-cheddar-feta"
|
258
|
+
}
|
259
|
+
],
|
260
|
+
"name": "burgers_checkboxes_1",
|
261
|
+
"validation": {
|
262
|
+
"required": true
|
263
|
+
}
|
264
|
+
}
|
265
|
+
],
|
266
|
+
"heading": "Checkboxes",
|
267
|
+
"url": "/burgers"
|
268
|
+
},
|
226
269
|
{
|
227
270
|
"_uuid": "e819d0c2-7062-4997-89cf-44d26d098404",
|
228
271
|
"_id": "page._check-answers",
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/checkboxes",
|
3
|
+
"_name": "component.checkboxes",
|
4
|
+
"title": "Checkboxes",
|
5
|
+
"description": "Let users select one or more options from a list",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "checkboxes"
|
10
|
+
},
|
11
|
+
"items": {
|
12
|
+
"title": "Options",
|
13
|
+
"description": "Items that users can select",
|
14
|
+
"type": "array",
|
15
|
+
"items": {
|
16
|
+
"$ref": "definition.checkbox"
|
17
|
+
}
|
18
|
+
}
|
19
|
+
},
|
20
|
+
"allOf": [
|
21
|
+
{
|
22
|
+
"$ref": "definition.fieldset"
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"transforms": {
|
26
|
+
"namespace": {
|
27
|
+
"propagation": "items[?(@._type === 'checkbox')]"
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"required": [
|
31
|
+
"items"
|
32
|
+
]
|
33
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/checkbox",
|
3
|
+
"_name": "definition.checkbox",
|
4
|
+
"title": "Checkbox item",
|
5
|
+
"description": "Component that provides a checkbox item",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "checkbox"
|
10
|
+
},
|
11
|
+
"value": {
|
12
|
+
"default": "yes"
|
13
|
+
},
|
14
|
+
"label": {
|
15
|
+
"skipOptional": true
|
16
|
+
},
|
17
|
+
"hint": {
|
18
|
+
"title": "Hint text",
|
19
|
+
"description": "Text to help users understand an option - appears in grey under the label",
|
20
|
+
"type": "string",
|
21
|
+
"content": true
|
22
|
+
},
|
23
|
+
"conditional_component": {
|
24
|
+
"$ref": "definition.conditionalcomponent"
|
25
|
+
}
|
26
|
+
},
|
27
|
+
"allOf": [
|
28
|
+
{
|
29
|
+
"$ref": "definition.namespace"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"$ref": "definition.option"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"$ref": "definition.name"
|
36
|
+
}
|
37
|
+
],
|
38
|
+
"required": [
|
39
|
+
"name",
|
40
|
+
"label"
|
41
|
+
],
|
42
|
+
"transforms": {
|
43
|
+
"namespace": {
|
44
|
+
"propagation": "conditional_component"
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
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: 0.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Online
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -250,6 +250,7 @@ files:
|
|
250
250
|
- app/validators/metadata_presenter/validate_schema.rb
|
251
251
|
- app/views/errors/404.html
|
252
252
|
- app/views/layouts/metadata_presenter/application.html.erb
|
253
|
+
- app/views/metadata_presenter/component/_checkboxes.html.erb
|
253
254
|
- app/views/metadata_presenter/component/_date.html.erb
|
254
255
|
- app/views/metadata_presenter/component/_number.html.erb
|
255
256
|
- app/views/metadata_presenter/component/_radios.html.erb
|
@@ -264,6 +265,7 @@ files:
|
|
264
265
|
- config/initializers/default_metadata.rb
|
265
266
|
- config/initializers/schemas.rb
|
266
267
|
- config/routes.rb
|
268
|
+
- default_metadata/component/checkboxes.json
|
267
269
|
- default_metadata/component/date.json
|
268
270
|
- default_metadata/component/number.json
|
269
271
|
- default_metadata/component/radios.json
|
@@ -271,6 +273,7 @@ files:
|
|
271
273
|
- default_metadata/component/textarea.json
|
272
274
|
- default_metadata/config/meta.json
|
273
275
|
- default_metadata/config/service.json
|
276
|
+
- default_metadata/definition/checkbox.json
|
274
277
|
- default_metadata/definition/radio.json
|
275
278
|
- default_metadata/page/checkanswers.json
|
276
279
|
- default_metadata/page/confirmation.json
|
@@ -290,6 +293,7 @@ files:
|
|
290
293
|
- lib/metadata_presenter/test_helpers.rb
|
291
294
|
- lib/metadata_presenter/version.rb
|
292
295
|
- lib/tasks/metadata_presenter_tasks.rake
|
296
|
+
- schemas/component/checkboxes.json
|
293
297
|
- schemas/component/date.json
|
294
298
|
- schemas/component/number.json
|
295
299
|
- schemas/component/radios.json
|
@@ -299,6 +303,7 @@ files:
|
|
299
303
|
- schemas/config/meta.json
|
300
304
|
- schemas/config/service.json
|
301
305
|
- schemas/definition/block.json
|
306
|
+
- schemas/definition/checkbox.json
|
302
307
|
- schemas/definition/component.json
|
303
308
|
- schemas/definition/components.json
|
304
309
|
- schemas/definition/condition.base.json
|