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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 302551ce821bf55cd56db43ad25a904cbc84a85f99f01e9cda169b6f8e44aa9e
4
- data.tar.gz: e0db2085489e9e46eca6a6f7a785fea374e7b98e003a2aa53fc97c37b69c5180
3
+ metadata.gz: 1a8dce466c95696d58b5bcacb36d9718dc7c0896be25c34f07897f3ef294dd11
4
+ data.tar.gz: b32d4a787136f21eeeb72f667b40628739c1f8c48444a500cf936adb17d7decb
5
5
  SHA512:
6
- metadata.gz: 82b377a0b22cbd8f2b826f5f57c4d3d704c659049e208db1044a4913e42a0c8e725c22bcc58c9eb6e93b0698672984128216ba26bccccf4d73300ada3ab2c5bb
7
- data.tar.gz: 1b24c21b3c4a3000d4fbc7d25e3e2dd4ce6fdc600911ef821e299da122871bde22d15864931362b2e9378cf65640906ee451e1e14089e31f2058964a3cd507bc
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
- if component.type == 'date'
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.
@@ -0,0 +1,9 @@
1
+ <%=
2
+ f.govuk_collection_check_boxes component.id.to_sym,
3
+ component.items,
4
+ :id,
5
+ :name,
6
+ :description,
7
+ legend: { text: input_title },
8
+ hint: { text: component.hint }
9
+ %>
@@ -0,0 +1,9 @@
1
+ {
2
+ "_id": "component.checkboxes",
3
+ "_type": "checkboxes",
4
+ "errors": {},
5
+ "hint": "[Hint text (optional)]",
6
+ "items": [],
7
+ "name": "component-name",
8
+ "legend": "Question"
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "_id": "definition.checkbox",
3
+ "_type": "checkbox",
4
+ "label": "Option",
5
+ "hint": "[Hint text (optional)]",
6
+ "value": "checkbox-value"
7
+ }
@@ -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",
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.12.1'
2
+ VERSION = '0.13.1'
3
3
  end
@@ -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.12.1
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-15 00:00:00.000000000 Z
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