From: Jean-Baptiste Lievremont Date: Thu, 19 Mar 2015 11:30:42 +0000 (+0100) Subject: SONAR-6236 Use correct replacement widget for non-project related widgets X-Git-Tag: 5.2-RC1~2531 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0939d93a07678aa3d48f58a99affa16912640c71;p=sonarqube.git SONAR-6236 Use correct replacement widget for non-project related widgets --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java b/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java index 389788e3929..5ae53e4f847 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java +++ b/server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java @@ -24,6 +24,7 @@ import com.google.common.collect.Lists; import org.picocontainer.Startable; import org.sonar.api.utils.System2; import org.sonar.api.utils.log.Loggers; +import org.sonar.core.dashboard.DashboardDto; import org.sonar.core.dashboard.WidgetDto; import org.sonar.core.dashboard.WidgetPropertyDto; import org.sonar.core.issue.db.IssueFilterDto; @@ -45,6 +46,7 @@ public class RenameIssueWidgets implements Startable { private static final String WIDGET_UNRESOLVED_BY_DEVELOPER = "reviews_per_developer"; private static final String WIDGET_UNRESOLVED_BY_STATUS = "unresolved_issues_statuses"; + private static final String WIDGET_ISSUE_FILTER = "issue_filter"; private static final String WIDGET_PROJECT_ISSUE_FILTER = "project_issue_filter"; private static final String FILTER_PROPERTY = "filter"; @@ -137,11 +139,18 @@ public class RenameIssueWidgets implements Startable { private void updateWidget(DbSession session, WidgetDto widget) { dbClient.widgetDao().update(session, - widget.setWidgetKey(WIDGET_PROJECT_ISSUE_FILTER) + widget.setWidgetKey(getReplacementWidgetKey(session, widget)) .setUpdatedAt(system.newDate()) .setConfigured(true)); } + private String getReplacementWidgetKey(DbSession session, WidgetDto widget) { + DashboardDto dashboard = dbClient.dashboardDao().getNullableByKey(session, widget.getDashboardId()); + boolean isOnGlobalDashboard = dashboard != null && dashboard.getGlobal(); + + return isOnGlobalDashboard && widget.getResourceId() == null ? WIDGET_ISSUE_FILTER : WIDGET_PROJECT_ISSUE_FILTER; + } + @Override public void stop() { // do nothing diff --git a/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java b/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java index 5e79b405e34..2f3f0ee7612 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java @@ -27,6 +27,7 @@ import org.sonar.api.utils.System2; import org.sonar.core.issue.db.IssueFilterDao; import org.sonar.core.persistence.DbTester; import org.sonar.core.template.LoadedTemplateDao; +import org.sonar.server.dashboard.db.DashboardDao; import org.sonar.server.dashboard.db.WidgetDao; import org.sonar.server.dashboard.db.WidgetPropertyDao; import org.sonar.server.db.DbClient; @@ -73,7 +74,8 @@ public class RenameIssueWidgetsTest { new WidgetDao(dbTester.myBatis()), new WidgetPropertyDao(dbTester.myBatis()), new IssueFilterDao(dbTester.myBatis()), - new LoadedTemplateDao(dbTester.myBatis()) + new LoadedTemplateDao(dbTester.myBatis()), + new DashboardDao(system2) ), system2, null); diff --git a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml index 712f1304dea..d97feacbf3f 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml @@ -31,6 +31,31 @@ updated_at="2011-04-25 01:15:00" /> + + + + + @@ -57,9 +82,9 @@ - - + + @@ -67,8 +92,8 @@ - - + diff --git a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml index 0f3250d3ded..65644a5dd54 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml @@ -31,6 +31,31 @@ updated_at="2011-04-25 01:15:00" /> + + + + + @@ -53,12 +78,12 @@ - + - - +