From: Julien HENRY Date: Wed, 9 Oct 2013 13:14:08 +0000 (+0200) Subject: SONAR-4486 Make it possible to select "Unassigned" in the issues filter X-Git-Tag: 4.0~185 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9ec5646ca514caee4a4d6ecec462c9bbffead085;p=sonarqube.git SONAR-4486 Make it possible to select "Unassigned" in the issues filter --- diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/issues_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/issues_controller.rb index 9d92c1b406f..7396185a46b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/issues_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/issues_controller.rb @@ -82,7 +82,7 @@ class IssuesController < ApplicationController # GET /issues/save_as_form?[&criteria] def save_as_form - @filter_query_serialized = Internal.issues.serializeFilterQuery(params) + @filter_query_serialized = Internal.issues.serializeFilterQuery(criteria_params) render :partial => 'issues/filter_save_as_form' end @@ -99,7 +99,7 @@ class IssuesController < ApplicationController verify_post_request require_parameters :id - @filter = Internal.issues.updateIssueFilterQuery(params[:id].to_i, params) + @filter = Internal.issues.updateIssueFilterQuery(params[:id].to_i, criteria_params) redirect_to :action => 'filter', :id => @filter.id.to_s end @@ -198,7 +198,7 @@ class IssuesController < ApplicationController new_params = params.clone new_params.delete('controller') new_params.delete('action') - new_params + translate_unassigned(new_params) end def init_params @@ -209,6 +209,16 @@ class IssuesController < ApplicationController Internal.issues.sanitizeFilterQuery(params).to_hash end + def translate_unassigned(issues_query_params) + if issues_query_params.has_key?(:assignees) && issues_query_params[:assignees] == '' + issues_query_params.delete(:assignees) + issues_query_params[:assigned] = false + else + issues_query_params[:assigned] = nil + end + issues_query_params + end + def issues_query_params_from_filter(filter) Internal.issues.deserializeFilterQuery(filter).to_hash end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_sidebar.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_sidebar.html.erb index f39f959b840..2f05024795c 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_sidebar.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_sidebar.html.erb @@ -46,9 +46,21 @@
  • <%= message 'issue_filter.criteria.assignee' -%>: - <% selected_assignee = Api.users.findByLogin(@issues_query.assignees.to_a.first) if @issues_query.assignees && @issues_query.assignees.size == 1 %> - <%= user_select_tag('assignees', {:selected_user => selected_assignee, :width => '100%', :placeholder => message('issue_filter.criteria.assignee'), - :html_id => 'select-assignee', :open => false, :allow_clear => true}) -%> + <% + if @issues_query.assignees && @issues_query.assignees.size == 1 + selected_assignee = Api.users.findByLogin(@issues_query.assignees.to_a.first) + selected_id = nil + selected_text = nil + elsif !@issues_query.assigned.nil? && !@issues_query.assigned + selected_assignee = nil + selected_id = "''" + selected_text = escape_javascript(message('unassigned')) + end + %> + <%= user_select_tag('assignees', :selected_user => selected_assignee, :selected_id => selected_id, :selected_text => selected_text, + :width => '100%', :placeholder => message('issue_filter.criteria.assignee'), + :html_id => 'select-assignee', :open => false, :allow_clear => true, + :include_choices => {'' => escape_javascript(message('unassigned'))}) -%>
  • <%= message 'issue_filter.criteria.reporter' -%>: @@ -69,4 +81,5 @@ <%= message 'issue_filter.new_search' -%>
  • - \ No newline at end of file + +