module SidebarHelpers

SidebarHelpers is a set of helpers to display the navigation sidebar.

Public Instance Methods

collapsed_indicator(coll) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 31
def collapsed_indicator(coll)
  icon_markup(coll ? :plus : :minus)
end
flat_section(sect) click to toggle source
# 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
icon_markup(icon_type) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 61
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) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 15
def nested_section(sect)
  sect.subsections.reduce('') { |acc, subs| acc + subsection_body(subs) }
end
section_helper(title: nil, selector: nil) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 3
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>
          #{sect.has_subsections? ? nested_section(sect) : flat_section(sect)}
        </li>"
end
subsection(subsect, collapsed) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 35
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) click to toggle source
# File lib/coursegen/course/helpers/sidebar_helpers.rb, line 19
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