Commit 99d391332fa9a6c11e93bd19295425167661b972
1 parent
c058e390
Exists in
master
and in
4 other branches
Add a "patch" MIME type, and render it like a normal view in Commit#show
Showing
4 changed files
with
17 additions
and
22 deletions
Show diff stats
app/controllers/commit_controller.rb
| @@ -15,19 +15,22 @@ class CommitController < ApplicationController | @@ -15,19 +15,22 @@ class CommitController < ApplicationController | ||
| 15 | result = CommitLoad.new(project, current_user, params).execute | 15 | result = CommitLoad.new(project, current_user, params).execute |
| 16 | 16 | ||
| 17 | @commit = result[:commit] | 17 | @commit = result[:commit] |
| 18 | + git_not_found! unless @commit | ||
| 18 | 19 | ||
| 19 | - if @commit | ||
| 20 | - @suppress_diff = result[:suppress_diff] | ||
| 21 | - @note = result[:note] | ||
| 22 | - @line_notes = result[:line_notes] | ||
| 23 | - @notes_count = result[:notes_count] | ||
| 24 | - @comments_allowed = true | ||
| 25 | - else | ||
| 26 | - return git_not_found! | ||
| 27 | - end | 20 | + @suppress_diff = result[:suppress_diff] |
| 21 | + @note = result[:note] | ||
| 22 | + @line_notes = result[:line_notes] | ||
| 23 | + @notes_count = result[:notes_count] | ||
| 24 | + @comments_allowed = true | ||
| 25 | + | ||
| 26 | + respond_to do |format| | ||
| 27 | + format.html do | ||
| 28 | + if result[:status] == :huge_commit | ||
| 29 | + render "huge_commit" and return | ||
| 30 | + end | ||
| 31 | + end | ||
| 28 | 32 | ||
| 29 | - if result[:status] == :huge_commit | ||
| 30 | - render "huge_commit" and return | 33 | + format.patch |
| 31 | end | 34 | end |
| 32 | end | 35 | end |
| 33 | end | 36 | end |
app/controllers/commits_controller.rb
| @@ -25,15 +25,4 @@ class CommitsController < ApplicationController | @@ -25,15 +25,4 @@ class CommitsController < ApplicationController | ||
| 25 | format.atom { render layout: false } | 25 | format.atom { render layout: false } |
| 26 | end | 26 | end |
| 27 | end | 27 | end |
| 28 | - | ||
| 29 | - def patch | ||
| 30 | - @commit = project.commit(params[:id]) | ||
| 31 | - | ||
| 32 | - send_data( | ||
| 33 | - @commit.to_patch, | ||
| 34 | - type: "text/plain", | ||
| 35 | - disposition: 'attachment', | ||
| 36 | - filename: "#{@commit.id}.patch" | ||
| 37 | - ) | ||
| 38 | - end | ||
| 39 | end | 28 | end |
| @@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
| 1 | +<%= @commit.to_patch %> |
config/initializers/mime_types.rb
| @@ -3,3 +3,5 @@ | @@ -3,3 +3,5 @@ | ||
| 3 | # Add new mime types for use in respond_to blocks: | 3 | # Add new mime types for use in respond_to blocks: |
| 4 | # Mime::Type.register "text/richtext", :rtf | 4 | # Mime::Type.register "text/richtext", :rtf |
| 5 | # Mime::Type.register_alias "text/html", :iphone | 5 | # Mime::Type.register_alias "text/html", :iphone |
| 6 | + | ||
| 7 | +Mime::Type.register_alias 'text/plain', :patch |