metadata_presenter 0.12.1 → 0.13.5

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: 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