Module: Card::Set::All::Tabs::HtmlFormat

Extended by:
Card::Set::AbstractFormat
Defined in:
platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb

Instance Method Summary collapse

Instance Method Details

#construct_static_tabs(tab_type) ⇒ Object



91
92
93
94
95
96
97
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 91

def construct_static_tabs tab_type
  tabs = {}
  card.item_cards.each do |item|
    tabs[item.name] = nest item, item_view_options(args)
  end
  tabs tabs, nil, tab_type: tab_type
end

#construct_tab(tabs, name, explicit_options) ⇒ Object



63
64
65
66
67
68
69
70
71
72
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 63

def construct_tab tabs, name, explicit_options
  tab_options = item_view_options explicit_options
  tabs[:paths][name] = {
    title: nest(name, view: :title, title: tab_options[:title]),
    path: nest_path(name, tab_options).html_safe
  }
  return unless tabs[:active].empty?

  tabs[:active] = { name: name, content: nest(name, tab_options) }
end

#construct_tabs(tab_type) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 52

def construct_tabs tab_type
  tabs = { active: {}, paths: {} }
  voo.items[:view] ||= :content
  card.each_item_name_with_options(_render_raw) do |name, options|
    construct_tab tabs, name, options
  end
  tabs tabs[:paths], tabs[:active][:name], tab_type: tab_type, load: :lazy do
    tabs[:active][:content]
  end
end

#tabs(tab_hash, active_name = nil, args = {}, &block) ⇒ HTML

beginning (default is the first)

Parameters:

  • tab_hash (Hash)

    keys are the tab names Each value can be either a String or a Hash. If a Hash can contain the following keys: :title - the label to appear in the clickable tab nav. if title is not specified, the key is used :content - body of tab pane :button_attr - attributes for button link in tab nav.

    If using lazy loading (see :load below), the following options also apply :path - explicit path to use for tab pane :view - card view from which to auto-construct path (if missing, uses key)

    If the value is a String, it is treated as the tab content for static tabs and the view for lazy tabs

  • active_name (String) (defaults to: nil)

    label of the tab that should be active at the

  • args (Hash) (defaults to: {})

    options

  • block (Block)

    content of the active tab (for lazy-loading)

Options Hash (args):

  • :tab_type (String) — default: 'tabs'

    use pills or tabs

  • :panel_attr (Hash)

    html args used for the panel div

  • :pane_attr (Hash)

    html args used for the pane div

  • :load. (Hash)

    :lazy for lazy-loading tabs

Returns:

  • (HTML)

    bootstrap tabs element with all content preloaded



36
37
38
39
40
41
42
43
44
45
46
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 36

def tabs tab_hash, active_name=nil, args={}, &block
  klass = args[:load] == :lazy ? Card::LazyTab : Card::Tab
  args.reverse_merge!(
    panel_attr: {},
    pane_attr: {},
    tab_type: "tabs",
    block: block,
    tab_objects: Card::Tab.tab_objects(self, tab_hash, active_name, klass)
  )
  haml :tab_panel, args
end

#view: pillsObject

def tab_title title, name return name unless title name.to_name.title title, @context_names end



79
80
81
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 79

view :pills do
  construct_tabs "pills"
end

#view: pills_staticObject



87
88
89
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 87

view :pills_static do
  construct_static_tabs "pills"
end

#view: tabsObject



48
49
50
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 48

view :tabs do
  construct_tabs "tabs"
end

#view: tabs_staticObject



83
84
85
# File 'platypus/tmp/set/gem-defaults/mod030-tabs/all/tabs.rb', line 83

view :tabs_static do
  construct_static_tabs "tabs"
end