From 3a0ab2a9f351622f0298ab2040e03374cb21bff5 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Wed, 24 Jun 2020 10:20:03 +0100 Subject: [PATCH] Added option to view diffs file-by-file This adds a user preference to view diffs file-by-file instead of viewing all the diff files in one big list. This helps with performance on large merge request, but it can also be handy sometimes to view merge requests file-by-file instead of in a full list of files. The option to enable this feature is inside of user prefences. For now this is also behind a feature flag so we can roll this out safely. https://gitlab.com/gitlab-org/gitlab/-/issues/222790 --- .../javascripts/diffs/components/app.vue | 54 ++++++++++++++++-- .../diffs/components/diff_file.vue | 5 ++ .../diffs/components/diff_file_header.vue | 13 ++++- .../diffs/components/diff_file_row.vue | 13 ++++- .../diffs/components/tree_list.vue | 3 +- app/assets/javascripts/diffs/index.js | 2 + app/assets/javascripts/diffs/store/actions.js | 38 ++++++++++++- .../notes/mixins/discussion_navigation.js | 13 ++++- .../stylesheets/pages/merge_requests.scss | 4 ++ .../profiles/preferences_controller.rb | 1 + .../projects/merge_requests_controller.rb | 1 + app/models/user.rb | 1 + app/views/profiles/preferences/show.html.haml | 7 +++ .../projects/merge_requests/show.html.haml | 3 +- .../ph-222790-diffSingleFileView.yml | 5 ++ ..._diffs_file_by_file_to_user_preferences.rb | 21 +++++++ db/structure.sql | 4 +- locale/gitlab.pot | 6 ++ .../user_views_diffs_file_by_file_spec.rb | 33 +++++++++++ spec/frontend/diffs/components/app_spec.js | 55 +++++++++++++++++++ .../diffs/components/diff_file_header_spec.js | 1 + .../diffs/components/diff_file_row_spec.js | 11 ++++ .../diffs/components/diff_file_spec.js | 3 + spec/frontend/diffs/store/actions_spec.js | 48 +++++++++++++--- .../mixins/discussion_navigation_spec.js | 6 ++ 25 files changed, 330 insertions(+), 21 deletions(-) create mode 100644 changelogs/unreleased/ph-222790-diffSingleFileView.yml create mode 100644 db/migrate/20200623141217_add_view_diffs_file_by_file_to_user_preferences.rb create mode 100644 spec/features/merge_request/user_views_diffs_file_by_file_spec.rb diff --git a/app/assets/javascripts/diffs/components/app.vue b/app/assets/javascripts/diffs/components/app.vue index 406b0098d99d32..1e524882d5fcec 100644 --- a/app/assets/javascripts/diffs/components/app.vue +++ b/app/assets/javascripts/diffs/components/app.vue @@ -1,6 +1,6 @@