metadata_presenter 0.23.0 → 0.24.0

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