metadata_presenter 0.11.0 → 0.13.3
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/engine_controller.rb +3 -1
- data/app/controllers/metadata_presenter/pages_controller.rb +9 -0
- data/app/helpers/metadata_presenter/application_helper.rb +0 -26
- data/app/models/metadata_presenter/date_field.rb +19 -0
- data/app/models/metadata_presenter/page_answers.rb +24 -2
- data/app/presenters/metadata_presenter/page_answers_presenter.rb +57 -0
- data/app/validators/metadata_presenter/base_validator.rb +8 -3
- data/app/validators/metadata_presenter/date_validator.rb +14 -0
- data/app/views/metadata_presenter/component/_checkboxes.html.erb +9 -0
- data/app/views/metadata_presenter/component/_date.html.erb +5 -0
- data/app/views/metadata_presenter/header/show.html.erb +1 -1
- data/app/views/metadata_presenter/page/checkanswers.html.erb +18 -20
- data/default_metadata/component/checkboxes.json +24 -0
- data/default_metadata/component/date.json +12 -0
- data/default_metadata/component/radios.json +18 -3
- data/default_metadata/definition/checkbox.json +7 -0
- data/default_metadata/definition/radio.json +2 -1
- data/default_metadata/string/error.date.json +6 -0
- data/fixtures/version.json +65 -0
- data/lib/metadata_presenter/version.rb +1 -1
- data/schemas/component/checkboxes.json +33 -0
- data/schemas/component/date.json +48 -0
- data/schemas/definition/checkbox.json +46 -0
- data/schemas/validations/validations.json +9 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f61c08ab0dfb4a0f2d07168015012f35efd105f2bcaea0d9ce547bd291eeabd5
|
4
|
+
data.tar.gz: b602b6f0043d681f73e09720c0fdc61b308a751536b7b5df11e4023fdbd470c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4a4278f4867f2edf69b87097f0bd384e37f85fcf059c56884c8e52ce19f2f045b9ee294ab173387e427d6dee022ceb6141970ce64ea1a35f15017fbd7a6a084
|
7
|
+
data.tar.gz: bace9ee8b5f8c5226819c5f61292612074b7fa140d51fdae77aaf6ea210b86953935c04e71300dda35239b5a1770d8df436bc8a44e635533fcd2b30b106c9134
|
@@ -8,7 +8,9 @@ module MetadataPresenter
|
|
8
8
|
def back_link
|
9
9
|
return if @page.blank?
|
10
10
|
|
11
|
-
|
11
|
+
previous_page = service.previous_page(current_page: @page)&.url
|
12
|
+
|
13
|
+
@back_link ||= File.join(request.script_name, previous_page) if previous_page
|
12
14
|
end
|
13
15
|
helper_method :back_link
|
14
16
|
|
@@ -11,5 +11,14 @@ module MetadataPresenter
|
|
11
11
|
not_found
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def page_answers_presenters
|
16
|
+
PageAnswersPresenter.map(
|
17
|
+
view: view_context,
|
18
|
+
pages: service.pages,
|
19
|
+
answers: @user_data
|
20
|
+
)
|
21
|
+
end
|
22
|
+
helper_method :page_answers_presenters
|
14
23
|
end
|
15
24
|
end
|
@@ -14,32 +14,6 @@ module MetadataPresenter
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
## Display user answers on the view
|
18
|
-
## When the user doesn't answered yet the component will be blank
|
19
|
-
# or with data otherwise, so doing the if in every output is not
|
20
|
-
# pratical.
|
21
|
-
#
|
22
|
-
# The below example search for 'first_name' in the user data instance
|
23
|
-
# variable as long your load_user_data in the controller sets the variable.
|
24
|
-
#
|
25
|
-
# @example
|
26
|
-
# <%=a 'first_name' %>
|
27
|
-
#
|
28
|
-
def a(component_key)
|
29
|
-
if @user_data.present?
|
30
|
-
@user_data[component_key]
|
31
|
-
end
|
32
|
-
end
|
33
|
-
alias answer a
|
34
|
-
|
35
|
-
## Display user answers on the view formatted.
|
36
|
-
##
|
37
|
-
def formatted_answer(component_key)
|
38
|
-
user_answer = answer(component_key)
|
39
|
-
|
40
|
-
simple_format(user_answer) if user_answer.present?
|
41
|
-
end
|
42
|
-
|
43
17
|
# Renders markdown given a text.
|
44
18
|
#
|
45
19
|
# @example
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module MetadataPresenter
|
2
|
+
class DateField
|
3
|
+
attr_reader :day, :month, :year
|
4
|
+
|
5
|
+
def initialize(day:, month:, year:)
|
6
|
+
@day = day
|
7
|
+
@month = month
|
8
|
+
@year = year
|
9
|
+
end
|
10
|
+
|
11
|
+
def present?
|
12
|
+
!blank?
|
13
|
+
end
|
14
|
+
|
15
|
+
def blank?
|
16
|
+
@day.blank? || @month.blank? || @year.blank?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -17,11 +17,33 @@ module MetadataPresenter
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def respond_to_missing?(method_name, include_private = false)
|
20
|
-
|
20
|
+
method_name.to_s.in?(components.map(&:id))
|
21
21
|
end
|
22
22
|
|
23
23
|
def method_missing(method_name, *args, &block)
|
24
|
-
|
24
|
+
component = components.find { |component| component.id == method_name.to_s }
|
25
|
+
|
26
|
+
if component && component.type == 'date'
|
27
|
+
date_answer(component.id)
|
28
|
+
else
|
29
|
+
answers[method_name.to_s]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def date_answer(component_id)
|
34
|
+
date = raw_date_answer(component_id)
|
35
|
+
|
36
|
+
MetadataPresenter::DateField.new(day: date[0], month: date[1], year: date[2])
|
37
|
+
end
|
38
|
+
|
39
|
+
def raw_date_answer(component_id)
|
40
|
+
[
|
41
|
+
GOVUKDesignSystemFormBuilder::Elements::Date::SEGMENTS[:day],
|
42
|
+
GOVUKDesignSystemFormBuilder::Elements::Date::SEGMENTS[:month],
|
43
|
+
GOVUKDesignSystemFormBuilder::Elements::Date::SEGMENTS[:year]
|
44
|
+
].map do |segment|
|
45
|
+
answers["#{component_id.to_s}(#{segment})"]
|
46
|
+
end
|
25
47
|
end
|
26
48
|
|
27
49
|
private
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module MetadataPresenter
|
2
|
+
class PageAnswersPresenter
|
3
|
+
def self.map(view:, pages:, answers:)
|
4
|
+
pages.map do |page|
|
5
|
+
Array(page.components).map do |component|
|
6
|
+
new(
|
7
|
+
view: view,
|
8
|
+
component: component,
|
9
|
+
page: page,
|
10
|
+
answers: answers
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end.flatten
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_reader :view, :component, :page, :answers
|
17
|
+
delegate :url, to: :page
|
18
|
+
delegate :humanised_title, to: :component
|
19
|
+
|
20
|
+
def initialize(view:, component:, page:, answers:)
|
21
|
+
@view = view
|
22
|
+
@component = component
|
23
|
+
@page = page
|
24
|
+
@answers = answers
|
25
|
+
|
26
|
+
@page_answers = PageAnswers.new(page, answers)
|
27
|
+
end
|
28
|
+
|
29
|
+
def answer
|
30
|
+
value = @page_answers.send(component.id)
|
31
|
+
|
32
|
+
return '' if value.blank?
|
33
|
+
if self.class.private_method_defined?(component.type.to_sym)
|
34
|
+
send(component.type.to_sym, value)
|
35
|
+
else
|
36
|
+
value
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def date(value)
|
43
|
+
I18n.l(
|
44
|
+
Date.civil(value.year.to_i, value.month.to_i, value.day.to_i),
|
45
|
+
format: '%d %B %Y'
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def textarea(value)
|
50
|
+
view.simple_format(value, {}, wrapper_tag: 'span')
|
51
|
+
end
|
52
|
+
|
53
|
+
def checkboxes(value)
|
54
|
+
value.reject(&:blank?).join("<br>").html_safe
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -38,7 +38,7 @@ module MetadataPresenter
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def valid?
|
41
|
-
return true if
|
41
|
+
return true if allow_blank?
|
42
42
|
|
43
43
|
if invalid_answer?
|
44
44
|
error_message = custom_error_message || default_error_message
|
@@ -63,7 +63,12 @@ module MetadataPresenter
|
|
63
63
|
# @return [String] user answer for the specific component
|
64
64
|
#
|
65
65
|
def user_answer
|
66
|
-
page_answers.send(component.name)
|
66
|
+
value = page_answers.send(component.name)
|
67
|
+
if component.type == 'checkboxes'
|
68
|
+
Array(value).reject(&:blank?)
|
69
|
+
else
|
70
|
+
value
|
71
|
+
end
|
67
72
|
end
|
68
73
|
|
69
74
|
# The default error message will be look using the schema key.
|
@@ -127,7 +132,7 @@ module MetadataPresenter
|
|
127
132
|
# @return [TrueClass]
|
128
133
|
#
|
129
134
|
def allow_blank?
|
130
|
-
|
135
|
+
user_answer.blank? && !self.class.name.demodulize.include?('RequiredValidator')
|
131
136
|
end
|
132
137
|
end
|
133
138
|
end
|
@@ -26,7 +26,7 @@
|
|
26
26
|
</div>
|
27
27
|
<% if service.service_name.present? %>
|
28
28
|
<div class="govuk-header__content">
|
29
|
-
<a href="
|
29
|
+
<a href="<%= root_path %>" class="govuk-header__link govuk-header__link--service-name">
|
30
30
|
<%= service.service_name %>
|
31
31
|
</a>
|
32
32
|
<% end %>
|
@@ -27,27 +27,25 @@
|
|
27
27
|
<%= form_for @page, url: reserved_submissions_path do |f| %>
|
28
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
|
-
<%
|
31
|
-
|
32
|
-
<
|
33
|
-
|
34
|
-
|
35
|
-
</dt>
|
30
|
+
<% page_answers_presenters.each do |page_answers_presenter| %>
|
31
|
+
<div class="govuk-summary-list__row">
|
32
|
+
<dt class="govuk-summary-list__key">
|
33
|
+
<%= page_answers_presenter.humanised_title %>
|
34
|
+
</dt>
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<% end %>
|
36
|
+
<dd class="govuk-summary-list__value">
|
37
|
+
<%= page_answers_presenter.answer %>
|
38
|
+
</dd>
|
39
|
+
<dd class="govuk-summary-list__actions">
|
40
|
+
<%= link_to(
|
41
|
+
change_answer_path(url: page_answers_presenter.url),
|
42
|
+
class: 'govuk-link'
|
43
|
+
) do %>
|
44
|
+
Change<span class="govuk-visually-hidden"> Your answer for <%= page_answers_presenter.humanised_title %></span>
|
45
|
+
<% end %>
|
46
|
+
</a>
|
47
|
+
</dd>
|
48
|
+
</div>
|
51
49
|
<% end %>
|
52
50
|
</dl>
|
53
51
|
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"_id": "component.checkboxes",
|
3
|
+
"_type": "checkboxes",
|
4
|
+
"errors": {},
|
5
|
+
"hint": "[Hint text (optional)]",
|
6
|
+
"items": [
|
7
|
+
{
|
8
|
+
"_id": "component_checkbox_1",
|
9
|
+
"_type": "checkbox",
|
10
|
+
"label": "Option",
|
11
|
+
"hint": "[Hint text (optional)]",
|
12
|
+
"value": "value-1"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"_id": "component_checkbox_2",
|
16
|
+
"_type": "checkbox",
|
17
|
+
"label": "Option",
|
18
|
+
"hint": "[Hint text (optional)]",
|
19
|
+
"value": "value-2"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"name": "component-name",
|
23
|
+
"legend": "Question"
|
24
|
+
}
|
@@ -2,8 +2,23 @@
|
|
2
2
|
"_id": "component.radios",
|
3
3
|
"_type": "radios",
|
4
4
|
"errors": {},
|
5
|
-
"hint": "
|
6
|
-
"items": [
|
5
|
+
"hint": "[Hint text (optional)]",
|
6
|
+
"items": [
|
7
|
+
{
|
8
|
+
"_id": "component_radio_1",
|
9
|
+
"_type": "radio",
|
10
|
+
"label": "Option",
|
11
|
+
"hint": "[Hint text (optional)]",
|
12
|
+
"value": "value-1"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"_id": "component_radio_2",
|
16
|
+
"_type": "radio",
|
17
|
+
"label": "Option",
|
18
|
+
"hint": "[Hint text (optional)]",
|
19
|
+
"value": "value-2"
|
20
|
+
}
|
21
|
+
],
|
7
22
|
"name": "component-name",
|
8
|
-
"legend": "
|
23
|
+
"legend": "Question"
|
9
24
|
}
|
data/fixtures/version.json
CHANGED
@@ -201,6 +201,71 @@
|
|
201
201
|
"heading": "Radio buttons",
|
202
202
|
"url": "/do-you-like-star-wars"
|
203
203
|
},
|
204
|
+
{
|
205
|
+
"_id": "page.holiday",
|
206
|
+
"url": "holiday",
|
207
|
+
"_type":"page.singlequestion",
|
208
|
+
"_uuid":"ff4557b2-486b-481e-9eef-f315718639e8",
|
209
|
+
"heading":"Question",
|
210
|
+
"components": [
|
211
|
+
{
|
212
|
+
"_id": "holiday_date_1",
|
213
|
+
"hint": "Component hint",
|
214
|
+
"name": "holiday_date_1",
|
215
|
+
"_type": "date",
|
216
|
+
"legend": "What is the day that you like to take holidays?",
|
217
|
+
"errors": {},
|
218
|
+
"date_type": "day-month-year",
|
219
|
+
"validation": {
|
220
|
+
"date": true,
|
221
|
+
"required": true
|
222
|
+
}
|
223
|
+
}
|
224
|
+
]
|
225
|
+
},
|
226
|
+
{
|
227
|
+
"_uuid": "7b748584-100e-4d81-a54a-5049190136cc",
|
228
|
+
"_id": "page.burgers",
|
229
|
+
"_type": "page.singlequestion",
|
230
|
+
"components": [
|
231
|
+
{
|
232
|
+
"_id": "burgers_checkboxes_1",
|
233
|
+
"_type": "checkboxes",
|
234
|
+
"errors": {},
|
235
|
+
"hint": "Select all that apply",
|
236
|
+
"legend": "What would you like on your burger?",
|
237
|
+
"items": [
|
238
|
+
{
|
239
|
+
"_id": "burgers_checkbox_1",
|
240
|
+
"_type": "checkbox",
|
241
|
+
"label": "Beef, cheese, tomato",
|
242
|
+
"hint": "Optional item hint",
|
243
|
+
"value": "beef-cheese-tomato"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"_id": "burgers_checkbox_2",
|
247
|
+
"_type": "checkbox",
|
248
|
+
"label": "Chicken, cheese, tomato",
|
249
|
+
"hint": "Optional item hint",
|
250
|
+
"value": "chicken-cheese-tomato"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
"_id": "burgers_checkbox_3",
|
254
|
+
"_type": "checkbox",
|
255
|
+
"label": "Mozzarella, cheddar, feta",
|
256
|
+
"hint": "Optional item hint",
|
257
|
+
"value": "mozzarella-cheddar-feta"
|
258
|
+
}
|
259
|
+
],
|
260
|
+
"name": "burgers_checkboxes_1",
|
261
|
+
"validation": {
|
262
|
+
"required": true
|
263
|
+
}
|
264
|
+
}
|
265
|
+
],
|
266
|
+
"heading": "Checkboxes",
|
267
|
+
"url": "/burgers"
|
268
|
+
},
|
204
269
|
{
|
205
270
|
"_uuid": "e819d0c2-7062-4997-89cf-44d26d098404",
|
206
271
|
"_id": "page._check-answers",
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/checkboxes",
|
3
|
+
"_name": "component.checkboxes",
|
4
|
+
"title": "Checkboxes",
|
5
|
+
"description": "Let users select one or more options from a list",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "checkboxes"
|
10
|
+
},
|
11
|
+
"items": {
|
12
|
+
"title": "Options",
|
13
|
+
"description": "Items that users can select",
|
14
|
+
"type": "array",
|
15
|
+
"items": {
|
16
|
+
"$ref": "definition.checkbox"
|
17
|
+
}
|
18
|
+
}
|
19
|
+
},
|
20
|
+
"allOf": [
|
21
|
+
{
|
22
|
+
"$ref": "definition.fieldset"
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"transforms": {
|
26
|
+
"namespace": {
|
27
|
+
"propagation": "items[?(@._type === 'checkbox')]"
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"required": [
|
31
|
+
"items"
|
32
|
+
]
|
33
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/date",
|
3
|
+
"_name": "component.date",
|
4
|
+
"title": "Date",
|
5
|
+
"description": "Let users enter an exact date",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "date"
|
10
|
+
},
|
11
|
+
"name": {
|
12
|
+
"inputType": "date"
|
13
|
+
},
|
14
|
+
"date_type": {
|
15
|
+
"title": "Date type",
|
16
|
+
"description": "The format for entering dates",
|
17
|
+
"type": "string",
|
18
|
+
"enum": [
|
19
|
+
"day-month-year",
|
20
|
+
"month-year",
|
21
|
+
"day-month",
|
22
|
+
"year"
|
23
|
+
],
|
24
|
+
"default": "day-month-year"
|
25
|
+
}
|
26
|
+
},
|
27
|
+
"allOf": [
|
28
|
+
{
|
29
|
+
"$ref": "definition.fieldset"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"$ref": "validations#/definitions/date_bundle"
|
33
|
+
}
|
34
|
+
],
|
35
|
+
"composite": [
|
36
|
+
"day",
|
37
|
+
"month",
|
38
|
+
"year"
|
39
|
+
],
|
40
|
+
"definitions": {
|
41
|
+
"date_type_enum": {
|
42
|
+
"day-month-year": "Day / Month / Year",
|
43
|
+
"month-year": "Month / Year",
|
44
|
+
"year": "Year",
|
45
|
+
"day-month": "Day / Month"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/checkbox",
|
3
|
+
"_name": "definition.checkbox",
|
4
|
+
"title": "Checkbox item",
|
5
|
+
"description": "Component that provides a checkbox item",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "checkbox"
|
10
|
+
},
|
11
|
+
"value": {
|
12
|
+
"default": "yes"
|
13
|
+
},
|
14
|
+
"label": {
|
15
|
+
"skipOptional": true
|
16
|
+
},
|
17
|
+
"hint": {
|
18
|
+
"title": "Hint text",
|
19
|
+
"description": "Text to help users understand an option - appears in grey under the label",
|
20
|
+
"type": "string",
|
21
|
+
"content": true
|
22
|
+
},
|
23
|
+
"conditional_component": {
|
24
|
+
"$ref": "definition.conditionalcomponent"
|
25
|
+
}
|
26
|
+
},
|
27
|
+
"allOf": [
|
28
|
+
{
|
29
|
+
"$ref": "definition.namespace"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"$ref": "definition.option"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"$ref": "definition.name"
|
36
|
+
}
|
37
|
+
],
|
38
|
+
"required": [
|
39
|
+
"label"
|
40
|
+
],
|
41
|
+
"transforms": {
|
42
|
+
"namespace": {
|
43
|
+
"propagation": "conditional_component"
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
@@ -25,6 +25,15 @@
|
|
25
25
|
],
|
26
26
|
"default": true
|
27
27
|
},
|
28
|
+
"date": {
|
29
|
+
"title": "Date",
|
30
|
+
"description": "Whether the user must answer with a valid date",
|
31
|
+
"oneOf": [
|
32
|
+
{
|
33
|
+
"$ref": "definition.conditional.boolean"
|
34
|
+
}
|
35
|
+
]
|
36
|
+
},
|
28
37
|
"errors_required": {
|
29
38
|
"title": "Error messages for ‘Required’",
|
30
39
|
"allOf": [
|
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.
|
4
|
+
version: 0.13.3
|
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-02-
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -233,12 +233,15 @@ files:
|
|
233
233
|
- app/helpers/metadata_presenter/application_helper.rb
|
234
234
|
- app/jobs/metadata_presenter/application_job.rb
|
235
235
|
- app/models/metadata_presenter/component.rb
|
236
|
+
- app/models/metadata_presenter/date_field.rb
|
236
237
|
- app/models/metadata_presenter/metadata.rb
|
237
238
|
- app/models/metadata_presenter/next_page.rb
|
238
239
|
- app/models/metadata_presenter/page.rb
|
239
240
|
- app/models/metadata_presenter/page_answers.rb
|
240
241
|
- app/models/metadata_presenter/service.rb
|
242
|
+
- app/presenters/metadata_presenter/page_answers_presenter.rb
|
241
243
|
- app/validators/metadata_presenter/base_validator.rb
|
244
|
+
- app/validators/metadata_presenter/date_validator.rb
|
242
245
|
- app/validators/metadata_presenter/max_length_validator.rb
|
243
246
|
- app/validators/metadata_presenter/min_length_validator.rb
|
244
247
|
- app/validators/metadata_presenter/number_validator.rb
|
@@ -247,6 +250,8 @@ files:
|
|
247
250
|
- app/validators/metadata_presenter/validate_schema.rb
|
248
251
|
- app/views/errors/404.html
|
249
252
|
- app/views/layouts/metadata_presenter/application.html.erb
|
253
|
+
- app/views/metadata_presenter/component/_checkboxes.html.erb
|
254
|
+
- app/views/metadata_presenter/component/_date.html.erb
|
250
255
|
- app/views/metadata_presenter/component/_number.html.erb
|
251
256
|
- app/views/metadata_presenter/component/_radios.html.erb
|
252
257
|
- app/views/metadata_presenter/component/_text.html.erb
|
@@ -260,18 +265,22 @@ files:
|
|
260
265
|
- config/initializers/default_metadata.rb
|
261
266
|
- config/initializers/schemas.rb
|
262
267
|
- config/routes.rb
|
268
|
+
- default_metadata/component/checkboxes.json
|
269
|
+
- default_metadata/component/date.json
|
263
270
|
- default_metadata/component/number.json
|
264
271
|
- default_metadata/component/radios.json
|
265
272
|
- default_metadata/component/text.json
|
266
273
|
- default_metadata/component/textarea.json
|
267
274
|
- default_metadata/config/meta.json
|
268
275
|
- default_metadata/config/service.json
|
276
|
+
- default_metadata/definition/checkbox.json
|
269
277
|
- default_metadata/definition/radio.json
|
270
278
|
- default_metadata/page/checkanswers.json
|
271
279
|
- default_metadata/page/confirmation.json
|
272
280
|
- default_metadata/page/singlequestion.json
|
273
281
|
- default_metadata/page/start.json
|
274
282
|
- default_metadata/service/base.json
|
283
|
+
- default_metadata/string/error.date.json
|
275
284
|
- default_metadata/string/error.max_length.json
|
276
285
|
- default_metadata/string/error.min_length.json
|
277
286
|
- default_metadata/string/error.number.json
|
@@ -284,6 +293,8 @@ files:
|
|
284
293
|
- lib/metadata_presenter/test_helpers.rb
|
285
294
|
- lib/metadata_presenter/version.rb
|
286
295
|
- lib/tasks/metadata_presenter_tasks.rake
|
296
|
+
- schemas/component/checkboxes.json
|
297
|
+
- schemas/component/date.json
|
287
298
|
- schemas/component/number.json
|
288
299
|
- schemas/component/radios.json
|
289
300
|
- schemas/component/text.json
|
@@ -292,6 +303,7 @@ files:
|
|
292
303
|
- schemas/config/meta.json
|
293
304
|
- schemas/config/service.json
|
294
305
|
- schemas/definition/block.json
|
306
|
+
- schemas/definition/checkbox.json
|
295
307
|
- schemas/definition/component.json
|
296
308
|
- schemas/definition/components.json
|
297
309
|
- schemas/definition/condition.base.json
|