OSDN Git Service

Fix assign-to-me link for MR form
[wvm/gitlab.git] / app / views / projects / merge_requests / _form.html.haml
1 = form_for [@project, @merge_request], html: { class: "merge-request-form form-horizontal" } do |f|
2   -if @merge_request.errors.any?
3     .alert.alert-danger
4       %ul
5         - @merge_request.errors.full_messages.each do |msg|
6           %li= msg
7
8   .merge-request-branches
9     .row
10       .col-md-5
11         .clearfix
12           .pull-left
13             = f.select(:source_project_id, [[@merge_request.source_project_path,@merge_request.source_project.id]] , {}, { class: 'source_project select2 span3', disabled: @merge_request.persisted? })
14           .pull-left
15              
16             = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch select2 span2'})
17         .mr_source_commit.prepend-top-10
18       .col-md-2
19         .merge-request-angle
20           %i.icon-long-arrow-right
21       .col-md-5
22         .clearfix
23           .pull-left
24             - projects =  @project.forked_from_project.nil? ? [@project] : [ @project,@project.forked_from_project]
25             = f.select(:target_project_id, options_from_collection_for_select(projects, 'id', 'path_with_namespace'), {}, { class: 'target_project select2 span3', disabled: @merge_request.persisted? })
26           .pull-left
27              
28             = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch select2 span2'})
29         .mr_target_commit.prepend-top-10
30
31   %hr
32   .merge-request-form-info
33     .form-group
34       = f.label :title, class: 'control-label' do
35         %strong= "Title *"
36       .col-sm-10= f.text_field :title, class: "form-control pad js-gfm-input", maxlength: 255, rows: 5, required: true
37     .form-group
38       = f.label :description, "Description", class: 'control-label'
39       .col-sm-10
40         = f.text_area :description, class: "form-control js-gfm-input", rows: 14
41         %p.hint Description is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
42
43     %hr
44     .form-group
45       .merge-request-assignee
46         = f.label :assignee_id, class: 'control-label' do
47           %i.icon-user
48           Assign to
49         .col-sm-10
50           = f.select(:assignee_id, assignee_options(@merge_request), { include_blank: "Select a user" }, {class: 'select2'})
51            
52           = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link'
53     .form-group
54       .merge-request-milestone
55         = f.label :milestone_id, class: 'control-label' do
56           %i.icon-time
57           Milestone
58         .col-sm-10= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'select2'})
59
60
61   .form-actions
62     - if @merge_request.new_record?
63       = f.submit 'Submit merge request', class: "btn btn-create"
64     -else
65       = f.submit 'Save changes', class: "btn btn-save"
66     - if @merge_request.new_record?
67       = link_to project_merge_requests_path(@source_project), class: "btn btn-cancel" do
68         Cancel
69     - else
70       = link_to project_merge_request_path(@target_project, @merge_request), class: "btn btn-cancel" do
71         Cancel
72
73 :javascript
74   disableButtonIfEmptyField("#merge_request_title", ".btn-save");
75
76   var source_branch = $("#merge_request_source_branch")
77     , target_branch = $("#merge_request_target_branch")
78     , target_project = $("#merge_request_target_project_id");
79
80   $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: source_branch.val() });
81   $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: target_branch.val() });
82
83   target_project.on("change", function() {
84     $.get("#{update_branches_project_merge_requests_path(@source_project)}", {target_project_id:  $(this).val() });
85   });
86   source_branch.on("change", function() {
87     $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: $(this).val() });
88   });
89   target_branch.on("change", function() {
90     $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() });
91   });
92   $('.assign-to-me-link').on('click', function(e){
93     $('#merge_request_assignee_id').val("#{current_user.id}").trigger("change");
94     e.preventDefault();
95   });