]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2662 Review widgets refactoring + open list on project context
authorFabrice Bellingard <bellingard@gmail.com>
Thu, 22 Dec 2011 13:26:52 +0000 (14:26 +0100)
committerFabrice Bellingard <bellingard@gmail.com>
Thu, 22 Dec 2011 14:05:58 +0000 (15:05 +0100)
plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/false_positive_reviews.html.erb
plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/my_reviews.html.erb
plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/project_reviews.html.erb
plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/reviews/unplanned_reviews.html.erb
sonar-server/src/main/webapp/WEB-INF/app/controllers/project_reviews_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/models/review.rb
sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/reviews/_reviews_list_widget.html.erb [new file with mode: 0644]

index 0e26950543007d56629a77b125ba5d34d0bb1c50..4ad13c58ddf901b34956b6af36120f47725b68b1 100644 (file)
@@ -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')
 %>
 
-  <div class="line-block">
-    <div style="float:right">
-      <a href="<%= url_for :controller => 'reviews', :action => 'index', :projects => [@project.id], :false_positives => 'only',
-                           :assignee_login => '', :statuses => [''], :from => from_date, :to => to_date -%>">
-        <%= message('widgets.more') -%>
-      </a>
-    </div>
-    <h3><%= message('widget.false_positive_reviews.name') -%></h3>
-  </div>
+  <%= 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} %>
 
-  <div id="reviews-widget-<%= widget.id -%>">
-    <%= 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} %>
-  </div>
-
-<% end %>
+<% end %>
\ No newline at end of file
index 8212be3f2ed29dd075c0aad511d5c506df974cbe..1afaaf56c1955adfc06f2d6f3430890a55f1e26b 100644 (file)
@@ -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')
 %>
 
-  <div class="line-block">
-    <div style="float:right">
-      <a href="<%= url_for :controller => 'reviews', :action => 'index', :projects => [@project.id], :from => from_date, :to => to_date -%>">
-        <%= message('widgets.more') -%>
-      </a>
-    </div>
-    <h3><%= message('widget.my_reviews.name') -%></h3>
-  </div>
-
-  <div id="reviews-widget-<%= widget.id -%>">
-    <%= 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} %>
-  </div>
+  <%= 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
index 777ddfba75c61c8aa638308b14094c7ddf6423b8..0544d4c529cf674f8aaef36a32695fe06896ffa8 100644 (file)
@@ -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')
 %>
 
-  <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>
+  <%= 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} %>
 
-  <div id="reviews-widget-<%= widget.id -%>">
-    <%= render :partial => 'project/widgets/reviews/reviews_list',
-               :locals => {:project_key => @project.key,
-                           :statuses => 'OPEN,REOPENED',
-                           :resolution => '',
-                           :limit => limit,
-                           :widget_id => widget.id.to_s} %>
-  </div>
-
-<% end %>
+<% end %>
\ No newline at end of file
index 925fe2bb9a85bae4be5179a95918cf12eaf61781..ae4f9890e8d3822cc6684607906dbddb625529c7 100644 (file)
@@ -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')
 %>
 
-  <div class="line-block">
-    <div style="float:right">
-      <a href="<%= url_for :controller => 'project_reviews', :action => 'index', :projects => @project.key,
-                           :statuses => "#{Review::STATUS_OPEN},#{Review::STATUS_REOPENED}",
-                           :unplanned => 'true', :from => from_date, :to => to_date -%>">
-        <%= message('widgets.more') -%>
-      </a>
-    </div>
-    <h3><%= message('widget.unplanned_reviews.name') -%></h3>
-  </div>
+  <%= 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} %>
 
-  <div id="reviews-widget-<%= widget.id -%>">
-    <%= 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} %>
-  </div>
-
-<% end %>
+<% end %>
\ No newline at end of file
index b778001d4350f9e3549aa65aa52dc6c4b7d7cd15..d0ad9ee60371f58e9d0ad0d4dcd44a436f7e5373 100644 (file)
@@ -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
index 331fcbd4076099e7b97530443746cfbc057a7a83..0abc9e83e569813ad08fe1eec8e96286ff446b7c 100644 (file)
@@ -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'
index 556fdcf6777f4a0b95bf49fbd0a4f94ce90b87f7..20fd792cde8ed838c6f4094b1fdbd7b3f0184138 100644 (file)
@@ -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
         <%
            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 (file)
index 0000000..f367e5d
--- /dev/null
@@ -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
+%>
+
+<div class="line-block">
+  <div style="float:right">
+    <a href="<%= url_for search_options.merge({:controller => 'project_reviews', :action => 'index'}) -%>">
+      <%= message('widgets.more') -%>
+    </a>
+  </div>
+  <h3><%= title -%></h3>
+</div>
+
+<div id="reviews-widget-<%= widget_id -%>">
+  <%= render :partial => 'project/widgets/reviews/reviews_list',
+             :locals => {:search_options => search_options,
+                         :limit => limit,
+                         :widget_id => widget_id} %>
+</div>
\ No newline at end of file