class Interview::ScaffoldForm
Attributes
style[RW]
submit_caption[RW]
Public Instance Methods
build(b) { || ... }
click to toggle source
Calls superclass method
Interview::Form#build
# File lib/interview/controls/scaffold_form.rb, line 6 def build(b) case @style when 'horizontal' @html_class << 'form-horizontal' when 'inline' @html_class << 'form-inline' end super(b) do b.meta_control pointer: self do yield if block_given? end if @style == 'horizontal' b.section html_class: 'form-group' do b.section html_class: 'col-sm-offset-3 col-sm-9' do b.submit caption: @submit_caption end end else b.submit caption: @submit_caption end end end
build_child(b, control, &block)
click to toggle source
Calls superclass method
Interview::Control#build_child
# File lib/interview/controls/scaffold_form.rb, line 31 def build_child(b, control, &block) control.parent = self control.style ||= 'write' if control.is_a? Attribute if control.is_a? BooleanAttribute build_boolean b, control, &block elsif control.is_a? HiddenAttribute build_hidden b, control, &block elsif control.is_a? Attribute build_default b, control, &block else super end b.space if @style == 'inline' end
Protected Instance Methods
build_boolean(b, control, &block)
click to toggle source
# File lib/interview/controls/scaffold_form.rb, line 66 def build_boolean(b, control, &block) b.section html_class: "form-group attribute_#{control.method.to_s} collapse in" do # todo: html_class if @style == 'horizontal' b.section html_class: 'col-xs-9 col-xs-offset-3' do build_checkbox b, control end else build_checkbox b, control end end end
build_checkbox(b, control)
click to toggle source
# File lib/interview/controls/scaffold_form.rb, line 100 def build_checkbox(b, control) b.add! control b.space b << @form_builder.label(control.method, control.caption) build_tooltip(b, control) end
build_default(b, control, &block)
click to toggle source
# File lib/interview/controls/scaffold_form.rb, line 50 def build_default(b, control, &block) b.section html_class: 'form-group' do b.section html_class: 'col-xs-3' if (control.caption == :hide or control.caption_as_placeholder) and @style == 'horizontal' build_label(b, control) if @style == 'horizontal' b.section html_class: 'col-xs-9' do b.add! control, &block build_tooltip b, control end else b.add! control, &block build_tooltip b, control end end end
build_label(b, control)
click to toggle source
# File lib/interview/controls/scaffold_form.rb, line 82 def build_label(b, control) return if control.caption == :hide if control.caption_as_placeholder or @style == 'inline' html_opts = { class: 'sr-only' } elsif @style == 'horizontal' html_opts = { class: 'col-xs-3 control-label' } else html_opts = {} end b << @form_builder.label(control.method, control.caption, html_opts) end
build_tooltip(b, control)
click to toggle source
# File lib/interview/controls/scaffold_form.rb, line 94 def build_tooltip(b, control) if control.tooltip != :hide b.tooltip tooltip: control.tooltip end end