diff --git a/app/assets/stylesheets/page_bundles/merge_request.scss b/app/assets/stylesheets/page_bundles/merge_request.scss index 0f2da25634aee8400522e53b75240dc6eb36e4fa..7ce442366cd1ea81de0a8457b1651d2bc29b1223 100644 --- a/app/assets/stylesheets/page_bundles/merge_request.scss +++ b/app/assets/stylesheets/page_bundles/merge_request.scss @@ -306,3 +306,17 @@ $merge-request-sticky-header-height: 45px; transform: translateZ(0); } } + +.create-merge-request { + @include media-breakpoint-up(md) { + display: grid; + // allow the main content area to shrink + // grid items have "max-width: auto" so without the minmax the content can + // spill outside of the overview container + $work-item-sidebar-min-width: 13rem; + $work-item-overview-gap-width: 2rem; + $work-item-overview-right-sidebar-width: px-to-rem(290px); + grid-template-columns: minmax(67%, 1fr) minmax($work-item-sidebar-min-width, $work-item-overview-right-sidebar-width); + column-gap: $work-item-overview-gap-width; + } +} diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 526f58fe344c2c08fca1aea37af5f5f00a1fe87e..dfc2ba3da5e8a5ac74979f06856259d5c572194d 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -11,22 +11,34 @@ = render 'shared/issuable/form/branch_chooser', issuable: issuable, form: form -.form-group - = form.label :title do - = _('Title (required)') += render 'shared/issuable/form/type_selector', issuable: issuable, form: form - = render 'shared/issuable/form/title', issuable: issuable, form: form, has_wip_commits: commits && commits.detect(&:draft?) -#js-suggestions{ data: { project_path: @project.full_path } } +.create-merge-request + %div + .form-group + = form.label :title do + = _('Title (required)') -= render 'shared/issuable/form/type_selector', issuable: issuable, form: form + = render 'shared/issuable/form/title', issuable: issuable, form: form, has_wip_commits: commits && commits.detect(&:draft?) + #js-suggestions{ data: { project_path: @project.full_path } } + = render 'shared/form_elements/description', model: issuable, form: form, project: project + = render_if_exists "shared/issuable/form/merge_request_blocks", issuable: issuable, form: form -= render 'shared/form_elements/description', model: issuable, form: form, project: project + - if issuable.is_a?(MergeRequest) + .row + = form.label :merge_after, s_('MergeRequests|Merge can start'), class: 'col-12' + .js-merge-request-schedule-input{ data: { + merge_after: issuable.merge_schedule&.merge_after&.strftime('%Y-%m-%dT%H:%M%z'), + param_key: issuable.class.model_name.param_key + } } + %p.gl-text-subtle.col-12= s_('MergeRequests|Requires that merge checks pass.') -= render 'shared/issuable/form/metadata', issuable: issuable, form: form, project: project, presenter: presenter + = render 'shared/issuable/form/merge_params', issuable: issuable + = render 'shared/issuable/form/contribution', issuable: issuable, form: form + = render_if_exists 'shared/issuable/approver_suggestion', issuable: issuable, presenter: presenter -= render 'shared/issuable/form/merge_params', issuable: issuable + = render 'shared/issuable/form/metadata', issuable: issuable, form: form, project: project, presenter: presenter -= render 'shared/issuable/form/contribution', issuable: issuable, form: form - if @merge_request_to_resolve_discussions_of .form-group @@ -49,6 +61,14 @@ = render_if_exists 'observability/observability_links', observability_values: @observability_values, issuable: issuable, project: project +- if issuable.respond_to?(:issue_type) + = form.hidden_field :issue_type + += form.hidden_field :lock_version + +- if @vulnerability_id + = hidden_field_tag 'vulnerability_id', @vulnerability_id + - is_footer = !(issuable.is_a?(MergeRequest) && issuable.new_record?) .gl-mt-5{ class: (is_footer ? "footer-block" : "middle-block") } - if !issuable.persisted? && !issuable.project.empty_repo? && (guide_url = issuable.project.present.contribution_guide_path) @@ -70,11 +90,3 @@ - confirm_body = _('You’re about to permanently delete the %{issuableType} ‘%{strongOpen}%{issuableTitle}%{strongClose}’. To avoid data loss, consider %{strongOpen}closing this %{issuableType}%{strongClose} instead. Once deleted, it cannot be undone or recovered.') % { issuableType: issuable.human_class_name, issuableTitle: issuable.title, strongOpen: '', strongClose: '' } - confirm_primary_btn_text = _('Delete %{issuableType}') % { issuableType: issuable.human_class_name } = link_button_to _('Delete'), polymorphic_path([@project, issuable], params: { destroy_confirm: true }), data: { title: confirm_title, confirm: confirm_body, is_html_message: true, confirm_btn_variant: 'danger'}, method: :delete, class: 'gl-float-right js-reset-autosave', "aria-label": confirm_primary_btn_text, variant: :danger, category: :secondary - -- if issuable.respond_to?(:issue_type) - = form.hidden_field :issue_type - -= form.hidden_field :lock_version - -- if @vulnerability_id - = hidden_field_tag 'vulnerability_id', @vulnerability_id diff --git a/app/views/shared/issuable/form/_metadata.html.haml b/app/views/shared/issuable/form/_metadata.html.haml index 1def5028103be9ceb612299d11bbaf4ed3bd0025..de756f7c8cc8eda166efa1333419a99993e090bf 100644 --- a/app/views/shared/issuable/form/_metadata.html.haml +++ b/app/views/shared/issuable/form/_metadata.html.haml @@ -20,36 +20,24 @@ _('Turn on confidentiality: Limit visibility to project members with at least the Planner role.') - if can?(current_user, :"set_#{issuable.to_ability_name}_metadata", issuable) - .row.gl-pt-4 - %div{ class: (has_due_date ? "col-lg-6" : "col-12") } - .form-group.row{ data: { testid: 'merge-request-assignee' } } - = render "shared/issuable/form/metadata_issuable_assignee", issuable: issuable, form: form, has_due_date: has_due_date + %div + .form-group.row{ data: { testid: 'merge-request-assignee' } } + = render "shared/issuable/form/metadata_issuable_assignee", issuable: issuable, form: form, has_due_date: has_due_date - - 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, presenter: presenter + - 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, presenter: presenter - = render_if_exists "shared/issuable/form/epic", issuable: issuable, form: form, project: project + = render_if_exists "shared/issuable/form/epic", issuable: issuable, form: form, project: project - - if issuable.supports_milestone? - .form-group.row.issue-milestone - = form.label :milestone_id, _('Milestone'), class: "col-12" - .col-12 - .issuable-form-select-holder - = render "shared/issuable/milestone_dropdown", selected: issuable.milestone, name: "#{issuable.class.model_name.param_key}[milestone_id]" - - .js-issuable-form-label-selector{ data: issuable_label_selector_data(project, issuable) } - - = render_if_exists "shared/issuable/form/merge_request_blocks", issuable: issuable, form: form + - if issuable.supports_milestone? + .form-group.row.issue-milestone + = form.label :milestone_id, _('Milestone'), class: "col-12" + .col-12 + .issuable-form-select-holder + = render "shared/issuable/milestone_dropdown", selected: issuable.milestone, name: "#{issuable.class.model_name.param_key}[milestone_id]" - - if issuable.is_a?(MergeRequest) - .row - = form.label :merge_after, s_('MergeRequests|Merge can start'), class: 'col-12' - .js-merge-request-schedule-input{ data: { - merge_after: issuable.merge_schedule&.merge_after&.strftime('%Y-%m-%dT%H:%M%z'), - param_key: issuable.class.model_name.param_key - } } - %p.gl-text-subtle.col-12= s_('MergeRequests|Requires that merge checks pass.') + .js-issuable-form-label-selector{ data: issuable_label_selector_data(project, issuable) } - if has_due_date .col-lg-6 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 0e3383acfce8f931a5d451cc596655a922f7e93d..aeb046a901d1535b7c85e1678149ed4ed389a05c 100644 --- a/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml +++ b/app/views/shared/issuable/form/_metadata_issuable_reviewer.html.haml @@ -9,3 +9,4 @@ = dropdown_tag(users_dropdown_label(issuable.reviewers), options: reviewers_dropdown_options(issuable.to_ability_name, issuable.iid, issuable.target_branch)) = render_if_exists 'shared/issuable/approver_suggestion', issuable: issuable, presenter: presenter +