hungryform-rails 0.0.4 → 0.0.5
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/views/hungryform/_checkbox_field.html.erb +13 -10
- data/app/views/hungryform/_form.html.erb +40 -4
- data/app/views/hungryform/_group.html.erb +5 -5
- data/app/views/hungryform/_radio_group.html.erb +16 -9
- data/app/views/hungryform/_select_field.html.erb +8 -7
- data/app/views/hungryform/_text_area.html.erb +8 -7
- data/app/views/hungryform/_text_field.html.erb +8 -7
- data/hungryform-rails.gemspec +1 -1
- data/lib/hungryform/rails/action_view.rb +3 -2
- data/lib/hungryform/rails/railtie.rb +11 -3
- data/lib/hungryform/rails/renderable.rb +6 -3
- data/lib/hungryform/rails/version.rb +1 -1
- data/spec/views/shared_examples/labeled_active_element.rb +15 -0
- data/spec/views/shared_examples/rendered_active_element.rb +0 -10
- data/spec/views/text_field_spec.rb +1 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1360f77eb2ccee3eb12b09cd0014f1ee25df1f55
|
4
|
+
data.tar.gz: f8f8252375c4cd6f24b88832801717d9c1c9522e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dfa2c3a39a452433b737528171134b1ea095a855abed53d6656e74dc7200d133ec1d95a6d8ac0bed3c057b865555ed96ebe69199c2b8a95ab64f36ac647e1c6
|
7
|
+
data.tar.gz: 594ebc2ebae6e554433984a3fc0738a6672b6cbbe21e98537aeee973731817aa91678bf5eba0c7b3d5db737589674319c085e76c3b9e047acc006ae2fd992ac8
|
@@ -1,12 +1,15 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end %>
|
3
|
+
<div class="checkbox">
|
4
|
+
<%= label_tag '' do %>
|
5
|
+
<%= hidden_field_tag field.name, 0 %>
|
6
|
+
<%= check_box_tag field.name, 1, field.checked?, field.input_attributes %>
|
7
|
+
<%= field.label << ("*" if field.required?).to_s %>
|
8
|
+
<% end -%>
|
9
|
+
</div>
|
11
10
|
|
12
|
-
|
11
|
+
<% unless field.error.empty? -%>
|
12
|
+
<%= content_tag :span, field.error, class: 'error' %>
|
13
|
+
<% end -%>
|
14
|
+
|
15
|
+
<% end -%>
|
@@ -1,11 +1,47 @@
|
|
1
1
|
<%= hidden_field_tag :form_action %>
|
2
2
|
|
3
|
-
<h1><%= form.current_page.
|
3
|
+
<h1><%= form.current_page.title %></h1>
|
4
4
|
|
5
5
|
<% form.current_page.elements.each do |el| %>
|
6
6
|
<%= render partial: "#{views_prefix}/#{el.class.name.demodulize.underscore}", locals: { field: el, views_prefix: views_prefix } %>
|
7
7
|
<% end %>
|
8
8
|
|
9
|
-
<%=
|
10
|
-
|
11
|
-
|
9
|
+
<%=
|
10
|
+
# Previous page button
|
11
|
+
if form.prev_page
|
12
|
+
hungry_link_to_prev_page(
|
13
|
+
form,
|
14
|
+
"Prev",
|
15
|
+
{
|
16
|
+
class: HungryForm.configuration.rails.prev_button_class,
|
17
|
+
method: :post
|
18
|
+
}
|
19
|
+
)
|
20
|
+
end
|
21
|
+
-%>
|
22
|
+
<%=
|
23
|
+
# Next Page Button
|
24
|
+
if form.next_page
|
25
|
+
hungry_link_to_next_page(
|
26
|
+
form,
|
27
|
+
"Next",
|
28
|
+
{
|
29
|
+
class: HungryForm.configuration.rails.next_button_class,
|
30
|
+
method: :post
|
31
|
+
}
|
32
|
+
)
|
33
|
+
end
|
34
|
+
-%>
|
35
|
+
<%=
|
36
|
+
# Submit button
|
37
|
+
if form.current_page == form.pages.last
|
38
|
+
hungry_link_to_submit(
|
39
|
+
form,
|
40
|
+
"Submit",
|
41
|
+
{
|
42
|
+
class: HungryForm.configuration.rails.submit_button_class,
|
43
|
+
method: :post
|
44
|
+
}
|
45
|
+
)
|
46
|
+
end
|
47
|
+
%>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
field.elements.each do |el|
|
4
|
-
|
5
|
-
end
|
3
|
+
<% field.elements.each do |el| -%>
|
4
|
+
<%= render partial: "#{views_prefix}/#{el.class.name.demodulize.underscore}", locals: { field: el, views_prefix: views_prefix } -%>
|
5
|
+
<% end -%>
|
6
6
|
|
7
|
-
end
|
7
|
+
<% end -%>
|
@@ -1,11 +1,18 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
|
4
|
-
field.options.each do |key, value|
|
5
|
-
concat radio_button_tag key, value, field.value == value, field.input_attributes
|
6
|
-
end
|
7
|
-
unless field.error.empty?
|
8
|
-
concat content_tag :span, field.error, class: 'error'
|
9
|
-
end
|
3
|
+
<%= label_tag field.name, field.label << ("*" if field.required?).to_s %>
|
10
4
|
|
11
|
-
|
5
|
+
<% field.options.each do |value, name| %>
|
6
|
+
<div class="radio">
|
7
|
+
<%= label_tag '' do %>
|
8
|
+
<%= radio_button_tag field.name, value, field.value == value, field.input_attributes %>
|
9
|
+
<%= name %>
|
10
|
+
<% end -%>
|
11
|
+
</div>
|
12
|
+
<% end -%>
|
13
|
+
|
14
|
+
<% unless field.error.empty? -%>
|
15
|
+
<%= content_tag :span, field.error, class: 'error' %>
|
16
|
+
<% end -%>
|
17
|
+
|
18
|
+
<% end -%>
|
@@ -1,9 +1,10 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
<%= label_tag field.name, field.label << ("*" if field.required?).to_s %>
|
4
|
+
<%= select_tag field.name, options_for_select(field.options.invert, field.value), field.input_attributes %>
|
5
|
+
|
6
|
+
<% unless field.error.empty? -%>
|
7
|
+
<%= content_tag :span, field.error, class: 'error' %>
|
8
|
+
<% end -%>
|
8
9
|
|
9
|
-
end
|
10
|
+
<% end -%>
|
@@ -1,9 +1,10 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
<%= label_tag field.name, field.label << ("*" if field.required?).to_s %>
|
4
|
+
<%= text_area_tag field.name, field.value, field.input_attributes %>
|
5
|
+
|
6
|
+
<% unless field.error.empty? -%>
|
7
|
+
<%= content_tag :span, field.error, class: 'error' %>
|
8
|
+
<% end -%>
|
8
9
|
|
9
|
-
end
|
10
|
+
<% end -%>
|
@@ -1,9 +1,10 @@
|
|
1
|
-
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do
|
1
|
+
<%= content_tag :div, id: "#{field.name}_wrapper", class: field.wrapper_class, 'data-dependency' => field.dependency_json do -%>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
unless field.error.empty?
|
6
|
-
concat content_tag :span, field.error, class: 'error'
|
7
|
-
end
|
3
|
+
<%= label_tag field.name, field.label << ("*" if field.required?).to_s %>
|
4
|
+
<%= text_field_tag field.name, field.value, field.input_attributes %>
|
8
5
|
|
9
|
-
|
6
|
+
<% unless field.error.empty? -%>
|
7
|
+
<%= content_tag :span, field.error, class: 'error' %>
|
8
|
+
<%end -%>
|
9
|
+
|
10
|
+
<% end -%>
|
data/hungryform-rails.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.required_ruby_version = '>= 2.0.0'
|
23
23
|
|
24
|
-
spec.add_dependency 'hungryform', '~> 0.0', '>= 0.0.
|
24
|
+
spec.add_dependency 'hungryform', '~> 0.0', '>= 0.0.11'
|
25
25
|
spec.add_dependency 'rails', '>= 3.2.1'
|
26
26
|
|
27
27
|
spec.add_development_dependency "rspec", '~> 3.0'
|
@@ -7,8 +7,8 @@ module HungryForm
|
|
7
7
|
options[:data][:rel] ||= form_rel(form)
|
8
8
|
options[:class] = [options[:class], "hungryform"].compact.join(' ')
|
9
9
|
|
10
|
-
views_prefix = options.delete(:
|
11
|
-
|
10
|
+
views_prefix = options.delete(:elements_templates) || HungryForm.configuration.rails.elements_templates
|
11
|
+
|
12
12
|
form_tag('', options) do
|
13
13
|
render partial: "#{views_prefix}/form", locals: {
|
14
14
|
form: form,
|
@@ -51,6 +51,7 @@ module HungryForm
|
|
51
51
|
|
52
52
|
# Builds link_to params except for the link's name
|
53
53
|
def link_params(form, options, action_options = {})
|
54
|
+
options = options.dup
|
54
55
|
method = options.delete(:method) || 'get'
|
55
56
|
params = clean_params(form, options.delete(:params))
|
56
57
|
|
@@ -4,14 +4,22 @@ module HungryForm
|
|
4
4
|
|
5
5
|
module Configuration
|
6
6
|
attr_accessor :rails
|
7
|
+
|
8
|
+
def self.extended(base)
|
9
|
+
base.rails = ActiveSupport::OrderedOptions.new
|
10
|
+
|
11
|
+
base.rails.elements_templates = 'hungryform'
|
12
|
+
base.rails.error_class = 'invalid'
|
13
|
+
|
14
|
+
[:next_button_class, :prev_button_class, :submit_button_class].each do |button|
|
15
|
+
base.rails.send(button, '')
|
16
|
+
end
|
17
|
+
end
|
7
18
|
end
|
8
19
|
|
9
20
|
initializer 'hungryform', before: :load_config_initializers do
|
10
21
|
HungryForm::Elements::Base::Element.send :include, Renderable
|
11
|
-
|
12
22
|
HungryForm.configuration.extend Configuration
|
13
|
-
HungryForm.configuration.rails = ActiveSupport::OrderedOptions.new
|
14
|
-
HungryForm.configuration.rails.elements_templates = 'hungryform'
|
15
23
|
end
|
16
24
|
|
17
25
|
initializer 'active_support' do
|
@@ -3,15 +3,18 @@ module HungryForm
|
|
3
3
|
module Renderable
|
4
4
|
def wrapper_class
|
5
5
|
classes = []
|
6
|
-
classes << configuration[:wrapper_class] if configuration.key?(:wrapper_class)
|
7
6
|
classes << attributes[:wrapper_class] if attributes[:wrapper_class]
|
8
7
|
classes << 'hidden' unless visible?
|
9
|
-
|
8
|
+
|
9
|
+
if self.is_a?(HungryForm::Elements::Base::ActiveElement) && self.error.present?
|
10
|
+
classes << HungryForm.configuration.rails.error_class || 'invalid'
|
11
|
+
end
|
12
|
+
|
10
13
|
classes.join(' ') if classes.any?
|
11
14
|
end
|
12
15
|
|
13
16
|
def input_attributes
|
14
|
-
attributes.except(*[configuration[:input_attributes_except], :wrapper_class].flatten)
|
17
|
+
attributes.except(*[configuration[:input_attributes_except], :wrapper_class, :checked].flatten)
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
RSpec.shared_examples 'labeled active element' do
|
2
|
+
it 'has a label' do
|
3
|
+
render render_params
|
4
|
+
expect(rendered).to include '<label for="group_field_name">Field name</label>'
|
5
|
+
end
|
6
|
+
|
7
|
+
context 'when it is required' do
|
8
|
+
before(:each) { attributes[:required] = true }
|
9
|
+
|
10
|
+
it "has an asterisk" do
|
11
|
+
render render_params
|
12
|
+
expect(rendered).to include '<label for="group_field_name">Field name*</label>'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,9 +1,4 @@
|
|
1
1
|
RSpec.shared_examples 'rendered active element' do
|
2
|
-
it 'has a label' do
|
3
|
-
render render_params
|
4
|
-
expect(rendered).to include '<label for="group_field_name">Field name</label>'
|
5
|
-
end
|
6
|
-
|
7
2
|
context 'when it is required' do
|
8
3
|
before(:each) { attributes[:required] = true }
|
9
4
|
|
@@ -13,11 +8,6 @@ RSpec.shared_examples 'rendered active element' do
|
|
13
8
|
expect(rendered).to match /<div.*class="invalid"/
|
14
9
|
end
|
15
10
|
|
16
|
-
it "has an asterisk in a label" do
|
17
|
-
render render_params
|
18
|
-
expect(rendered).to include '<label for="group_field_name">Field name*</label>'
|
19
|
-
end
|
20
|
-
|
21
11
|
it "has an error message" do
|
22
12
|
field.valid?
|
23
13
|
render render_params
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hungryform-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Bazhutkin
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.0'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.0.
|
22
|
+
version: 0.0.11
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '0.0'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.0.
|
32
|
+
version: 0.0.11
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rails
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- spec/views/group_spec.rb
|
149
149
|
- spec/views/html_spec.rb
|
150
150
|
- spec/views/select_field_spec.rb
|
151
|
+
- spec/views/shared_examples/labeled_active_element.rb
|
151
152
|
- spec/views/shared_examples/rendered_active_element.rb
|
152
153
|
- spec/views/shared_examples/wrapped.rb
|
153
154
|
- spec/views/text_area_spec.rb
|
@@ -188,6 +189,7 @@ test_files:
|
|
188
189
|
- spec/views/group_spec.rb
|
189
190
|
- spec/views/html_spec.rb
|
190
191
|
- spec/views/select_field_spec.rb
|
192
|
+
- spec/views/shared_examples/labeled_active_element.rb
|
191
193
|
- spec/views/shared_examples/rendered_active_element.rb
|
192
194
|
- spec/views/shared_examples/wrapped.rb
|
193
195
|
- spec/views/text_area_spec.rb
|