5999fec7a3
Standardize the way we check for and display form errors - Some views had a "Close" button. We've removed this, because we don't want users accidentally hiding the validation errors and not knowing what needs to be fixed. - Some views used `li`, some used `p`, some used `span`. We've standardized on `li`. - Some views only showed the first error. We've standardized on showing all of them. - Some views added an `#error_explanation` div, which we've made standard. See merge request !3531
96 lines
5.2 KiB
Text
96 lines
5.2 KiB
Text
%h3.page-title
|
|
New Merge Request
|
|
|
|
= form_for [@project.namespace.becomes(Namespace), @project, @merge_request], url: new_namespace_project_merge_request_path(@project.namespace, @project), method: :get, html: { class: "merge-request-form form-inline js-requires-input" } do |f|
|
|
.hide.alert.alert-danger.mr-compare-errors
|
|
.merge-request-branches.row
|
|
.col-md-6
|
|
.panel.panel-default.panel-new-merge-request
|
|
.panel-heading
|
|
Source branch
|
|
.panel-body.clearfix
|
|
.merge-request-select.dropdown
|
|
= f.hidden_field :source_project_id
|
|
= dropdown_toggle @merge_request.source_project_path, { toggle: "dropdown", field_name: "#{f.object_name}[source_project_id]", disabled: @merge_request.persisted? }, { toggle_class: "js-compare-dropdown js-source-project" }
|
|
.dropdown-menu.dropdown-menu-selectable.dropdown-source-project
|
|
= dropdown_title("Select source project")
|
|
= dropdown_filter("Search projects")
|
|
= dropdown_content do
|
|
- is_active = f.object.source_project_id == @merge_request.source_project.id
|
|
%ul
|
|
%li
|
|
%a{ href: "#", class: "#{("is-active" if is_active)}", data: { id: @merge_request.source_project.id } }
|
|
= @merge_request.source_project_path
|
|
.merge-request-select.dropdown
|
|
= f.hidden_field :source_branch
|
|
= dropdown_toggle "Select source branch", { toggle: "dropdown", field_name: "#{f.object_name}[source_branch]" }, { toggle_class: "js-compare-dropdown js-source-branch" }
|
|
.dropdown-menu.dropdown-menu-selectable.dropdown-source-branch
|
|
= dropdown_title("Select source branch")
|
|
= dropdown_filter("Search branches")
|
|
= dropdown_content do
|
|
%ul
|
|
- @merge_request.source_branches.each do |branch|
|
|
%li
|
|
%a{ href: "#", class: "#{("is-active" if f.object.source_branch == branch)}", data: { id: branch } }
|
|
= branch
|
|
.panel-footer
|
|
= icon('spinner spin', class: 'js-source-loading')
|
|
%ul.list-unstyled.mr_source_commit
|
|
|
|
.col-md-6
|
|
.panel.panel-default.panel-new-merge-request
|
|
.panel-heading
|
|
Target branch
|
|
.panel-body.clearfix
|
|
- projects = @project.forked_from_project.nil? ? [@project] : [@project, @project.forked_from_project]
|
|
.merge-request-select.dropdown
|
|
= f.hidden_field :target_project_id
|
|
= dropdown_toggle f.object.target_project.path_with_namespace, { toggle: "dropdown", field_name: "#{f.object_name}[target_project_id]", disabled: @merge_request.persisted? }, { toggle_class: "js-compare-dropdown js-target-project" }
|
|
.dropdown-menu.dropdown-menu-selectable.dropdown-target-project
|
|
= dropdown_title("Select target project")
|
|
= dropdown_filter("Search projects")
|
|
= dropdown_content do
|
|
%ul
|
|
- projects.each do |project|
|
|
%li
|
|
%a{ href: "#", class: "#{("is-active" if f.object.target_project_id == project.id)}", data: { id: project.id } }
|
|
= project.path_with_namespace
|
|
.merge-request-select.dropdown
|
|
= f.hidden_field :target_branch
|
|
= dropdown_toggle f.object.target_branch, { toggle: "dropdown", field_name: "#{f.object_name}[target_branch]" }, { toggle_class: "js-compare-dropdown js-target-branch" }
|
|
.dropdown-menu.dropdown-menu-selectable.dropdown-target-branch.js-target-branch-dropdown
|
|
= dropdown_title("Select target branch")
|
|
= dropdown_filter("Search branches")
|
|
= dropdown_content do
|
|
%ul
|
|
- @merge_request.target_branches.each do |branch|
|
|
%li
|
|
%a{ href: "#", class: "#{("is-active" if f.object.target_branch == branch)}", data: { id: branch } }
|
|
= branch
|
|
.panel-footer
|
|
= icon('spinner spin', class: "js-target-loading")
|
|
%ul.list-unstyled.mr_target_commit
|
|
|
|
- if @merge_request.errors.any?
|
|
= form_errors(@merge_request)
|
|
- elsif @merge_request.source_branch.present? && @merge_request.target_branch.present?
|
|
.light-well.append-bottom-default
|
|
.center
|
|
%h4
|
|
There isn't anything to merge.
|
|
%p.slead
|
|
- if @merge_request.source_branch == @merge_request.target_branch
|
|
You'll need to use different branch names to get a valid comparison.
|
|
- else
|
|
%span.label-branch #{@merge_request.source_branch}
|
|
and
|
|
%span.label-branch #{@merge_request.target_branch}
|
|
are the same.
|
|
= f.submit 'Compare branches and continue', class: "btn btn-new mr-compare-btn"
|
|
|
|
:javascript
|
|
new Compare({
|
|
targetProjectUrl: "#{update_branches_namespace_project_merge_requests_path(@source_project.namespace, @source_project)}",
|
|
sourceBranchUrl: "#{branch_from_namespace_project_merge_requests_path(@source_project.namespace, @source_project)}",
|
|
targetBranchUrl: "#{branch_to_namespace_project_merge_requests_path(@source_project.namespace, @source_project)}"
|
|
});
|