Commit 2b1afa0e62e275c7b4df71ad454af34d454e0e17
1 parent
ddb7399a
Exists in
master
and in
4 other branches
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.
Showing
5 changed files
with
17 additions
and
18 deletions
Show diff stats
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 < ProjectResourceController | @@ -16,7 +16,6 @@ class MergeRequestsController < 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 < ProjectResourceController | @@ -25,11 +24,10 @@ class MergeRequestsController < 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, "routing" do | @@ -231,10 +230,6 @@ describe MergeRequestsController, "routing" 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, "routing" do | @@ -243,6 +238,11 @@ describe MergeRequestsController, "routing" 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 |