Commit 1c61ac1c64e136b391d472a24bbc5538352e299d

Authored by Dmitriy Zaporozhets
1 parent e1c93a6b

Refactor MR code reload

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/controllers/projects/merge_requests_controller.rb
@@ -106,9 +106,6 @@ class Projects::MergeRequestsController &lt; Projects::ApplicationController @@ -106,9 +106,6 @@ class Projects::MergeRequestsController &lt; Projects::ApplicationController
106 params[:merge_request].delete(:target_project_id) 106 params[:merge_request].delete(:target_project_id)
107 107
108 if @merge_request.update_attributes(params[:merge_request].merge(author_id_of_changes: current_user.id)) 108 if @merge_request.update_attributes(params[:merge_request].merge(author_id_of_changes: current_user.id))
109 - @merge_request.reload_code  
110 - @merge_request.mark_as_unchecked  
111 -  
112 @merge_request.reset_events_cache 109 @merge_request.reset_events_cache
113 110
114 respond_to do |format| 111 respond_to do |format|
app/models/merge_request.rb
@@ -32,7 +32,9 @@ class MergeRequest &lt; ActiveRecord::Base @@ -32,7 +32,9 @@ class MergeRequest &lt; ActiveRecord::Base
32 belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project" 32 belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project"
33 33
34 has_one :merge_request_diff, dependent: :destroy 34 has_one :merge_request_diff, dependent: :destroy
  35 +
35 after_create :create_merge_request_diff 36 after_create :create_merge_request_diff
  37 + after_update :update_merge_request_diff
36 38
37 delegate :commits, :diffs, :last_commit, :last_commit_short_sha, to: :merge_request_diff, prefix: nil 39 delegate :commits, :diffs, :last_commit, :last_commit_short_sha, to: :merge_request_diff, prefix: nil
38 40
@@ -125,6 +127,13 @@ class MergeRequest &lt; ActiveRecord::Base @@ -125,6 +127,13 @@ class MergeRequest &lt; ActiveRecord::Base
125 end 127 end
126 end 128 end
127 129
  130 + def update_merge_request_diff
  131 + if source_branch_changed? || target_branch_changed?
  132 + reload_code
  133 + mark_as_unchecked
  134 + end
  135 + end
  136 +
128 def reload_code 137 def reload_code
129 if merge_request_diff && opened? 138 if merge_request_diff && opened?
130 merge_request_diff.reload_content 139 merge_request_diff.reload_content
lib/api/merge_requests.rb
@@ -116,8 +116,6 @@ module API @@ -116,8 +116,6 @@ module API
116 authorize! :modify_merge_request, merge_request 116 authorize! :modify_merge_request, merge_request
117 117
118 if merge_request.update_attributes attrs 118 if merge_request.update_attributes attrs
119 - merge_request.reload_code  
120 - merge_request.mark_as_unchecked  
121 present merge_request, with: Entities::MergeRequest 119 present merge_request, with: Entities::MergeRequest
122 else 120 else
123 handle_merge_request_errors! merge_request.errors 121 handle_merge_request_errors! merge_request.errors