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

Style diff and blob file headers the same way

parent 4c1bf77c
No related branches found
No related tags found
No related merge requests found
Loading
@@ -50,7 +50,7 @@
Loading
@@ -50,7 +50,7 @@
} }
   
a:not(.btn) { a:not(.btn) {
color: $gl-dark-link-color; color: $gl-text-color;
} }
   
.left-options { .left-options {
Loading
Loading
Loading
@@ -306,4 +306,15 @@ module ApplicationHelper
Loading
@@ -306,4 +306,15 @@ module ApplicationHelper
def truncate_first_line(message, length = 50) def truncate_first_line(message, length = 50)
truncate(message.each_line.first.chomp, length: length) if message truncate(message.each_line.first.chomp, length: length) if message
end end
# While similarly named to Rails's `link_to_if`, this method behaves quite differently.
# If `condition` is truthy, a link will be returned with the result of the block
# as its body. If `condition` is falsy, only the result of the block will be returned.
def conditional_link_to(condition, options, html_options = {}, &block)
if condition
link_to options, html_options, &block
else
capture(&block)
end
end
end end
Loading
@@ -79,4 +79,14 @@ module NotesHelper
Loading
@@ -79,4 +79,14 @@ module NotesHelper
full_key = { project: note.project, user_id: note.author_id } full_key = { project: note.project, user_id: note.author_id }
@max_access_by_user_id[full_key] @max_access_by_user_id[full_key]
end end
def diff_note_path(note)
return unless note.diff_note?
if note.for_merge_request? && note.active?
diffs_namespace_project_merge_request_path(note.project.namespace, note.project, note.noteable, anchor: note.line_code)
elsif note.for_commit?
namespace_project_commit_path(note.project.namespace, note.project, note.noteable, anchor: note.line_code)
end
end
end end
- if @note.legacy_diff_note? - if @note.diff_note?
%p.details %p.details
New comment on diff for New comment on diff for
= link_to @note.diff_file_path, @target_url = link_to @note.diff_file.file_path, @target_url
\: \:
   
= render 'note_message' = render 'note_message'
.diff-file.file-holder{id: "diff-#{i}", data: diff_file_html_data(project, diff_file)} .diff-file.file-holder{id: "diff-#{i}", data: diff_file_html_data(project, diff_file)}
.file-title{id: "file-path-#{hexdigest(diff_file.file_path)}"} .file-title{id: "file-path-#{hexdigest(diff_file.file_path)}"}
- if diff_file.diff.submodule? = render "projects/diffs/file_header", diff_file: diff_file, blob: blob, diff_commit: diff_commit, project: project, url: "#diff-#{i}"
%span
= icon('archive fw')
%span
= submodule_link(blob, @commit.id, project.repository)
- else
= blob_icon blob.mode, blob.name
= link_to "#diff-#{i}" do
- if diff_file.renamed_file
- old_path, new_path = mark_inline_diffs(diff_file.old_path, diff_file.new_path)
= old_path
→
= new_path
- else
%span
= diff_file.new_path
- if diff_file.deleted_file
deleted
- if diff_file.mode_changed?
%small
= "#{diff_file.diff.a_mode}#{diff_file.diff.b_mode}"
   
- unless diff_file.submodule?
.file-actions.hidden-xs .file-actions.hidden-xs
- if blob_text_viewable?(blob) - if blob_text_viewable?(blob)
= link_to '#', class: 'js-toggle-diff-comments btn active has-tooltip btn-file-option', title: "Toggle comments for this file" do = link_to '#', class: 'js-toggle-diff-comments btn active has-tooltip btn-file-option', title: "Toggle comments for this file" do
Loading
@@ -42,15 +21,21 @@
Loading
@@ -42,15 +21,21 @@
- return unless blob.respond_to?(:text?) - return unless blob.respond_to?(:text?)
- if diff_file.too_large? - if diff_file.too_large?
.nothing-here-block This diff could not be displayed because it is too large. .nothing-here-block This diff could not be displayed because it is too large.
- elsif blob_text_viewable?(blob) && !project.repository.diffable?(blob)
.nothing-here-block This diff was suppressed by a .gitattributes entry.
- elsif blob_text_viewable?(blob)
- if diff_view == 'parallel'
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
- else
= render "projects/diffs/text_file", diff_file: diff_file, index: i
- elsif blob.only_display_raw? - elsif blob.only_display_raw?
.nothing-here-block This file is too large to display. .nothing-here-block This file is too large to display.
- elsif blob_text_viewable?(blob)
- if !project.repository.diffable?(blob)
.nothing-here-block This diff was suppressed by a .gitattributes entry.
- elsif diff_file.diff_lines.length > 0
- if diff_view == 'parallel'
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
- else
= render "projects/diffs/text_file", diff_file: diff_file, index: i
- else
- if diff_file.mode_changed?
.nothing-here-block File mode changed
- elsif diff_file.renamed_file
.nothing-here-block File moved
- elsif blob.image? - elsif blob.image?
- old_blob = diff_file.old_blob(diff_commit) - old_blob = diff_file.old_blob(diff_commit)
= render "projects/diffs/image", diff_file: diff_file, old_file: old_blob, file: blob, index: i = render "projects/diffs/image", diff_file: diff_file, old_file: old_blob, file: blob, index: i
Loading
Loading
- if defined?(blob) && blob && diff_file.submodule?
%span
= icon('archive fw')
%span
= submodule_link(blob, diff_commit.id, project.repository)
- else
= conditional_link_to url.present?, url do
= blob_icon diff_file.b_mode, diff_file.file_path
- if diff_file.renamed_file
- old_path, new_path = mark_inline_diffs(diff_file.old_path, diff_file.new_path)
%strong
= old_path
→
%strong
= new_path
- else
%strong
= diff_file.new_path
- if diff_file.deleted_file
deleted
- if diff_file.mode_changed?
%small
= "#{diff_file.a_mode}#{diff_file.b_mode}"
- note = discussion_notes.first - note = discussion_notes.first
- diff = note.diff - diff_file = note.diff_file
- return unless diff - return unless diff_file
- blob = note.blob
.diff-file.file-holder
.file-title
= render "projects/diffs/file_header", diff_file: diff_file, blob: blob, diff_commit: diff_file.content_commit, project: note.project, url: diff_note_path(note)
   
.diff-file
.diff-header
%span
- if diff.deleted_file
= diff.old_path
- else
= diff.new_path
- if diff.a_mode && diff.b_mode && diff.a_mode != diff.b_mode
%span.file-mode= "#{diff.a_mode}#{diff.b_mode}"
.diff-content.code.js-syntax-highlight .diff-content.code.js-syntax-highlight
%table %table
- note.truncated_diff_lines.each do |line| - note.truncated_diff_lines.each do |line|
Loading
Loading
Loading
@@ -4,7 +4,8 @@ module Gitlab
Loading
@@ -4,7 +4,8 @@ module Gitlab
attr_reader :diff, :repository, :diff_refs attr_reader :diff, :repository, :diff_refs
   
delegate :new_file, :deleted_file, :renamed_file, delegate :new_file, :deleted_file, :renamed_file,
:old_path, :new_path, to: :diff, prefix: false :old_path, :new_path, :a_mode, :b_mode,
:submodule?, :too_large?, to: :diff, prefix: false
   
def initialize(diff, repository:, diff_refs: nil) def initialize(diff, repository:, diff_refs: nil)
@diff = diff @diff = diff
Loading
@@ -40,11 +41,7 @@ module Gitlab
Loading
@@ -40,11 +41,7 @@ module Gitlab
end end
   
def mode_changed? def mode_changed?
!!(diff.a_mode && diff.b_mode && diff.a_mode != diff.b_mode) a_mode && b_mode && a_mode != b_mode
end
def parser
Gitlab::Diff::Parser.new
end end
   
def raw_diff def raw_diff
Loading
@@ -56,13 +53,11 @@ module Gitlab
Loading
@@ -56,13 +53,11 @@ module Gitlab
end end
   
def prev_line(index) def prev_line(index)
if index > 0 diff_lines[index - 1] if index > 0
diff_lines[index - 1]
end
end end
   
def file_path def file_path
new_path.presence || old_path.presence new_path.presence || old_path
end end
   
def added_lines def added_lines
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