module Trenni::Formatters::HTML::DefinitionListForm

Public Instance Methods

checkbox(**options) click to toggle source

A checkbox field.

# File lib/trenni/formatters/html/definition_list_form.rb, line 90
def checkbox(**options)
        options = @options.merge(**options)

        Builder.fragment do |builder|
                builder.tag(:dd) do
                        builder.tag :input, :type => :hidden, :name => name_for(**options), :value => 'false'
                        
                        builder.inline(:label) do
                                builder.tag :input, checkbox_attributes_for(**options)
                                # We would like a little bit of whitespace between the checkbox and the title.
                                builder.text " " + title_for(**options)
                        end
                        
                        if details = details_for(**options)
                                builder.inline(:small, class: 'details') {builder.text details}
                        end
                end
        end
end
element(klass, **options, &block) click to toggle source
# File lib/trenni/formatters/html/definition_list_form.rb, line 120
def element(klass, **options, &block)
        options = @options.merge(**options)
        
        Builder.fragment(block&.binding) do |builder|
                builder.inline(:dt) do
                        builder.text title_for(**options)
                end
                
                builder.tag(:dd) do
                        klass.call(self, builder, **options, &block)
                        
                        if details = details_for(**options)
                                builder.inline(:small, class: 'details') {builder.text details}
                        end
                end
        end
end
fieldset(**options) { |builder| ... } click to toggle source
# File lib/trenni/formatters/html/definition_list_form.rb, line 138
def fieldset(**options, &block)
        super do |builder|
                builder.tag(:dl) do
                        yield(builder)
                end
        end
end
input(**options) click to toggle source

An input field (single line text).

# File lib/trenni/formatters/html/definition_list_form.rb, line 35
def input(**options)
        options = @options.merge(**options)

        Builder.fragment do |builder|
                builder.inline(:dt) do
                        builder.text title_for(**options)
                end
                
                builder.inline(:dd) do
                        builder.tag :input, input_attributes_for(**options)
                        
                        if details = details_for(**options)
                                builder.inline(:small, class: 'details') {builder.text details}
                        end
                end
        end
end
output(**options) click to toggle source

An output field for the result of a computation.

# File lib/trenni/formatters/html/definition_list_form.rb, line 54
def output(**options)
        options = @options.merge(**options)

        Builder.fragment do |builder|
                builder.inline(:dt) {builder.text title_for(**options)}

                builder.inline(:dd) do
                        builder.inline :output, output_attributes_for(**options) do
                                builder.text value_for(**options)
                        end
                end
        end
end
submit(**options) click to toggle source

A submission button

# File lib/trenni/formatters/html/definition_list_form.rb, line 111
def submit(**options)
        options = @options.merge(**options)
        options[:title] ||= submit_title_for(**options)
        
        Builder.fragment do |builder|
                builder.tag :input, submit_attributes_for(**options)
        end
end
textarea(**options) click to toggle source

A textarea field (multi-line text).

# File lib/trenni/formatters/html/definition_list_form.rb, line 69
def textarea(**options)
        options = @options.merge(**options)

        Builder.fragment do |builder|
                builder.tag(:dt) do
                                builder.text title_for(**options)
                                
                                if details = details_for(**options)
                                        builder.inline(:small, class: 'details') {builder.text details}
                                end
                end

                builder.inline(:dd) do
                        builder.tag :textarea, textarea_attributes_for(**options) do
                                builder.text value_for(**options)
                        end
                end
        end
end