From 310b36e6770cf3a08af198b7a475add0b35158fa Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 16 Jan 2012 14:36:39 +0100 Subject: SONAR-2990 The category filter is lost when adding a widget to a dashboard --- .../webapp/WEB-INF/app/controllers/dashboard_controller.rb | 10 ++++++---- .../WEB-INF/app/views/dashboard/_widget_definition.html.erb | 1 + .../WEB-INF/app/views/dashboard/_widget_definitions.html.erb | 8 ++++---- .../main/webapp/WEB-INF/app/views/dashboard/configure.html.erb | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboard_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboard_controller.rb index 5514e6b808b..e73e418b279 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboard_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboard_controller.rb @@ -51,7 +51,8 @@ class DashboardController < ApplicationController # TODO display error page if no dashboard or no resource load_resource() load_dashboard() - load_widget_definitions() + @category=params[:category] + load_widget_definitions(@category) unless @dashboard redirect_to home_path end @@ -121,7 +122,7 @@ class DashboardController < ApplicationController end end end - redirect_to :action => 'configure', :did => dashboard.id, :id => params[:id], :highlight => widget_id + redirect_to :action => 'configure', :did => dashboard.id, :id => params[:id], :highlight => widget_id, :category => params[:category] end @@ -146,8 +147,9 @@ class DashboardController < ApplicationController end def widget_definitions - load_widget_definitions(params[:category]) - render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => params[:did], :resource_id => params[:id], :filter_on_category => params[:category]} + @category=params[:category] + load_widget_definitions(@category) + render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => params[:did], :resource_id => params[:id], :category => @category} end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definition.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definition.html.erb index aa7a65bfd48..32c120b6917 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definition.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definition.html.erb @@ -4,6 +4,7 @@

<%= h message('widget.' + definition.getId() + '.description', :default => definition.getDescription()) -%>

<%= form_tag :action => 'add_widget', :did => dashboard_id, :id => resource_id, :widget => definition.getId() %> + diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definitions.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definitions.html.erb index 7713ecf70e2..32f04c617e3 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definitions.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_definitions.html.erb @@ -1,9 +1,9 @@

<%= image_tag 'loading.gif', :style=>'vertical-align: top;display: none', :id => 'filter-widgets-loading' -%> @@ -11,7 +11,7 @@ <% @widget_definitions.each_with_index do |definition, index| %> <% if index%4==0 %><% end %> - <%= render :partial => 'dashboard/widget_definition', :locals => {:definition => definition, :dashboard_id => dashboard_id, :resource_id => resource_id} %> + <%= render :partial => 'dashboard/widget_definition', :locals => {:definition => definition, :dashboard_id => dashboard_id, :resource_id => resource_id, :category => category} %> <% if index%4==3 %><% end %> <% end %> <% for i in 0..(4-(@widget_definitions.size%4)) %> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb index 0ee8b003770..12a599e1f3d 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb @@ -28,7 +28,7 @@ function filterWidgets(category) { new Ajax.Updater( 'widget_defs', - '<%= url_for :controller => "dashboard", :action => "widget_definitions", :did => @dashboard.id, :id => @resource.id -%>&category=' + category, + '<%= url_for :controller => "dashboard", :action => "widget_definitions", :did => @dashboard.id, :id => @resource.id -%>&category=' + encodeURIComponent(category), {asynchronous:true, evalScripts:true}); $('filter-widgets-loading').show(); return false; @@ -41,7 +41,7 @@ <%= render :partial => 'dashboard/header', :locals => {:back => true} %>
- <%= render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => @dashboard.id, :resource_id => @resource.id, :filter_on_category => nil} -%> + <%= render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => @dashboard.id, :resource_id => @resource.id, :category => @category} -%>
-- cgit v1.2.3