summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-24 21:10:18 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-24 21:10:18 +0000
commit533b5721c62203c190c229d2bde91817277e9563 (patch)
tree3651adaaf0a35dc34c41a3f690fe0a478c905fe5
parentcabe5803952c906173608028fba4d6dad35aa6ab (diff)
parentf3650d2e5da4dc3624bcf4940825fe24266a91b4 (diff)
downloadgitlab-ce-533b5721c62203c190c229d2bde91817277e9563.tar.gz
Merge branch 'unset-assignee' into 'master'
Make sure issue assignee is properly reset. Previously, when the assignee was reset via the sidebar or bulk edit, `assignee_id` was set to `-1` rather than `null`, which caused the two issues shown below: ![Screen_Shot_2015-03-24_at_16.52.13](https://gitlab.com/gitlab-org/gitlab-ce/uploads/3c937795c45031c3c72c124ced866598/Screen_Shot_2015-03-24_at_16.52.13.png) - A "(deleted)" participant - An empty selectbox in the sidebar, instead of "Select assignee" See merge request !443
-rw-r--r--app/assets/javascripts/project_users_select.js.coffee7
-rw-r--r--app/helpers/issues_helper.rb13
-rw-r--r--app/services/issues/bulk_update_service.rb6
-rw-r--r--app/services/issues/update_service.rb3
-rw-r--r--app/services/merge_requests/update_service.rb3
-rw-r--r--db/migrate/20150324155957_set_incorrect_assignee_id_to_null.rb6
-rw-r--r--db/schema.rb2
7 files changed, 19 insertions, 21 deletions
diff --git a/app/assets/javascripts/project_users_select.js.coffee b/app/assets/javascripts/project_users_select.js.coffee
index e22c7c11f1c..80ab1a61ab9 100644
--- a/app/assets/javascripts/project_users_select.js.coffee
+++ b/app/assets/javascripts/project_users_select.js.coffee
@@ -25,7 +25,7 @@ class @ProjectUsersSelect
initSelection: (element, callback) ->
id = $(element).val()
- if id isnt ""
+ if id != "" && id != "-1"
Api.user(id, callback)
@@ -44,10 +44,7 @@ class @ProjectUsersSelect
else
avatar = gon.default_avatar_url
- if user.id == ''
- avatarMarkup = ''
- else
- avatarMarkup = "<div class='user-image'><img class='avatar s24' src='#{avatar}'></div>"
+ avatarMarkup = "<div class='user-image'><img class='avatar s24' src='#{avatar}'></div>"
"<div class='user-result'>
#{avatarMarkup}
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 15c5dcb6a25..a4bd4d30215 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -58,22 +58,11 @@ module IssuesHelper
end
def bulk_update_milestone_options
- options_for_select(['None (backlog)']) +
+ options_for_select([['None (backlog)', -1]]) +
options_from_collection_for_select(project_active_milestones, 'id',
'title', params[:milestone_id])
end
- def bulk_update_assignee_options(project = @project)
- options_for_select(['None (unassigned)']) +
- options_from_collection_for_select(project.team.members, 'id',
- 'name', params[:assignee_id])
- end
-
- def assignee_options(object, project = @project)
- options_from_collection_for_select(project.team.members.sort_by(&:name),
- 'id', 'name', object.assignee_id)
- end
-
def milestone_options(object)
options_from_collection_for_select(object.project.milestones.active,
'id', 'title', object.milestone_id)
diff --git a/app/services/issues/bulk_update_service.rb b/app/services/issues/bulk_update_service.rb
index c7cd20b6b60..eb07413ee94 100644
--- a/app/services/issues/bulk_update_service.rb
+++ b/app/services/issues/bulk_update_service.rb
@@ -4,9 +4,9 @@ module Issues
issues_ids = params.delete(:issues_ids).split(",")
issue_params = params
- issue_params.delete(:state_event) unless issue_params[:state_event].present?
- issue_params.delete(:milestone_id) unless issue_params[:milestone_id].present?
- issue_params.delete(:assignee_id) unless issue_params[:assignee_id].present?
+ issue_params.delete(:state_event) unless issue_params[:state_event].present?
+ issue_params.delete(:milestone_id) unless issue_params[:milestone_id].present?
+ issue_params.delete(:assignee_id) unless issue_params[:assignee_id].present?
issues = Issue.where(id: issues_ids)
issues.each do |issue|
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb
index c61d67a7893..3371fe7d5ef 100644
--- a/app/services/issues/update_service.rb
+++ b/app/services/issues/update_service.rb
@@ -14,6 +14,9 @@ module Issues
issue.update_nth_task(params[:task_num].to_i, false)
end
+ params[:assignee_id] = "" if params[:assignee_id] == "-1"
+ params[:milestone_id] = "" if params[:milestone_id] == "-1"
+
old_labels = issue.labels.to_a
if params.present? && issue.update_attributes(params.except(:state_event,
diff --git a/app/services/merge_requests/update_service.rb b/app/services/merge_requests/update_service.rb
index 870b50bb60d..0ac6dfea6fd 100644
--- a/app/services/merge_requests/update_service.rb
+++ b/app/services/merge_requests/update_service.rb
@@ -23,6 +23,9 @@ module MergeRequests
merge_request.update_nth_task(params[:task_num].to_i, false)
end
+ params[:assignee_id] = "" if params[:assignee_id] == "-1"
+ params[:milestone_id] = "" if params[:milestone_id] == "-1"
+
old_labels = merge_request.labels.to_a
if params.present? && merge_request.update_attributes(
diff --git a/db/migrate/20150324155957_set_incorrect_assignee_id_to_null.rb b/db/migrate/20150324155957_set_incorrect_assignee_id_to_null.rb
new file mode 100644
index 00000000000..42dc8173e46
--- /dev/null
+++ b/db/migrate/20150324155957_set_incorrect_assignee_id_to_null.rb
@@ -0,0 +1,6 @@
+class SetIncorrectAssigneeIdToNull < ActiveRecord::Migration
+ def up
+ execute "UPDATE issues SET assignee_id = NULL WHERE assignee_id = -1"
+ execute "UPDATE merge_requests SET assignee_id = NULL WHERE assignee_id = -1"
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e1a5b70532a..4a445ae5832 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20150320234437) do
+ActiveRecord::Schema.define(version: 20150324155957) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"