Commit f4f4a6b5 authored by Douwe Maan's avatar Douwe Maan

Fix specs and behavior for LFS files

parent 0ac57a54
...@@ -13,15 +13,13 @@ class Projects::ForksController < Projects::ApplicationController ...@@ -13,15 +13,13 @@ class Projects::ForksController < Projects::ApplicationController
@forked_project = ::Projects::ForkService.new(project, current_user, namespace: namespace).execute @forked_project = ::Projects::ForkService.new(project, current_user, namespace: namespace).execute
if @forked_project.saved? && @forked_project.forked? if @forked_project.saved? && @forked_project.forked?
continue_params[:notice] ||= "The project was successfully forked."
if @forked_project.import_in_progress? if @forked_project.import_in_progress?
redirect_to namespace_project_import_path(@forked_project.namespace, @forked_project, continue: continue_params) redirect_to namespace_project_import_path(@forked_project.namespace, @forked_project, continue: continue_params)
else else
if continue_params if continue_params
redirect_to continue_params[:to], notice: continue_params[:notice] redirect_to continue_params[:to], notice: continue_params[:notice]
else else
redirect_to namespace_project_path(@forked_project.namespace, @forked_project) redirect_to namespace_project_path(@forked_project.namespace, @forked_project), notice: "The project was successfully forked."
end end
end end
else else
...@@ -32,6 +30,11 @@ class Projects::ForksController < Projects::ApplicationController ...@@ -32,6 +30,11 @@ class Projects::ForksController < Projects::ApplicationController
private private
def continue_params def continue_params
params[:continue].permit(:to, :notice, :notice_now) continue_params = params[:continue]
if continue_params
continue_params.permit(:to, :notice, :notice_now)
else
nil
end
end end
end end
...@@ -28,7 +28,7 @@ class Projects::ImportsController < Projects::ApplicationController ...@@ -28,7 +28,7 @@ class Projects::ImportsController < Projects::ApplicationController
if continue_params if continue_params
redirect_to continue_params[:to], notice: continue_params[:notice] redirect_to continue_params[:to], notice: continue_params[:notice]
else else
redirect_to project_path(@project) redirect_to project_path(@project), notice: "The project was successfully forked."
end end
elsif @project.import_failed? elsif @project.import_failed?
redirect_to new_namespace_project_import_path(@project.namespace, @project) redirect_to new_namespace_project_import_path(@project.namespace, @project)
...@@ -43,7 +43,12 @@ class Projects::ImportsController < Projects::ApplicationController ...@@ -43,7 +43,12 @@ class Projects::ImportsController < Projects::ApplicationController
private private
def continue_params def continue_params
@continue_params ||= params[:continue].permit(:to, :notice, :notice_now) continue_params = params[:continue]
if continue_params
continue_params.permit(:to, :notice, :notice_now)
else
nil
end
end end
def require_no_repo def require_no_repo
......
...@@ -35,7 +35,7 @@ class Projects::TreeController < Projects::ApplicationController ...@@ -35,7 +35,7 @@ class Projects::TreeController < Projects::ApplicationController
return render_404 unless @commit_params.values.all? return render_404 unless @commit_params.values.all?
create_commit(Files::CreateDirService, success_notice: "The directory has been successfully created.", create_commit(Files::CreateDirService, success_notice: "The directory has been successfully created.",
success_path: namespace_project_blob_path(@project.namespace, @project, File.join(@target_branch, @dir_name)), success_path: namespace_project_tree_path(@project.namespace, @project, File.join(@target_branch, @dir_name)),
failure_path: namespace_project_tree_path(@project.namespace, @project, @ref)) failure_path: namespace_project_tree_path(@project.namespace, @project, @ref))
end end
......
...@@ -27,7 +27,7 @@ module BlobHelper ...@@ -27,7 +27,7 @@ module BlobHelper
blob = project.repository.blob_at(ref, path) rescue nil blob = project.repository.blob_at(ref, path) rescue nil
return unless blob && blob_text_editable?(blob) return unless blob && blob_text_viewable?(blob)
from_mr = options[:from_merge_request_id] from_mr = options[:from_merge_request_id]
link_opts = {} link_opts = {}
...@@ -63,6 +63,8 @@ module BlobHelper ...@@ -63,6 +63,8 @@ module BlobHelper
if !on_top_of_branch? if !on_top_of_branch?
button_tag label, class: "btn btn-#{btn_class} disabled has_tooltip", title: "You can only #{action} files when you are on a branch", data: { container: 'body' } button_tag label, class: "btn btn-#{btn_class} disabled has_tooltip", title: "You can only #{action} files when you are on a branch", data: { container: 'body' }
elsif blob.lfs_pointer?
button_tag label, class: "btn btn-#{btn_class} disabled has_tooltip", title: "It is not possible to #{action} files that are stored in LFS using the web interface", data: { container: 'body' }
elsif can_edit_blob?(blob) elsif can_edit_blob?(blob)
button_tag label, class: "btn btn-#{btn_class}", 'data-target' => "#modal-#{modal_type}-blob", 'data-toggle' => 'modal' button_tag label, class: "btn btn-#{btn_class}", 'data-target' => "#modal-#{modal_type}-blob", 'data-toggle' => 'modal'
elsif can?(current_user, :fork_project, project) elsif can?(current_user, :fork_project, project)
...@@ -102,10 +104,6 @@ module BlobHelper ...@@ -102,10 +104,6 @@ module BlobHelper
) )
end end
def blob_text_editable?(blob)
blob.text? && !blob.lfs_pointer?
end
def can_edit_blob?(blob, project = @project, ref = @ref) def can_edit_blob?(blob, project = @project, ref = @ref)
!blob.lfs_pointer? && can_edit_tree?(project, ref) !blob.lfs_pointer? && can_edit_tree?(project, ref)
end end
...@@ -130,7 +128,7 @@ module BlobHelper ...@@ -130,7 +128,7 @@ module BlobHelper
icon("#{file_type_icon_class('file', mode, name)} fw") icon("#{file_type_icon_class('file', mode, name)} fw")
end end
def blob_viewable?(blob) def blob_text_viewable?(blob)
blob && blob.text? && !blob.lfs_pointer? blob && blob.text? && !blob.lfs_pointer?
end end
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
= link_to 'Raw', namespace_project_raw_path(@project.namespace, @project, @id), = link_to 'Raw', namespace_project_raw_path(@project.namespace, @project, @id),
class: 'btn btn-sm', target: '_blank' class: 'btn btn-sm', target: '_blank'
-# only show normal/blame view links for text files -# only show normal/blame view links for text files
- if blob_viewable?(@blob) - if blob_text_viewable?(@blob)
- if current_page? namespace_project_blame_path(@project.namespace, @project, @id) - if current_page? namespace_project_blame_path(@project.namespace, @project, @id)
= link_to 'Normal View', namespace_project_blob_path(@project.namespace, @project, @id), = link_to 'Normal View', namespace_project_blob_path(@project.namespace, @project, @id),
class: 'btn btn-sm' class: 'btn btn-sm'
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
= "#{diff_file.diff.a_mode}#{diff_file.diff.b_mode}" = "#{diff_file.diff.a_mode}#{diff_file.diff.b_mode}"
.diff-controls .diff-controls
- if blob_viewable?(blob) - if blob_text_viewable?(blob)
= link_to '#', class: 'js-toggle-diff-comments btn btn-sm active has_tooltip', title: "Toggle comments for this file" do = link_to '#', class: 'js-toggle-diff-comments btn btn-sm active has_tooltip', title: "Toggle comments for this file" do
%i.fa.fa-comments %i.fa.fa-comments
&nbsp; &nbsp;
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
.diff-content.diff-wrap-lines .diff-content.diff-wrap-lines
-# Skipp all non non-supported blobs -# Skipp all non non-supported blobs
- return unless blob.respond_to?('text?') - return unless blob.respond_to?('text?')
- if blob_viewable?(blob) - if blob_text_viewable?(blob)
- if diff_view == 'parallel' - if diff_view == 'parallel'
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i = render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
- else - else
......
...@@ -253,7 +253,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps ...@@ -253,7 +253,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
step 'I am redirected to the root directory' do step 'I am redirected to the root directory' do
expect(current_path).to eq( expect(current_path).to eq(
namespace_project_tree_path(@project.namespace, @project, 'master/')) namespace_project_tree_path(@project.namespace, @project, 'master'))
end end
step "I don't see the permalink link" do step "I don't see the permalink link" do
...@@ -332,8 +332,8 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps ...@@ -332,8 +332,8 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
expect(page).to have_content 'Permalink' expect(page).to have_content 'Permalink'
expect(page).not_to have_content 'Edit' expect(page).not_to have_content 'Edit'
expect(page).not_to have_content 'Blame' expect(page).not_to have_content 'Blame'
expect(page).not_to have_content 'Delete' expect(page).to have_content 'Delete'
expect(page).not_to have_content 'Replace' expect(page).to have_content 'Replace'
end end
private private
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment