Commit d08e1db93091418694130870406995f21502d478
1 parent
d79592a7
Exists in
master
and in
4 other branches
Cleanup bulk issues update a bit
Showing
1 changed file
with
11 additions
and
8 deletions
Show diff stats
app/contexts/issues/bulk_update_context.rb
| ... | ... | @@ -8,6 +8,13 @@ module Issues |
| 8 | 8 | assignee_id = update_data[:assignee_id] |
| 9 | 9 | status = update_data[:status] |
| 10 | 10 | |
| 11 | + unless status.present? | |
| 12 | + return { | |
| 13 | + count: 0, | |
| 14 | + success: false | |
| 15 | + } | |
| 16 | + end | |
| 17 | + | |
| 11 | 18 | opts = {} |
| 12 | 19 | opts[:milestone_id] = milestone_id if milestone_id.present? |
| 13 | 20 | opts[:assignee_id] = assignee_id if assignee_id.present? |
| ... | ... | @@ -15,16 +22,12 @@ module Issues |
| 15 | 22 | issues = Issue.where(id: issues_ids).all |
| 16 | 23 | issues = issues.select { |issue| can?(current_user, :modify_issue, issue) } |
| 17 | 24 | |
| 25 | + new_state = :reopen | |
| 26 | + new_state = :close if status == 'closed' | |
| 27 | + | |
| 18 | 28 | issues.each do |issue| |
| 19 | 29 | issue.update_attributes(opts) |
| 20 | - | |
| 21 | - if status.present? | |
| 22 | - if status == 'closed' | |
| 23 | - issue.close | |
| 24 | - else | |
| 25 | - issue.reopen | |
| 26 | - end | |
| 27 | - end | |
| 30 | + issue.send new_state | |
| 28 | 31 | end |
| 29 | 32 | |
| 30 | 33 | { | ... | ... |