From cd19885928f5aae1e8b1663eb45dd301b46ccb49 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 14 Dec 2011 17:37:08 +0100 Subject: SONAR-2984 review widgets must not fail if reviews have no comments --- .../core/widgets/reviews/project_reviews.html.erb | 52 ++--- .../project/widgets/reviews/_reviews_list.html.erb | 212 +++++++++++---------- 2 files changed, 134 insertions(+), 130 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb index 84a76981c3b..2d89c60c43e 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb @@ -1,31 +1,33 @@ -<% - if has_role?(:user, @project) - limit = widget_properties["numberOfLines"].to_i == 0 ? 5 : widget_properties["numberOfLines"].to_i - - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - to_date = DateTime.now - end +<% + if has_role?(:user, @project) + limit = widget_properties["numberOfLines"].to_i == 0 ? 5 : widget_properties["numberOfLines"].to_i + + from_date=nil + to_date=nil + if @dashboard_configuration.selected_period? + from_date = @dashboard_configuration.from_datetime + to_date = DateTime.now + end %> -
-
- - <%= message('widgets.more') -%> - +
+
+ + <%= message('widgets.more') -%> + +
+

<%= message('widget.project_reviews.name') -%>

-

<%= message('widget.project_reviews.name') -%>

-
-
- <%= render :partial => 'project/widgets/reviews/reviews_list', - :locals => {:assignee_login => '', - :project_key => @project.key, - :statuses => 'OPEN,REOPENED', - :resolution => '', - :limit => limit, - :widget_id => widget.id.to_s} %> -
+
+ <%= render :partial => 'project/widgets/reviews/reviews_list', + :locals => {:assignee_login => '', + :project_key => @project.key, + :statuses => 'OPEN,REOPENED', + :resolution => '', + :limit => limit, + :widget_id => widget.id.to_s} %> +
<% end %> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb index 4652fa0e99b..9e2ea6b765a 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb @@ -1,38 +1,38 @@ -<% - assignee_login = params[:assignee_login] unless assignee_login - project_key = params[:project_key] unless project_key - statuses = params[:statuses] unless statuses - resolution = params[:resolution] unless resolution - limit = params[:limit] unless limit - widget_id = params[:widget_id] unless widget_id - - options = {} - options['statuses'] = statuses - options['assignees'] = assignee_login - options['projects'] = project_key - options['resolutions'] = resolution - options['sort'] = 'updated_at' - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - options['from'] = from_date - to_date = DateTime.now - options['to'] = to_date - end - reviews = Review.search(options) - - # table pagination - page_size = 20 - page_size = limit.to_i - total_number = reviews.size - if reviews.size > page_size - page_id = (params[:page_id] ? params[:page_id].to_i : 1) - page_count = reviews.size / page_size - page_count += 1 if (reviews.size % page_size > 0) - from = (page_id-1) * page_size - to = (page_id*page_size)-1 - to = reviews.size-1 if to >= reviews.size - reviews = reviews[from..to] - end +<% + assignee_login = params[:assignee_login] unless assignee_login + project_key = params[:project_key] unless project_key + statuses = params[:statuses] unless statuses + resolution = params[:resolution] unless resolution + limit = params[:limit] unless limit + widget_id = params[:widget_id] unless widget_id + + options = {} + options['statuses'] = statuses + options['assignees'] = assignee_login + options['projects'] = project_key + options['resolutions'] = resolution + options['sort'] = 'updated_at' + if @dashboard_configuration.selected_period? + from_date = @dashboard_configuration.from_datetime + options['from'] = from_date + to_date = DateTime.now + options['to'] = to_date + end + reviews = Review.search(options) + + # table pagination + page_size = 20 + page_size = limit.to_i + total_number = reviews.size + if reviews.size > page_size + page_id = (params[:page_id] ? params[:page_id].to_i : 1) + page_count = reviews.size / page_size + page_count += 1 if (reviews.size % page_size > 0) + from = (page_id-1) * page_size + to = (page_id*page_size)-1 + to = reviews.size-1 if to >= reviews.size + reviews = reviews[from..to] + end %> <% if reviews.size ==0 %> @@ -41,77 +41,79 @@ <% else %> - - - - - - - - - - - - - <% - reviews.each do |review| - comment = review.comments.last - %> - - - - + + + <% + end + %> + +
-
- <%= total_number -%> <%= message('results').downcase -%> - <% - if page_count - page_count = 20 if page_count>20 - link_params = {} - link_params[:controller] = 'reviews' - link_params[:action] = 'widget_reviews_list' - link_params[:assignee_login] = assignee_login if assignee_login && !assignee_login.blank? - link_params[:project_key] = project_key - link_params[:snapshot_id] = @snapshot.id - link_params[:statuses] = statuses - link_params[:resolution] = resolution if resolution && !resolution.blank? - link_params[:limit] = limit - link_params[:widget_id] = widget_id - link_params[:period] = params[:period] - %> - | - <%= link_to_remote(message('paging_previous'), - :update => "reviews-widget-#{widget_id}", - :url => {:params => link_params.merge({:page_id => page_id-1})}) if page_id>1 %> - <%= message('paging_previous') unless page_id>1 %> - <% for index in 1..page_count %> - <%= index.to_s if index==page_id %> - <%= link_to_remote(index.to_s, - :update => "reviews-widget-#{widget_id}", - :url => {:params => link_params.merge({:page_id => index})}) unless index==page_id %> - <% end %> - <%= link_to_remote(message('paging_next'), - :update => "reviews-widget-#{widget_id}", - :url => {:params => link_params.merge({:page_id => page_id+1})}) if page_id - <%= message('paging_next') unless page_id - <% - end - %> -
- <%= link_to h(review.id), :controller => "reviews", :action => "view", :id => review.id -%> - - <%= link_to h(review.title), :controller => "reviews", :action => "view", :id => review.id -%> + + + + + + + + + + + + + <% + reviews.each do |review| + comment = review.comments.last + %> + + + + - - - <% - end - %> - -
+
+ <%= total_number -%> <%= message('results').downcase -%> + <% + if page_count + page_count = 20 if page_count>20 + link_params = {} + link_params[:controller] = 'reviews' + link_params[:action] = 'widget_reviews_list' + link_params[:assignee_login] = assignee_login if assignee_login && !assignee_login.blank? + link_params[:project_key] = project_key + link_params[:snapshot_id] = @snapshot.id + link_params[:statuses] = statuses + link_params[:resolution] = resolution if resolution && !resolution.blank? + link_params[:limit] = limit + link_params[:widget_id] = widget_id + link_params[:period] = params[:period] + %> + | + <%= link_to_remote(message('paging_previous'), + :update => "reviews-widget-#{widget_id}", + :url => {:params => link_params.merge({:page_id => page_id-1})}) if page_id>1 %> + <%= message('paging_previous') unless page_id>1 %> + <% for index in 1..page_count %> + <%= index.to_s if index==page_id %> + <%= link_to_remote(index.to_s, + :update => "reviews-widget-#{widget_id}", + :url => {:params => link_params.merge({:page_id => index})}) unless index==page_id %> + <% end %> + <%= link_to_remote(message('paging_next'), + :update => "reviews-widget-#{widget_id}", + :url => {:params => link_params.merge({:page_id => page_id+1})}) if page_id + <%= message('paging_next') unless page_id + <% + end + %> +
+ <%= link_to h(review.id), :controller => "reviews", :action => "view", :id => review.id -%> + + <%= link_to h(review.title), :controller => "reviews", :action => "view", :id => review.id -%> + <% if comment %>
-  <%= comment.user.name -%> : +  <%= comment.user.name -%> : <%= comment.excerpt -%> -
-
<%= distance_of_time_in_words_to_now(review.updated_at) -%>
- + + <% end %> +
<%= distance_of_time_in_words_to_now(review.updated_at) -%>
+ <% end %> \ No newline at end of file -- cgit v1.2.3