Module: BarkestCore::HtmlHelper

Defined in:
app/helpers/barkest_core/html_helper.rb

Overview

This module contains some helper functions to make generating common HTML elements easier.

Instance Method Summary collapse

Instance Method Details

#check_if(bool_val, size = :small) ⇒ Object

Creates a check glyph icon if the bool_val is true.

The size can be nil, :small, :smaller, :big, or :bigger. The default size is :small.



26
27
28
# File 'app/helpers/barkest_core/html_helper.rb', line 26

def check_if(bool_val, size = :small)
  glyph(:ok, size) if bool_val
end

#glyph(name, size = nil) ⇒ Object

Creates a glyph icon using the specified name and size.

The size can be nil, :small, :smaller, :big, or :bigger. The default size is nil.



11
12
13
14
15
16
17
18
19
# File 'app/helpers/barkest_core/html_helper.rb', line 11

def glyph(name, size = nil)
  size = size.to_s.downcase
  if %w(small smaller big bigger).include?(size)
    size = ' glyph-' + size
  else
    size = ''
  end
  "<i class=\"glyphicon glyphicon-#{h name}#{size}\"></i>".html_safe
end

#panel(title, options = { }, &block) ⇒ Object

Creates a panel with the specified title.

Valid options:

*  +type+ can be +primary+, +success+, +info+, +warning+, or +danger+.   Default: primary
*  +size+ can be any value from 1..12.   Default: 6
*  +offset+ can be any value from 0..12.   Default: 3
*  +open_body+ can be true or false.  If true, the body division is opened (and closed) by this helper.   Default: true

Provide a block to render content within the panel.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/helpers/barkest_core/html_helper.rb', line 40

def panel(title, options = { }, &block)
  options = {
      type: 'primary',
      size: 6,
      offset: 3,
      open_body: true
  }.merge(options || {})

  options[:type] = options[:type].to_s.downcase
  options[:type] = 'primary' unless %w(primary success info warning danger).include?(options[:type])
  options[:size] = 6 unless (1..12).include?(options[:size])
  options[:offset] = 3 unless (0..12).include?(options[:offset])

  ret = "<div class=\"col-md-#{options[:size]} col-md-offset-#{options[:offset]}\"><div class=\"panel panel-#{options[:type]}\"><div class=\"panel-heading\"><h4 class=\"panel-title\">#{h title}</h4></div>"
  ret += '<div class="panel-body">' if options[:open_body]

  if block_given?
    content = capture { block.call }
    ret += h content.to_s
  end

  ret += '</div>' if options[:open_body]
  ret += '</div></div>'

  ret.html_safe
end