Skip to content
Snippets Groups Projects
Commit f4f4a6b5 authored by Douwe Maan's avatar Douwe Maan
Browse files

Fix specs and behavior for LFS files

parent 0ac57a54
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -13,15 +13,13 @@ class Projects::ForksController < Projects::ApplicationController
@forked_project = ::Projects::ForkService.new(project, current_user, namespace: namespace).execute
 
if @forked_project.saved? && @forked_project.forked?
continue_params[:notice] ||= "The project was successfully forked."
if @forked_project.import_in_progress?
redirect_to namespace_project_import_path(@forked_project.namespace, @forked_project, continue: continue_params)
else
if continue_params
redirect_to continue_params[:to], notice: continue_params[:notice]
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
else
Loading
Loading
@@ -32,6 +30,11 @@ class Projects::ForksController < Projects::ApplicationController
private
 
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
Loading
Loading
@@ -28,7 +28,7 @@ class Projects::ImportsController < Projects::ApplicationController
if continue_params
redirect_to continue_params[:to], notice: continue_params[:notice]
else
redirect_to project_path(@project)
redirect_to project_path(@project), notice: "The project was successfully forked."
end
elsif @project.import_failed?
redirect_to new_namespace_project_import_path(@project.namespace, @project)
Loading
Loading
@@ -43,7 +43,12 @@ class Projects::ImportsController < Projects::ApplicationController
private
 
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
 
def require_no_repo
Loading
Loading
Loading
Loading
@@ -35,7 +35,7 @@ class Projects::TreeController < Projects::ApplicationController
return render_404 unless @commit_params.values.all?
 
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))
end
 
Loading
Loading
Loading
Loading
@@ -27,7 +27,7 @@ module BlobHelper
 
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]
link_opts = {}
Loading
Loading
@@ -63,6 +63,8 @@ module BlobHelper
 
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' }
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)
button_tag label, class: "btn btn-#{btn_class}", 'data-target' => "#modal-#{modal_type}-blob", 'data-toggle' => 'modal'
elsif can?(current_user, :fork_project, project)
Loading
Loading
@@ -102,10 +104,6 @@ module BlobHelper
)
end
 
def blob_text_editable?(blob)
blob.text? && !blob.lfs_pointer?
end
def can_edit_blob?(blob, project = @project, ref = @ref)
!blob.lfs_pointer? && can_edit_tree?(project, ref)
end
Loading
Loading
@@ -130,7 +128,7 @@ module BlobHelper
icon("#{file_type_icon_class('file', mode, name)} fw")
end
 
def blob_viewable?(blob)
def blob_text_viewable?(blob)
blob && blob.text? && !blob.lfs_pointer?
end
 
Loading
Loading
Loading
Loading
@@ -2,7 +2,7 @@
= link_to 'Raw', namespace_project_raw_path(@project.namespace, @project, @id),
class: 'btn btn-sm', target: '_blank'
-# 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)
= link_to 'Normal View', namespace_project_blob_path(@project.namespace, @project, @id),
class: 'btn btn-sm'
Loading
Loading
Loading
Loading
@@ -24,7 +24,7 @@
= "#{diff_file.diff.a_mode}#{diff_file.diff.b_mode}"
 
.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
%i.fa.fa-comments
&nbsp;
Loading
Loading
@@ -40,7 +40,7 @@
.diff-content.diff-wrap-lines
-# Skipp all non non-supported blobs
- return unless blob.respond_to?('text?')
- if blob_viewable?(blob)
- if blob_text_viewable?(blob)
- if diff_view == 'parallel'
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
- else
Loading
Loading
Loading
Loading
@@ -253,7 +253,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
 
step 'I am redirected to the root directory' do
expect(current_path).to eq(
namespace_project_tree_path(@project.namespace, @project, 'master/'))
namespace_project_tree_path(@project.namespace, @project, 'master'))
end
 
step "I don't see the permalink link" do
Loading
Loading
@@ -332,8 +332,8 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
expect(page).to have_content 'Permalink'
expect(page).not_to have_content 'Edit'
expect(page).not_to have_content 'Blame'
expect(page).not_to have_content 'Delete'
expect(page).not_to have_content 'Replace'
expect(page).to have_content 'Delete'
expect(page).to have_content 'Replace'
end
 
private
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment