From 534373e2c5b454f5aa7ed959b216859e8074de6f Mon Sep 17 00:00:00 2001 From: Fabrice Bellingard Date: Thu, 22 Dec 2011 14:26:52 +0100 Subject: [PATCH] SONAR-2662 Review widgets refactoring + open list on project context --- .../reviews/false_positive_reviews.html.erb | 34 +++++------------ .../core/widgets/reviews/my_reviews.html.erb | 32 +++++----------- .../widgets/reviews/project_reviews.html.erb | 35 +++++------------ .../reviews/unplanned_reviews.html.erb | 38 +++++-------------- .../controllers/project_reviews_controller.rb | 14 ------- .../main/webapp/WEB-INF/app/models/review.rb | 1 - .../widgets/reviews/_reviews_list.html.erb | 29 ++++---------- .../reviews/_reviews_list_widget.html.erb | 24 ++++++++++++ 8 files changed, 69 insertions(+), 138 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list_widget.html.erb diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/false_positive_reviews.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/false_positive_reviews.html.erb index 0e269505430..4ad13c58ddf 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/false_positive_reviews.html.erb +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/false_positive_reviews.html.erb @@ -1,30 +1,16 @@ <% if has_role?(:user, @project) - limit = widget_properties["numberOfLines"] - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - to_date = DateTime.now - end + search_options = {} + search_options['projects'] = @project.key + search_options['statuses'] = "#{Review::STATUS_RESOLVED}" + search_options['resolutions'] = "#{Review::RESOLUTION_FALSE_POSITIVE}" + + title = message('widget.false_positive_reviews.name') %> -
-
- - <%= message('widgets.more') -%> - -
-

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

-
+ <%= render :partial => 'project/widgets/reviews/reviews_list_widget', + :locals => {:search_options => search_options, :title => title, + :widget_id => widget.id.to_s, :widget_properties => widget_properties} %> -
- <%= render :partial => 'project/widgets/reviews/reviews_list', - :locals => {:project_key => @project.key, - :statuses => 'RESOLVED', - :resolution => 'FALSE-POSITIVE', - :limit => limit, - :widget_id => widget.id.to_s} %> -
- -<% end %> +<% end %> \ No newline at end of file diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/my_reviews.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/my_reviews.html.erb index 8212be3f2ed..1afaaf56c19 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/my_reviews.html.erb +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/my_reviews.html.erb @@ -1,30 +1,16 @@ <% if current_user && has_role?(:user, @project) - limit = widget_properties["numberOfLines"] - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - to_date = DateTime.now - end + search_options = {} + search_options['projects'] = @project.key + search_options['statuses'] = "#{Review::STATUS_OPEN},#{Review::STATUS_REOPENED}" + search_options['assignees'] = current_user.login + + title = message('widget.my_reviews.name') %> -
-
- - <%= message('widgets.more') -%> - -
-

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

-
- -
- <%= render :partial => 'project/widgets/reviews/reviews_list', - :locals => {:assignee_login => current_user.login, - :project_key => @project.key, - :statuses => 'OPEN,REOPENED', - :resolution => '', - :limit => limit, - :widget_id => widget.id.to_s} %> -
+ <%= render :partial => 'project/widgets/reviews/reviews_list_widget', + :locals => {:search_options => search_options, :title => title, + :widget_id => widget.id.to_s, :widget_properties => widget_properties} %> <% end %> \ No newline at end of file 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 777ddfba75c..0544d4c529c 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,32 +1,15 @@ <% if has_role?(:user, @project) - limit = widget_properties["numberOfLines"] - from_date=nil - to_date=nil - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - to_date = DateTime.now - end + search_options = {} + search_options['projects'] = @project.key + search_options['statuses'] = "#{Review::STATUS_OPEN},#{Review::STATUS_REOPENED}" + + title = message('widget.project_reviews.name') %> -
-
- - <%= message('widgets.more') -%> - -
-

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

-
+ <%= render :partial => 'project/widgets/reviews/reviews_list_widget', + :locals => {:search_options => search_options, :title => title, + :widget_id => widget.id.to_s, :widget_properties => widget_properties} %> -
- <%= render :partial => 'project/widgets/reviews/reviews_list', - :locals => {:project_key => @project.key, - :statuses => 'OPEN,REOPENED', - :resolution => '', - :limit => limit, - :widget_id => widget.id.to_s} %> -
- -<% end %> +<% end %> \ No newline at end of file diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/unplanned_reviews.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/unplanned_reviews.html.erb index 925fe2bb9a8..ae4f9890e8d 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/unplanned_reviews.html.erb +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/unplanned_reviews.html.erb @@ -1,34 +1,16 @@ <% if has_role?(:user, @project) - limit = widget_properties["numberOfLines"] - from_date=nil - to_date=nil - if @dashboard_configuration.selected_period? - from_date = @dashboard_configuration.from_datetime - to_date = DateTime.now - end + search_options = {} + search_options['projects'] = @project.key + search_options['statuses'] = "#{Review::STATUS_OPEN},#{Review::STATUS_REOPENED}" + search_options['unplanned'] = 'true' + + title = message('widget.unplanned_reviews.name') %> -
-
- 'true', :from => from_date, :to => to_date -%>"> - <%= message('widgets.more') -%> - -
-

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

-
+ <%= render :partial => 'project/widgets/reviews/reviews_list_widget', + :locals => {:search_options => search_options, :title => title, + :widget_id => widget.id.to_s, :widget_properties => widget_properties} %> -
- <%= render :partial => 'project/widgets/reviews/reviews_list', - :locals => {:project_key => @project.key, - :statuses => "#{Review::STATUS_OPEN},#{Review::STATUS_REOPENED}", - :resolution => '', - :unplanned => 'true', - :limit => limit, - :widget_id => widget.id.to_s} %> -
- -<% end %> +<% end %> \ No newline at end of file diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_reviews_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_reviews_controller.rb index b778001d435..d0ad9ee6037 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_reviews_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/project_reviews_controller.rb @@ -32,20 +32,6 @@ class ProjectReviewsController < ApplicationController if found_reviews.size != @reviews.size @security_exclusions = true end - -# # table pagination -# @page_size = 20 -# @page_size = params[:page_size].to_i if Api::Utils.is_number?(params[:page_size]) && params[:page_size].to_i > 5 -# @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 end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb index 331fcbd4076..0abc9e83e56 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb @@ -338,7 +338,6 @@ class Review < ActiveRecord::Base assignees=options['assignees'].split(',') if options['assignees'] if assignees - puts "---------------->" if assignees.size == 0 # Unassigned reviews conditions << 'assignee_id IS NULL' 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 556fdcf6777..20fd792cde8 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,26 +1,16 @@ <% - 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 - unplanned = params[:unplanned] unless unplanned 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['unplanned'] = unplanned - options['sort'] = 'updated_at' + search_options = params unless search_options + + search_options['sort'] = 'updated_at' if @dashboard_configuration.selected_period? from_date = @dashboard_configuration.from_datetime - options['from'] = from_date + search_options['from'] = from_date to_date = DateTime.now - options['to'] = to_date + search_options['to'] = to_date end - reviews = Review.search(options) + reviews = Review.search(search_options) # table pagination page_size = 20 @@ -57,15 +47,10 @@ <% if page_count page_count = 20 if page_count>20 - link_params = {} + link_params = search_options 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[:unplanned] = unplanned link_params[:limit] = limit link_params[:widget_id] = widget_id link_params[:period] = params[:period] diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list_widget.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list_widget.html.erb new file mode 100644 index 00000000000..f367e5d465a --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list_widget.html.erb @@ -0,0 +1,24 @@ +<% + limit = widget_properties["numberOfLines"] + + if @dashboard_configuration.selected_period? + search_options['from'] = @dashboard_configuration.from_datetime + search_options['to'] = DateTime.now + end +%> + +
+
+ + <%= message('widgets.more') -%> + +
+

<%= title -%>

+
+ +
+ <%= render :partial => 'project/widgets/reviews/reviews_list', + :locals => {:search_options => search_options, + :limit => limit, + :widget_id => widget_id} %> +
\ No newline at end of file -- 2.39.5