aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Bellingard <bellingard@gmail.com>2012-07-11 16:31:42 +0200
committerFabrice Bellingard <bellingard@gmail.com>2012-07-12 10:33:31 +0200
commitaaf14f22d54c3d731990535390b83aef45211d99 (patch)
tree789560f3b5b60a69397e38c3c8b0b8147873eb4c
parent616ed594427ad3d32be0547883a54a740374653f (diff)
downloadsonarqube-aaf14f22d54c3d731990535390b83aef45211d99.tar.gz
sonarqube-aaf14f22d54c3d731990535390b83aef45211d99.zip
SONAR-3590 Show clean message when the widget fails to render.
-rw-r--r--plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties1
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/helpers/dashboard_helper.rb2
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_configure_widget.html.erb22
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget.html.erb23
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/widget/index.html.erb42
5 files changed, 65 insertions, 25 deletions
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')
+%>
<div class="widget-header">
<div class="widget-actions">
@@ -27,9 +30,20 @@
</style>
<![endif]-->
<div class="transparent"></div>
- <% if widget_body.include? '<' %>
+ <% if !widget_body %>
+ <div class="block">
+ <% if default_layout %>
+ <div class="widget">
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%></span>
+ <div class="clear"></div>
+ </div>
+ <% else %>
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%></span>
+ <% end %>
+ </div>
+ <% elsif widget_body.include? '<' %>
<%
- default_layout=(widget.layout=='DEFAULT')
+
if default_layout
%>
<div class="widget">
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 %>
+
+ <div class="block">
+ <% if default_layout %>
+ <div class="widget">
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%></span>
+ <div class="clear"></div>
+ </div>
+ <% else %>
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => widget.name) -%></span>
+ <% end %>
+ </div>
+
+<% elsif widget_body.include?('<') %>
<div class="block" id="block_<%= widget.id -%>">
<%= render :partial => 'widget_title', :locals => {:widget => widget} -%>
<div class="<%= h widget.key -%>" style="height:100%;">
- <% default_layout=(widget.java_definition.getWidgetLayout().name()=='DEFAULT') %>
<% if default_layout %>
<div class="widget">
<%= 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 @@
<div id="block_1" class="block" style="width: <%= @widget_width -%>">
<div class="<%= @widget_definition.getId() %>" style="height:100%;">
<%
+ 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
- %>
- <div class="widget">
- <% end %>
- <%= widget_body -%>
- <% if default_layout %>
+
+<% if !widget_body %>
+
+ <% if default_layout %>
+ <div class="widget">
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => @widget.key) -%></span>
+ <div class="clear"></div>
+ </div>
+ <% else %>
+ <span class="empty_widget"><%= message('widget.error_occurred_please_read_logs', :params => @widget.key) -%></span>
+ <% end %>
+
+<%
+ elsif widget_body.include?('<')
+%>
+ <% if default_layout %>
+ <div class="widget">
+ <%= widget_body -%>
<div class="clear"></div>
- </div>
- <% end %>
- <%
- end
- %>
+ </div>
+ <% else %>
+ <%= widget_body -%>
+ <% end %>
+<% end %>
+
<div style="clear: both;"></div>
</div>
</div> \ No newline at end of file