metadata_presenter 0.12.1 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|