Module: Admin::AdminsiteMenuHelper
- Defined in:
- app/helpers/admin/adminsite_menu_helper.rb
Instance Method Summary collapse
- #child_controller_active?(child_controller_names) ⇒ Boolean
- #content_menu_item(controller_name, admin_menu, klasses, method) ⇒ Object
- #content_menu_label(url, controller_name) ⇒ Object
- #current_admin_menu ⇒ Object
- #current_url?(url, label = '') ⇒ Boolean
- #html_classes(url, controller_name, klasses = nil, admin_menu = '', label = '') ⇒ Object
- #menu_item(label, url, child_controller_names = [], klasses = nil, method = nil, admin_menu = label) ⇒ Object
- #recognize_path(path) ⇒ Object
Instance Method Details
#child_controller_active?(child_controller_names) ⇒ Boolean
68 69 70 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 68 def child_controller_active?(child_controller_names) child_controller_names.include?(controller.controller_name) end |
#content_menu_item(controller_name, admin_menu, klasses, method) ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 50 def (controller_name, , klasses, method ) if controller_name != controller_name.pluralize url = eval("admin_#{controller_name}_index_path") else url = eval("admin_#{controller_name}_path") end link = link_to((url, controller_name), "#{url}?admin_menu=#{}", method: method, ) raw "<li class='#{html_classes(url, controller_name, klasses, )}'>#{link}</li>" end |
#content_menu_label(url, controller_name) ⇒ Object
44 45 46 47 48 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 44 def (url, controller_name) = recognize_path(url)[:controller] return controller_name.titlecase if .blank? eval("#{}_controller".classify). end |
#current_admin_menu ⇒ Object
12 13 14 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 12 def @current_admin_menu ||= params[:admin_menu] end |
#current_url?(url, label = '') ⇒ Boolean
60 61 62 63 64 65 66 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 60 def current_url?(url, label = '') if label.present? return request.fullpath == "#{url}?admin_menu=#{label}" else return request.fullpath == url end end |
#html_classes(url, controller_name, klasses = nil, admin_menu = '', label = '') ⇒ Object
72 73 74 75 76 77 78 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 72 def html_classes(url, controller_name, klasses = nil, = '', label = '') result = [] result |= [klasses].flatten if klasses.present? result |= ['current'] if current_url?(url, ) result |= ['active'] if == label || controller_name == controller.controller_name result.join(' ') end |
#menu_item(label, url, child_controller_names = [], klasses = nil, method = nil, admin_menu = label) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 16 def (label, url, child_controller_names = [], klasses = nil, method = nil, = label) result = '' = [] = child_controller_names.select do |child_controller_name| controller_class_name = "#{child_controller_name}_controller".classify controller_class = eval("defined?(Adminsite::" + "#{controller_class_name}) ? Adminsite::#{controller_class_name} : Adminsite::Admin::#{controller_class_name}".classify) can?(:read, controller_class.new.) end if current_url?(url, label) || ( child_controller_active?(child_controller_names) && == ) .each do |child_controller_name| << (child_controller_name, , nil, nil ) end end = .compact if .count > 0 = {method: method} [:title] = current_adminsite_admin_user.email if klasses == 'log_out' link = link_to(label, "#{url}?admin_menu=#{}", ) result = raw "<li class='#{html_classes(url, nil, klasses, , label )}'>#{link}</li>" content_for(:content_menu, .join("\n").html_safe ) end result end |
#recognize_path(path) ⇒ Object
3 4 5 6 7 8 9 10 |
# File 'app/helpers/admin/adminsite_menu_helper.rb', line 3 def recognize_path(path) return {} if path.try(:strip).blank? begin return Adminsite::Engine.routes.recognize_path(path) # '/admin/profiles' return Rails.application.routes.recognize_path(path) rescue Exception => e end end |