diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2011-12-14 17:37:08 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2011-12-14 17:37:08 +0100 |
commit | cd19885928f5aae1e8b1663eb45dd301b46ccb49 (patch) | |
tree | 4f5462811de2756e2d5810726630d53119bf8d4a | |
parent | e8a499ef6872dff2a66d36c594fcc7e066db8ae5 (diff) | |
download | sonarqube-cd19885928f5aae1e8b1663eb45dd301b46ccb49.tar.gz sonarqube-cd19885928f5aae1e8b1663eb45dd301b46ccb49.zip |
SONAR-2984 review widgets must not fail if reviews have no comments
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 %> -<div class="line-block"> - <div style="float:right"> - <a href="<%= url_for :controller => 'reviews', :action => 'index', :projects => [@project.id], - :assignee_login => '', :from => from_date, :to => to_date -%>"> - <%= message('widgets.more') -%> - </a> + <div class="line-block"> + <div style="float:right"> + <a href="<%= url_for :controller => 'reviews', :action => 'index', :projects => [@project.id], + :assignee_login => '', :from => from_date, :to => to_date -%>"> + <%= message('widgets.more') -%> + </a> + </div> + <h3><%= message('widget.project_reviews.name') -%></h3> </div> - <h3><%= message('widget.project_reviews.name') -%></h3> -</div> -<div id="reviews-widget-<%= widget.id -%>"> - <%= 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} %> -</div> + <div id="reviews-widget-<%= widget.id -%>"> + <%= 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} %> + </div> <% 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 %> - <table id="reviews-widget-list-<%= widget_id -%>" class="data width100"> - <thead> - <tr> - <th coslpan="4"> - </th> - </tr> - </thead> - <tfoot> - <tr> - <td colspan="4"> - <%= 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<page_count %> - <%= message('paging_next') unless page_id<page_count %> - <% - end - %> - </td> - </tr> - </tfoot> - <tbody> - <% - reviews.each do |review| - comment = review.comments.last - %> - <tr class="<%= cycle 'even', 'odd', :name => ('reviews-widget-list-' + widget_id) -%>"> - <td> - <%= link_to h(review.id), :controller => "reviews", :action => "view", :id => review.id -%> - </td> - <td><img src="<%= ApplicationController.root_context -%>/images/priority/<%= review.severity -%>.png" title="<%= message(review.severity.downcase).capitalize -%>"/></td> - <td> - <%= link_to h(review.title), :controller => "reviews", :action => "view", :id => review.id -%> + <table id="reviews-widget-list-<%= widget_id -%>" class="data width100"> + <thead> + <tr> + <th coslpan="4"> + </th> + </tr> + </thead> + <tfoot> + <tr> + <td colspan="4"> + <%= 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<page_count %> + <%= message('paging_next') unless page_id<page_count %> + <% + end + %> + </td> + </tr> + </tfoot> + <tbody> + <% + reviews.each do |review| + comment = review.comments.last + %> + <tr class="<%= cycle 'even', 'odd', :name => ('reviews-widget-list-' + widget_id) -%>"> + <td> + <%= link_to h(review.id), :controller => "reviews", :action => "view", :id => review.id -%> + </td> + <td><img src="<%= ApplicationController.root_context -%>/images/priority/<%= review.severity -%>.png" title="<%= message(review.severity.downcase).capitalize -%>"/></td> + <td> + <%= link_to h(review.title), :controller => "reviews", :action => "view", :id => review.id -%> + <% if comment %> <div class="comment-excerpt"> <img src="<%= ApplicationController.root_context -%>/images/reviews/comment.png"/> - <b><%= comment.user.name -%> :</b> + <b><%= comment.user.name -%> :</b> <%= comment.excerpt -%> - </div> - </td> - <td class="nowrap"><%= distance_of_time_in_words_to_now(review.updated_at) -%></td> - </tr> - <% - end - %> - </tbody> - </table> - + </div> + <% end %> + </td> + <td class="nowrap"><%= distance_of_time_in_words_to_now(review.updated_at) -%></td> + </tr> + <% + end + %> + </tbody> + </table> + <% end %>
\ No newline at end of file |