Module: SidebarHelpers

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

Instance Method Summary collapse

Instance Method Details

#collapsed_indicator(coll) ⇒ Object



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

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

#flat_section(sect) ⇒ Object



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

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


57
58
59
60
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 57

def flat_section_item_link citem
  bullet = @sect_def.options[:bullet]
  "<li class=\"#{citem.css_class}\">#{icon_markup(bullet)}<a href=\"#{citem.path}\">#{citem.title}</a></li>"
end

#icon_markup(icon_type) ⇒ Object



62
63
64
65
66
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 62

def icon_markup icon_type
  return "" if icon_type.nil?
  css_class = {dash: "glyphicon-minus", star: "glyphicon-star", plus: "glyphicon-plus-sign", minus: "glyphicon-minus-sign"}.fetch(icon_type)
  "<span class=\"glyphicon #{css_class}\" style=#{STYLING_CONFIG[:bullet_style]}></span>"
end

#nested_section(sect) ⇒ Object



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

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
16
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 2

def section_helper title:nil, selector:nil
  sect = Toc.instance.section(selector)
  @sect_def = Toc.instance.section_def(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



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

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



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

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


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

def subsection_item_link tree_node
bullet = @sect_def.options[:bullet]
 "<li class=\"#{tree_node.content.css_class}\">#{icon_markup(bullet)}<a href=\"#{tree_node.content.path}\">#{tree_node.content.title}</a></li>"
end