public
Description: A collection of UI widgets for RubyOnRails
Home | Edit | New

Navigation

The Navigation widgets works pretty much like the Tabnav but generates navigation links instead of tabs.

How to generate Navigation links

Let’s generate a main tabbed navigation for our site (I’ll call it main, you can call it what you want)

$ script/generate navigation main
      create  app/views/widgets
      create  app/views/widgets/_main_navigation.html.erb

It creates a partial with the navigation definition.
Now we can insert the navigation wherever we want, I’ll put it in my app/views/layouts/application.html.erb.

...
<%= navigation :main %>	
<%= yield %>
...

Reload your pages, you should see top right navigation links.
Now you can edit the app/views/widgets/_main_navigation.html.erb partial:

...
  add_item do |i|
    i.named "home"
    i.links_to :controller => "invoices"
  end
  ...
  add_item :link => "http://www.seesaw.it"

Example: Welcome message, help, and logout

...
add_item do |i
  i.named "#{current_user.name}'s account"
  i.links_to :controller => 'account'
end if current_user

add_item do |i|
  i.named "welcome guest"
  i.disable! # the link is not clickable
end

add_item do |i|
  i.named "help"
  i.links_to :controller => 'help'
  i.new_window true
end

add_item do |i|
  i.named "logout"
  i.function_to 'App.logOutAction();'
end if logged_in?

Why should I use this?

The Navigation widgets offers a couple of benefits over standard links:

  • you can disable items with i.disable!
  • you can highlight the items using the same Tabnav highlighting system.

If you do not use these features, It’s probably better to use plain links.

Last edited by tenpaiyomi, Fri Jul 03 09:31:14 -0700 2009
Home | Edit | New
Versions: