= form_for [@project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f| -if @merge_request.errors.any? .alert.alert-error %ul - @merge_request.errors.full_messages.each do |msg| %li= msg .merge-request-branches .row .col-md-5 .clearfix .pull-left = f.select(:source_project_id, [[@merge_request.source_project_path,@merge_request.source_project.id]] , {}, { class: 'source_project chosen span3', disabled: @merge_request.persisted? }) .pull-left   = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch chosen span2'}) .mr_source_commit.prepend-top-10 .col-md-2 %h2.merge-request-angle.light %i.icon-long-arrow-right .col-md-5 .clearfix .pull-left - projects = @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project] = f.select(:target_project_id, options_from_collection_for_select(projects, 'id', 'path_with_namespace'), {}, { class: 'target_project chosen span3', disabled: @merge_request.persisted? }) .pull-left   = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch chosen span2'}) .mr_target_commit.prepend-top-10 %hr .merge-request-form-info .form-group = f.label :title do %strong= "Title *" .col-sm-10= f.text_field :title, class: "input-lg pad js-gfm-input", maxlength: 255, rows: 5, required: true .form-group .left = f.label :assignee_id do %i.icon-user Assign to .col-sm-10= f.select(:assignee_id, assignee_options(@merge_request), { include_blank: "Select user" }, {class: 'chosen span3'}) .left = f.label :milestone_id do %i.icon-time Milestone .col-sm-10= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'chosen'}) .form-group = f.label :description, "Description" .col-sm-10 = f.text_area :description, class: "input-lg js-gfm-input", rows: 14 %p.hint Description is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. .form-actions - if @merge_request.new_record? = f.submit 'Submit merge request', class: "btn btn-create" -else = f.submit 'Save changes', class: "btn btn-save" - if @merge_request.new_record? = link_to project_merge_requests_path(@source_project), class: "btn btn-cancel" do Cancel - else = link_to project_merge_request_path(@target_project, @merge_request), class: "btn btn-cancel" do Cancel :javascript disableButtonIfEmptyField("#merge_request_title", ".btn-save"); var source_branch = $("#merge_request_source_branch") , target_branch = $("#merge_request_target_branch") , target_project = $("#merge_request_target_project_id"); $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: source_branch.val() }); $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: target_branch.val() }); target_project.on("change", function() { $.get("#{update_branches_project_merge_requests_path(@source_project)}", {target_project_id: $(this).val() }); }); source_branch.on("change", function() { $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: $(this).val() }); }); target_branch.on("change", function() { $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() }); });