Commit 2b1afa0e62e275c7b4df71ad454af34d454e0e17

Authored by Riyad Preukschas
1 parent ddb7399a

Remove merge_request#raw and replace it with formats to #show

Needed to add a constraint on the id. Otherwise the format was parsed as part of the id.
app/controllers/merge_requests_controller.rb
1 class MergeRequestsController < ProjectResourceController 1 class MergeRequestsController < ProjectResourceController
2 before_filter :module_enabled 2 before_filter :module_enabled
3 - before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check, :raw]  
4 - before_filter :validates_merge_request, only: [:show, :diffs, :raw] 3 + before_filter :merge_request, only: [:edit, :update, :destroy, :show, :commits, :diffs, :automerge, :automerge_check]
  4 + before_filter :validates_merge_request, only: [:show, :diffs]
5 before_filter :define_show_vars, only: [:show, :diffs] 5 before_filter :define_show_vars, only: [:show, :diffs]
6 6
7 # Allow read any merge_request 7 # Allow read any merge_request
@@ -16,7 +16,6 @@ class MergeRequestsController &lt; ProjectResourceController @@ -16,7 +16,6 @@ class MergeRequestsController &lt; ProjectResourceController
16 # Allow destroy merge_request 16 # Allow destroy merge_request
17 before_filter :authorize_admin_merge_request!, only: [:destroy] 17 before_filter :authorize_admin_merge_request!, only: [:destroy]
18 18
19 -  
20 def index 19 def index
21 @merge_requests = MergeRequestsLoadContext.new(project, current_user, params).execute 20 @merge_requests = MergeRequestsLoadContext.new(project, current_user, params).execute
22 end 21 end
@@ -25,11 +24,10 @@ class MergeRequestsController &lt; ProjectResourceController @@ -25,11 +24,10 @@ class MergeRequestsController &lt; ProjectResourceController
25 respond_to do |format| 24 respond_to do |format|
26 format.html 25 format.html
27 format.js 26 format.js
28 - end  
29 - end  
30 27
31 - def raw  
32 - send_file @merge_request.to_raw 28 + format.diff { render text: @merge_request.to_diff }
  29 + format.patch { render text: @merge_request.to_patch }
  30 + end
33 end 31 end
34 32
35 def diffs 33 def diffs
app/views/merge_requests/show/_diffs.html.haml
1 - if @merge_request.valid_diffs? 1 - if @merge_request.valid_diffs?
2 = render "commits/diffs", diffs: @diffs 2 = render "commits/diffs", diffs: @diffs
3 - elsif @merge_request.broken_diffs? 3 - elsif @merge_request.broken_diffs?
4 - %h4.nothing_here_message 4 + %h4.nothing_here_message
5 Can't load diff. 5 Can't load diff.
6 - You can #{link_to "download MR patch", raw_project_merge_request_path(@project, @merge_request), class: "vlink"} instead. 6 + You can
  7 + = link_to "download it", project_merge_request_path(@project, @merge_request), format: :diff, class: "vlink"
  8 + instead.
7 - else 9 - else
8 %h4.nothing_here_message Nothing to merge 10 %h4.nothing_here_message Nothing to merge
app/views/merge_requests/show/_mr_title.html.haml
@@ -13,9 +13,9 @@ @@ -13,9 +13,9 @@
13 = "MERGED" 13 = "MERGED"
14 - if can?(current_user, :modify_merge_request, @merge_request) 14 - if can?(current_user, :modify_merge_request, @merge_request)
15 - if @merge_request.open? 15 - if @merge_request.open?
16 - = link_to raw_project_merge_request_path(@project, @merge_request), class: "btn grouped" do 16 + = link_to project_merge_request_path(@project, @merge_request, format: :patch), class: "btn grouped" do
17 %i.icon-download-alt 17 %i.icon-download-alt
18 - Get Patch 18 + Get Patch
19 19
20 = link_to 'Close', project_merge_request_path(@project, @merge_request, merge_request: {closed: true }, status_only: true), method: :put, class: "btn grouped danger", title: "Close merge request" 20 = link_to 'Close', project_merge_request_path(@project, @merge_request, merge_request: {closed: true }, status_only: true), method: :put, class: "btn grouped danger", title: "Close merge request"
21 21
config/routes.rb
@@ -159,12 +159,11 @@ Gitlab::Application.routes.draw do @@ -159,12 +159,11 @@ Gitlab::Application.routes.draw do
159 end 159 end
160 end 160 end
161 161
162 - resources :merge_requests do 162 + resources :merge_requests, constraints: {id: /\d+/} do
163 member do 163 member do
164 get :diffs 164 get :diffs
165 get :automerge 165 get :automerge
166 get :automerge_check 166 get :automerge_check
167 - get :raw  
168 end 167 end
169 168
170 collection do 169 collection do
spec/routing/project_routing_spec.rb
@@ -208,7 +208,6 @@ end @@ -208,7 +208,6 @@ end
208 # diffs_project_merge_request GET /:project_id/merge_requests/:id/diffs(.:format) merge_requests#diffs 208 # diffs_project_merge_request GET /:project_id/merge_requests/:id/diffs(.:format) merge_requests#diffs
209 # automerge_project_merge_request GET /:project_id/merge_requests/:id/automerge(.:format) merge_requests#automerge 209 # automerge_project_merge_request GET /:project_id/merge_requests/:id/automerge(.:format) merge_requests#automerge
210 # automerge_check_project_merge_request GET /:project_id/merge_requests/:id/automerge_check(.:format) merge_requests#automerge_check 210 # automerge_check_project_merge_request GET /:project_id/merge_requests/:id/automerge_check(.:format) merge_requests#automerge_check
211 -# raw_project_merge_request GET /:project_id/merge_requests/:id/raw(.:format) merge_requests#raw  
212 # branch_from_project_merge_requests GET /:project_id/merge_requests/branch_from(.:format) merge_requests#branch_from 211 # branch_from_project_merge_requests GET /:project_id/merge_requests/branch_from(.:format) merge_requests#branch_from
213 # branch_to_project_merge_requests GET /:project_id/merge_requests/branch_to(.:format) merge_requests#branch_to 212 # branch_to_project_merge_requests GET /:project_id/merge_requests/branch_to(.:format) merge_requests#branch_to
214 # project_merge_requests GET /:project_id/merge_requests(.:format) merge_requests#index 213 # project_merge_requests GET /:project_id/merge_requests(.:format) merge_requests#index
@@ -231,10 +230,6 @@ describe MergeRequestsController, &quot;routing&quot; do @@ -231,10 +230,6 @@ describe MergeRequestsController, &quot;routing&quot; do
231 get("/gitlabhq/merge_requests/1/automerge_check").should route_to('merge_requests#automerge_check', project_id: 'gitlabhq', id: '1') 230 get("/gitlabhq/merge_requests/1/automerge_check").should route_to('merge_requests#automerge_check', project_id: 'gitlabhq', id: '1')
232 end 231 end
233 232
234 - it "to #raw" do  
235 - get("/gitlabhq/merge_requests/1/raw").should route_to('merge_requests#raw', project_id: 'gitlabhq', id: '1')  
236 - end  
237 -  
238 it "to #branch_from" do 233 it "to #branch_from" do
239 get("/gitlabhq/merge_requests/branch_from").should route_to('merge_requests#branch_from', project_id: 'gitlabhq') 234 get("/gitlabhq/merge_requests/branch_from").should route_to('merge_requests#branch_from', project_id: 'gitlabhq')
240 end 235 end
@@ -243,6 +238,11 @@ describe MergeRequestsController, &quot;routing&quot; do @@ -243,6 +238,11 @@ describe MergeRequestsController, &quot;routing&quot; do
243 get("/gitlabhq/merge_requests/branch_to").should route_to('merge_requests#branch_to', project_id: 'gitlabhq') 238 get("/gitlabhq/merge_requests/branch_to").should route_to('merge_requests#branch_to', project_id: 'gitlabhq')
244 end 239 end
245 240
  241 + it "to #show" do
  242 + get("/gitlabhq/merge_requests/1.diff").should route_to('merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'diff')
  243 + get("/gitlabhq/merge_requests/1.patch").should route_to('merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'patch')
  244 + end
  245 +
246 it_behaves_like "RESTful project resources" do 246 it_behaves_like "RESTful project resources" do
247 let(:controller) { 'merge_requests' } 247 let(:controller) { 'merge_requests' }
248 end 248 end