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
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 |
#flat_section_item_link(citem) ⇒ Object
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 |
#subsection_item_link(tree_node) ⇒ Object
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 |