From: Tomas Sedovic <[email protected]>

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
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to