Commit 5e004719c44edee3b6ab7921b016fd0044bad8b4

Authored by Dmitriy Zaporozhets
2 parents 9e181d36 f416b2f5

Merge branch 'bug/broken_mr_select' into 'master'

Fix broken merge request select

Fixes #991
app/controllers/projects/merge_requests_controller.rb
@@ -60,7 +60,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController @@ -60,7 +60,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
60 @merge_request = MergeRequest.new(params[:merge_request]) 60 @merge_request = MergeRequest.new(params[:merge_request])
61 @merge_request.source_project = @project unless @merge_request.source_project 61 @merge_request.source_project = @project unless @merge_request.source_project
62 @merge_request.target_project = @project unless @merge_request.target_project 62 @merge_request.target_project = @project unless @merge_request.target_project
63 - @target_branches = @merge_request.target_project.nil? ? [] : @merge_request.target_project.repository.branch_names  
64 @source_project = @merge_request.source_project 63 @source_project = @merge_request.source_project
65 @merge_request 64 @merge_request
66 end 65 end
@@ -167,7 +166,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController @@ -167,7 +166,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
167 protected 166 protected
168 167
169 def selected_target_project 168 def selected_target_project
170 - ((@project.id.to_s == params[:target_project_id]) || @project.forked_project_link.nil?) ? @project : @project.forked_project_link.forked_from_project 169 + if @project.id.to_s == params[:target_project_id] || @project.forked_project_link.nil?
  170 + @project
  171 + else
  172 + @project.forked_project_link.forked_from_project
  173 + end
171 end 174 end
172 175
173 def merge_request 176 def merge_request
app/models/merge_request.rb
@@ -253,4 +253,24 @@ class MergeRequest < ActiveRecord::Base @@ -253,4 +253,24 @@ class MergeRequest < ActiveRecord::Base
253 message << description.to_s 253 message << description.to_s
254 message 254 message
255 end 255 end
  256 +
  257 + # Return array of possible target branches
  258 + # dependes on target project of MR
  259 + def target_branches
  260 + if target_project.nil?
  261 + []
  262 + else
  263 + target_project.repository.branch_names
  264 + end
  265 + end
  266 +
  267 + # Return array of possible source branches
  268 + # dependes on source project of MR
  269 + def source_branches
  270 + if source_project.nil?
  271 + []
  272 + else
  273 + source_project.repository.branch_names
  274 + end
  275 + end
256 end 276 end
app/views/projects/merge_requests/_form.html.haml
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
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? }) 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 14 .pull-left
15 &nbsp; 15 &nbsp;
16 - = f.select(:source_branch, @merge_request.source_project.repository.branch_names, { include_blank: "Select branch" }, {class: 'source_branch select2 span2'}) 16 + = f.select(:source_branch, @merge_request.source_branches, { include_blank: "Select branch" }, {class: 'source_branch select2 span2'})
17 .mr_source_commit.prepend-top-10 17 .mr_source_commit.prepend-top-10
18 .col-md-2 18 .col-md-2
19 .merge-request-angle 19 .merge-request-angle
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
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? }) 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 26 .pull-left
27 &nbsp; 27 &nbsp;
28 - = f.select(:target_branch, @target_branches, { include_blank: "Select branch" }, {class: 'target_branch select2 span2'}) 28 + = f.select(:target_branch, @merge_request.target_branches, { include_blank: "Select branch" }, {class: 'target_branch select2 span2'})
29 .mr_target_commit.prepend-top-10 29 .mr_target_commit.prepend-top-10
30 30
31 %hr 31 %hr