metadata_presenter 0.12.1 → 0.13.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 302551ce821bf55cd56db43ad25a904cbc84a85f99f01e9cda169b6f8e44aa9e
4
- data.tar.gz: e0db2085489e9e46eca6a6f7a785fea374e7b98e003a2aa53fc97c37b69c5180
3
+ metadata.gz: a1feca0d323fc35987d3d48d5eff8f93c3aa41c467a9a043b40467b5bb2f7ad0
4
+ data.tar.gz: a21a61d249d3f0ec4d5c58823b5ae1b37a78814b73c185839a4acf92bb16343b
5
5
  SHA512:
6
- metadata.gz: 82b377a0b22cbd8f2b826f5f57c4d3d704c659049e208db1044a4913e42a0c8e725c22bcc58c9eb6e93b0698672984128216ba26bccccf4d73300ada3ab2c5bb
7
- data.tar.gz: 1b24c21b3c4a3000d4fbc7d25e3e2dd4ce6fdc600911ef821e299da122871bde22d15864931362b2e9378cf65640906ee451e1e14089e31f2058964a3cd507bc
6
+ metadata.gz: abe5a3286dcc840591e3b76dc76bd8d40d635977203e136ce2f4f87c229495f8ce6f497d34eb4288a724a01822db5a46025cb9a2a7efbc3690cd9fd4fb3a9b11
7
+ data.tar.gz: 14b999c21dc3562bc53b0fba63ba7ae34b999a7100ef938c75cd2fa99fb912b0fe0b7dfb6194ac5f7ce502ff9f903c11ee734cc023f4c0c16422206606744d06
@@ -8,7 +8,9 @@ module MetadataPresenter
8
8
  def back_link
9
9
  return if @page.blank?
10
10
 
11
- @back_link ||= service.previous_page(current_page: @page)&.url
11
+ previous_page = service.previous_page(current_page: @page)&.url
12
+
13
+ @back_link ||= File.join(request.script_name, previous_page) if previous_page
12
14
  end
13
15
  helper_method :back_link
14
16
 
@@ -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.join("<br>").html_safe
55
+ end
45
56
  end
46
57
  end
@@ -0,0 +1,10 @@
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
+ include_hidden: false
10
+ %>
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  <% if service.service_name.present? %>
28
28
  <div class="govuk-header__content">
29
- <a href="/" class="govuk-header__link govuk-header__link--service-name">
29
+ <a href="<%= root_path %>" class="govuk-header__link govuk-header__link--service-name">
30
30
  <%= service.service_name %>
31
31
  </a>
32
32
  <% end %>
@@ -1,28 +1,36 @@
1
- <div class="fb-main-grid-wrapper" data-block-id="<%= @page.id %>" data-block-type="page" data-block-pagetype="<%= @page.type %>">
1
+ <div class="fb-main-grid-wrapper" data-fb-pagetype="<%= @page.type %>">
2
2
  <div class="govuk-grid-row">
3
3
  <div class="govuk-grid-column-two-thirds">
4
4
  <% if @page.section_heading -%>
5
- <p class="govuk-caption-l fb-section_heading" data-block-id="<%= @page.id %>" data-block-property="section_heading">
5
+ <p class="fb-editable govuk-caption-l fb-section_heading"
6
+ data-fb-content-type="element"
7
+ data-fb-content-id="page[section_heading]">
6
8
  <%= @page.section_heading.html_safe %>
7
9
  </p>
8
10
  <%- end %>
9
11
 
10
12
  <% if @page.heading %>
11
- <h1 class="<%= @page.heading_class %>" data-block-id="<%= @page.id %>" data-block-property="heading">
13
+ <h1 class="fb-editable <%= @page.heading_class %>"
14
+ data-fb-content-id="page[heading]"
15
+ data-fb-content-type="element">
12
16
  <%= @page.heading.html_safe %>
13
17
  </h1>
14
18
  <% end %>
15
19
 
16
20
  <% if @page.lede %>
17
- <p class="govuk-body-l" data-block-id="<%= @page.id %>" data-block-property="lede">
21
+ <div class="fb-editable"
22
+ data-fb-content-id="page[lede]"
23
+ data-fb-content-type="content">
18
24
  <%= @page.lede.html_safe %>
19
- </p>
25
+ </div>
20
26
  <%- end %>
21
27
 
22
28
  <% if @page.body %>
23
- <p class="govuk-body-l" data-block-id="<%= @page.id %>" data-block-property="lede">
24
- <%= to_markdown(@page.body) %>
25
- </p>
29
+ <div class="fb-editable"
30
+ data-fb-content-id="page[body]"
31
+ data-fb-content-type="content">
32
+ <%= to_markdown(@page.body) %>
33
+ </div>
26
34
  <%- end %>
27
35
 
28
36
  <%= form_tag(root_path, method: :post) do %>
@@ -35,9 +43,11 @@
35
43
  <% end %>
36
44
 
37
45
  <% if @page.before_you_start %>
38
- <p class="govuk-body-l" data-block-id="<%= @page.id %>" data-block-property="before-you-start">
39
- <%= to_markdown(@page.before_you_start) %>
40
- </p>
46
+ <div class="fb-editable"
47
+ data-fb-content-id="page[before_you_start]"
48
+ data-fb-content-type="content">
49
+ <%= to_markdown(@page.before_you_start) %>
50
+ </div>
41
51
  <%- end %>
42
52
  </div>
43
53
  </div>
@@ -0,0 +1,24 @@
1
+ {
2
+ "_id": "component.checkboxes",
3
+ "_type": "checkboxes",
4
+ "errors": {},
5
+ "hint": "[Hint text (optional)]",
6
+ "items": [
7
+ {
8
+ "_id": "component_checkbox_1",
9
+ "_type": "checkbox",
10
+ "label": "Option",
11
+ "hint": "[Hint text (optional)]",
12
+ "value": "value-1"
13
+ },
14
+ {
15
+ "_id": "component_checkbox_2",
16
+ "_type": "checkbox",
17
+ "label": "Option",
18
+ "hint": "[Hint text (optional)]",
19
+ "value": "value-2"
20
+ }
21
+ ],
22
+ "name": "component-name",
23
+ "legend": "Question"
24
+ }
@@ -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.5'
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,46 @@
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
+ "label"
40
+ ],
41
+ "transforms": {
42
+ "namespace": {
43
+ "propagation": "conditional_component"
44
+ }
45
+ }
46
+ }
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.5
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-17 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