diff options
Diffstat (limited to 'app/helpers/diff_helper.rb')
-rw-r--r-- | app/helpers/diff_helper.rb | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb index 3b25de521d0..7c254e069f6 100644 --- a/app/helpers/diff_helper.rb +++ b/app/helpers/diff_helper.rb @@ -100,20 +100,43 @@ module DiffHelper end def submodule_link(blob, ref, repository = @repository) - project_url, tree_url = submodule_links(blob, ref, repository) - commit_id = if tree_url.nil? - Commit.truncate_sha(blob.id) - else - link_to Commit.truncate_sha(blob.id), tree_url - end + urls = submodule_links(blob, ref, repository) + + folder_name = truncate(blob.name, length: 40) + folder_name = link_to(folder_name, urls.web) if urls&.web + + commit_id = Commit.truncate_sha(blob.id) + commit_id = link_to(commit_id, urls.tree) if urls&.tree [ - content_tag(:span, link_to(truncate(blob.name, length: 40), project_url)), + content_tag(:span, folder_name), '@', content_tag(:span, commit_id, class: 'commit-sha') ].join(' ').html_safe end + def submodule_diff_compare_link(diff_file) + compare_url = submodule_links(diff_file.blob, diff_file.content_sha, diff_file.repository, diff_file)&.compare + + link = "" + + if compare_url + + link_text = [ + _('Compare'), + ' ', + content_tag(:span, Commit.truncate_sha(diff_file.old_blob.id), class: 'commit-sha'), + '...', + content_tag(:span, Commit.truncate_sha(diff_file.blob.id), class: 'commit-sha') + ].join('').html_safe + + tooltip = _('Compare submodule commit revisions') + link = content_tag(:span, link_to(link_text, compare_url, class: 'btn has-tooltip', title: tooltip), class: 'submodule-compare') + end + + link + end + def diff_file_blob_raw_url(diff_file, only_path: false) project_raw_url(@project, tree_join(diff_file.content_sha, diff_file.file_path), only_path: only_path) end |