Commit 1c61ac1c64e136b391d472a24bbc5538352e299d
1 parent
e1c93a6b
Exists in
spb-stable
and in
3 other branches
Refactor MR code reload
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
3 changed files
with
9 additions
and
5 deletions
Show diff stats
app/controllers/projects/merge_requests_controller.rb
@@ -106,9 +106,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController | @@ -106,9 +106,6 @@ class Projects::MergeRequestsController < 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 < ActiveRecord::Base | @@ -32,7 +32,9 @@ class MergeRequest < 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 < ActiveRecord::Base | @@ -125,6 +127,13 @@ class MergeRequest < 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 |