metadata_presenter 2.15.0 → 2.15.1

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: 403f05545513e03fa74a28791ce736ec7cde6812e27f412ba8c60f8b18f8766c
4
- data.tar.gz: 2f8eddc4cb7cbb664d3b7577f56c50fe6a6e27326aa1bf5ef449eaec66940b78
3
+ metadata.gz: c872a270c9f0dcdaeda241c5f0d2a09d7b01f4f13334d191801f13b6026bca1d
4
+ data.tar.gz: 7da6c96aec0df8801aef5cf1e4d82ae39cfefd417fa47d26cb239a1c3ccd08b9
5
5
  SHA512:
6
- metadata.gz: 627b8dc27af8939370194ce5a7bd753da8f7213f147b1140698b4a9f7e22f087722975293d7dee622abc983a612be4d877b71be4b9655fb58f7f620aab6c5c7b
7
- data.tar.gz: 2a8c603f96b6692d851773db995a34b2ad232f60c766126b0ef5063531d5faad96572f8c576ebbd13a3c50aa06a8fb9f66773355355e1325b6be564327e3823e
6
+ metadata.gz: 24ee1c3b678200fce8eded2be159ea94cc27efed191e542ae0874f141896b5fdea8e6f7355547df367a39319aa6673f6ab22079c3dcb245d87202d33117d8819
7
+ data.tar.gz: d1a4b738bff3e02a61e6e76a3d5c90c32540e084c36faa874e98d8715c1db5cfe0a016023684a5f2e18a7a377acd4b24b6bfcef7a36869b15bde759bb176d13a
@@ -19,7 +19,7 @@ module MetadataPresenter
19
19
 
20
20
  class Grid
21
21
  include BranchDestinations
22
- attr_reader :start_from
22
+ attr_reader :service, :start_from
23
23
 
24
24
  def initialize(service, start_from: nil, main_flow: [])
25
25
  @service = service
@@ -67,9 +67,13 @@ module MetadataPresenter
67
67
  ordered_pages.map(&:uuid)
68
68
  end
69
69
 
70
+ def show_warning?
71
+ checkanswers_warning.show_warning? || confirmation_warning.show_warning?
72
+ end
73
+
70
74
  private
71
75
 
72
- attr_reader :service, :main_flow
76
+ attr_reader :main_flow
73
77
  attr_accessor :ordered, :traversed, :routes, :coordinates
74
78
 
75
79
  def route_from_start
@@ -277,46 +281,21 @@ module MetadataPresenter
277
281
  # Include a warning if a service does not have a CYA or Confirmation page in the
278
282
  # main flow. The warning should always be in the first row, last column.
279
283
  def insert_warning
280
- if cya_and_confirmation_pages_not_in_service? ||
281
- cya_and_confirmation_pages_detached?
282
- @ordered.append([MetadataPresenter::Warning.new])
283
- end
284
- end
285
-
286
- def cya_and_confirmation_pages_not_in_service?
287
- (checkanswers_not_in_service? && confirmation_not_in_service?) ||
288
- checkanswers_not_in_service? ||
289
- confirmation_not_in_service?
290
- end
291
-
292
- def checkanswers_not_in_service?
293
- service.checkanswers_page.blank?
284
+ @ordered.append([MetadataPresenter::Warning.new]) if show_warning?
294
285
  end
295
286
 
296
- def confirmation_not_in_service?
297
- service.confirmation_page.blank?
287
+ def checkanswers_warning
288
+ MetadataPresenter::PageWarning.new(
289
+ page: service.checkanswers_page,
290
+ main_flow_uuids: flow_uuids
291
+ )
298
292
  end
299
293
 
300
- def cya_and_confirmation_pages_detached?
301
- (checkanswers_detached? && confirmation_detached?) ||
302
- checkanswers_detached? ||
303
- confirmation_detached?
304
- end
305
-
306
- def checkanswers_detached?
307
- if service.checkanswers_page.present?
308
- uuid = service.checkanswers_page.uuid
309
- position = coordinates.positions[uuid]
310
- detached?(position)
311
- end
312
- end
313
-
314
- def confirmation_detached?
315
- if service.confirmation_page.present?
316
- uuid = service.confirmation_page.uuid
317
- position = coordinates.positions[uuid]
318
- detached?(position)
319
- end
294
+ def confirmation_warning
295
+ MetadataPresenter::PageWarning.new(
296
+ page: service.confirmation_page,
297
+ main_flow_uuids: flow_uuids
298
+ )
320
299
  end
321
300
 
322
301
  # Any destinations exiting the branch that have not already been traversed.
@@ -0,0 +1,24 @@
1
+ module MetadataPresenter
2
+ class PageWarning
3
+ def initialize(page:, main_flow_uuids:)
4
+ @page = page
5
+ @main_flow_uuids = main_flow_uuids
6
+ end
7
+
8
+ def show_warning?
9
+ missing? || detached?
10
+ end
11
+
12
+ def missing?
13
+ page.blank?
14
+ end
15
+
16
+ def detached?
17
+ main_flow_uuids.exclude?(page&.uuid)
18
+ end
19
+
20
+ private
21
+
22
+ attr_reader :page, :main_flow_uuids
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '2.15.0'.freeze
2
+ VERSION = '2.15.1'.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: 2.15.0
4
+ version: 2.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Forms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-31 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder
@@ -295,6 +295,7 @@ files:
295
295
  - app/models/metadata_presenter/offline_upload_adapter.rb
296
296
  - app/models/metadata_presenter/page.rb
297
297
  - app/models/metadata_presenter/page_answers.rb
298
+ - app/models/metadata_presenter/page_warning.rb
298
299
  - app/models/metadata_presenter/previous_page.rb
299
300
  - app/models/metadata_presenter/route.rb
300
301
  - app/models/metadata_presenter/row_number.rb