From: Tomas Sedovic <tsedovic(a)redhat.com>
This makes the tables in the Administer section consistent with the tables in
the Monitor section.
---
.../controllers/hardware_profiles_controller.rb | 11 +++--
src/app/controllers/pool_families_controller.rb | 8 ++-
src/app/controllers/providers_controller.rb | 11 ++---
src/app/controllers/realms_controller.rb | 5 ++-
src/app/controllers/roles_controller.rb | 3 +-
src/app/controllers/users_controller.rb | 13 ++++++
src/app/views/hardware_profiles/_list.haml | 36 ++++++-----------
src/app/views/pool_families/_list.haml | 31 +++++----------
src/app/views/provider_accounts/_list.haml | 25 ++++++------
src/app/views/providers/_list.haml | 30 +++++---------
src/app/views/realms/_list.haml | 25 ++++--------
src/app/views/roles/_list.haml | 23 ++++-------
src/app/views/suggested_deployables/_list.haml | 30 ++++++---------
src/app/views/users/_list.haml | 41 +++++++-------------
src/config/locales/en.yml | 29 +++++++++++++-
src/config/navigation.rb | 4 +-
16 files changed, 157 insertions(+), 168 deletions(-)
diff --git a/src/app/controllers/hardware_profiles_controller.rb
b/src/app/controllers/hardware_profiles_controller.rb
index 2734552..6aed9a5 100644
--- a/src/app/controllers/hardware_profiles_controller.rb
+++ b/src/app/controllers/hardware_profiles_controller.rb
@@ -190,11 +190,12 @@ class HardwareProfilesController < ApplicationController
def set_params_and_header
@header = [
- { :name => "Hardware Profile Name", :sort_attr => :name },
- { :name => "Architecture", :sort_attr => :architecture },
- { :name => "Memory", :sort_attr => :memory},
- { :name => "Storage", :sort_attr => :storage },
- { :name => "Virtual CPU", :sort_attr => :cpu}
+ { :name => '', :sortable => false },
+ { :name => t("hardware_profiles.index.hardware_profile_name"),
:sort_attr => :name },
+ { :name => t("hardware_profiles.index.architecture"), :sort_attr =>
:architecture },
+ { :name => t("hardware_profiles.index.memory"), :sort_attr =>
:memory},
+ { :name => t("hardware_profiles.index.storage"), :sort_attr =>
:storage },
+ { :name => t("hardware_profiles.index.virtual_cpu"), :sort_attr =>
:cpu},
]
end
diff --git a/src/app/controllers/pool_families_controller.rb
b/src/app/controllers/pool_families_controller.rb
index 03dee90..a38b9a4 100644
--- a/src/app/controllers/pool_families_controller.rb
+++ b/src/app/controllers/pool_families_controller.rb
@@ -126,9 +126,11 @@ class PoolFamiliesController < ApplicationController
end
def set_params_and_header
- @header = [{:name => "Name", :sort_attr => :name},
- {:name => "Quota limit", :sort_attr => :name},
- {:name => "Quota currently in use", :sort_attr => :name},
+ @header = [
+ {:name => '', :sortable => false},
+ {:name => t("pool_families.index.name"), :sort_attr => :name},
+ {:name => t("pool_families.index.quota_used"), :sort_attr =>
:name},
+ {:name => t("pool_families.index.quota_limit"), :sort_attr =>
:name},
]
end
diff --git a/src/app/controllers/providers_controller.rb
b/src/app/controllers/providers_controller.rb
index b1acd70..510f310 100644
--- a/src/app/controllers/providers_controller.rb
+++ b/src/app/controllers/providers_controller.rb
@@ -146,16 +146,15 @@ class ProvidersController < ApplicationController
protected
def set_view_envs
- @header = [{:name => "Provider name", :sort_attr => :name},
- {:name => "Provider URL", :sort_attr => :name}
+ @header = [
+ {:name => '', :sortable => false},
+ {:name => t("providers.index.provider_name"), :sort_attr =>
:name},
+ {:name => t("providers.index.provider_url"), :sort_attr => :name},
+ {:name => t("providers.index.provider_type"), :sort_attr =>
:name},
]
end
def load_providers
- @header = [{:name => "Provider name", :sort_attr => :name},
- {:name => "Provider URL", :sort_attr => :name},
- {:name => "Provider Type", :sort_attr => :name}
- ]
@providers = Provider.list_for_user(@current_user, Privilege::VIEW)
end
end
diff --git a/src/app/controllers/realms_controller.rb
b/src/app/controllers/realms_controller.rb
index a858008..bdc6ba9 100644
--- a/src/app/controllers/realms_controller.rb
+++ b/src/app/controllers/realms_controller.rb
@@ -118,7 +118,10 @@ class RealmsController < ApplicationController
end
def load_realms
- @header = [{:name => "Name", :sort_attr => :name}]
+ @header = [
+ {:name => '', :sortable => false},
+ {:name => t("realms.index.realm_name"), :sort_attr => :name},
+ ]
@realms = FrontendRealm.all
end
end
diff --git a/src/app/controllers/roles_controller.rb
b/src/app/controllers/roles_controller.rb
index 7e5fc38..15a4815 100644
--- a/src/app/controllers/roles_controller.rb
+++ b/src/app/controllers/roles_controller.rb
@@ -113,7 +113,8 @@ class RolesController < ApplicationController
def load_params_and_headers
@header = [
- { :name => "Role name", :sort_attr => :name }
+ { :name => '', :sortable => false },
+ { :name => t("roles.index.role_name"), :sortable => :name },
]
end
diff --git a/src/app/controllers/users_controller.rb
b/src/app/controllers/users_controller.rb
index efebe39..2707159 100644
--- a/src/app/controllers/users_controller.rb
+++ b/src/app/controllers/users_controller.rb
@@ -11,6 +11,7 @@ class UsersController < ApplicationController
clear_breadcrumbs
save_breadcrumb(users_path)
@params = params
+ load_headers
@search_term = params[:q]
if @search_term.blank?
load_users
@@ -140,4 +141,16 @@ class UsersController < ApplicationController
end
end
+ def load_headers
+ @header = [
+ { :name => '', :sortable => false },
+ { :name => t('users.index.user_id'), :sortable => false },
+ { :name => t('users.index.last_name'), :sortable => false },
+ { :name => t('users.index.first_name'), :sortable => false },
+ { :name => t('users.index.quota_used'), :sortable => false },
+ { :name => t('users.index.quota_instances'), :sortable => false },
+ { :name => t('users.index.email'), :sortable => false },
+ ]
+ end
+
end
diff --git a/src/app/views/hardware_profiles/_list.haml
b/src/app/views/hardware_profiles/_list.haml
index 2cb9433..31497d9 100644
--- a/src/app/views/hardware_profiles/_list.haml
+++ b/src/app/views/hardware_profiles/_list.haml
@@ -4,27 +4,17 @@
%span.label.badge.dark.count= @hardware_profiles.length
.content
- - form_tag multi_destroy_hardware_profiles_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_hardware_profiles_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
-
- %table#hardware_profiles_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Hardware Profile Name",
hardware_profiles_path(:sort_by => "name")
- %th= link_to "Architecture", hardware_profiles_path(:sort_by =>
"architecture")
- %th= link_to "Memory", hardware_profiles_path(:sort_by =>
"memory")
- %th= link_to "Storage", hardware_profiles_path(:sort_by =>
"storage")
- %th= link_to "Virtual CPU", hardware_profiles_path(:sort_by =>
"cpu")
- - @hardware_profiles.each do |hwp|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "hardware_profile_selected[]", hwp.id, selected,
:id => "hardware_profile_checkbox_#{hwp.id}"
- %td= link_to hwp.name, hardware_profile_path(hwp)
- %td= hwp.architecture.to_s
- %td= hwp.memory.to_s
- %td= hwp.storage.to_s
- %td= hwp.cpu.to_s
+ = filter_table(@header, @hardware_profiles, :form_header => form_header) do |hwp|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "hardware_profile_selected[]", hwp.id, selected, :id
=> "hardware_profile_checkbox_#{hwp.id}"
+ %td= link_to hwp.name, hardware_profile_path(hwp)
+ %td= hwp.architecture.to_s
+ %td= hwp.memory.to_s
+ %td= hwp.storage.to_s
+ %td= hwp.cpu.to_s
diff --git a/src/app/views/pool_families/_list.haml
b/src/app/views/pool_families/_list.haml
index 6197b66..d7ff551 100644
--- a/src/app/views/pool_families/_list.haml
+++ b/src/app/views/pool_families/_list.haml
@@ -4,24 +4,15 @@
%span.label.badge.dark.count= @pool_families.length
.content
- - form_tag multi_destroy_pool_families_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_pool_families_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
-
- %table#pool_families_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Pool Family Name", pool_families_path(:sort_by =>
"name")
- %th= link_to "Quota limit", pool_families_path(:sort_by =>
"quota")
- %th= link_to "Quota currently in use", pool_families_path(:sort_by
=> "quota")
- - unless @pool_families.blank?
- - @pool_families.each do |pool_family|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "pool_family_selected[]", pool_family.id,
selected, :id => "pool_family_checkbox_#{pool_family.id}"
- %td= link_to pool_family.name, pool_family_path(pool_family)
- %td= pool_family.quota.maximum_running_instances or 'unlimited'
- %td= "#{pool_family.quota.percentage_used} %"
+ = filter_table(@header, @pool_families, :form_header => form_header) do
|pool_family|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "pool_family_selected[]", pool_family.id, selected,
:id => "pool_family_checkbox_#{pool_family.id}"
+ %td= link_to pool_family.name, pool_family_path(pool_family)
+ %td= "#{pool_family.quota.percentage_used} %"
+ %td= pool_family.quota.maximum_running_instances or 'unlimited'
diff --git a/src/app/views/provider_accounts/_list.haml
b/src/app/views/provider_accounts/_list.haml
index 8327163..0ffee07 100644
--- a/src/app/views/provider_accounts/_list.haml
+++ b/src/app/views/provider_accounts/_list.haml
@@ -4,16 +4,17 @@
%span.label.badge.dark.count= @accounts.length
.content
- - form_tag multi_destroy_provider_accounts_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_provider_accounts_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = filter_table(@header, @accounts) do |account|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "accounts_selected[]", account.id, selected, :id
=> "account_checkbox_#{account.id}"
- %td= link_to account.name, provider_account_path(account)
- %td= account.credentials_hash['username']
- %td= account.provider.provider_type.name
- %td= account.quota ? account.quota.percentage_used.to_s + "%":
'unlimited'
- %td= account.quota.maximum_running_instances or 'unlimited'
+ = filter_table(@header, @accounts, :form_header => form_header) do |account|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "accounts_selected[]", account.id, selected, :id
=> "account_checkbox_#{account.id}"
+ %td= link_to account.name, provider_account_path(account)
+ %td= account.credentials_hash['username']
+ %td= account.provider.provider_type.name
+ %td= account.quota ? account.quota.percentage_used.to_s + "%":
'unlimited'
+ %td= account.quota.maximum_running_instances or 'unlimited'
diff --git a/src/app/views/providers/_list.haml b/src/app/views/providers/_list.haml
index a8ff255..7b4b528 100644
--- a/src/app/views/providers/_list.haml
+++ b/src/app/views/providers/_list.haml
@@ -4,23 +4,15 @@
%span.label.badge.dark.count= @providers.length
.content
- - form_tag multi_destroy_providers_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button danger'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_providers_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
-
- %table#providers_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Provider Name", providers_path(:sort_by =>
"name")
- %th= link_to "Provider URL", providers_path(:sort_by =>
"url")
- %th= link_to "Provider Type", providers_path(:sort_by =>
"type")
- - @providers.each do |provider|
- %tr{:class => cycle('nostripe', 'stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "provider_selected[]", provider.id, selected, :id
=> "provider_checkbox_#{provider.id}"
- %td= link_to provider.name, provider_path(provider)
- %td= provider.url
- %td= provider.provider_type.name
+ = filter_table(@header, @providers, :form_header => form_header) do |provider|
+ %tr{:class => cycle('nostripe', 'stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "provider_selected[]", provider.id, selected, :id
=> "provider_checkbox_#{provider.id}"
+ %td= link_to provider.name, provider_path(provider)
+ %td= provider.url
+ %td= provider.provider_type.name
diff --git a/src/app/views/realms/_list.haml b/src/app/views/realms/_list.haml
index 66c9871..67d8c33 100644
--- a/src/app/views/realms/_list.haml
+++ b/src/app/views/realms/_list.haml
@@ -4,20 +4,13 @@
%span.label.badge.dark.count= @realms.length
.content
- - form_tag multi_destroy_realms_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_realms_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
-
- %table#realms_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Realm Name", params.merge(:sort_by =>
"name")
- - unless @realms.blank?
- - @realms.each do |realm|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "realm_selected[]", realm.id, selected, :id
=> "realm_checkbox_#{realm.id}"
- %td= link_to realm.name, realm_path(realm)
+ = filter_table(@header, @realms, :form_header => form_header) do |realm|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "realm_selected[]", realm.id, selected, :id =>
"realm_checkbox_#{realm.id}"
+ %td= link_to realm.name, realm_path(realm)
diff --git a/src/app/views/roles/_list.haml b/src/app/views/roles/_list.haml
index eb58090..50abace 100644
--- a/src/app/views/roles/_list.haml
+++ b/src/app/views/roles/_list.haml
@@ -4,18 +4,13 @@
%span.label.badge.dark.count= @roles.length
.content
- - form_tag multi_destroy_roles_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_roles_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
- %table#roles_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Role Name", roles_path(:sort_by =>
"name")
- - @roles.each do |role|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "role_selected[]", role.id, selected, :id =>
"role_checkbox_#{role.id}"
- %td= link_to role.name, role_path(role)
+ = filter_table(@header, @roles, :form_header => form_header) do |role|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "role_selected[]", role.id, selected, :id =>
"role_checkbox_#{role.id}"
+ %td= link_to role.name, role_path(role)
diff --git a/src/app/views/suggested_deployables/_list.haml
b/src/app/views/suggested_deployables/_list.haml
index 5f53edf..5daf56a 100644
--- a/src/app/views/suggested_deployables/_list.haml
+++ b/src/app/views/suggested_deployables/_list.haml
@@ -4,22 +4,16 @@
%span.label.badge.dark.count= @suggested_deployables.length
.content
- - form_tag multi_destroy_suggested_deployables_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button danger'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_suggested_deployables_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
- %table#deployables_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "Name", suggested_deployables_path(:sort_by =>
"name")
- %th= link_to "URL", suggested_deployables_path(:sort_by =>
"url")
- - @suggested_deployables.each do |suggested_deployable|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "suggested_deployables_selected[]",
suggested_deployable.id, selected, :id =>
"suggested_deployable_checkbox_#{suggested_deployable.id}"
- %td
- = link_to suggested_deployable.name,
suggested_deployable_path(suggested_deployable.id)
- %td
- = suggested_deployable.url
+ = filter_table(@header, @suggested_deployables, :form_header => form_header) do
|suggested_deployable|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "suggested_deployables_selected[]",
suggested_deployable.id, selected, :id =>
"suggested_deployable_checkbox_#{suggested_deployable.id}"
+ %td
+ = link_to suggested_deployable.name,
suggested_deployable_path(suggested_deployable.id)
+ %td
+ = suggested_deployable.url
diff --git a/src/app/views/users/_list.haml b/src/app/views/users/_list.haml
index eb016f8..394fc90 100644
--- a/src/app/views/users/_list.haml
+++ b/src/app/views/users/_list.haml
@@ -4,31 +4,18 @@
%span.label.badge.dark.count= @users.length
.content
- - form_tag multi_destroy_users_path do
- = submit_tag "Delete", :id => 'delete_button', :class =>
'button danger'
+ - form_header = capture_haml do
+ = restful_submit_tag "Delete", "destroy",
multi_destroy_users_path, 'DELETE',
+ :id => 'delete_button', :class => 'button danger'
- = render :partial => 'layouts/select_all_none'
-
- %table#users_table.flat.checkbox_table
- %thead
- %tr
- %th.ignore
- %th= link_to "User ID", users_url(:sort_by =>
"login")
- %th= link_to "Last Name", users_url(:sort_by =>
"last_name")
- %th= link_to "First Name", users_url(:sort_by =>
"first_name")
- %th= link_to "% Quota Used", users_url(:sort_by =>
"percentage_quota_used")
- %th
- =link_to "Quota", users_url(:sort_by => "quota")
- %span (Instances)
- %th= link_to "e-mail", users_url(:sort_by => "email")
- -(a)users.each do |user|
- %tr{:class => cycle('nostripe','stripe')}
- %td
- - selected = params[:select] == 'all'
- = check_box_tag "user_selected[]", user.id, selected, :id =>
"user_checkbox_#{user.id}"
- %td= link_to user.login, user_path(user)
- %td= user.last_name
- %td= user.first_name
- %td= sprintf("%.2f", user.quota.percentage_used)
- %td= Quota.no_limit(user.quota.maximum_running_instances) ?
"Unlimited" : user.quota.maximum_running_instances
- %td= user.email
+ = filter_table(@header, @users, :form_header => form_header) do |user|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td
+ - selected = params[:select] == 'all'
+ = check_box_tag "user_selected[]", user.id, selected, :id =>
"user_checkbox_#{user.id}"
+ %td= link_to user.login, user_path(user)
+ %td= user.last_name
+ %td= user.first_name
+ %td= user.quota ? user.quota.percentage_used.to_s + "%":
'unlimited'
+ %td= Quota.no_limit(user.quota.maximum_running_instances) ? "Unlimited"
: user.quota.maximum_running_instances
+ %td= user.email
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 25090a0..a3f62f4 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -3,6 +3,13 @@ en:
users:
users: Users
confirm_delete: "Are you sure you want to delete this user?"
+ index:
+ user_id: User ID
+ last_name: Last Name
+ first_name: First Name
+ quota_used: Quota Used
+ quota_instances: Quota Limit
+ email: e-mail
about: About
configure: Configure
hello: Hello
@@ -107,7 +114,10 @@ en:
assemblies: Assemblies
template_collections: Template Collections
administration: Administration
- roles: Roles
+ roles:
+ roles: Roles
+ index:
+ role_name: Role Name
cloud_providers: Cloud Providers
provider_accounts_item: Provider Account
cloud_engine_hardware_profiles: Hardware Profiles
@@ -131,11 +141,24 @@ en:
pool_not_deleted:
one: "Pool %{list} was not deleted. There are instances associated with
it."
other: "Pools %{list} were not deleted. They have instances associated with
them."
+ hardware_profiles:
+ index:
+ hardware_profile_name: Hardware Profile Name
+ architecture: Architecture
+ memory: Memory
+ storage: Storage
+ virtual_cpu: Virtual CPU
+ realms:
+ index:
+ realm_name: Realm Name
pool_families:
pool_families: Pool Families
index:
deleted: "Deleted the following Pool Families: %{list}."
not_deleted: "Could not delete the following Pool Families: %{list}."
+ name: Name
+ quota_used: Quota Used
+ quota_limit: Quota Limit
suggested_deployables:
index:
suggested_deployables: Suggested Deployables
@@ -181,6 +204,10 @@ en:
provider: Provider
providers: Providers
confirm_delete: "Are you sure you want to delete this provider?"
+ index:
+ provider_name: Provider Name
+ provider_url: Provider URL
+ provider_type: Provider Type
form:
provider_name: Provider Name
provider_url: Provider URL
diff --git a/src/config/navigation.rb b/src/config/navigation.rb
index 4d2a589..326b97c 100644
--- a/src/config/navigation.rb
+++ b/src/config/navigation.rb
@@ -7,8 +7,8 @@ SimpleNavigation::Configuration.run do |navigation|
second_level.item :instances, t("instances.instances"), instances_path
end
first_level.item :administration, t(:administration), users_path, :highlights_on
=> /\/admin/ do |second_level|
- second_level.item :users, t(:users), users_path, :highlights_on => /\/users/
- second_level.item :roles, t(:roles), roles_path, :highlights_on => /\/roles/
+ second_level.item :users, t('users.users'), users_path, :highlights_on
=> /\/users/
+ second_level.item :roles, t('roles.roles'), roles_path, :highlights_on
=> /\/roles/
second_level.item :providers, t('providers.providers'), providers_path,
:highlights_on => /\/providers/
second_level.item :provider_accounts, t(:provider_accounts_item),
provider_accounts_path, :highlights_on => /\/provider_accounts/
second_level.item :hardware_profiles, t(:cloud_engine_hardware_profiles),
hardware_profiles_path, :highlights_on => /\/hardware_profiles/
--
1.7.4.4