playbook_ui 8.4.0.alpha.dependencies.2 → 9.2.2.pre.alpha.margin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -18
- data/app/pb_kits/playbook/data/menu.yml +2 -3
- data/app/pb_kits/playbook/pb_avatar/_avatar.scss +0 -3
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +7 -0
- data/app/pb_kits/playbook/pb_dialog/dialog_header.rb +23 -24
- data/app/pb_kits/playbook/pb_form/docs/_description.md +2 -6
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -4
- data/app/pb_kits/playbook/pb_form/docs/example.yml +2 -4
- data/app/pb_kits/playbook/pb_form/form.rb +14 -20
- data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +1 -1
- data/app/pb_kits/playbook/pb_highlight/highlight.html.erb +3 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.jsx +3 -0
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +1 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.html.erb +1 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.jsx +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb +1 -1
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +5 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +69 -54
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +2 -1
- data/app/pb_kits/playbook/pb_select/_select.jsx +10 -1
- data/app/pb_kits/playbook/pb_select/_select.scss +35 -28
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select.jsx +4 -1
- data/app/pb_kits/playbook/pb_select/select.rb +5 -1
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.jsx +145 -135
- data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -0
- data/app/pb_kits/playbook/pb_stat_value/stat_value.html.erb +2 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -18
- data/app/pb_kits/playbook/pb_textarea/_textarea.scss +29 -19
- data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +9 -4
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_character_counter.jsx +5 -1
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_custom.jsx +4 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -14
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +1 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +1 -1
- data/lib/playbook.rb +4 -1
- data/lib/playbook/forms.rb +3 -0
- data/lib/playbook/forms/builder.rb +31 -0
- data/{app/pb_kits/playbook/pb_form/form_builder → lib/playbook/forms/builder}/action_area.rb +2 -2
- data/lib/playbook/forms/builder/checkbox_field.rb +32 -0
- data/lib/playbook/forms/builder/collection_select_field.rb +19 -0
- data/lib/playbook/forms/builder/date_picker_field.rb +37 -0
- data/{app/pb_kits/playbook/pb_form/form_builder → lib/playbook/forms/builder}/form_field_builder.rb +2 -2
- data/lib/playbook/forms/builder/select_field.rb +19 -0
- data/lib/playbook/forms/builder/typeahead_field.rb +12 -0
- data/lib/playbook/pb_forms_helper.rb +41 -0
- data/lib/playbook/pb_kit_helper.rb +2 -0
- data/lib/playbook/props/base.rb +1 -1
- data/lib/playbook/version.rb +1 -2
- metadata +88 -59
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +0 -60
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +0 -61
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.md +0 -1
- data/app/pb_kits/playbook/pb_form/form_builder.rb +0 -31
- data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +0 -34
- data/app/pb_kits/playbook/pb_form/form_builder/collection_select_field.rb +0 -21
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +0 -39
- data/app/pb_kits/playbook/pb_form/form_builder/select_field.rb +0 -21
- data/app/pb_kits/playbook/pb_form/form_builder/typeahead_field.rb +0 -14
- data/app/pb_kits/playbook/pb_form/form_with.html.erb +0 -11
- data/app/pb_kits/playbook/pb_form/form_with.rb +0 -40
- data/app/pb_kits/playbook/pb_form/simple_form.html.erb +0 -11
- data/app/pb_kits/playbook/pb_form/simple_form.rb +0 -67
@@ -1,60 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
require "simple_form" unless defined?(SimpleForm)
|
3
|
-
require "active_model/railtie" unless defined?(ActiveModel)
|
4
|
-
|
5
|
-
example_form_model = Class.new do
|
6
|
-
include ::ActiveModel::Model
|
7
|
-
attr_accessor :example_text_field,
|
8
|
-
:example_phone_field,
|
9
|
-
:example_email_field,
|
10
|
-
:example_number_field,
|
11
|
-
:example_search_field,
|
12
|
-
:example_password_field,
|
13
|
-
:example_url_field,
|
14
|
-
:example_text_area,
|
15
|
-
:example_select_field,
|
16
|
-
:example_collection_select_field,
|
17
|
-
:example_checkbox_field,
|
18
|
-
:example_date_picker_field_1
|
19
|
-
|
20
|
-
|
21
|
-
def self.model_name
|
22
|
-
ActiveModel::Name.new(self, nil, "ExampleFormModel")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
%>
|
26
|
-
|
27
|
-
<%
|
28
|
-
example_collection = [
|
29
|
-
OpenStruct.new(name: "Alabama", value: 1),
|
30
|
-
OpenStruct.new(name: "Alaska", value: 2),
|
31
|
-
OpenStruct.new(name: "Arizona", value: 3),
|
32
|
-
OpenStruct.new(name: "Arkansas", value: 4),
|
33
|
-
OpenStruct.new(name: "California", value: 5),
|
34
|
-
OpenStruct.new(name: "Colorado", value: 6),
|
35
|
-
OpenStruct.new(name: "Connecticut", value: 7),
|
36
|
-
OpenStruct.new(name: "Delaware", value: 8),
|
37
|
-
OpenStruct.new(name: "Florida", value: 9),
|
38
|
-
OpenStruct.new(name: "Georgia", value: 10),
|
39
|
-
]
|
40
|
-
%>
|
41
|
-
|
42
|
-
<%= pb_rails("form/simple_form", props: { options: { model: example_form_model.new, url: "", method: :get } }) do |form| %>
|
43
|
-
<%= form.input :example_text_field, as: :string %>
|
44
|
-
<%= form.input :example_phone_field, as: :tel %>
|
45
|
-
<%= form.input :example_email_field, as: :email %>
|
46
|
-
<%= form.input :example_number_field, as: :integer %>
|
47
|
-
<%= form.input :example_search_field, as: :search %>
|
48
|
-
<%= form.input :example_password_field, as: :password %>
|
49
|
-
<%= form.input :example_url_field, as: :url %>
|
50
|
-
<%= form.input :example_text_area, as: :text %>
|
51
|
-
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { label: true } %>
|
52
|
-
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { label: true } %>
|
53
|
-
<%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true } %>
|
54
|
-
<%= form.date_picker :example_date_picker_field_1, props: { label: true } %>
|
55
|
-
|
56
|
-
<%= form.actions do |action| %>
|
57
|
-
<%= action.submit %>
|
58
|
-
<%= action.button props: { type: "reset", text: "Cancel", variant: "secondary" } %>
|
59
|
-
<% end %>
|
60
|
-
<% end %>
|
@@ -1,61 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
require "simple_form" unless defined?(SimpleForm)
|
3
|
-
require "active_model/railtie" unless defined?(ActiveModel)
|
4
|
-
|
5
|
-
example_form_model = Class.new do
|
6
|
-
include ::ActiveModel::Model
|
7
|
-
attr_accessor :example_text_field,
|
8
|
-
:example_phone_field,
|
9
|
-
:example_email_field,
|
10
|
-
:example_number_field,
|
11
|
-
:example_search_field,
|
12
|
-
:example_password_field,
|
13
|
-
:example_url_field,
|
14
|
-
:example_text_area,
|
15
|
-
:example_select_field,
|
16
|
-
:example_collection_select_field,
|
17
|
-
:example_checkbox_field,
|
18
|
-
:example_date_picker_field_2
|
19
|
-
|
20
|
-
|
21
|
-
def self.model_name
|
22
|
-
ActiveModel::Name.new(self, nil, "ExampleFormModel")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
%>
|
26
|
-
|
27
|
-
<%
|
28
|
-
example_collection = [
|
29
|
-
OpenStruct.new(name: "Alabama", value: 1),
|
30
|
-
OpenStruct.new(name: "Alaska", value: 2),
|
31
|
-
OpenStruct.new(name: "Arizona", value: 3),
|
32
|
-
OpenStruct.new(name: "Arkansas", value: 4),
|
33
|
-
OpenStruct.new(name: "California", value: 5),
|
34
|
-
OpenStruct.new(name: "Colorado", value: 6),
|
35
|
-
OpenStruct.new(name: "Connecticut", value: 7),
|
36
|
-
OpenStruct.new(name: "Delaware", value: 8),
|
37
|
-
OpenStruct.new(name: "Florida", value: 9),
|
38
|
-
OpenStruct.new(name: "Georgia", value: 10),
|
39
|
-
]
|
40
|
-
%>
|
41
|
-
|
42
|
-
|
43
|
-
<%= pb_rails("form", props: { validate: true, form_system: "simple_form", form_system_options: [example_form_model.new, url: "", method: :get] }) do |form| %>
|
44
|
-
<%= form.input :example_text_field, {as: :string, input_html: {props: {required: true}}} %>
|
45
|
-
<%= form.input :example_phone_field, {as: :tel, input_html: {props: {required: true, validation: { pattern: "[0-9]{3}-[0-9]{3}-[0-9]{4}", message: "Please enter a valid phone number (example: 888-888-8888)." }}}} %>
|
46
|
-
<%= form.input :example_email_field, {as: :email, input_html: {props: {required: true}}} %>
|
47
|
-
<%= form.input :example_number_field, {as: :integer, input_html: {props: {required: true}}} %>
|
48
|
-
<%= form.input :example_search_field, {as: :search, input_html: {props: {required: true, validation: { pattern: "[0-9]{2}-[0-9]{5}", message: "Please enter a valid project number (example: 33-12345)." }}}} %>
|
49
|
-
<%= form.input :example_password_field, {as: :password, input_html: {props: {required: true}}} %>
|
50
|
-
<%= form.input :example_url_field, {as: :url, input_html: {props: {required: true}}} %>
|
51
|
-
<%= form.input :example_text_area, {as: :text, input_html: {props: {required: true}}} %>
|
52
|
-
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { required: true, blank_selection: "Select One...", label: true } %>
|
53
|
-
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { required: true, blank_selection: "Select One...", label: true } %>
|
54
|
-
<%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true, required: true } %>
|
55
|
-
<%= form.date_picker :example_date_picker_field_2, props: { label: true, required: true } %>
|
56
|
-
|
57
|
-
<%= form.actions do |action| %>
|
58
|
-
<%= action.submit %>
|
59
|
-
<%= action.button props: { type: "reset", text: "Cancel", variant: "secondary" } %>
|
60
|
-
<% end %>
|
61
|
-
<% end %>
|
@@ -1 +0,0 @@
|
|
1
|
-
Validation displays an error with red border and red text below indicating that the user must fill out the field.
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
included do
|
9
|
-
prepend(FormFieldBuilder.new(:email_field, kit_name: "text_input"))
|
10
|
-
prepend(FormFieldBuilder.new(:number_field, kit_name: "text_input"))
|
11
|
-
prepend(FormFieldBuilder.new(:search_field, kit_name: "text_input"))
|
12
|
-
prepend(FormFieldBuilder.new(:telephone_field, kit_name: "text_input"))
|
13
|
-
prepend(FormFieldBuilder.new(:text_field, kit_name: "text_input"))
|
14
|
-
prepend(FormFieldBuilder.new(:password_field, kit_name: "text_input"))
|
15
|
-
prepend(FormFieldBuilder.new(:url_field, kit_name: "text_input"))
|
16
|
-
prepend(FormFieldBuilder.new(:text_area, kit_name: "textarea"))
|
17
|
-
prepend(TypeaheadField)
|
18
|
-
prepend(SelectField)
|
19
|
-
prepend(CollectionSelectField)
|
20
|
-
prepend(CheckboxField)
|
21
|
-
prepend(DatePickerField)
|
22
|
-
end
|
23
|
-
|
24
|
-
def actions
|
25
|
-
@template.send(:view_context).content_tag :ol, class: "pb-form-actions" do
|
26
|
-
yield ActionArea.new(@template, submit_default_value)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
module CheckboxField
|
7
|
-
def check_box(name, props: {}, **options)
|
8
|
-
label_text = @template.label(@object_name, name) if props[:label] == true
|
9
|
-
options[:required] = true if props[:required]
|
10
|
-
props[:margin_bottom] = "sm"
|
11
|
-
props[:form_spacing] = true
|
12
|
-
|
13
|
-
checked_value = options[:checked_value]
|
14
|
-
unchecked_value = options[:unchecked_value]
|
15
|
-
options.delete(:checked_value)
|
16
|
-
options.delete(:unchecked_value)
|
17
|
-
|
18
|
-
input = super(name, options, checked_value, unchecked_value)
|
19
|
-
|
20
|
-
if props[:label]
|
21
|
-
@template.pb_rails("caption", props: { text: label_text, margin_bottom: "xs" }) +
|
22
|
-
@template.pb_rails("checkbox", props: props) do
|
23
|
-
input
|
24
|
-
end
|
25
|
-
else
|
26
|
-
@template.pb_rails("checkbox", props: props) do
|
27
|
-
input
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
module CollectionSelectField
|
7
|
-
def collection_select(name, collection, value_method, text_method, options = {}, html_options = {}, props: {} )
|
8
|
-
props[:label] = @template.label(@object_name, name) if props[:label] == true
|
9
|
-
options[:skip_default_ids] = false unless options.has_key?(:skip_default_ids)
|
10
|
-
options[:prompt] = props[:blank_selection] || ""
|
11
|
-
html_options[:required] = "required" if props[:required]
|
12
|
-
input = super(name, collection, value_method, text_method, options, html_options)
|
13
|
-
|
14
|
-
@template.pb_rails("select", props: props) do
|
15
|
-
input
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
module DatePickerField
|
7
|
-
def date_picker(name, props: {})
|
8
|
-
prefix = @object_name
|
9
|
-
html_attribute_name = "#{prefix}[#{name}]"
|
10
|
-
html_id = "#{prefix}_#{name}"
|
11
|
-
|
12
|
-
props[:label] = @template.label(@object_name, name) if props[:label] == true
|
13
|
-
props[:label] = "Date Picker" if props[:label].nil?
|
14
|
-
|
15
|
-
props[:name] = html_attribute_name
|
16
|
-
props[:picker_id] = html_id
|
17
|
-
|
18
|
-
input = text_field(
|
19
|
-
name,
|
20
|
-
autocomplete: "off",
|
21
|
-
disabled: props[:disable_input],
|
22
|
-
data: props[:input_data],
|
23
|
-
aria: props[:input_aria],
|
24
|
-
props: {
|
25
|
-
error: props[:error],
|
26
|
-
label: props[:hide_label] ? nil : props[:label],
|
27
|
-
placeholder: props[:placeholder],
|
28
|
-
required: props[:required],
|
29
|
-
}
|
30
|
-
)
|
31
|
-
|
32
|
-
@template.pb_rails("date_picker", props: props) do
|
33
|
-
input
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
module SelectField
|
7
|
-
def select(name, choices = nil, options = {}, html_options = {}, props: {}, &block)
|
8
|
-
props[:label] = @template.label(@object_name, name) if props[:label] == true
|
9
|
-
options[:skip_default_ids] = false unless options.has_key?(:skip_default_ids)
|
10
|
-
options[:prompt] = props[:blank_selection] || ""
|
11
|
-
html_options[:required] = "required" if props[:required]
|
12
|
-
input = super(name, choices, options, html_options, &block)
|
13
|
-
|
14
|
-
@template.pb_rails("select", props: props) do
|
15
|
-
input
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
module FormBuilder
|
6
|
-
module TypeaheadField
|
7
|
-
def typeahead(name, _options = {}, _html_options = {}, props: {})
|
8
|
-
props[:name] = name
|
9
|
-
@template.pb_rails("typeahead", props: props)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%= form_with(form_options, &method(:render_form)) %>
|
2
|
-
|
3
|
-
<% if validate %>
|
4
|
-
<% content_for :pb_js do %>
|
5
|
-
<%= javascript_tag do %>
|
6
|
-
window.addEventListener('DOMContentLoaded', function() {
|
7
|
-
PbFormValidation.start()
|
8
|
-
})
|
9
|
-
<% end %>
|
10
|
-
<% end %>
|
11
|
-
<% end %>
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Playbook
|
4
|
-
module PbForm
|
5
|
-
class FormWith < Playbook::KitBase
|
6
|
-
class FormBuilder < ::ActionView::Helpers::FormBuilder
|
7
|
-
include ::Playbook::PbForm::FormBuilder
|
8
|
-
end
|
9
|
-
|
10
|
-
prop :options, type: Playbook::Props::Hash, default: {}
|
11
|
-
prop :validate, type: Playbook::Props::Boolean, default: false
|
12
|
-
|
13
|
-
def data
|
14
|
-
prop(:data).merge("pb-form-validation" => validate)
|
15
|
-
end
|
16
|
-
|
17
|
-
def form_options
|
18
|
-
{
|
19
|
-
id: id,
|
20
|
-
aria: aria,
|
21
|
-
class: classname,
|
22
|
-
data: data,
|
23
|
-
builder: ::Playbook::PbForm::FormWith::FormBuilder,
|
24
|
-
}.merge(options)
|
25
|
-
end
|
26
|
-
|
27
|
-
def render_form(builder)
|
28
|
-
view_context.capture(builder, &children)
|
29
|
-
end
|
30
|
-
|
31
|
-
def classname
|
32
|
-
[generate_classname("pb-form"), options[:class]].join(" ")
|
33
|
-
end
|
34
|
-
|
35
|
-
def render_in(view_context, &_block)
|
36
|
-
super(view_context, &nil)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%= simple_form_for model, options, &method(:render_form) %>
|
2
|
-
|
3
|
-
<% if validate %>
|
4
|
-
<% content_for :pb_js do %>
|
5
|
-
<%= javascript_tag do %>
|
6
|
-
window.addEventListener('DOMContentLoaded', function() {
|
7
|
-
PbFormValidation.start()
|
8
|
-
})
|
9
|
-
<% end %>
|
10
|
-
<% end %>
|
11
|
-
<% end %>
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if defined?(SimpleForm)
|
4
|
-
module Playbook
|
5
|
-
module PbForm
|
6
|
-
class SimpleForm < Playbook::KitBase
|
7
|
-
class FormBuilder < ::SimpleForm::FormBuilder
|
8
|
-
include ::Playbook::PbForm::FormBuilder
|
9
|
-
|
10
|
-
def input(attribute_name, options = {}, &block)
|
11
|
-
super(
|
12
|
-
attribute_name,
|
13
|
-
options.deep_merge(label: false, input_html: {
|
14
|
-
props: {
|
15
|
-
label: true,
|
16
|
-
},
|
17
|
-
}),
|
18
|
-
&block
|
19
|
-
)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
prop :options, type: Playbook::Props::Hash, default: {}
|
24
|
-
prop :validate, type: Playbook::Props::Boolean, default: false
|
25
|
-
|
26
|
-
def options
|
27
|
-
{
|
28
|
-
builder: Playbook::PbForm::SimpleForm::FormBuilder,
|
29
|
-
html: html_options,
|
30
|
-
data: data,
|
31
|
-
url: "",
|
32
|
-
}.merge(prop(:options))
|
33
|
-
end
|
34
|
-
|
35
|
-
def model
|
36
|
-
prop(:options).fetch(:model, nil)
|
37
|
-
end
|
38
|
-
|
39
|
-
def data
|
40
|
-
prop(:data).merge("pb-form-validation" => validate)
|
41
|
-
end
|
42
|
-
|
43
|
-
def classname
|
44
|
-
[generate_classname("pb-form"), html[:class]].join(" ")
|
45
|
-
end
|
46
|
-
|
47
|
-
def html
|
48
|
-
prop(:options).fetch(:html, {})
|
49
|
-
end
|
50
|
-
|
51
|
-
def render_form(builder)
|
52
|
-
view_context.capture(builder, &children)
|
53
|
-
end
|
54
|
-
|
55
|
-
def render_in(view_context, &_block)
|
56
|
-
super(view_context, &nil)
|
57
|
-
end
|
58
|
-
|
59
|
-
private
|
60
|
-
|
61
|
-
def html_options
|
62
|
-
html.merge(class: classname)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|