diff options
author | Brett Walker <bwalker@gitlab.com> | 2019-01-30 03:31:31 +0300 |
---|---|---|
committer | Brett Walker <bwalker@gitlab.com> | 2019-02-07 18:28:35 +0300 |
commit | 79bd1b8717599205fd1bf4f79048d3065b500536 (patch) | |
tree | 5c69bd43f58997d97504cc2063c6064f434ba11f /app/services | |
parent | ca154f0ff4f15d717a0fcf7a3cb75921ba6880ee (diff) |
Enable fast task lists for merge requests
Allow single tasks to be updated quickly
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/merge_requests/update_service.rb | 7 | ||||
-rw-r--r-- | app/services/task_list_toggle_service.rb | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/app/services/merge_requests/update_service.rb b/app/services/merge_requests/update_service.rb index 86a04587f79..8112c2a4299 100644 --- a/app/services/merge_requests/update_service.rb +++ b/app/services/merge_requests/update_service.rb @@ -21,7 +21,7 @@ module MergeRequests end handle_wip_event(merge_request) - update(merge_request) + update_task_event(merge_request) || update(merge_request) end # rubocop:disable Metrics/AbcSize @@ -83,6 +83,11 @@ module MergeRequests end # rubocop:enable Metrics/AbcSize + def handle_task_changes(merge_request) + todo_service.mark_pending_todos_as_done(merge_request, current_user) + todo_service.update_merge_request(merge_request, current_user) + end + def merge_from_quick_action(merge_request) last_diff_sha = params.delete(:merge) return unless merge_request.mergeable_with_quick_action?(current_user, last_diff_sha: last_diff_sha) diff --git a/app/services/task_list_toggle_service.rb b/app/services/task_list_toggle_service.rb index b5c4cd3235d..cfe187d9b12 100644 --- a/app/services/task_list_toggle_service.rb +++ b/app/services/task_list_toggle_service.rb @@ -32,7 +32,8 @@ class TaskListToggleService source_line_index = line_number - 1 markdown_task = source_lines[source_line_index] - return unless markdown_task == line_source + # The source in the DB could be using either \n or \r\n line endings + return unless markdown_task == line_source || markdown_task == line_source + "\r" return unless source_checkbox = Taskable::ITEM_PATTERN.match(markdown_task) currently_checked = TaskList::Item.new(source_checkbox[1]).complete? |