diff options
| -rw-r--r-- | app/helpers/content_helper.rb | 7 | ||||
| -rw-r--r-- | app/models/menu_item.rb | 5 | ||||
| -rw-r--r-- | app/views/content/_main_navigation.html.erb | 5 | ||||
| -rw-r--r-- | db/migrate/20090719180204_create_menu_items.rb | 16 | ||||
| -rw-r--r-- | test/fixtures/menu_items.yml | 7 | ||||
| -rw-r--r-- | test/unit/menu_item_test.rb | 8 |
6 files changed, 44 insertions, 4 deletions
diff --git a/app/helpers/content_helper.rb b/app/helpers/content_helper.rb index 536377b..012ee42 100644 --- a/app/helpers/content_helper.rb +++ b/app/helpers/content_helper.rb | |||
| @@ -1,8 +1,11 @@ | |||
| 1 | module ContentHelper | 1 | module ContentHelper |
| 2 | 2 | ||
| 3 | def main_menu | 3 | def main_menu |
| 4 | nodes = Node.find(:all, :conditions => {:parent_id => 1}) | 4 | menu_items = MenuItem.all |
| 5 | render :partial => 'content/main_navigation', :locals => {:nodes => nodes} | 5 | render( |
| 6 | :partial => 'content/main_navigation', | ||
| 7 | :locals => {:menu_items => menu_items} | ||
| 8 | ) | ||
| 6 | end | 9 | end |
| 7 | 10 | ||
| 8 | def calendar | 11 | def calendar |
diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb new file mode 100644 index 0000000..666fdf4 --- /dev/null +++ b/app/models/menu_item.rb | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | class MenuItem < ActiveRecord::Base | ||
| 2 | |||
| 3 | translates :title | ||
| 4 | |||
| 5 | end | ||
diff --git a/app/views/content/_main_navigation.html.erb b/app/views/content/_main_navigation.html.erb index f43e201..98919a5 100644 --- a/app/views/content/_main_navigation.html.erb +++ b/app/views/content/_main_navigation.html.erb | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | <%= Time.now %> | ||
| 1 | <div id="main_navigation"> | 2 | <div id="main_navigation"> |
| 2 | <ul> | 3 | <ul> |
| 3 | <% nodes.each do |node| %> | 4 | <% menu_items.each do |item| %> |
| 4 | <li><%= link_to_path node.head.try(:title), node.unique_name %></li> | 5 | <li><%= link_to_path item.title, item.path %></li> |
| 5 | <% end %> | 6 | <% end %> |
| 6 | </ul> | 7 | </ul> |
| 7 | </div> \ No newline at end of file | 8 | </div> \ No newline at end of file |
diff --git a/db/migrate/20090719180204_create_menu_items.rb b/db/migrate/20090719180204_create_menu_items.rb new file mode 100644 index 0000000..a05012a --- /dev/null +++ b/db/migrate/20090719180204_create_menu_items.rb | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | class CreateMenuItems < ActiveRecord::Migration | ||
| 2 | def self.up | ||
| 3 | create_table :menu_items do |t| | ||
| 4 | t.integer :node_id | ||
| 5 | t.string :path | ||
| 6 | t.timestamps | ||
| 7 | end | ||
| 8 | |||
| 9 | MenuItem.create_translation_table! :title => :string | ||
| 10 | end | ||
| 11 | |||
| 12 | def self.down | ||
| 13 | drop_table :menu_items | ||
| 14 | MenuItem.drop_translation_table! | ||
| 15 | end | ||
| 16 | end | ||
diff --git a/test/fixtures/menu_items.yml b/test/fixtures/menu_items.yml new file mode 100644 index 0000000..2319de1 --- /dev/null +++ b/test/fixtures/menu_items.yml | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html | ||
| 2 | |||
| 3 | one: | ||
| 4 | node_id: 1 | ||
| 5 | |||
| 6 | two: | ||
| 7 | node_id: 1 | ||
diff --git a/test/unit/menu_item_test.rb b/test/unit/menu_item_test.rb new file mode 100644 index 0000000..81d9c01 --- /dev/null +++ b/test/unit/menu_item_test.rb | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class MenuItemTest < ActiveSupport::TestCase | ||
| 4 | # Replace this with your real tests. | ||
| 5 | test "the truth" do | ||
| 6 | assert true | ||
| 7 | end | ||
| 8 | end | ||
