metadata_presenter 2.3.3 → 2.4.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 +4 -4
- data/app/controllers/metadata_presenter/answers_controller.rb +4 -2
- data/app/controllers/metadata_presenter/engine_controller.rb +8 -0
- data/app/models/metadata_presenter/expression.rb +2 -2
- data/app/models/metadata_presenter/next_page.rb +39 -3
- data/app/views/metadata_presenter/page/checkanswers.html.erb +1 -1
- data/app/views/metadata_presenter/page/start.html.erb +2 -1
- data/default_text/content.json +2 -1
- data/lib/metadata_presenter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e32a28102541813aa8d6576cafdaa6fb3b4897daee023f0e52d80b1c98c3266f
|
4
|
+
data.tar.gz: 2001211cd3395cff6b2dc4d4f806f7055267c0a448d4316a5da6998d1ebe5295
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40bbe63a448710146762e167f0abc415e39028d1e279bdf72aa989376abbae4881d56d2cfbcc065805541f6a340a39349a7d5ccb3efd9b6444b803ea5d21ebfc
|
7
|
+
data.tar.gz: 48902563f8e43de68352ce31c47d554493a4add994649c54d1933062a7cec78c7334c20debf05fea827f84dd825bf16bb1c1b34fa033733e877d964c94f3c2a2
|
@@ -3,6 +3,7 @@ module MetadataPresenter
|
|
3
3
|
before_action :check_page_exists
|
4
4
|
|
5
5
|
def create
|
6
|
+
@previous_answers = reload_user_data.deep_dup
|
6
7
|
@page_answers = PageAnswers.new(page, answers_params)
|
7
8
|
|
8
9
|
upload_files if upload?
|
@@ -28,8 +29,9 @@ module MetadataPresenter
|
|
28
29
|
next_page = NextPage.new(
|
29
30
|
service: service,
|
30
31
|
session: session,
|
31
|
-
user_data:
|
32
|
-
current_page_url: page_url
|
32
|
+
user_data: reload_user_data,
|
33
|
+
current_page_url: page_url,
|
34
|
+
previous_answers: @previous_answers
|
33
35
|
).find
|
34
36
|
|
35
37
|
if next_page.present?
|
@@ -5,6 +5,14 @@ module MetadataPresenter
|
|
5
5
|
helper MetadataPresenter::ApplicationHelper
|
6
6
|
default_form_builder GOVUKDesignSystemFormBuilder::FormBuilder
|
7
7
|
|
8
|
+
def reload_user_data
|
9
|
+
if defined? super
|
10
|
+
super
|
11
|
+
else
|
12
|
+
load_user_data
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
8
16
|
def back_link
|
9
17
|
previous_page = PreviousPage.new(
|
10
18
|
service: service,
|
@@ -7,11 +7,11 @@ module MetadataPresenter
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def expression_page
|
10
|
-
service.find_page_by_uuid(page)
|
10
|
+
@expression_page ||= service.find_page_by_uuid(page)
|
11
11
|
end
|
12
12
|
|
13
13
|
def expression_component
|
14
|
-
expression_page.find_component_by_uuid(component)
|
14
|
+
@expression_component ||= expression_page.find_component_by_uuid(component)
|
15
15
|
end
|
16
16
|
|
17
17
|
def expression_field
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module MetadataPresenter
|
2
2
|
class NextPage
|
3
3
|
include ActiveModel::Model
|
4
|
-
attr_accessor :service, :session, :user_data, :current_page_url
|
4
|
+
attr_accessor :service, :session, :user_data, :current_page_url, :previous_answers
|
5
5
|
|
6
6
|
def find
|
7
7
|
return check_answers_page if return_to_check_your_answer?
|
@@ -11,17 +11,53 @@ module MetadataPresenter
|
|
11
11
|
else
|
12
12
|
service.find_page_by_uuid(current_page_flow.default_next)
|
13
13
|
end
|
14
|
+
ensure
|
15
|
+
session[:return_to_check_your_answer] = nil
|
14
16
|
end
|
15
17
|
|
16
18
|
private
|
17
19
|
|
18
20
|
def check_answers_page
|
19
|
-
session[:return_to_check_your_answer] = nil
|
20
21
|
service.pages.find { |page| page.type == 'page.checkanswers' }
|
21
22
|
end
|
22
23
|
|
23
24
|
def return_to_check_your_answer?
|
24
|
-
session[:return_to_check_your_answer].present?
|
25
|
+
session[:return_to_check_your_answer].present? &&
|
26
|
+
components_not_used_for_branching_and_answers_unchanged?
|
27
|
+
end
|
28
|
+
|
29
|
+
def components_not_used_for_branching_and_answers_unchanged?
|
30
|
+
components_not_used_for_branching? && answers_unchanged?
|
31
|
+
end
|
32
|
+
|
33
|
+
def components_not_used_for_branching?
|
34
|
+
expressions.none? { |expression| component_ids.include?(expression) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def answers_unchanged?
|
38
|
+
components = current_page_components.select do |component|
|
39
|
+
component.uuid.in?(expressions.map(&:component))
|
40
|
+
end
|
41
|
+
|
42
|
+
components.all? do |component|
|
43
|
+
user_data[component.id] == previous_answers[component.id]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def component_ids
|
48
|
+
current_page_components.map(&:id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def current_page_components
|
52
|
+
current_page.components
|
53
|
+
end
|
54
|
+
|
55
|
+
def expressions
|
56
|
+
collection = service.branches.map do |branch|
|
57
|
+
branch.conditionals.map(&:expressions)
|
58
|
+
end
|
59
|
+
|
60
|
+
collection.flatten
|
25
61
|
end
|
26
62
|
|
27
63
|
def conditionals?
|
@@ -17,7 +17,8 @@
|
|
17
17
|
<% if @page.before_you_start %>
|
18
18
|
<div class="fb-editable"
|
19
19
|
data-fb-content-id="page[before_you_start]"
|
20
|
-
data-fb-content-type="content"
|
20
|
+
data-fb-content-type="content"
|
21
|
+
data-fb-default-text="<%= default_text('before_you_start') %>">
|
21
22
|
<%= to_html(@page.before_you_start) %>
|
22
23
|
</div>
|
23
24
|
<%- end %>
|
data/default_text/content.json
CHANGED
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.
|
4
|
+
version: 2.4.0
|
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-08
|
11
|
+
date: 2021-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_design_system_formbuilder
|