Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-02-01 21:41:01 +0300
committerPhil Hughes <me@iamphill.com>2017-02-17 14:29:16 +0300
commitac868482a7780a332045ef270a409ff70bcf8efd (patch)
tree99ff605262028f08718f04ac0c9e42c516d38693 /app/services/issues
parent5d8f5328baca93b9134f10ae593e71834578a9f8 (diff)
Allow issues in boards to be ordered
Diffstat (limited to 'app/services/issues')
-rw-r--r--app/services/issues/update_service.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb
index 78cbf94ec69..ba06f208dbc 100644
--- a/app/services/issues/update_service.rb
+++ b/app/services/issues/update_service.rb
@@ -1,6 +1,7 @@
module Issues
class UpdateService < Issues::BaseService
def execute(issue)
+ handle_move_between_iids(issue)
update(issue)
end
@@ -47,6 +48,26 @@ module Issues
Issues::CloseService
end
+ def handle_move_between_iids(issue)
+ if move_between_iids = params.delete(:move_between_iids)
+ before_iid, after_iid = move_between_iids
+
+ issue_before = nil
+ if before_iid
+ issue_before = issue.project.issues.find_by(iid: before_iid)
+ issue_before = nil unless can?(current_user, :update_issue, issue_before)
+ end
+
+ issue_after = nil
+ if after_iid
+ issue_after = issue.project.issues.find_by(iid: after_iid)
+ issue_after = nil unless can?(current_user, :update_issue, issue_after)
+ end
+
+ issue.move_between(issue_before, issue_after)
+ end
+ end
+
private
def create_confidentiality_note(issue)