govuk_design_system_formbuilder 0.7.10 → 0.9.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/README.md +5 -2
- data/lib/govuk_design_system_formbuilder/base.rb +1 -1
- data/lib/govuk_design_system_formbuilder/containers/check_boxes.rb +1 -1
- data/lib/govuk_design_system_formbuilder/containers/check_boxes_fieldset.rb +9 -7
- data/lib/govuk_design_system_formbuilder/containers/fieldset.rb +1 -4
- data/lib/govuk_design_system_formbuilder/containers/form_group.rb +3 -7
- data/lib/govuk_design_system_formbuilder/containers/radio_buttons_fieldset.rb +9 -7
- data/lib/govuk_design_system_formbuilder/containers/radios.rb +1 -1
- data/lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb +12 -19
- data/lib/govuk_design_system_formbuilder/elements/error_message.rb +1 -1
- data/lib/govuk_design_system_formbuilder/elements/error_summary.rb +3 -3
- data/lib/govuk_design_system_formbuilder/elements/select.rb +16 -14
- data/lib/govuk_design_system_formbuilder/elements/submit.rb +15 -9
- data/lib/govuk_design_system_formbuilder/elements/text_area.rb +1 -1
- data/lib/govuk_design_system_formbuilder/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d14133ba63175446f9f236dca08807940ff40721098934978d73b0bd8e318d24
|
4
|
+
data.tar.gz: 501a3e8518adaf0f2f21b8e76a4de66f4e17b6ad51d5dc50349893d7cf1f7251
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d4b888def8299a530840d9866298105a63b4355b9fff0da68dc12769230ac6f76d661eff3d27a2532ba133c122e2dbfac27764482e54802f4726f249e372815
|
7
|
+
data.tar.gz: bc4a68efd9fe2ba7a92e0d0954b22abd7074b5c6109e5577038bbddbeca6d3b2f216bd9de2269ecdfe749482d960d652c6a554fcaaabdd639cd0e7fbcc29242e
|
data/README.md
CHANGED
@@ -5,9 +5,12 @@
|
|
5
5
|
[](https://codeclimate.com/github/DFE-Digital/govuk_design_system_formbuilder/test_coverage)
|
6
6
|
|
7
7
|
This gem provides a easy-to-use form builder that generates forms that are
|
8
|
-
fully-compliant with the [GOV.UK Design System](https://design-system.service.gov.uk/),
|
8
|
+
fully-compliant with version 3 of the [GOV.UK Design System](https://design-system.service.gov.uk/),
|
9
9
|
minimising the amount of markup you need to write.
|
10
10
|
|
11
|
+
The latest version of this gem that supports GOV.UK Design System version 2 is
|
12
|
+
[0.7.10](https://github.com/DFE-Digital/govuk_design_system_formbuilder/releases/tag/v0.7.10).
|
13
|
+
|
11
14
|
In addition to the basic markup, the more-advanced functionality of the Design
|
12
15
|
System is exposed via the API. Adding [JavaScript-enhanced word count
|
13
16
|
checking](https://www.rubydoc.info/gems/govuk_design_system_formbuilder/GOVUKDesignSystemFormBuilder/Builder#govuk_text_area-instance_method)
|
@@ -103,7 +106,7 @@ bundle
|
|
103
106
|
Now, if everything was successful, run RSpec:
|
104
107
|
|
105
108
|
```sh
|
106
|
-
rspec -fd
|
109
|
+
bundle exec rspec -fd
|
107
110
|
```
|
108
111
|
|
109
112
|
## Contributing
|
@@ -15,7 +15,7 @@ module GOVUKDesignSystemFormBuilder
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def label_element
|
18
|
-
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name,
|
18
|
+
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **@label)
|
19
19
|
end
|
20
20
|
|
21
21
|
# returns the id value used for the input
|
@@ -7,7 +7,7 @@ module GOVUKDesignSystemFormBuilder
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def html
|
10
|
-
@builder.content_tag('div', class: check_boxes_classes, data: { module: 'checkboxes' }) do
|
10
|
+
@builder.content_tag('div', class: check_boxes_classes, data: { module: 'govuk-checkboxes' }) do
|
11
11
|
yield
|
12
12
|
end
|
13
13
|
end
|
@@ -13,13 +13,15 @@ module GOVUKDesignSystemFormBuilder
|
|
13
13
|
def html
|
14
14
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
15
15
|
Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
|
16
|
-
@builder.safe_join(
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@
|
21
|
-
|
22
|
-
|
16
|
+
@builder.safe_join(
|
17
|
+
[
|
18
|
+
hint_element.html,
|
19
|
+
error_element.html,
|
20
|
+
Containers::CheckBoxes.new(@builder, small: @small).html do
|
21
|
+
@block_content
|
22
|
+
end
|
23
|
+
]
|
24
|
+
)
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -12,10 +12,7 @@ module GOVUKDesignSystemFormBuilder
|
|
12
12
|
|
13
13
|
def html
|
14
14
|
@builder.content_tag('fieldset', class: fieldset_classes, aria: { describedby: @described_by }) do
|
15
|
-
@builder.safe_join([
|
16
|
-
build_legend,
|
17
|
-
yield
|
18
|
-
])
|
15
|
+
@builder.safe_join([build_legend, yield])
|
19
16
|
end
|
20
17
|
end
|
21
18
|
|
@@ -14,13 +14,9 @@ module GOVUKDesignSystemFormBuilder
|
|
14
14
|
private
|
15
15
|
|
16
16
|
def form_group_classes
|
17
|
-
%w(govuk-form-group).
|
18
|
-
|
19
|
-
|
20
|
-
def form_group_error_classes
|
21
|
-
return nil unless has_errors?
|
22
|
-
|
23
|
-
'govuk-form-group--error'
|
17
|
+
%w(govuk-form-group).tap do |classes|
|
18
|
+
classes.push('govuk-form-group--error') if has_errors?
|
19
|
+
end
|
24
20
|
end
|
25
21
|
end
|
26
22
|
end
|
@@ -14,13 +14,15 @@ module GOVUKDesignSystemFormBuilder
|
|
14
14
|
def html
|
15
15
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
16
16
|
Containers::Fieldset.new(@builder, legend: @legend, described_by: [error_element.error_id, hint_element.hint_id]).html do
|
17
|
-
@builder.safe_join(
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
@
|
22
|
-
|
23
|
-
|
17
|
+
@builder.safe_join(
|
18
|
+
[
|
19
|
+
hint_element.html,
|
20
|
+
error_element.html,
|
21
|
+
Containers::Radios.new(@builder, inline: @inline, small: @small).html do
|
22
|
+
@block_content
|
23
|
+
end
|
24
|
+
]
|
25
|
+
)
|
24
26
|
end
|
25
27
|
end
|
26
28
|
end
|
@@ -19,7 +19,14 @@ module GOVUKDesignSystemFormBuilder
|
|
19
19
|
|
20
20
|
def html
|
21
21
|
@builder.content_tag('div', class: 'govuk-checkboxes__item') do
|
22
|
-
@builder.safe_join(
|
22
|
+
@builder.safe_join(
|
23
|
+
[
|
24
|
+
input,
|
25
|
+
label_element.html,
|
26
|
+
hint_element.html,
|
27
|
+
@conditional_content
|
28
|
+
]
|
29
|
+
)
|
23
30
|
end
|
24
31
|
end
|
25
32
|
|
@@ -40,26 +47,12 @@ module GOVUKDesignSystemFormBuilder
|
|
40
47
|
)
|
41
48
|
end
|
42
49
|
|
43
|
-
def
|
44
|
-
Elements::Label.new(
|
45
|
-
@builder,
|
46
|
-
@object_name,
|
47
|
-
@attribute_name,
|
48
|
-
value: @value,
|
49
|
-
checkbox: true,
|
50
|
-
**@label,
|
51
|
-
).html
|
50
|
+
def label_element
|
51
|
+
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, checkbox: true, value: @value, **@label)
|
52
52
|
end
|
53
53
|
|
54
|
-
def
|
55
|
-
Elements::Hint.new(
|
56
|
-
@builder,
|
57
|
-
@object_name,
|
58
|
-
@attribute_name,
|
59
|
-
@hint_text,
|
60
|
-
@value,
|
61
|
-
checkbox: true
|
62
|
-
).html
|
54
|
+
def hint_element
|
55
|
+
@hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, @hint_text, checkbox: true)
|
63
56
|
end
|
64
57
|
|
65
58
|
def conditional_classes
|
@@ -18,7 +18,7 @@ module GOVUKDesignSystemFormBuilder
|
|
18
18
|
@builder.content_tag('ul', class: ['govuk-list', summary_class('list')]) do
|
19
19
|
@builder.safe_join(
|
20
20
|
@builder.object.errors.messages.map do |attribute, messages|
|
21
|
-
error_list_item(attribute, messages)
|
21
|
+
error_list_item(attribute, messages.first)
|
22
22
|
end
|
23
23
|
)
|
24
24
|
end
|
@@ -30,10 +30,10 @@ module GOVUKDesignSystemFormBuilder
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
-
def error_list_item(attribute,
|
33
|
+
def error_list_item(attribute, message)
|
34
34
|
@builder.content_tag('li') do
|
35
35
|
@builder.link_to(
|
36
|
-
|
36
|
+
message,
|
37
37
|
same_page_link(field_id(attribute)),
|
38
38
|
data: {
|
39
39
|
turbolinks: false
|
@@ -16,20 +16,22 @@ module GOVUKDesignSystemFormBuilder
|
|
16
16
|
|
17
17
|
def html
|
18
18
|
Containers::FormGroup.new(@builder, @object_name, @attribute_name).html do
|
19
|
-
@builder.safe_join(
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
@
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
19
|
+
@builder.safe_join(
|
20
|
+
[
|
21
|
+
label_element.html,
|
22
|
+
hint_element.html,
|
23
|
+
error_element.html,
|
24
|
+
@block_content,
|
25
|
+
@builder.collection_select(
|
26
|
+
@attribute_name,
|
27
|
+
@collection,
|
28
|
+
@value_method,
|
29
|
+
@text_method,
|
30
|
+
@options,
|
31
|
+
build_html_options(hint_element, error_element)
|
32
|
+
)
|
33
|
+
]
|
34
|
+
)
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
@@ -15,15 +15,20 @@ module GOVUKDesignSystemFormBuilder
|
|
15
15
|
|
16
16
|
def html
|
17
17
|
@builder.content_tag('div', class: %w(govuk-form-group)) do
|
18
|
-
@builder.safe_join(
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
18
|
+
@builder.safe_join(
|
19
|
+
[
|
20
|
+
@builder.submit(
|
21
|
+
@text,
|
22
|
+
class: %w(govuk-button).push(
|
23
|
+
warning_class,
|
24
|
+
secondary_class,
|
25
|
+
padding_class(@block_content.present?)
|
26
|
+
),
|
27
|
+
**extra_args
|
28
|
+
),
|
29
|
+
@block_content
|
30
|
+
]
|
31
|
+
)
|
27
32
|
end
|
28
33
|
end
|
29
34
|
|
@@ -45,6 +50,7 @@ module GOVUKDesignSystemFormBuilder
|
|
45
50
|
{
|
46
51
|
formnovalidate: !@validate,
|
47
52
|
data: {
|
53
|
+
module: 'govuk-button',
|
48
54
|
'prevent-double-click' => @prevent_double_click
|
49
55
|
}.select { |_k, v| v.present? }
|
50
56
|
}
|
@@ -37,7 +37,7 @@ module GOVUKDesignSystemFormBuilder
|
|
37
37
|
def govuk_textarea_classes
|
38
38
|
%w(govuk-textarea).tap do |classes|
|
39
39
|
classes.push('govuk-textarea--error') if has_errors?
|
40
|
-
classes.push('js-character-count') if limit?
|
40
|
+
classes.push('govuk-js-character-count') if limit?
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_design_system_formbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Yates
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
192
|
- !ruby/object:Gem::Version
|
193
193
|
version: '0'
|
194
194
|
requirements: []
|
195
|
-
rubygems_version: 3.0.
|
195
|
+
rubygems_version: 3.0.3
|
196
196
|
signing_key:
|
197
197
|
specification_version: 4
|
198
198
|
summary: GOV.UK-compliant Rails form builder
|