metadata_presenter 0.28.3 → 0.28.8

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: 4f16643913c5fd41034a5625512fa04ade04d8f4e341297c53c6661dda829295
4
- data.tar.gz: 6c133397cd73de430b3d3fd9fe8ff50ad63db3e74f0d57edb559baf5be170800
3
+ metadata.gz: cdaa1c74990ae5ceea6cd7b25f78da2c45398cb60ed27b9945597fb19b95e967
4
+ data.tar.gz: 6ece822ec4049fb40c54f9c5ef1ed481af7bdd603327865ba4cdd0da8ffb9c4e
5
5
  SHA512:
6
- metadata.gz: 152ebac32598838d9372f63d7b3235366be5b291d4d9a0c62a6ddcb43d28f37779c8247990831d29f057ea2d4d1e4ca31e564c9b7c8d67e90d59ce6a591393c8
7
- data.tar.gz: 6f65639dda196a168fcf659e04eda9a44cf6f26e123ddf52175f8164fac5f03d3edbf428720b1959f36279a9de3cad6ddcdf52dfab67e8cc99f1d0ce5dad932c
6
+ metadata.gz: 0cd4781efff34fd833465c3bffefa4266c486aaa1a3bf10fe12e2239e58d0fecf573776c4c183450a7f3d52438898f6f7650abc8fb9f902a188750273fa2129c
7
+ data.tar.gz: 95f440d8b1b4486435e970ef683d2520ebf716ef50b3cf1a007201d3e64c020550c2a0ce3db76707324ba292bd824cde3b6be12536ee1c56c15efa36efb4f490
@@ -18,9 +18,5 @@ module MetadataPresenter
18
18
  def default_text(property)
19
19
  MetadataPresenter::DefaultText[property]
20
20
  end
21
-
22
- def meta_items
23
- service.meta.items
24
- end
25
21
  end
26
22
  end
@@ -13,6 +13,10 @@ class MetadataPresenter::Metadata
13
13
  to_h.to_json
14
14
  end
15
15
 
16
+ def uuid
17
+ metadata._uuid
18
+ end
19
+
16
20
  def id
17
21
  metadata._id
18
22
  end
@@ -5,22 +5,29 @@ module MetadataPresenter
5
5
  class Page < MetadataPresenter::Metadata
6
6
  include ActiveModel::Validations
7
7
 
8
- def uuid
8
+ NOT_EDITABLE = %i[
9
9
  _uuid
10
- end
10
+ _id
11
+ _type
12
+ steps
13
+ add_component
14
+ add_extra_component
15
+ ].freeze
11
16
 
12
17
  def ==(other)
13
18
  id == other.id if other.respond_to? :id
14
19
  end
15
20
 
16
21
  def editable_attributes
17
- to_h.reject { |k, _| k.in?(%i[_id _type steps]) }
22
+ to_h.reject { |k, _| k.in?(NOT_EDITABLE) }
18
23
  end
19
24
 
20
25
  def components
21
- metadata.components&.map do |component|
22
- MetadataPresenter::Component.new(component, editor: editor?)
23
- end
26
+ to_components(metadata.components, collection: :components)
27
+ end
28
+
29
+ def extra_components
30
+ to_components(metadata.extra_components, collection: :extra_components)
24
31
  end
25
32
 
26
33
  def to_partial_path
@@ -41,6 +48,15 @@ module MetadataPresenter
41
48
 
42
49
  private
43
50
 
51
+ def to_components(node_components, collection:)
52
+ node_components&.map do |component|
53
+ MetadataPresenter::Component.new(
54
+ component.merge(collection: collection),
55
+ editor: editor?
56
+ )
57
+ end
58
+ end
59
+
44
60
  def page_components(page_type)
45
61
  values = Rails.application.config.page_components[page_type]
46
62
  if values.blank?
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html>
2
+ <html lang="en">
3
3
  <head>
4
4
  <title><%= service.service_name %></title>
5
5
  <%= csrf_meta_tags %>
@@ -1,14 +1,14 @@
1
- <% @page.components.each_with_index do |component, index| %>
1
+ <% components.each_with_index do |component, index| %>
2
2
  <div class="fb-editable"
3
3
  id="<%= component.id %>"
4
4
  data-fb-content-type="<%= component.type %>"
5
- data-fb-content-id="<%= "page[components[#{index}]]" %>"
5
+ data-fb-content-id="<%= "page[#{component.collection}[#{index}]]" %>"
6
6
  data-fb-content-data="<%= component.to_json %>">
7
7
 
8
8
  <%= render partial: component, locals: {
9
9
  f: f,
10
10
  component: component,
11
- component_id: "page[components[#{index}]]",
11
+ component_id: "page[#{component.collection}[#{index}]]",
12
12
  input_title: main_title(
13
13
  component: component,
14
14
  tag: :h2,
@@ -1,6 +1,6 @@
1
1
  <h2 class="govuk-visually-hidden">Support links</h2>
2
2
  <ul class="govuk-footer__inline-list">
3
- <% meta_items.each do |item| %>
3
+ <% service.meta.items.each do |item| %>
4
4
  <li class="govuk-footer__inline-list-item">
5
5
  <a class="govuk-footer__link" href=<%= File.join(request.script_name, item.href) %>><%= item.text %></a>
6
6
  </li>
@@ -1,4 +1,6 @@
1
1
  <header class="govuk-header" role="banner" data-module="govuk-header">
2
+ <a href="#main-content" class="govuk-skip-link">Skip to main content</a>
3
+
2
4
  <div class="govuk-header__container govuk-width-container">
3
5
  <div class="govuk-header__logo">
4
6
  <a href="/" class="govuk-header__link govuk-header__link--homepage">
@@ -44,7 +44,7 @@
44
44
  </dd>
45
45
  <dd class="govuk-summary-list__actions">
46
46
  <%= link_to(
47
- change_answer_path(url: page_answers_presenter.url),
47
+ editable? ? '#' : change_answer_path(url: page_answers_presenter.url),
48
48
  class: 'govuk-link'
49
49
  ) do %>
50
50
  Change<span class="govuk-visually-hidden"> Your answer for <%= page_answers_presenter.humanised_title %></span>
@@ -346,12 +346,20 @@
346
346
  "url": "/check-answers",
347
347
  "components": [
348
348
  {
349
+ "_uuid": "256291c2-8ffa-4bda-8282-88e0724ccd10",
349
350
  "_id": "check-answers_content_1",
350
351
  "_type": "content",
351
352
  "content": "Check yourself before you wreck yourself."
352
353
  }
353
354
  ],
354
- "extra_components": []
355
+ "extra_components": [
356
+ {
357
+ "_uuid": "09961c6a-29f8-4d4f-a6d2-af00cff15536",
358
+ "_id": "check-answers_content_1",
359
+ "_type": "content",
360
+ "content": "Take the cannoli."
361
+ }
362
+ ]
355
363
  },
356
364
  {
357
365
  "_uuid": "b238a22f-c180-48d0-a7d9-8aad2036f1f2",
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.28.3'.freeze
2
+ VERSION = '0.28.8'.freeze
3
3
  end
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.28.3
4
+ version: 0.28.8
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-04-14 00:00:00.000000000 Z
11
+ date: 2021-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder