metadata_presenter 0.23.0 → 0.24.0

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: d1b2ff20300f6b643a7c83f8885c640b375babed55cd30798ca079bbd67b0506
4
- data.tar.gz: ba841ff80433e9ff917a2d006eca7a53f618193640815e7594415a8945003c57
3
+ metadata.gz: '0229789953adde481420a7894d10b46a960c916743ccad833e3478d7750f5f52'
4
+ data.tar.gz: 186e22679a9def093e40479662f4c9417251d18f63c10edb17a20a0555dc6b74
5
5
  SHA512:
6
- metadata.gz: 1298d445703206b693fb9153255362433a4476bca5e982aac89a847c8a902013d066e729bdf645ba48fd0b5f4a780b972a94a14740b3db8ba55879439e6fd33f
7
- data.tar.gz: 12439df97cda7c675df1f53ebb4151ebdfc64509c64ce08b466c9f16ed67b2f02fb06e9777458c5da37bfc27c54ad5f4368372f07c56292a624d2d36f24196ef
6
+ metadata.gz: da02ebfa513bb1f68f74a682d292fb67502f74a29f9cd2f9d3524f92a2a21a87ad157c2d717e01c8e462fac0ea26a05cb00d4aa6c7c3a2aedc228b7e5735ee19
7
+ data.tar.gz: 0ea7f87eb28078007c0500e047856793ac5cdcd8a239d1934c798b279c90903a9f1197d4e5ee89e6d489b8b218ad9c64fe78d9d28b2d1189a5dcef89763b23b5
@@ -1,4 +1,7 @@
1
1
  module MetadataPresenter
2
+ class PageComponentsNotDefinedError < StandardError
3
+ end
4
+
2
5
  class Page < MetadataPresenter::Metadata
3
6
  include ActiveModel::Validations
4
7
 
@@ -27,5 +30,28 @@ module MetadataPresenter
27
30
  def template
28
31
  "metadata_presenter/#{type.gsub('.', '/')}"
29
32
  end
33
+
34
+ def input_components
35
+ page_components(raw_type)[:input_components]
36
+ end
37
+
38
+ def content_components
39
+ page_components(raw_type)[:content_components]
40
+ end
41
+
42
+ private
43
+
44
+ def page_components(page_type)
45
+ values = Rails.application.config.page_components[page_type]
46
+ if values.blank?
47
+ raise PageComponentsNotDefinedError, "No page components defined for #{page_type} in config initialiser"
48
+ end
49
+
50
+ values
51
+ end
52
+
53
+ def raw_type
54
+ type.gsub('page.', '')
55
+ end
30
56
  end
31
57
  end
@@ -18,3 +18,23 @@
18
18
  %>
19
19
  </div>
20
20
  <% end %>
21
+
22
+ <% if editable? %>
23
+ <ul class="component-activated-menu govuk-navigation editor-button govuk-button fb-govuk-button">
24
+ <% if input_components.present? %>
25
+ <ul>
26
+ <% input_components.each do |component| %>
27
+ <li><a href="#add-input-component" data-component-type="<%= component %>"></a>+ Add <%= component %> component</li>
28
+ <% end %>
29
+ </ul>
30
+ <% end %>
31
+
32
+ <% if content_components.present? %>
33
+ <ul>
34
+ <% content_components.each do |component| %>
35
+ <li><a href="#add-content-component" data-component-type="<%= component %>">+ Add <%= component %> component</a></li>
36
+ <% end %>
37
+ </ul>
38
+ <% end %>
39
+ </ul>
40
+ <% end %>
@@ -12,6 +12,17 @@
12
12
  <% end %>
13
13
 
14
14
  <%= form_for @page, url: reserved_submissions_path do |f| %>
15
+
16
+ <%= render partial: 'metadata_presenter/component/components',
17
+ locals: {
18
+ f: f,
19
+ components: @page.extra_components,
20
+ tag: nil,
21
+ classes: nil,
22
+ input_components: @page.input_components,
23
+ content_components: @page.content_components
24
+ } %>
25
+
15
26
  <div data-block-id="page.checkanswers.answers" data-block-type="answers">
16
27
  <dl class="fb-block fb-block-answers govuk-summary-list">
17
28
  <% pages_presenters.each do |page_answers_presenters| %>
@@ -69,7 +80,9 @@
69
80
  f: f,
70
81
  components: @page.components,
71
82
  tag: nil,
72
- classes: nil
83
+ classes: nil,
84
+ input_components: @page.input_components,
85
+ content_components: @page.content_components
73
86
  } %>
74
87
 
75
88
  <button <%= 'disabled' if editable? %> data-prevent-double-click="true" class="fb-block fb-block-actions govuk-button" data-module="govuk-button" data-block-id="actions" data-block-type="actions">
@@ -19,5 +19,7 @@
19
19
  f: nil,
20
20
  components: @page.components,
21
21
  tag: nil,
22
- classes: nil
22
+ classes: nil,
23
+ input_components: @page.input_components,
24
+ content_components: @page.content_components
23
25
  } %>
@@ -23,7 +23,9 @@
23
23
  f: f,
24
24
  components: @page.components,
25
25
  tag: nil,
26
- classes: nil
26
+ classes: nil,
27
+ input_components: @page.input_components,
28
+ content_components: @page.content_components
27
29
  } %>
28
30
 
29
31
  <%= f.govuk_submit(disabled: editable?) %>
@@ -12,7 +12,9 @@
12
12
  f: f,
13
13
  components: @page.components,
14
14
  tag: :h2,
15
- classes: 'govuk-heading-m govuk-!-margin-top-8'
15
+ classes: 'govuk-heading-m govuk-!-margin-top-8',
16
+ input_components: @page.input_components,
17
+ content_components: @page.content_components
16
18
  }
17
19
  %>
18
20
 
@@ -0,0 +1,19 @@
1
+ Rails.application.config.page_components =
2
+ ActiveSupport::HashWithIndifferentAccess.new({
3
+ checkanswers: {
4
+ input_components: %w(),
5
+ content_components: %w(content)
6
+ },
7
+ confirmation: {
8
+ input_components: %w(),
9
+ content_components: %w(content)
10
+ },
11
+ content: {
12
+ input_components: %w(),
13
+ content_components: %w(content)
14
+ },
15
+ multiplequestions: {
16
+ input_components: %w(text textarea number date radios checkboxes),
17
+ content_components: %w(content)
18
+ }
19
+ })
@@ -4,5 +4,6 @@
4
4
  "heading": "Check your answers",
5
5
  "send_heading": "Now send your application",
6
6
  "send_body": "By submitting this application you confirm that, to the best of your knowledge, the details you are providing are correct.",
7
- "components": []
7
+ "components": [],
8
+ "extra_components": []
8
9
  }
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.23.0'.freeze
2
+ VERSION = '0.24.0'.freeze
3
3
  end
@@ -43,6 +43,14 @@
43
43
  "items": {
44
44
  "$ref": "component.content"
45
45
  }
46
+ },
47
+ "extra_components": {
48
+ "title": "Extra Components",
49
+ "description": "More form or content elements used on the page",
50
+ "type": "array",
51
+ "items": {
52
+ "$ref": "component.content"
53
+ }
46
54
  }
47
55
  },
48
56
  "required": [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metadata_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Online
@@ -303,6 +303,7 @@ files:
303
303
  - app/views/metadata_presenter/page/start.html.erb
304
304
  - config/initializers/default_metadata.rb
305
305
  - config/initializers/default_text.rb
306
+ - config/initializers/page_components.rb
306
307
  - config/initializers/schemas.rb
307
308
  - config/routes.rb
308
309
  - default_metadata/component/checkboxes.json