diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-11-07 11:56:46 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-11-07 11:56:46 +0000 |
commit | a82a595728d54bdc12e51dfcfb22e9eddc449143 (patch) | |
tree | a21ee6f5abef214db8a134ea90736a0518593167 /app/services | |
parent | e7df959b8f99875edd246c7ac7779c3203e8755e (diff) | |
parent | 9b53ba2a1577ae002af88f9443d09c9b6b20871c (diff) | |
download | gitlab-ce-a82a595728d54bdc12e51dfcfb22e9eddc449143.tar.gz |
Merge branch 'osw-comment-on-any-line-on-diffs' into 'master'
Comment on any expanded diff line on MRs
See merge request gitlab-org/gitlab-ce!22398
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/merge_requests/reload_diffs_service.rb | 4 | ||||
-rw-r--r-- | app/services/notes/base_service.rb | 15 | ||||
-rw-r--r-- | app/services/notes/create_service.rb | 3 | ||||
-rw-r--r-- | app/services/notes/destroy_service.rb | 4 |
4 files changed, 20 insertions, 6 deletions
diff --git a/app/services/merge_requests/reload_diffs_service.rb b/app/services/merge_requests/reload_diffs_service.rb index b47d8f3f63a..c64b2e99b52 100644 --- a/app/services/merge_requests/reload_diffs_service.rb +++ b/app/services/merge_requests/reload_diffs_service.rb @@ -29,10 +29,6 @@ module MergeRequests # rubocop: disable CodeReuse/ActiveRecord def clear_cache(new_diff) - # Executing the iteration we cache highlighted diffs for each diff file of - # MergeRequestDiff. - cacheable_collection(new_diff).write_cache - # Remove cache for all diffs on this MR. Do not use the association on the # model, as that will interfere with other actions happening when # reloading the diff. diff --git a/app/services/notes/base_service.rb b/app/services/notes/base_service.rb new file mode 100644 index 00000000000..431ff6c11c4 --- /dev/null +++ b/app/services/notes/base_service.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Notes + class BaseService < ::BaseService + def clear_noteable_diffs_cache(note) + noteable = note.noteable + + if note.is_a?(DiffNote) && + note.discussion_first_note? && + note.position.unfolded_diff?(project.repository) + noteable.diffs.clear_cache + end + end + end +end diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb index 049e6c5a871..e03789e3ca9 100644 --- a/app/services/notes/create_service.rb +++ b/app/services/notes/create_service.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Notes - class CreateService < ::BaseService + class CreateService < ::Notes::BaseService def execute merge_request_diff_head_sha = params.delete(:merge_request_diff_head_sha) @@ -35,6 +35,7 @@ module Notes if !only_commands && note.save todo_service.new_note(note, current_user) + clear_noteable_diffs_cache(note) end if command_params.present? diff --git a/app/services/notes/destroy_service.rb b/app/services/notes/destroy_service.rb index 64e9accd97f..fa0c2c5c86b 100644 --- a/app/services/notes/destroy_service.rb +++ b/app/services/notes/destroy_service.rb @@ -1,11 +1,13 @@ # frozen_string_literal: true module Notes - class DestroyService < BaseService + class DestroyService < ::Notes::BaseService def execute(note) TodoService.new.destroy_target(note) do |note| note.destroy end + + clear_noteable_diffs_cache(note) end end end |