aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2011-12-14 17:37:08 +0100
committerSimon Brandhof <simon.brandhof@gmail.com>2011-12-14 17:37:08 +0100
commitcd19885928f5aae1e8b1663eb45dd301b46ccb49 (patch)
tree4f5462811de2756e2d5810726630d53119bf8d4a
parente8a499ef6872dff2a66d36c594fcc7e066db8ae5 (diff)
downloadsonarqube-cd19885928f5aae1e8b1663eb45dd301b46ccb49.tar.gz
sonarqube-cd19885928f5aae1e8b1663eb45dd301b46ccb49.zip
SONAR-2984 review widgets must not fail if reviews have no comments
-rw-r--r--plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb52
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb212
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"/>
- &nbsp;<b><%= comment.user.name -%> :</b>
+ &nbsp;<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