class Weaver::Panel
Public Class Methods
new(page, anchors, options = {})
click to toggle source
Calls superclass method
Weaver::Elements::new
# File lib/weaver/element_types/panel.rb, line 5 def initialize(page, anchors, options = {}) super(page, anchors) @title = nil @footer = nil @type = :ibox @body = true @extra = nil @min_height = nil @page = page @options = options end
Public Instance Methods
body(hasBody)
click to toggle source
# File lib/weaver/element_types/panel.rb, line 96 def body(hasBody) @body = hasBody end
extra(&block)
click to toggle source
# File lib/weaver/element_types/panel.rb, line 109 def extra(&block) if block elem = Elements.new(@page, @anchors) elem.instance_eval(&block) @extra = elem.generate end end
generate()
click to toggle source
Calls superclass method
Weaver::Elements#generate
# File lib/weaver/element_types/panel.rb, line 17 def generate inner = super types = { ibox: { outer: 'ibox float-e-margins', header: 'ibox-title', body: 'ibox-content', footer: 'ibox-footer' }, panel: { outer: 'panel panel-default', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, primary: { outer: 'panel panel-primary', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, success: { outer: 'panel panel-success', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, info: { outer: 'panel panel-info', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, warning: { outer: 'panel panel-warning', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, danger: { outer: 'panel panel-danger', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' }, blank: { outer: 'panel blank-panel', header: 'panel-heading', body: 'panel-body', footer: 'panel-footer' } } title = @title footer = @footer hasBody = @body extra = @extra options = @options classNames = types[@type] min_height = @min_height elem = Elements.new(@page, @anchors) outer_class = classNames[:outer] outer_class = 'ibox collapsed' if options[:collapsed] elem.instance_eval do div class: outer_class do if title div class: classNames[:header] do h5 title div class: 'ibox-tools' do if options[:collapsible] || options[:collapsed] a class: 'collapse-link' do icon :"chevron-up" end end if options[:expandable] a class: 'fullscreen-link' do icon :expand end end if options[:closable] a class: 'close-link' do icon :times end end end end end if hasBody div class: classNames[:body], style: "min-height: #{min_height}px" do text inner end end text extra if extra if footer div class: classNames[:footer] do text footer end end end end elem.generate end
min_height(val)
click to toggle source
# File lib/weaver/element_types/panel.rb, line 88 def min_height(val) @min_height = val end
title(title = nil, &block)
click to toggle source
# File lib/weaver/element_types/panel.rb, line 100 def title(title = nil, &block) @title = title if block elem = Elements.new(@page, @anchors) elem.instance_eval(&block) @title = elem.generate end end
type(aType)
click to toggle source
# File lib/weaver/element_types/panel.rb, line 92 def type(aType) @type = aType end