class Weaver::ModalDialog

Modal dialog feature

Attributes

id[R]

Public Class Methods

new(page, anchors, id, &block) click to toggle source
# File lib/weaver/element_types/modal_dialog.rb, line 6
def initialize(page, anchors, id, &block)
  @page = page
  @anchors = anchors
  @id = id || @page.create_anchor('modal')

  @header_content = Elements.new(@page, @anchors)
  @body_content = Elements.new(@page, @anchors)
  @footer_content = Elements.new(@page, @anchors)

  instance_eval(&block) if block
end

Public Instance Methods

body(&block) click to toggle source
# File lib/weaver/element_types/modal_dialog.rb, line 24
def body(&block)
  @body_content.instance_eval(&block)
end
generate() click to toggle source
# File lib/weaver/element_types/modal_dialog.rb, line 32
def generate
  elem = Elements.new(@page, @anchors)

  id = @id
  header_content = @header_content
  body_content = @body_content
  footer_content = @footer_content

  elem.instance_eval do
    div class: 'modal fade', id: id, tabindex: -1, role: 'dialog' do
      div class: 'modal-dialog', role: 'document' do
        div class: 'modal-content' do
          div class: 'modal-header' do
            button '×', type: 'button', class: 'close', "data-dismiss": 'modal', "aria-label": 'Close'
            text header_content.generate
          end
          div class: 'modal-body' do
            text body_content.generate
          end
          div class: 'modal-footer' do
            text footer_content.generate
          end
        end
      end
    end
  end

  elem.generate
end
header(&block) click to toggle source
# File lib/weaver/element_types/modal_dialog.rb, line 20
def header(&block)
  @header_content.instance_eval(&block)
end