metadata_presenter 0.1.8 → 0.2.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: bc59d58800c23dd0836423c3d0f02b76516db564afd6343d989291f23cddce3b
4
- data.tar.gz: '078b3a6ab2888fb5a1f6f6ba8f925af66713469787af6991df362e1c19fcf245'
3
+ metadata.gz: 4502db8905d70f018c8229e2fffb8f1c392415ee4ee8214bfc9bde851e563c8e
4
+ data.tar.gz: ddaacc9a8520bdb2df646150e3f10001d06c9865a0008e68b8e117320b8e0d85
5
5
  SHA512:
6
- metadata.gz: cdee22833e4d58cad16595fcd5b664be8b28641a4c0aeed6b7f5cb19f06a481330bfbb53a429442d8a72faf70a4dec97bffbdea0f368774d472377690635fdde
7
- data.tar.gz: 7afb80b5201bdf97117c79bb604eba016207b4ec2caf7bad7ebf64a6426fdb51b2ccf4211bda81c8de0e33bd43d50dea6369a84cecf3987632191e6913037f4b
6
+ metadata.gz: f21f6779bf1c90b4a09a7042f2117b5b2712fc72d2eb331226bd6142452abf2a6eac9f1c3b221c12bef9c2d46584f6f514b4918ba3f90381ffaf6d6daebbf9a4
7
+ data.tar.gz: dd6bcd473cdd65ace450ec00e1c4431d7844bf99201471e330752254b2eb2193cf15ad2ed0936a31c5483b97a3b7c4e4924c0b63d1d4a6aea21a5905279d530c
data/README.md CHANGED
@@ -47,6 +47,7 @@ that you need to write the following methods in your controller:
47
47
 
48
48
  1. save_user_data
49
49
  2. load_user_data
50
+ 3. editable?
50
51
 
51
52
  The user answers can be accessed via `params[:answers]`.
52
53
 
@@ -63,6 +64,18 @@ An example of implementation:
63
64
  end
64
65
  ```
65
66
 
67
+ The `editable?` is related if the pages and components could be editable in the
68
+ mountable app:
69
+
70
+ ```ruby
71
+ class MyAwesomeController
72
+ def editable?
73
+ false
74
+ end
75
+ helper_method :editable?
76
+ end
77
+ ```
78
+
66
79
  ## Generate documentation
67
80
 
68
81
  Run `rake doc` and open the doc/index.html
@@ -1,5 +1,5 @@
1
1
  class MetadataPresenter::Component < MetadataPresenter::Metadata
2
2
  def to_partial_path
3
- "component/#{type}"
3
+ "metadata_presenter/component/#{type}"
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ module MetadataPresenter
9
9
  def find(session:, current_page_url:)
10
10
  if session[:return_to_check_you_answer].present?
11
11
  session[:return_to_check_you_answer] = nil
12
- service.pages.find { |page| page.type == 'page.summary' }
12
+ service.pages.find { |page| page.type == 'page.checkanswers' }
13
13
  else
14
14
  service.next_page(from: current_page_url)
15
15
  end
@@ -10,6 +10,10 @@ module MetadataPresenter
10
10
  id == other.id if other.respond_to? :id
11
11
  end
12
12
 
13
+ def editable_attributes
14
+ self.to_h.reject { |k,_| k.in?([:_id, :_type, :steps]) }
15
+ end
16
+
13
17
  def components
14
18
  metadata.components&.map do |component|
15
19
  MetadataPresenter::Component.new(component)
@@ -3,5 +3,5 @@
3
3
  label: { text: component.label },
4
4
  hint: { text: component.hint },
5
5
  name: "answers[#{component.name}]",
6
- value: @user_data[component.name]
6
+ value: @user_data ? @user_data[component.name] : nil
7
7
  %>
@@ -25,7 +25,7 @@
25
25
  <% end %>
26
26
 
27
27
  <%= form_for @page, url: reserved_submissions_path do |f| %>
28
- <div data-block-id="page.summary.answers" data-block-type="answers">
28
+ <div data-block-id="page.checkanswers.answers" data-block-type="answers">
29
29
  <dl class="fb-block fb-block-answers govuk-summary-list">
30
30
  <% @service.pages.each do |page| %>
31
31
  <% Array(page.components).each do |component| %>
@@ -11,7 +11,7 @@
11
11
  <%= render partial: component, locals: { component: component, f: f } %>
12
12
  <% end %>
13
13
 
14
- <%= f.govuk_submit %>
14
+ <%= f.govuk_submit(disabled: editable?) %>
15
15
  <% end %>
16
16
  </div>
17
17
  </div>
@@ -26,7 +26,7 @@
26
26
  <%- end %>
27
27
 
28
28
  <%= form_tag(reserved_answers_path(@page.url), method: :post) do %>
29
- <button class='govuk-button govuk-button--start govuk-!-margin-top-2'>
29
+ <button <%= 'disabled' if editable? %> class='govuk-button govuk-button--start govuk-!-margin-top-2'>
30
30
  Start
31
31
  <svg class="govuk-button__start-icon" xmlns="http://www.w3.org/2000/svg" width="17.5" height="19" viewBox="0 0 33 40" aria-hidden="true" focusable="false">
32
32
  <path fill="currentColor" d="M0 0h13l20 20-20 20H0l20-20z" />
@@ -1,7 +1,8 @@
1
1
  {
2
- "_id": "page.summary",
3
- "_type": "page.summary",
2
+ "_id": "page.checkanswers",
3
+ "_type": "page.checkanswers",
4
4
  "heading": "Check your answers",
5
5
  "send_heading": "Now send your application",
6
- "send_body": "By submitting this application you confirm that, to the best of your knowledge, the details you are providing are correct."
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
8
  }
@@ -122,7 +122,7 @@
122
122
  },
123
123
  {
124
124
  "_id": "page._check-answers",
125
- "_type": "page.summary",
125
+ "_type": "page.checkanswers",
126
126
  "body": "Optional content",
127
127
  "heading": "Review your answer",
128
128
  "lede": "First paragraph",
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.1.8'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -1,12 +1,12 @@
1
1
  {
2
- "$id": "http://gov.uk/schema/v1.0.0/page/summary",
3
- "_name": "page.summary",
2
+ "$id": "http://gov.uk/schema/v1.0.0/page/checkanswers",
3
+ "_name": "page.checkanswers",
4
4
  "title": "Check answers",
5
5
  "description": "Let users check and change their answers before submitting",
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "_type": {
9
- "const": "page.summary"
9
+ "const": "page.checkanswers"
10
10
  },
11
11
  "section_heading": {
12
12
  "title": "Section heading",
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.1.8
4
+ version: 0.2.0
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-01-20 00:00:00.000000000 Z
11
+ date: 2021-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -247,20 +247,20 @@ files:
247
247
  - app/views/layouts/metadata_presenter/application.html.erb
248
248
  - app/views/metadata_presenter/component/_text.html.erb
249
249
  - app/views/metadata_presenter/header/show.html.erb
250
+ - app/views/metadata_presenter/page/checkanswers.html.erb
250
251
  - app/views/metadata_presenter/page/confirmation.html.erb
251
252
  - app/views/metadata_presenter/page/form.html.erb
252
253
  - app/views/metadata_presenter/page/singlequestion.html.erb
253
254
  - app/views/metadata_presenter/page/start.html.erb
254
- - app/views/metadata_presenter/page/summary.html.erb
255
255
  - config/initializers/default_metadata.rb
256
256
  - config/initializers/schemas.rb
257
257
  - config/routes.rb
258
258
  - default_metadata/component/text.json
259
259
  - default_metadata/config/meta.json
260
260
  - default_metadata/config/service.json
261
+ - default_metadata/page/checkanswers.json
261
262
  - default_metadata/page/confirmation.json
262
263
  - default_metadata/page/singlequestion.json
263
- - default_metadata/page/summary.json
264
264
  - default_metadata/service/base.json
265
265
  - default_metadata/string/error.max_length.json
266
266
  - default_metadata/string/error.min_length.json
@@ -308,9 +308,9 @@ files:
308
308
  - schemas/definition/width_class.json
309
309
  - schemas/errors/errors.json
310
310
  - schemas/link/link.json
311
+ - schemas/page/checkanswers.json
311
312
  - schemas/page/confirmation.json
312
313
  - schemas/page/start.json
313
- - schemas/page/summary.json
314
314
  - schemas/request/service.json
315
315
  - schemas/service/base.json
316
316
  - schemas/service/configuration.json