summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexDenisov <1101.debian@gmail.com>2013-05-15 14:10:39 +0000
committerAlexDenisov <1101.debian@gmail.com>2013-05-16 10:32:26 +0000
commitd08e1db93091418694130870406995f21502d478 (patch)
tree0db96e97173ce78e376a400e90707523d2b80db7
parentd79592a7f613f47e2dce67184ca3e2106658e2e5 (diff)
downloadgitlab-ce-d08e1db93091418694130870406995f21502d478.tar.gz
Cleanup bulk issues update a bit
-rw-r--r--app/contexts/issues/bulk_update_context.rb19
1 files changed, 11 insertions, 8 deletions
diff --git a/app/contexts/issues/bulk_update_context.rb b/app/contexts/issues/bulk_update_context.rb
index e92264a8bb1..8fe84d0e47c 100644
--- a/app/contexts/issues/bulk_update_context.rb
+++ b/app/contexts/issues/bulk_update_context.rb
@@ -8,6 +8,13 @@ module Issues
assignee_id = update_data[:assignee_id]
status = update_data[:status]
+ unless status.present?
+ return {
+ count: 0,
+ success: false
+ }
+ end
+
opts = {}
opts[:milestone_id] = milestone_id if milestone_id.present?
opts[:assignee_id] = assignee_id if assignee_id.present?
@@ -15,16 +22,12 @@ module Issues
issues = Issue.where(id: issues_ids).all
issues = issues.select { |issue| can?(current_user, :modify_issue, issue) }
+ new_state = :reopen
+ new_state = :close if status == 'closed'
+
issues.each do |issue|
issue.update_attributes(opts)
-
- if status.present?
- if status == 'closed'
- issue.close
- else
- issue.reopen
- end
- end
+ issue.send new_state
end
{