govuk_design_system_formbuilder 0.7.10 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Test Coverage](https://api.codeclimate.com/v1/badges/fde73b5dc9476197281b/test_coverage)](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
|