Module: SidebarHelpers
- Defined in:
- lib/coursegen/course/helpers/sidebar_helpers.rb
Instance Method Summary collapse
- #collapsed_indicator(coll) ⇒ Object
- #flat_section(sect) ⇒ Object
- #flat_section_item_link(citem) ⇒ Object
- #icon_markup(icon_type) ⇒ Object
- #nested_section(sect) ⇒ Object
- #section_helper(title: nil, selector: nil) ⇒ Object
- #subsection(subsect, collapsed) ⇒ Object
- #subsection_body(sect) ⇒ Object
- #subsection_item_link(tree_node) ⇒ Object
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 |
#flat_section_item_link(citem) ⇒ Object
57 58 59 60 |
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 57 def flat_section_item_link citem bullet = @sect_def.[: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 |
#subsection_item_link(tree_node) ⇒ Object
45 46 47 48 |
# File 'lib/coursegen/course/helpers/sidebar_helpers.rb', line 45 def subsection_item_link tree_node bullet = @sect_def.[:bullet] "<li class=\"#{tree_node.content.css_class}\">#{icon_markup(bullet)}<a href=\"#{tree_node.content.path}\">#{tree_node.content.title}</a></li>" end |