From: Fabrice Bellingard Date: Wed, 11 Jul 2012 14:31:42 +0000 (+0200) Subject: SONAR-3590 Show clean message when the widget fails to render. X-Git-Tag: 3.2~117 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=aaf14f22d54c3d731990535390b83aef45211d99;p=sonarqube.git SONAR-3590 Show clean message when the widget fails to render. --- diff --git a/plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties b/plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties index e6020ecbdcc..12ce94eb15d 100644 --- a/plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties +++ b/plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties @@ -607,6 +607,7 @@ search.duration=({0} seconds) #------------------------------------------------------------------------------ widgets.more=More +widget.error_occurred_please_read_logs=An error occurred while trying to display the widget "{0}". Please contact the administrator. widget.alerts.name=Alerts widget.alerts.description=Display current alerts on the project. diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/dashboard_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/dashboard_helper.rb index 1461413d936..803c7f16fb9 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/dashboard_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/dashboard_helper.rb @@ -120,7 +120,7 @@ module DashboardHelper end def widget_body(widget) - widget_body="" + widget_body=nil if widget.configured begin diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb index 3d7e81f9795..6482380aef8 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb @@ -1,5 +1,8 @@ -<% switch_to_widget_resource(widget) %> -<% widget_body=widget_body(widget) %> +<% + switch_to_widget_resource(widget) + widget_body=widget_body(widget) + default_layout=(widget.layout=='DEFAULT') +%>
@@ -27,9 +30,20 @@
- <% if widget_body.include? '<' %> + <% if !widget_body %> +
+ <% if default_layout %> +
+ <%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%> +
+
+ <% else %> + <%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%> + <% end %> +
+ <% elsif widget_body.include? '<' %> <% - default_layout=(widget.layout=='DEFAULT') + if default_layout %>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget.html.erb index e7ae2a5ce94..c39863f4b6e 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget.html.erb @@ -1,12 +1,27 @@ -<% switch_to_widget_resource(widget) %> -<% widget_body=widget_body(widget) %> +<% + switch_to_widget_resource(widget) + widget_body=widget_body(widget) + default_layout=(widget.java_definition.getWidgetLayout().name()=='DEFAULT') +%> -<% if widget_body.include?('<') %> +<% if !widget_body %> + +
+ <% if default_layout %> +
+ <%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%> +
+
+ <% else %> + <%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%> + <% end %> +
+ +<% elsif widget_body.include?('<') %>
<%= render :partial => 'widget_title', :locals => {:widget => widget} -%>
- <% default_layout=(widget.java_definition.getWidgetLayout().name()=='DEFAULT') %> <% if default_layout %>
<%= widget_body -%> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/widget/index.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/widget/index.html.erb index 04ff9d1a63c..68f6685d349 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/widget/index.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/widget/index.html.erb @@ -1,29 +1,39 @@
<% + widget_body=nil begin widget_body=render :inline => @widget_definition.getTarget().getTemplate(), :locals => {:widget_properties => @widget.properties_as_hash, :widget => @widget, :dashboard_configuration => @dashboard_configuration} rescue => error logger.error(message('dashboard.cannot_render_widget_x', :params => [@widget_definition.getId(), error]), error) - widget_body="" end - - if widget_body.include?('<') + default_layout=(@widget_definition.getWidgetLayout().name()=='DEFAULT') %> - <% - default_layout=(@widget_definition.getWidgetLayout().name()=='DEFAULT') - if default_layout - %> -
- <% end %> - <%= widget_body -%> - <% if default_layout %> + +<% if !widget_body %> + + <% if default_layout %> +
+ <%= message('widget.error_occurred_please_read_logs', :params => @widget.key) -%> +
+
+ <% else %> + <%= message('widget.error_occurred_please_read_logs', :params => @widget.key) -%> + <% end %> + +<% + elsif widget_body.include?('<') +%> + <% if default_layout %> +
+ <%= widget_body -%>
-
- <% end %> - <% - end - %> +
+ <% else %> + <%= widget_body -%> + <% end %> +<% end %> +
\ No newline at end of file