diff --git a/app/controllers/projects/merge_requests/creations_controller.rb b/app/controllers/projects/merge_requests/creations_controller.rb index 3e077c1af3772c33d642fd098bc0e57f240bc68e..453928e251f424e0085e589b36b8b14083bf3a63 100644 --- a/app/controllers/projects/merge_requests/creations_controller.rb +++ b/app/controllers/projects/merge_requests/creations_controller.rb @@ -11,6 +11,11 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap before_action :apply_diff_view_cookie!, only: [:diffs, :diff_for_path] before_action :build_merge_request, except: [:create] + before_action do + push_frontend_feature_flag(:merge_request_reviewers, @project) + push_frontend_feature_flag(:mr_collapsed_approval_rules, @project) + end + def new define_new_vars end diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 627d578643f31e0a1bf3476f46b8e771ecc3611f..c2bb441d640e1882ae368fb4cdbfe9e81fba5c9f 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -49,6 +49,8 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo before_action do push_frontend_feature_flag(:vue_issuable_sidebar, @project.group) + push_frontend_feature_flag(:merge_request_reviewers, @project) + push_frontend_feature_flag(:mr_collapsed_approval_rules, @project) end around_action :allow_gitaly_ref_name_caching, only: [:index, :show, :discussions] diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index c0aba0eef7f98aa254d5a18f5b13729d53bd2857..16d9d7dae5a7e4f9accd08d3193bb7f71e5ea9dc 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -32,7 +32,7 @@ = form.label :confidential, class: 'form-check-label' do This issue is confidential and should only be visible to team members with at least Reporter access. -= render 'shared/issuable/form/metadata', issuable: issuable, form: form, project: project += render 'shared/issuable/form/metadata', issuable: issuable, form: form, project: project, presenter: presenter = render_if_exists 'shared/issuable/approvals', issuable: issuable, presenter: presenter, form: form diff --git a/app/views/shared/issuable/form/_metadata.html.haml b/app/views/shared/issuable/form/_metadata.html.haml index 459eb112e4fd6b8befbad632883495e44179ca84..366e819d252c4cef524ed7f53112f360eb1678a7 100644 --- a/app/views/shared/issuable/form/_metadata.html.haml +++ b/app/views/shared/issuable/form/_metadata.html.haml @@ -1,5 +1,6 @@ - project = local_assigns.fetch(:project) - issuable = local_assigns.fetch(:issuable) +- presenter = local_assigns.fetch(:presenter) - return unless can?(current_user, :"admin_#{issuable.to_ability_name}", issuable.project) @@ -14,7 +15,7 @@ - if issuable.allows_reviewers? .form-group.row.merge-request-reviewer - = render "shared/issuable/form/metadata_issuable_reviewer", issuable: issuable, form: form, has_due_date: has_due_date + = render "shared/issuable/form/metadata_issuable_reviewer", issuable: issuable, form: form, has_due_date: has_due_date, presenter: presenter = render_if_exists "shared/issuable/form/epic", issuable: issuable, form: form, project: project diff --git a/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml b/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml index 5ff3a6781ad823d29611c0581f7f861c45f2d2ba..a4e2ce035cc79aa5b824ded66edb6cbd5aaf1093 100644 --- a/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml +++ b/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml @@ -1,5 +1,5 @@ = form.label :reviewer_id, issuable.allows_multiple_reviewers? ? _('Reviewers') : _('Reviewer'), class: "col-form-label #{has_due_date ? "col-md-2 col-lg-4" : "col-sm-2"}" -.col-sm-10{ class: ("col-md-8" if has_due_date) } +.col-sm-10.gl-mb-2{ class: ("col-md-8" if has_due_date) } .issuable-form-select-holder.selectbox - issuable.reviewers.each do |reviewer| = hidden_field_tag "#{issuable.to_ability_name}[reviewer_ids][]", reviewer.id, id: nil, data: { meta: reviewer.name, avatar_url: reviewer.avatar_url, name: reviewer.name, username: reviewer.username } @@ -8,3 +8,5 @@ = hidden_field_tag "#{issuable.to_ability_name}[reviewer_ids][]", 0, id: nil, data: { meta: '' } = dropdown_tag(users_dropdown_label(issuable.reviewers), options: reviewers_dropdown_options(issuable.to_ability_name)) + - if Feature.enabled?(:mr_collapsed_approval_rules, @project) + = render_if_exists 'shared/issuable/approver_suggestion', issuable: issuable, presenter: presenter diff --git a/config/feature_flags/development/mr_collapsed_approval_rules.yml b/config/feature_flags/development/mr_collapsed_approval_rules.yml new file mode 100644 index 0000000000000000000000000000000000000000..5fca48ddc3ab869a9762dcd040791a1de81b51a4 --- /dev/null +++ b/config/feature_flags/development/mr_collapsed_approval_rules.yml @@ -0,0 +1,8 @@ +--- +name: mr_collapsed_approval_rules +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47475 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/284052 +milestone: '13.6' +type: development +group: group::source code +default_enabled: false diff --git a/ee/app/assets/javascripts/approvals/components/mr_edit/app.vue b/ee/app/assets/javascripts/approvals/components/mr_edit/app.vue index 68c9db7d3c4c57df76210b494fa73e4abd3fe301..dd5fff61b0f95e48d210527e306ae98187482f84 100644 --- a/ee/app/assets/javascripts/approvals/components/mr_edit/app.vue +++ b/ee/app/assets/javascripts/approvals/components/mr_edit/app.vue @@ -1,19 +1,58 @@