Fix spec
This commit is contained in:
parent
95b3b6859a
commit
c52fead0d2
12 changed files with 97 additions and 76 deletions
|
@ -8,9 +8,12 @@ class Projects::BlameController < Projects::ApplicationController
|
|||
|
||||
def show
|
||||
@blob = @repository.blob_at(@commit.id, @path)
|
||||
|
||||
|
||||
return render_404 unless @blob
|
||||
|
||||
environment_params = @repository.branch_exists?(@ref) ? { ref: @ref } : { commit: @commit }
|
||||
@environment = EnvironmentsFinder.new(@project, current_user, environment_params).execute.last
|
||||
|
||||
@blame_groups = Gitlab::Blame.new(@blob, @commit).groups
|
||||
end
|
||||
end
|
||||
|
|
|
@ -203,4 +203,18 @@ module BlobHelper
|
|||
'blob-language' => @blob && @blob.language.try(:ace_mode)
|
||||
}
|
||||
end
|
||||
|
||||
def copy_file_path_button(file_path)
|
||||
clipboard_button(clipboard_text: file_path, class: 'btn-clipboard btn-transparent prepend-left-5', title: 'Copy file path to clipboard')
|
||||
end
|
||||
|
||||
def copy_blob_content_button(blob)
|
||||
return if markup?(blob.name)
|
||||
|
||||
clipboard_button(clipboard_target: ".blob-content[data-blob-id='#{blob.id}']", class: "btn btn-sm", title: "Copy content to clipboard")
|
||||
end
|
||||
|
||||
def open_raw_file_button(path)
|
||||
link_to icon('file-text-o'), path, class: 'btn btn-sm has-tooltip', target: '_blank', title: 'Open raw', data: { container: 'body' }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,13 +7,8 @@
|
|||
|
||||
#blob-content-holder.tree-holder
|
||||
.file-holder
|
||||
.js-file-title.file-title
|
||||
= blob_icon @blob.mode, @blob.name
|
||||
%strong
|
||||
= @path
|
||||
%small= number_to_human_size @blob.size
|
||||
.file-actions
|
||||
= render "projects/blob/actions"
|
||||
= render "projects/blob/header", blob: @blob
|
||||
|
||||
.table-responsive.file-content.blame.code.js-syntax-highlight
|
||||
%table
|
||||
- current_line = 1
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
.btn-group{ role: "group" }<
|
||||
= clipboard_button(clipboard_target: ".blob-content[data-blob-id='#{@blob.id}']", class: "btn btn-sm")
|
||||
= link_to icon('download'), namespace_project_raw_path(@project.namespace, @project, @id),
|
||||
class: 'btn btn-sm has-tooltip', target: '_blank', title: 'Download raw', data: { container: 'body' }
|
||||
- if @environment
|
||||
= view_on_environment_button(@commit.sha, @path, @environment)
|
||||
|
||||
.btn-group{ role: "group" }<
|
||||
-# only show normal/blame view links for text files
|
||||
- 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'
|
||||
- else
|
||||
= link_to 'Blame', namespace_project_blame_path(@project.namespace, @project, @id),
|
||||
class: 'btn btn-sm js-blob-blame-link' unless @blob.empty?
|
||||
= link_to 'History', namespace_project_commits_path(@project.namespace, @project, @id),
|
||||
class: 'btn btn-sm'
|
||||
= link_to 'Permalink', namespace_project_blob_path(@project.namespace, @project,
|
||||
tree_join(@commit.sha, @path)), class: 'btn btn-sm js-data-file-blob-permalink-url'
|
||||
|
||||
- if current_user
|
||||
.btn-group{ role: "group" }<
|
||||
- if blob_text_viewable?(@blob)
|
||||
= edit_blob_link
|
||||
= replace_blob_link
|
||||
= delete_blob_link
|
|
@ -24,13 +24,5 @@
|
|||
|
||||
#blob-content-holder.blob-content-holder
|
||||
%article.file-holder
|
||||
.js-file-title.file-title-flex-parent
|
||||
.file-header-content
|
||||
= blob_icon blob.mode, blob.name
|
||||
%strong.file-title-name
|
||||
= blob.name
|
||||
%small
|
||||
= number_to_human_size(blob_size(blob))
|
||||
.file-actions.hidden-xs
|
||||
= render "actions"
|
||||
= render "projects/blob/header", blob: blob
|
||||
= render blob.to_partial_path(@project), blob: blob
|
||||
|
|
39
app/views/projects/blob/_header.html.haml
Normal file
39
app/views/projects/blob/_header.html.haml
Normal file
|
@ -0,0 +1,39 @@
|
|||
.js-file-title.file-title-flex-parent
|
||||
.file-header-content
|
||||
= blob_icon blob.mode, blob.name
|
||||
|
||||
%strong.file-title-name
|
||||
= blob.name
|
||||
|
||||
= copy_file_path_button(blob.path)
|
||||
|
||||
%small
|
||||
= number_to_human_size(blob_size(blob))
|
||||
|
||||
.file-actions.hidden-xs
|
||||
.btn-group{ role: "group" }<
|
||||
= copy_blob_content_button(blob) if blob_text_viewable?(blob)
|
||||
= open_raw_file_button(namespace_project_raw_path(@project.namespace, @project, @id))
|
||||
= view_on_environment_button(@commit.sha, @path, @environment) if @environment
|
||||
|
||||
.btn-group{ role: "group" }<
|
||||
-# only show normal/blame view links for text files
|
||||
- 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'
|
||||
- else
|
||||
= link_to 'Blame', namespace_project_blame_path(@project.namespace, @project, @id),
|
||||
class: 'btn btn-sm js-blob-blame-link' unless blob.empty?
|
||||
|
||||
= link_to 'History', namespace_project_commits_path(@project.namespace, @project, @id),
|
||||
class: 'btn btn-sm'
|
||||
|
||||
= link_to 'Permalink', namespace_project_blob_path(@project.namespace, @project,
|
||||
tree_join(@commit.sha, @path)), class: 'btn btn-sm js-data-file-blob-permalink-url'
|
||||
|
||||
- if current_user
|
||||
.btn-group{ role: "group" }<
|
||||
= edit_blob_link if blob_text_viewable?(blob)
|
||||
= replace_blob_link
|
||||
= delete_blob_link
|
|
@ -8,12 +8,12 @@
|
|||
- else
|
||||
- blob.load_all_data!(@repository)
|
||||
|
||||
- if markup?(blob.name)
|
||||
.file-content.wiki
|
||||
= render_markup(blob.name, blob.data)
|
||||
- if blob.empty?
|
||||
.file-content.code
|
||||
.nothing-here-block Empty file
|
||||
- else
|
||||
- if blob.empty?
|
||||
.file-content.code
|
||||
.nothing-here-block Empty file
|
||||
- if markup?(blob.name)
|
||||
.file-content.wiki
|
||||
= render_markup(blob.name, blob.data)
|
||||
- else
|
||||
= render 'shared/file_highlight', blob: blob, repository: @repository
|
||||
|
|
|
@ -2,8 +2,11 @@
|
|||
- if defined?(blob) && blob && diff_file.submodule?
|
||||
%span
|
||||
= icon('archive fw')
|
||||
%span
|
||||
|
||||
%strong.file-title-name
|
||||
= submodule_link(blob, diff_commit.id, project.repository)
|
||||
|
||||
= copy_file_path_button(blob.path)
|
||||
- else
|
||||
= conditional_link_to url.present?, url do
|
||||
= blob_icon diff_file.b_mode, diff_file.file_path
|
||||
|
@ -21,7 +24,7 @@
|
|||
- if diff_file.deleted_file
|
||||
deleted
|
||||
|
||||
= clipboard_button(clipboard_text: diff_file.new_path, class: 'btn-clipboard btn-transparent prepend-left-5', title: 'Copy file path to clipboard')
|
||||
= copy_file_path_button(diff_file.new_path)
|
||||
|
||||
- if diff_file.mode_changed?
|
||||
%small
|
||||
|
|
|
@ -4,13 +4,7 @@
|
|||
|
||||
.project-snippets
|
||||
%article.file-holder.snippet-file-content
|
||||
.js-file-title.file-title
|
||||
= blob_icon 0, @snippet.file_name
|
||||
= @snippet.file_name
|
||||
.file-actions
|
||||
= clipboard_button(clipboard_target: ".blob-content[data-blob-id='#{@snippet.id}']", class: "btn btn-sm")
|
||||
= link_to 'Raw', raw_namespace_project_snippet_path(@project.namespace, @project, @snippet), class: "btn btn-sm", target: "_blank"
|
||||
= render 'shared/snippets/blob'
|
||||
= render 'shared/snippets/blob', raw_path: raw_namespace_project_snippet_path(@project.namespace, @project, @snippet)
|
||||
|
||||
.row-content-block.top-block.content-component-block
|
||||
= render 'award_emoji/awards_block', awardable: @snippet, inline: true
|
||||
|
|
|
@ -1,7 +1,25 @@
|
|||
- unless @snippet.content.empty?
|
||||
.js-file-title.file-title-flex-parent
|
||||
.file-header-content
|
||||
= blob_icon @snippet.mode, @snippet.path
|
||||
|
||||
%strong.file-title-name
|
||||
= @snippet.path
|
||||
|
||||
= copy_file_path_button(@snippet.path)
|
||||
|
||||
.file-actions.hidden-xs
|
||||
.btn-group{ role: "group" }<
|
||||
= copy_blob_content_button(@snippet)
|
||||
= open_raw_file_button(raw_path)
|
||||
|
||||
- if defined?(download_path) && download_path
|
||||
= link_to icon('download'), download_path, class: "btn btn-sm has-tooltip", title: 'Download', data: { container: 'body' }
|
||||
|
||||
- if @snippet.content.empty?
|
||||
.file-content.code
|
||||
.nothing-here-block Empty file
|
||||
- else
|
||||
- if markup?(@snippet.file_name)
|
||||
%textarea.markdown-snippet-copy.blob-content{ data: { blob_id: @snippet.id } }
|
||||
= @snippet.content
|
||||
.file-content.wiki
|
||||
- if gitlab_markdown?(@snippet.file_name)
|
||||
= preserve(markdown_field(@snippet, :content))
|
||||
|
@ -9,6 +27,3 @@
|
|||
= render_markup(@snippet.file_name, @snippet.content)
|
||||
- else
|
||||
= render 'shared/file_highlight', blob: @snippet
|
||||
- else
|
||||
.file-content.code
|
||||
.nothing-here-block Empty file
|
||||
|
|
|
@ -3,13 +3,7 @@
|
|||
= render 'shared/snippets/header'
|
||||
|
||||
%article.file-holder.snippet-file-content
|
||||
.js-file-title.file-title
|
||||
= blob_icon 0, @snippet.file_name
|
||||
= @snippet.file_name
|
||||
.file-actions
|
||||
= clipboard_button(clipboard_target: ".blob-content[data-blob-id='#{@snippet.id}']", class: "btn btn-sm")
|
||||
= link_to 'Raw', raw_snippet_path(@snippet), class: "btn btn-sm", target: "_blank"
|
||||
= link_to 'Download', download_snippet_path(@snippet), class: "btn btn-sm"
|
||||
= render 'shared/snippets/blob'
|
||||
= render 'shared/snippets/blob', raw_path: raw_snippet_path(@snippet), download_path: download_snippet_path(@snippet)
|
||||
|
||||
= render 'award_emoji/awards_block', awardable: @snippet, inline: true
|
||||
.row-content-block.top-block.content-component-block
|
||||
= render 'award_emoji/awards_block', awardable: @snippet, inline: true
|
||||
|
|
|
@ -356,7 +356,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
|
|||
|
||||
step 'I should see buttons for allowed commands' do
|
||||
page.within '.content' do
|
||||
expect(page).to have_content 'Raw'
|
||||
expect(page).to have_link 'Download raw'
|
||||
expect(page).to have_content 'History'
|
||||
expect(page).to have_content 'Permalink'
|
||||
expect(page).not_to have_content 'Edit'
|
||||
|
|
Loading…
Reference in a new issue