diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-08-03 14:29:35 +0200 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-08-03 14:29:35 +0200 |
commit | f711b2df8bf02ed10716cdd6292002132413e3d8 (patch) | |
tree | 61855bf762b13a6f85aa0ff676f4d2e115ed1329 /app/controllers | |
parent | 2197ee02e95ade455785cc1769bf3a40a082a799 (diff) | |
download | gitlab-ce-f711b2df8bf02ed10716cdd6292002132413e3d8.tar.gz |
Clean up some backend
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/concerns/renders_blob.rb | 34 | ||||
-rw-r--r-- | app/controllers/projects/blob_controller.rb | 26 |
2 files changed, 33 insertions, 27 deletions
diff --git a/app/controllers/concerns/renders_blob.rb b/app/controllers/concerns/renders_blob.rb index 5a1b1d9f929..ba7adcfea86 100644 --- a/app/controllers/concerns/renders_blob.rb +++ b/app/controllers/concerns/renders_blob.rb @@ -1,7 +1,7 @@ module RendersBlob extend ActiveSupport::Concern - def render_blob_json(blob) + def blob_json(blob) viewer = case params[:viewer] when 'rich' @@ -11,27 +11,19 @@ module RendersBlob else blob.simple_viewer end - - return render_404 unless viewer - if blob.binary? - render json: { - binary: true, - mime_type: blob.mime_type, - name: blob.name, - extension: blob.extension, - size: blob.raw_size - } - else - render json: { - html: view_to_html_string("projects/blob/_viewer", viewer: viewer, load_async: false), - plain: blob.data, - name: blob.name, - extension: blob.extension, - size: blob.raw_size, - mime_type: blob.mime_type - } - end + return unless viewer + + { + html: view_to_html_string("projects/blob/_viewer", viewer: viewer, load_async: false) + } + end + + def render_blob_json(blob) + json = blob_json(blob) + return render_404 unless json + + render json: json end def conditionally_expand_blob(blob) diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb index 721e174d587..7a8fad436ac 100644 --- a/app/controllers/projects/blob_controller.rb +++ b/app/controllers/projects/blob_controller.rb @@ -4,7 +4,6 @@ class Projects::BlobController < Projects::ApplicationController include CreatesCommit include RendersBlob include ActionView::Helpers::SanitizeHelper - include ApplicationHelper # Raised when given an invalid file path InvalidPathError = Class.new(StandardError) @@ -38,17 +37,32 @@ class Projects::BlobController < Projects::ApplicationController respond_to do |format| format.html do - assign_ref_vars - environment_params = @repository.branch_exists?(@ref) ? { ref: @ref } : { commit: @commit } @environment = EnvironmentsFinder.new(@project, current_user, environment_params).execute.last - @last_commit = @repository.last_commit_for_path(@commit.id, tree.path) || @commit + @last_commit = @repository.last_commit_for_path(@commit.id, @blob.path) - show_new_repo? ? render('projects/tree/show') : render('show') + render 'show' end format.json do - render_blob_json(@blob) + json = blob_json(@blob) + return render_404 unless json + + render json: json.merge( + path: blob.path, + name: blob.name, + extension: blob.extension, + size: blob.raw_size, + mime_type: blob.mime_type, + binary: blob.raw_binary?, + simple_viewer: blob.simple_viewer&.class&.partial_name, + rich_viewer: blob.rich_viewer&.class&.partial_name, + show_viewer_switcher: !!blob.show_viewer_switcher?, + raw_path: project_raw_path(project, @id), + blame_path: project_blame_path(project, @id), + commits_path: project_commits_path(project, @id), + permalink: project_blob_path(project, File.join(@commit.id, @path)), + ) end end end |