diff options
author | Fabrice Bellingard <bellingard@gmail.com> | 2012-07-11 16:31:42 +0200 |
---|---|---|
committer | Fabrice Bellingard <bellingard@gmail.com> | 2012-07-12 10:33:31 +0200 |
commit | aaf14f22d54c3d731990535390b83aef45211d99 (patch) | |
tree | 789560f3b5b60a69397e38c3c8b0b8147873eb4c | |
parent | 616ed594427ad3d32be0547883a54a740374653f (diff) | |
download | sonarqube-aaf14f22d54c3d731990535390b83aef45211d99.tar.gz sonarqube-aaf14f22d54c3d731990535390b83aef45211d99.zip |
SONAR-3590 Show clean message when the widget fails to render.
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 |