# -*- coding: utf-8 -*- # Configures your navigation SimpleNavigation::Configuration.run do |navigation| # Specify a custom renderer if needed. # The default renderer is SimpleNavigation::Renderer::List which renders HTML lists. # The renderer can also be specified as option in the render_navigation call. # navigation.renderer = Your::Custom::Renderer # Specify the class that will be applied to active navigation items. Defaults to 'selected' # navigation.selected_class = 'your_selected_class' # Specify the class that will be applied to the current leaf of # active navigation items. Defaults to 'simple-navigation-active-leaf' # navigation.active_leaf_class = 'your_active_leaf_class' # Item keys are normally added to list items as id. # This setting turns that off # navigation.autogenerate_item_ids = false # You can override the default logic that is used to autogenerate the item ids. # To do this, define a Proc which takes the key of the current item as argument. # The example below would add a prefix to each key. # navigation.id_generator = Proc.new {|key| "my-prefix-#{key}"} # If you need to add custom html around item names, you can define a proc that will be called with the name you pass in to the navigation. # The example below shows how to wrap items spans. # navigation.name_generator = Proc.new {|name| "#{name}"} # The auto highlight feature is turned on by default. # This turns it off globally (for the whole plugin) # navigation.auto_highlight = false # Define the primary navigation navigation.items do |primary| # Add an item to the primary navigation. The following params apply: # key - a symbol which uniquely defines your navigation item in the scope of the primary_navigation # name - will be displayed in the rendered navigation. This can also be a call to your I18n-framework. # url - the address that the generated item links to. You can also use url_helpers (named routes, restful routes helper, url_for etc.) # options - can be used to specify attributes that will be included in the rendered navigation item (e.g. id, class etc.) # some special options that can be set: # :if - Specifies a proc to call to determine if the item should # be rendered (e.g. :if => Proc.new { current_user.admin? }). The # proc should evaluate to a true or false value and is evaluated in the context of the view. # :unless - Specifies a proc to call to determine if the item should not # be rendered (e.g. :unless => Proc.new { current_user.admin? }). The # proc should evaluate to a true or false value and is evaluated in the context of the view. # :method - Specifies the http-method for the generated link - default is :get. # :highlights_on - if autohighlighting is turned off and/or you want to explicitly specify # when the item should be highlighted, you can set a regexp which is matched # against the current URI. You may also use a proc, or the symbol :subpath. # primary.item :home, t(:home), root_path primary.item :clients, t(:clients), clients_path, :unless => lambda { client? } primary.item :admin_users, t(:users), admin_users_path, :if => lambda{ admin? }, :highlights_on => lambda{ false } primary.item :reports, "Reports", client_login_reports_path, :if => lambda { client? } primary.item :admin, t(:admin), admin_path, :if => lambda{ admin? }, :highlights_on => /admin/ do |admin| admin.item :invoice, t(:invoice), admin_invoices_path admin.item :payroll, t(:payroll), admin_payroll_index_path admin.item :reports, t(:reports), admin_reports_path do |reports| reports.item :unentered_time_report, t(:unentered_time_report), admin_unentered_time_report_index_path, :highlights_on => /unentered_time_report/ reports.item :weekly_time_report, t(:weekly_time_report), admin_weekly_time_report_index_path, :highlights_on => /weekly_time_report/ end admin.item :users, t(:users), admin_users_path admin.item :site_settings, t(:site_settings), edit_admin_site_settings_path end primary.item :users, t(:users), users_path, :unless => lambda{ admin? || client? } primary.dom_class = 'nav primary-nav' # you can also specify a css id or class to attach to this particular level # works for all levels of the menu # primary.dom_id = 'menu-id' # primary.dom_class = 'menu-class' # You can turn off auto highlighting for a specific level # primary.auto_highlight = false end end