From 4d82935705f55a8f3cfac0fa20f7c8930f5d9111 Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Wed, 3 Nov 2010 12:23:11 +0000 Subject: [PATCH] SONAR-1643 do not delete the last default dashboard --- .../webapp/WEB-INF/app/controllers/dashboards_controller.rb | 6 ++++++ .../webapp/WEB-INF/app/controllers/project_controller.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboards_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboards_controller.rb index a27e5c595dc..290a1499dee 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboards_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dashboards_controller.rb @@ -86,14 +86,20 @@ class DashboardsController < ApplicationController def delete dashboard=Dashboard.find(params[:id]) + default_dashboards=ActiveDashboard.default_dashboards if current_user.active_dashboards.size<=1 flash[:error]='At least one dashboard must be defined' redirect_to :action => 'index', :resource => params[:resource] + elsif default_dashboards.size==1 && default_dashboards[0].dashboard_id==dashboard.id + flash[:error]='At least one default dashboard must be defined' + redirect_to :action => 'index', :resource => params[:resource] + elsif dashboard.owner?(current_user) dashboard.destroy flash[:notice]='Dashboard deleted' redirect_to :action => 'index', :resource => params[:resource] + else # TODO explicit error redirect_to home_path diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_controller.rb index 64be4e9ccb7..11392d50464 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_controller.rb @@ -24,7 +24,7 @@ class ProjectController < ApplicationController SECTION=Navigation::SECTION_RESOURCE def index - redirect_to :overwrite_params => {:controller => :dashboard, :action => 'index', :resource => params[:id], :id => nil } + redirect_to :overwrite_params => {:controller => :dashboard, :action => 'index'} end def show_reviews -- 2.39.5