Sha256: 679a32865f8e1017d14c4b10d84271568e24a6cb4c9482868f1ff6611e09b092
Contents?: true
Size: 1.52 KB
Versions: 9
Compression:
Stored size: 1.52 KB
Contents
module MenuBarHelper def menu_bar_links [ menu_link_to_classroom, menu_link_to_bibliotheca, solve_discussions_link, user_discussions_link ] end def menu_bar_list_items menu_bar_links.compact.map { |link| li_tag(link) }.join.html_safe end def li_tag(link) content_tag :li, link end def menu_link_to_profile li_tag menu_item('user', :my_account, user_path) end def menu_link_to_classroom menu_link_to_application 'graduation-cap', :classroom_ui, :teacher_here? end def menu_link_to_bibliotheca menu_link_to_application :book, :bibliotheca_ui, :writer? end def menu_link_to_application(icon, app_name, minimal_permissions) return unless current_user&.send(minimal_permissions) url = url_for_application(app_name) menu_item icon, app_name, url end def logout_menu_link li_tag menu_item('sign-out-alt', :sign_out, logout_path(origin: url_for, organization: Organization.current)) end def menu_item(icon, name, url, css_class = nil, translation_params = {}, options = {}) menu_text_item(icon, t(name, translation_params), url, css_class, **options) end def menu_text_item(icon, text, url, css_class = nil, **options) link_options = { role: 'menuitem', tabindex: '-1', class: "dropdown-item #{css_class}" }.merge(options) link_to fixed_fa_icon(icon, text: text), url, link_options end def any_menu_bar_links? menu_bar_links.any? end def menu_link_to_faqs li_tag menu_item(:info, :faqs_abbreviated, faqs_path) end end
Version data entries
9 entries across 9 versions & 1 rubygems