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 60 @merge_request = MergeRequest.new(params[:merge_request])
61 61 @merge_request.source_project = @project unless @merge_request.source_project
62 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 63 @source_project = @merge_request.source_project
65 64 @merge_request
66 65 end
... ... @@ -167,7 +166,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
167 166 protected
168 167  
169 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 174 end
172 175  
173 176 def merge_request
... ...
app/models/merge_request.rb
... ... @@ -253,4 +253,24 @@ class MergeRequest < ActiveRecord::Base
253 253 message << description.to_s
254 254 message
255 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 276 end
... ...
app/views/projects/merge_requests/_form.html.haml
... ... @@ -13,7 +13,7 @@
13 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 14 .pull-left
15 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 17 .mr_source_commit.prepend-top-10
18 18 .col-md-2
19 19 .merge-request-angle
... ... @@ -25,7 +25,7 @@
25 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 26 .pull-left
27 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 29 .mr_target_commit.prepend-top-10
30 30  
31 31 %hr
... ...