diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-06-05 14:01:49 +0400 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-06-05 14:01:49 +0400 |
commit | 336d50d008e8efcaef89ce5656620cbe068aa064 (patch) | |
tree | ceed234eff808c65513eefcd525c59e5f16b81d1 /app/assets/javascripts/milestone.js.coffee | |
parent | 868629dc40ca98ce3ad5740b27fe176c853ad72d (diff) |
Merge request drag-n-drop on milestone page
Allows moving milestone between 3 columns: unassigned, assigned,
declined
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/assets/javascripts/milestone.js.coffee')
-rw-r--r-- | app/assets/javascripts/milestone.js.coffee | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/app/assets/javascripts/milestone.js.coffee b/app/assets/javascripts/milestone.js.coffee index d2857948cd7..4a2c5068bab 100644 --- a/app/assets/javascripts/milestone.js.coffee +++ b/app/assets/javascripts/milestone.js.coffee @@ -11,10 +11,23 @@ class Milestone new Flash("Issue update failed", 'alert') dataType: "json" + @updateMergeRequest: (li, merge_request_url, data) -> + $.ajax + type: "PUT" + url: merge_request_url + data: data + success: (data) -> + if data.saved == true + $(li).effect 'highlight' + else + new Flash("Issue update failed", 'alert') + dataType: "json" + constructor: -> - @bindSorting() + @bindIssuesSorting() + @bindMergeRequestSorting() - bindSorting: -> + bindIssuesSorting: -> $("#issues-list-unassigned, #issues-list-ongoing, #issues-list-closed").sortable( connectWith: ".issues-sortable-list", dropOnEmpty: true, @@ -38,4 +51,28 @@ class Milestone ).disableSelection() + bindMergeRequestSorting: -> + $("#merge_requests-list-unassigned, #merge_requests-list-ongoing, #merge_requests-list-closed").sortable( + connectWith: ".merge_requests-sortable-list", + dropOnEmpty: true, + receive: (event, ui) -> + new_state = $(this).data('state') + merge_request_id = ui.item.data('iid') + merge_request_url = ui.item.data('url') + + data = switch new_state + when 'ongoing' + "merge_request[assignee_id]=" + gon.current_user_id + when 'unassigned' + "merge_request[assignee_id]=" + when 'closed' + "merge_request[state_event]=close" + + if $(ui.sender).data('state') == "closed" + data += "&merge_request[state_event]=reopen" + + Milestone.updateMergeRequest(ui.item, merge_request_url, data) + + ).disableSelection() + @Milestone = Milestone |