]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2443 Use user login instead of id for the auto-suggest field
authorFabrice Bellingard <bellingard@gmail.com>
Thu, 23 Jun 2011 15:15:43 +0000 (17:15 +0200)
committerFabrice Bellingard <bellingard@gmail.com>
Thu, 23 Jun 2011 15:17:39 +0000 (17:17 +0200)
sonar-server/src/main/webapp/WEB-INF/app/controllers/reviews_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/helpers/users_helper.rb
sonar-server/src/main/webapp/WEB-INF/app/views/reviews/_assign_form.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/reviews/_violation_assign_form.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/reviews/index.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/users/_autocomplete.html.erb

index 07b4bc6ac714aad22a0d620146b41e9048196997..7307a3ae5829f3c7a3aa8c1a83d1f49c6ebd5b98 100644 (file)
@@ -72,7 +72,7 @@ class ReviewsController < ApplicationController
       return
     end
 
-    assignee = User.find params[:assignee_id] unless params[:assignee_id].blank?
+    assignee = findUserByLogin(params[:assignee_login]) unless params[:assignee_login].blank?
     @review.assignee = assignee
     @review.save
 
@@ -185,7 +185,7 @@ class ReviewsController < ApplicationController
     sanitize_violation(violation)
 
     violation.build_review(:user_id => current_user.id)
-    assignee = User.find params[:assignee_id] unless params[:assignee_id].blank?
+    assignee = findUserByLogin(params[:assignee_login]) unless params[:assignee_login].blank?
     violation.review.assignee = assignee
     violation.review.save!
     violation.save
@@ -293,11 +293,15 @@ class ReviewsController < ApplicationController
 
   ## -------------- PRIVATE -------------- ##
   private
-
+  
+  def findUserByLogin(login)
+    User.find(:all, :conditions => [ "login = ?", login ]).first
+  end
+  
   def init_params
-    default_user = (current_user ? current_user.id : '')
-    @assignee_id = params[:assignee_id] || default_user
-    @author_id = params[:author_id] || ''
+    default_user = (current_user ? current_user.login : '')
+    @assignee_login = params[:assignee_login] || default_user
+    @author_login = params[:author_login] || ''
     @severities = filter_any(params[:severities]) || ['']
     @statuses = filter_any(params[:statuses]) || [Review::STATUS_OPEN, Review::STATUS_REOPENED]
     @projects = filter_any(params[:projects]) || ['']
@@ -325,11 +329,11 @@ class ReviewsController < ApplicationController
     unless @severities == ['']
       options['severities']=@severities.join(',')
     end
-    if @author_id
-      options['authors']=@author_id.to_s
+    if @author_login
+      options['authors']=@author_login
     end
-    if @assignee_id
-      options['assignees']=@assignee_id.to_s
+    if @assignee_login
+      options['assignees']=@assignee_login
     end
     if @false_positives
       options['false_positives']=@false_positives
index 7999bc9c69da51cbacfe3dc4e75879f7e55f5e1e..1ba58ca4c8d7b6de4b5aae08f5a56df60360b314 100644 (file)
@@ -129,9 +129,9 @@ module UsersHelper
     param_id_value = param_value
     
     unless param_id_value.blank?
-      user = User.find(param_id_value)
+      user = User.find(:all, :conditions => [ "login = ?", param_id_value ]).first
       param_displayed_value = user.name if user
-      param_displayed_value += " (me)" if user && current_user && current_user.id == param_id_value.to_i
+      param_displayed_value += " (me)" if user && current_user && current_user.login == param_id_value
     end
     
     server_url = url_for :controller => 'users', :action => 'autocomplete'
index fa3cb27f1ec128f6a0f258477186934b19131500..2ec5fe829e001df6f10ef5d1cbcd7e9e7985ba0e 100644 (file)
@@ -1,7 +1,7 @@
 <form method="post"
-      onsubmit="if ($('assignee_id').value != '') { new Ajax.Updater('review', '<%= url_for :action => 'assign' -%>', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); };return false;">
+      onsubmit="if ($('assignee_login').value != '') { new Ajax.Updater('review', '<%= url_for :action => 'assign' -%>', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); };return false;">
   <%= hidden_field_tag :id, params[:review_id] -%>
-  <%= user_autocomplete_field "assignee_id", "" -%>
+  <%= user_autocomplete_field "assignee_login", "" -%>
   &nbsp;&nbsp;
   <%= submit_to_remote "submit_btn", "Assign", 
          :url => { :action => 'assign' },
@@ -11,6 +11,6 @@
          :url => { :action => 'show', :id => params[:review_id] },
          :update => "review" %>
   <script>
-       $('autocompleteText-assignee_id').focus()
+       $('autocompleteText-assignee_login').focus()
   </script>
 </form>
\ No newline at end of file
index 68a98653424ecbdc58f90d2335da7ff1a98d662e..f29909b57dc1a48c5ce7d07ece75c481c47f9eb3 100644 (file)
@@ -1,9 +1,9 @@
 <%= image_tag("sep12.png") -%>
 &nbsp;&nbsp;
 <form method="post"
-      onsubmit="if ($('assignee_id').value != '') { new Ajax.Updater('vId<%= params[:violation_id] -%>', '<%= url_for :action => 'violation_assign' -%>', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); };return false;">
+      onsubmit="if ($('assignee_login').value != '') { new Ajax.Updater('vId<%= params[:violation_id] -%>', '<%= url_for :action => 'violation_assign' -%>', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); };return false;">
   <%= hidden_field_tag :id, params[:violation_id] -%>
-  <%= user_autocomplete_field "assignee_id", "" -%>
+  <%= user_autocomplete_field "assignee_login", "" -%>
   &nbsp;&nbsp;
   <%= submit_to_remote "submit_btn", "Assign", 
          :url => { :action => 'violation_assign' },
@@ -13,6 +13,6 @@
          :url => { :action => 'display_violation', :id => params[:violation_id] },
          :update => "vId" + params[:violation_id] %>
   <script>
-       $('autocompleteText-assignee_id').focus()
+       $('autocompleteText-assignee_login').focus()
   </script>
 </form>
\ No newline at end of file
index de38cf0ef36cc34a6de34c0824375f30a5f86caf..787e2a49636a7a007f4aec79c73222ca4f9b049d 100644 (file)
@@ -66,10 +66,10 @@ function launchSearch(columnName, link) {
         </td>
         <td width="1%" nowrap>
           <span class="note">Created by</span><br/>
-          <%= user_autocomplete_field "author_id", @author_id, { :class => "max-width" } -%>
+          <%= user_autocomplete_field "author_login", @author_login, { :class => "max-width" } -%>
           <br/>
           <span class="note">Assigned to</span><br/>
-          <%= user_autocomplete_field "assignee_id", @assignee_id, { :class => "max-width" } -%>
+          <%= user_autocomplete_field "assignee_login", @assignee_login, { :class => "max-width" } -%>
           <br/>
           <br/>
           <select name="false_positives" id="false_positives" onchange="if(this.value=='only' || this.value=='with') {$('assignee_id').value = ''; $('autocompleteText-assignee_id').value = '';};">
index 415f6eb3ddc35e8e1f9aa59385f2efe6df96ba7b..3f43d346192ff0ed4a3db6003e65c8ed607e4511 100644 (file)
@@ -1,9 +1,9 @@
-<% current_user_id = current_user.id if current_user %>
+<% current_user_login = current_user.login if current_user %>
 <ul>
   <% 
     @users.each do |user|
       user_name =  user.name
   %>
-    <li id="<%= h(user.id) -%>"><strong><%= h(user_name)[0..@char_count-1] -%></strong><%= h(user_name)[@char_count..user_name.size-1] -%> <i><%= "(me)" if current_user_id == user.id -%></i></li>
+    <li id="<%= h(user.login) -%>"><strong><%= h(user_name)[0..@char_count-1] -%></strong><%= h(user_name)[@char_count..user_name.size-1] -%> <i><%= "(me)" if current_user_login == user.login -%></i></li>
   <% end %>
 </ul>