Module: Card::Set::All::Bootstrap::Accordion::HtmlFormat

Extended by:
Card::Set::AbstractFormat
Defined in:
tmpsets/set/mod026-bootstrap/all/bootstrap/accordion.rb

Instance Method Summary collapse

Instance Method Details

#accordion(title, content, collapse_id = card.name.safe_key) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'tmpsets/set/mod026-bootstrap/all/bootstrap/accordion.rb', line 29

def accordion title, content, collapse_id=card.name.safe_key
  accordion_content =
    case content
    when Hash  then accordion_group content, collapse_id
    when Array then content.present? && list_group(content)
    when String then content
    end
  "    <div class=\"card\">\n      \#{accordion_panel(title, accordion_content, collapse_id)}\n    </div>\n  HTML\nend\n".html_safe

#accordion_group(list, collapse_id = nil, args = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'tmpsets/set/mod026-bootstrap/all/bootstrap/accordion.rb', line 9

def accordion_group list, collapse_id=nil, args={}
  collapse_id ||= card.name.safe_key
  accordions = ""
  index = 1
  case list
  when Array then accordions = list.join
  when String then accordions = list
  else
    list.each_pair do |title, content|
      accordions << accordion(title, content, "#{collapse_id}-#{index}")
      index += 1
    end
  end
  add_class args, "act-accordion-group w-100"
  wrap_with :div, class: args[:class], id: "accordion-#{collapse_id}",
                  role: "tablist", "aria-multiselectable" => "true" do
    accordions
  end
end

#accordion_panel(title, body, collapse_id, _panel_heading_link = false) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'tmpsets/set/mod026-bootstrap/all/bootstrap/accordion.rb', line 43

def accordion_panel title, body, collapse_id, _panel_heading_link=false
  if body
    "      <div class=\"card-header\" role=\"tab\" id=\"heading-\#{collapse_id}\">\n        <h5 class=\"mb-0\">\n          <a data-toggle=\"collapse\" data-parent=\"#accordion-\#{collapse_id}\" \\\n             href=\"#\#{collapse_id}\" aria-expanded=\"true\" \\\n             aria-controls=\"\#{collapse_id}\">\n            \#{title}\n          </a>\n        </h5>\n      </div>\n      <div id=\"\#{collapse_id}\" class=\"collapse\" \\\n             role=\"tabpanel\" aria-labelledby=\"heading-\#{collapse_id}\">\n        <div class=\"card-body\">\n          \#{body}\n        </div>\n      </div>\n    HTML\n  else\n    <<-HTML\n      <li class=\"list-group-item\">\n        <h4 class=\"card-header\">\#{title}</h4>\n      </li>\n    HTML\n  end\nend\n"