Module: SidebarHelpers

Defined in:
lib/coursegen/course/helpers/sidebar_helpers.rb

Instance Method Summary collapse

Instance Method Details

#collapsed_indicator(coll) ⇒ Object



33
34
35
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 33

def collapsed_indicator(coll)
  icon_markup(coll ? :plus : :minus)
end

#flat_section(sect) ⇒ Object



48
49
50
51
52
53
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 48

def flat_section sect
  disp_clause = sect.collapsed? ? "display: none" : "display: block"
  str = "<ul class=\"tree\" style=\"#{disp_clause}\">"
  str = sect.reduce(str) { |acc, item| acc + flat_section_item_link(item) }
  str += "</ul>" 
end


55
56
57
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 55

def flat_section_item_link citem
  "<li class=\"#{citem.css_class}\"><a href=\"#{citem.path}\">#{citem.title}</a></li>"
end

#icon_markup(icon_type) ⇒ Object



59
60
61
62
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 59

def icon_markup icon_type
  css_class = {star: "glyphicon-star", plus: "glyphicon-plus-sign", minus: "glyphicon-minus-sign"}.fetch(icon_type)
  "<span class=\"glyphicon #{css_class} glyphicon-small \"></span>"
end

#nested_section(sect) ⇒ Object



17
18
19
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 17

def nested_section sect
  sect.subsections.reduce("") {|acc, subs| acc + subsection_body(subs)}
end

#section_helper(title: nil, selector: nil) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 2

def section_helper title:nil, selector:nil
  sect = Toc.instance.section(selector)
  str = "<li>
          <label class=\"tree-toggler level1\">
            #{collapsed_indicator(sect.collapsed?)}
            #{title}
          </label>"
  if sect.has_subsections?
    str += nested_section(sect)
  else
    str += flat_section(sect)
  end
  str += "</li>"
end

#subsection(subsect, collapsed) ⇒ Object



37
38
39
40
41
42
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 37

def subsection subsect, collapsed
  disp_clause = collapsed ? "display: none" : "display: block"
  str = "<ul class=\"tree\" style=\"#{disp_clause}\">"
  str = subsect.children.reduce(str) { |acc, item| acc + subsection_item_link(item) }
  str += "</ul>"
end

#subsection_body(sect) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 21

def subsection_body sect
  "<ul class=\"tree\">
    <li>
      <label class=\"tree-toggler level2\">
        #{collapsed_indicator(sect.content.collapsed?)} 
        #{sect.content.title}
      </label>
      #{subsection(sect, sect.content.collapsed?)}
    </li>
  </ul>"
end


44
45
46
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 44

def subsection_item_link tree_node
 "<li class=\"#{tree_node.content.css_class}\"><a href=\"#{tree_node.content.path}\">#{tree_node.content.title}</a></li>"
end