From: Tomas Sedovic <tsedo...@redhat.com>

This adds the new menu structure we plan to use. However, all the landing pages
for the menu items are not created yet. All the new links point to the root URL.

As such, the old navigation remains as well (so that the site is usable).
---
 src/app/views/layouts/_header.haml    |    1 -
 src/app/views/layouts/aggregator.haml |    3 +
 src/config/navigation.rb              |   69 +++++++++++++++++++++++++++++----
 3 files changed, 64 insertions(+), 9 deletions(-)

diff --git a/src/app/views/layouts/_header.haml 
b/src/app/views/layouts/_header.haml
index 06a63ef..ea54a9d 100644
--- a/src/app/views/layouts/_header.haml
+++ b/src/app/views/layouts/_header.haml
@@ -1,6 +1,5 @@
 .header_logo
   %span Deltacloud Aggregator
-  = render_navigation
 
 .header_info
   #hi-username
diff --git a/src/app/views/layouts/aggregator.haml 
b/src/app/views/layouts/aggregator.haml
index 8173c33..a9df32e 100644
--- a/src/app/views/layouts/aggregator.haml
+++ b/src/app/views/layouts/aggregator.haml
@@ -24,6 +24,9 @@
     #header
       = render :partial => '/layouts/header'
     #content
+      / NOTE: swap the following two lines if you want only the old navigation
+      = render_navigation(:expand_all => true)
+      /= render_navigation(:level => 2, :expand_all => true)
       - if ['instance', 'pool'].include? controller.controller_name
         #side
           = render :partial => '/layouts/main_nav' unless @current_user.nil?
diff --git a/src/config/navigation.rb b/src/config/navigation.rb
index f3b34a0..03adba2 100644
--- a/src/config/navigation.rb
+++ b/src/config/navigation.rb
@@ -1,11 +1,64 @@
 SimpleNavigation::Configuration.run do |navigation|
-  navigation.items do |primary|
-    primary.dom_class = 'nav'
-    primary.item :dashboard, t(:dashboard), :controller => "dashboard"
-    primary.item :instances, t(:instances), :controller => "instance"
-    primary.item :templates, t(:templates), :controller => "image", :action => 
"show"
-    primary.item :users, t(:users), {:controller => "permissions", :action => 
"list"} , :if => lambda {
-      @current_user && 
has_view_perms?(BasePermissionObject.general_permission_scope) }
-    primary.item :settings, t(:settings), :controller => "settings"
+  navigation.items do |first_level|
+    first_level.item :old_nav, "Old Navigation", "#" do |old_nav|
+      old_nav.dom_class = 'nav'
+      old_nav.item :dashboard, t(:dashboard), :controller => "dashboard"
+      old_nav.item :instances, t(:instances), :controller => "instance"
+      old_nav.item :templates, t(:templates), :controller => "image", :action 
=> "show"
+      old_nav.item :users, t(:users), {:controller => "permissions", :action 
=> "list"} , :if => lambda {
+        @current_user && 
has_view_perms?(BasePermissionObject.general_permission_scope) }
+      old_nav.item :settings, t(:settings), :controller => "settings"
+    end
+
+    first_level.item :operate, t(:operate), '/' do |second_level|
+      second_level.item :monitor, t(:monitor), '/'
+      second_level.item :inventory, t(:inventory), '/'
+    end
+    first_level.item :administer, t(:administer), '/' do |second_level|
+      second_level.item :system_settings, t(:system_settings), '/' do 
|third_level|
+        third_level.item :manage_providers, t(:manage_providers), '/' do 
|fourth_level|
+          fourth_level.item :provider_summary, t(:provider_summary), '/'
+          fourth_level.item :password_provider_accounts, 
t(:password_provider_accounts), '/'
+          fourth_level.item :certificate_provider_accounts, 
t(:certificate_provider_accounts), '/'
+          fourth_level.item :scheduling_policies, t(:scheduling_policies), '/'
+          fourth_level.item :map_services, t(:map_services), '/'
+          fourth_level.item :map_profiles, t(:map_profiles), '/'
+          fourth_level.item :map_locales, t(:map_locales), '/'
+        end
+        third_level.item :define_services, t(:define_services), '/'
+        third_level.item :define_profiles, t(:define_profiles), '/'
+        third_level.item :define_locales, t(:define_locales), '/'
+        third_level.item :self_service_settings, t(:self_service_settings), '/'
+        third_level.item :manage_users, t(:manage_users), {:controller => 
"permissions", :action => "list"} , :if => lambda { @current_user && 
has_view_perms?(BasePermissionObject.general_permission_scope) } do 
|fourth_level|
+          fourth_level.item :new_user, t(:new_user), '/'
+          fourth_level.item :edit_user, t(:edit_user), '/'
+        end
+      end
+      second_level.item :pools_and_zones, t(:pools_and_zones), '/' do 
|third_level|
+        third_level.item :new_pool, t(:new_pool), '/', :if => lambda { true }
+        third_level.item :edit_pool, t(:edit_pool), '/', :if => lambda { true }
+        third_level.item :new_zone, t(:new_zone), '/', :if => lambda { true }
+        third_level.item :edit_zone, t(:edit_zone), '/', :if => lambda { true }
+      end
+      second_level.item :audit, t(:audit), '/'
+      second_level.item :assistance_requests, t(:assistance_requests), '/'
+    end
+    first_level.item :build, t(:build), '/' do |second_level|
+      second_level.item :template_management, t(:template_management), '/' do 
|third_level|
+        third_level.item :basic_template, t(:basic_template), '/' do 
|fourth_level|
+          fourth_level.item :browse_packages, t(:browse_packages), '/'
+        end
+        third_level.item :import_template, t(:import_template), '/'
+      end
+      second_level.item :grind_management, t(:grind_management), '/'
+      second_level.item :image_management, t(:image_management), '/'
+    end
+    first_level.item :run, t(:run), '/' do |second_level|
+      second_level.item :manage_instances, t(:manage_instances), '/' do 
|third_level|
+        third_level.item :pool_details, t(:pool_details), '/'
+        third_level.item :instance_details, t(:instance_details), '/'
+        third_level.item :launch_instance, t(:launch_instance), '/'
+      end
+    end
   end
 end
-- 
1.7.2.2

_______________________________________________
deltacloud-devel mailing list
deltacloud-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to