Please ignore this, will send propper one...
Jirka Dne 13.6.2011 15:11, jtomasek@redhat.com napsal(a):
From: Jiri Tomasekjtomasek@redhat.com
Breadcrumbs added to admin section. Breadcrumbs now track going back in history and can be cleared by calling clear_breadcrumbs in action.
src/app/controllers/application_controller.rb | 20 ++++++++++---------- .../controllers/hardware_profiles_controller.rb | 3 +++ src/app/controllers/pool_families_controller.rb | 3 +++ src/app/controllers/pools_controller.rb | 4 ++-- .../controllers/provider_accounts_controller.rb | 4 ++++ src/app/controllers/providers_controller.rb | 4 ++++ src/app/controllers/realms_controller.rb | 7 +++++++ src/app/controllers/roles_controller.rb | 3 +++ .../suggested_deployables_controller.rb | 3 +++ src/app/controllers/users_controller.rb | 7 +++---- src/app/views/layouts/_nav_history.haml | 4 ++-- 11 files changed, 44 insertions(+), 18 deletions(-)
diff --git a/src/app/controllers/application_controller.rb b/src/app/controllers/application_controller.rb index 6c4c1a6..f8c3e02 100644 --- a/src/app/controllers/application_controller.rb +++ b/src/app/controllers/application_controller.rb @@ -27,7 +27,7 @@ class ApplicationController< ActionController::Base include ApplicationService filter_parameter_logging :password, :password_confirmation helper_method :current_user_session, :current_user, :filter_view?
- before_filter :shift_breadcrumbs
before_filter :read_breadcrumbs layout 'old'
def top_section; end
@@ -243,15 +243,12 @@ class ApplicationController< ActionController::Base # Breadcrumb-Related functionality ############################################################################
- def clear_breadcrumbs
- session[:breadcrumbs] = []
- def read_breadcrumbs
- @read_breadcrumbs = session[:breadcrumbs].last(2) end
- def shift_breadcrumbs
- session[:breadcrumbs] ||= []
- shifted_breadcrumb = session[:breadcrumbs].shift unless session[:breadcrumbs].length< 3 || request.request_uri == session[:breadcrumbs].last[:path]
- #TODO waiting for the ViewState to be implemented
- #ViewState.find(shifted_breadcrumb[:viewstate]).mark_for_deletion if shifted_breadcrumb[:viewstate]
def clear_breadcrumbs
session[:breadcrumbs] = [] end
def save_breadcrumb(path, name = controller_name)
@@ -259,9 +256,12 @@ class ApplicationController< ActionController::Base breadcrumbs = session[:breadcrumbs] viewstate = @viewstate ? @viewstate.id : nil
- if breadcrumbs.empty? or path != breadcrumbs.last[:path]
breadcrumbs.push({:name => name, :path => path, :viewstate => viewstate, :class => controller_name})
#if item with desired path is already in bc, then remove every bc behind it
if index = breadcrumbs.find_index {|b| b[:path] == path}
breadcrumbs.slice!(index, breadcrumbs.length) end
read_breadcrumbs
breadcrumbs.push({:name => name, :path => path, :viewstate => viewstate, :class => controller_name})
session[:breadcrumbs] = breadcrumbs end
diff --git a/src/app/controllers/hardware_profiles_controller.rb b/src/app/controllers/hardware_profiles_controller.rb index 0967f68..2a91e95 100644 --- a/src/app/controllers/hardware_profiles_controller.rb +++ b/src/app/controllers/hardware_profiles_controller.rb @@ -12,6 +12,8 @@ class HardwareProfilesController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(hardware_profiles_path) @params = params respond_to do |format| format.js do
@@ -41,6 +43,7 @@ class HardwareProfilesController< ApplicationController @details_tab = params[:details_tab].blank? ? 'properties' : params[:details_tab] properties matching_provider_hardware_profiles
save_breadcrumb(hardware_profile_path(@hardware_profile), @hardware_profile.name)
respond_to do |format| format.js do
diff --git a/src/app/controllers/pool_families_controller.rb b/src/app/controllers/pool_families_controller.rb index 80f7885..bd57b2e 100644 --- a/src/app/controllers/pool_families_controller.rb +++ b/src/app/controllers/pool_families_controller.rb @@ -10,6 +10,8 @@ class PoolFamiliesController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(pool_families_path) @search_term = params[:q] if @search_term.blank? load_pool_families
@@ -57,6 +59,7 @@ class PoolFamiliesController< ApplicationController def show @pool_family = PoolFamily.find(params[:id]) @url_params = params.clone
save_breadcrumb(pool_family_path(@pool_family), @pool_family.name)
respond_to do |format| format.js do
diff --git a/src/app/controllers/pools_controller.rb b/src/app/controllers/pools_controller.rb index 707d32c..46b3e17 100644 --- a/src/app/controllers/pools_controller.rb +++ b/src/app/controllers/pools_controller.rb @@ -15,6 +15,7 @@ class PoolsController< ApplicationController
def index clear_breadcrumbs
save_breadcrumb(pools_path(:viewstate => @viewstate ? @viewstate.id : nil))
@user_pools = Pool.list_for_user(current_user, Privilege::VIEW) if filter_view?
@@ -45,11 +46,11 @@ class PoolsController< ApplicationController format.html format.json { render :json => @pools } end
save_breadcrumb(pools_path(:viewstate => @viewstate ? @viewstate.id : nil)) end
def show @pool = Pool.find(params[:id])
- save_breadcrumb(pool_path(@pool), @pool.name) require_privilege(Privilege::VIEW, @pool) @statistics = @pool.statistics @view = params[:view] == 'filter' ? 'deployments/filter_view' : 'deployments/pretty_view'
@@ -58,7 +59,6 @@ class PoolsController< ApplicationController format.html { render :action => :show} format.json { render :json => @pool } end
save_breadcrumb(pool_path(@pool), @pool.name) end
def new
diff --git a/src/app/controllers/provider_accounts_controller.rb b/src/app/controllers/provider_accounts_controller.rb index 1f4dd05..f17ee70 100644 --- a/src/app/controllers/provider_accounts_controller.rb +++ b/src/app/controllers/provider_accounts_controller.rb @@ -9,6 +9,8 @@ class ProviderAccountsController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(provider_accounts_path) # TODO: this is temporary solution how to combine search and permissions # filtering @search_term = params[:q]
@@ -36,6 +38,8 @@ class ProviderAccountsController< ApplicationController render :action => 'show' and return end
- save_breadcrumb(provider_account_path(@account), @account.name)
respond_to do |format| format.js do if @url_params.delete :details_pane
diff --git a/src/app/controllers/providers_controller.rb b/src/app/controllers/providers_controller.rb index ad0838b..b777bab 100644 --- a/src/app/controllers/providers_controller.rb +++ b/src/app/controllers/providers_controller.rb @@ -8,6 +8,8 @@ class ProvidersController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(providers_path) @params = params @search_term = params[:q]
@@ -48,6 +50,8 @@ class ProvidersController< ApplicationController test_connection(@provider) end
- save_breadcrumb(provider_path(@provider), @provider.name)
respond_to do |format| format.js do if @url_params.delete :details_pane
diff --git a/src/app/controllers/realms_controller.rb b/src/app/controllers/realms_controller.rb index 88b3747..4fa3824 100644 --- a/src/app/controllers/realms_controller.rb +++ b/src/app/controllers/realms_controller.rb @@ -7,6 +7,11 @@ class RealmsController< ApplicationController :administer end
- def index
- clear_breadcrumbs
- save_breadcrumb(realms_path)
- end
- def new require_privilege(Privilege::CREATE, Realm) @realm = FrontendRealm.new
@@ -78,6 +83,8 @@ class RealmsController< ApplicationController @backend_realm_targets = @realm.realm_backend_targets.select {|x| x.realm_or_provider_type == 'Realm'} @backend_provider_targets = @realm.realm_backend_targets.select {|x| x.realm_or_provider_type == 'Provider'}
- save_breadcrumb(realm_path(@realm), @realm.name)
respond_to do |format| format.js do if @url_params.delete :details_pane
diff --git a/src/app/controllers/roles_controller.rb b/src/app/controllers/roles_controller.rb index 07a6080..2cb5af8 100644 --- a/src/app/controllers/roles_controller.rb +++ b/src/app/controllers/roles_controller.rb @@ -9,6 +9,8 @@ class RolesController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(roles_path) @search_term = params[:q] if @search_term.blank? load_roles
@@ -48,6 +50,7 @@ class RolesController< ApplicationController @url_params = params.clone @tab_captions = ['Properties'] @details_tab = params[:details_tab].blank? ? 'properties' : params[:details_tab]
- save_breadcrumb(role_path(@role), @role.name) respond_to do |format| format.js do if @url_params.delete :details_pane
diff --git a/src/app/controllers/suggested_deployables_controller.rb b/src/app/controllers/suggested_deployables_controller.rb index dfa6722..1900bf3 100644 --- a/src/app/controllers/suggested_deployables_controller.rb +++ b/src/app/controllers/suggested_deployables_controller.rb @@ -7,6 +7,8 @@ class SuggestedDeployablesController< ApplicationController end
def index
- clear_breadcrumbs
- save_breadcrumb(suggested_deployables_path(:viewstate => @viewstate ? @viewstate.id : nil)) @suggested_deployables = SuggestedDeployable.list_for_user(current_user, Privilege::VIEW) set_header end
@@ -19,6 +21,7 @@ class SuggestedDeployablesController< ApplicationController def show @suggested_deployable = SuggestedDeployable.find(params[:id]) require_privilege(Privilege::VIEW, @suggested_deployable)
save_breadcrumb(suggested_deployable_path(@suggested_deployable), @suggested_deployable.name) end
def create
diff --git a/src/app/controllers/users_controller.rb b/src/app/controllers/users_controller.rb index fe79da0..106c0eb 100644 --- a/src/app/controllers/users_controller.rb +++ b/src/app/controllers/users_controller.rb @@ -8,9 +8,9 @@ class UsersController< ApplicationController end
def index
- clear_breadcrumbs require_privilege(Privilege::VIEW, User)
- save_breadcrumb(users_path, "Users")
- clear_breadcrumbs
- save_breadcrumb(users_path) @params = params @search_term = params[:q] if @search_term.blank?
@@ -57,7 +57,7 @@ class UsersController< ApplicationController @user = params[:id] ? User.find(params[:id]) : current_user require_privilege(Privilege::VIEW, User) unless current_user == @user @quota_resources = @user.quota.quota_resources
- save_breadcrumb(user_path(@user), @user.name) @url_params = params.clone @tab_captions = ['Properties'] @details_tab = params[:details_tab].blank? ? 'properties' : params[:details_tab]
@@ -70,7 +70,6 @@ class UsersController< ApplicationController end format.html end
save_breadcrumb(user_path(@user), [@user.first_name, @user.last_name].join(' ').titlecase) end
def edit
diff --git a/src/app/views/layouts/_nav_history.haml b/src/app/views/layouts/_nav_history.haml index 1a95c45..6688d10 100644 --- a/src/app/views/layouts/_nav_history.haml +++ b/src/app/views/layouts/_nav_history.haml @@ -1,7 +1,7 @@ -- unless session[:breadcrumbs].blank? +- unless @read_breadcrumbs.blank? %nav#nav_history %span.label.light.small« Return to %ol.nav_hist_bar
- session[:breadcrumbs][0..1].each do |breadcrumb|
- @read_breadcrumbs.each do |breadcrumb| %li{:class => breadcrumb[:class]} = link_to breadcrumb[:name].titleize, breadcrumb[:path]