Skip to content
Snippets Groups Projects
Commit 0d835297 authored by winniehell's avatar winniehell
Browse files

Use JavaScript tooltips for mentions (!5301)

parent 177cc4e4
No related branches found
No related tags found
No related merge requests found
Showing
with 28 additions and 56 deletions
Loading
Loading
@@ -29,6 +29,7 @@ v 8.12.0 (unreleased)
- Add search to all issue board lists
- Fix groups sort dropdown alignment (ClemMakesApps)
- Add horizontal scrolling to all sub-navs on mobile viewports (ClemMakesApps)
- Use JavaScript tooltips for mentions !5301 (winniehell)
- Fix markdown help references (ClemMakesApps)
- Add last commit time to repo view (ClemMakesApps)
- Added project specific enable/disable setting for LFS !5997
Loading
Loading
Loading
Loading
@@ -108,15 +108,6 @@ class Commit
@diff_line_count
end
 
# Returns a string describing the commit for use in a link title
#
# Example
#
# "Commit: Alex Denisov - Project git clone panel"
def link_title
"Commit: #{author_name} - #{title}"
end
# Returns the commits title.
#
# Usually, the commit title is the first line of the commit message.
Loading
Loading
Loading
Loading
@@ -4,12 +4,10 @@
#
# range = CommitRange.new('f3f85602...e86e1013', project)
# range.exclude_start? # => false
# range.reference_title # => "Commits f3f85602 through e86e1013"
# range.to_s # => "f3f85602...e86e1013"
#
# range = CommitRange.new('f3f856029bc5f966c5a7ee24cf7efefdd20e6019..e86e1013709735be5bb767e2b228930c543f25ae', project)
# range.exclude_start? # => true
# range.reference_title # => "Commits f3f85602^ through e86e1013"
# range.to_param # => {from: "f3f856029bc5f966c5a7ee24cf7efefdd20e6019^", to: "e86e1013709735be5bb767e2b228930c543f25ae"}
# range.to_s # => "f3f85602..e86e1013"
#
Loading
Loading
@@ -109,11 +107,6 @@ class CommitRange
reference
end
 
# Returns a String for use in a link's title attribute
def reference_title
"Commits #{sha_start} through #{sha_to}"
end
# Return a Hash of parameters for passing to a URL helper
#
# See `namespace_project_compare_url`
Loading
Loading
Loading
Loading
@@ -18,10 +18,6 @@ module Banzai
@object_sym ||= object_name.to_sym
end
 
def self.object_class_title
@object_title ||= object_class.name.titleize
end
# Public: Find references in text (like `!123` for merge requests)
#
# AnyReferenceFilter.references_in(text) do |match, id, project_ref, matches|
Loading
Loading
@@ -49,10 +45,6 @@ module Banzai
self.class.object_sym
end
 
def object_class_title
self.class.object_class_title
end
def references_in(*args, &block)
self.class.references_in(*args, &block)
end
Loading
Loading
@@ -198,7 +190,7 @@ module Banzai
end
 
def object_link_title(object)
"#{object_class_title}: #{object.title}"
object.title
end
 
def object_link_text(object, matches)
Loading
Loading
Loading
Loading
@@ -35,7 +35,7 @@ module Banzai
end
 
def object_link_title(range)
range.reference_title
nil
end
end
end
Loading
Loading
Loading
Loading
@@ -28,10 +28,6 @@ module Banzai
only_path: context[:only_path])
end
 
def object_link_title(commit)
commit.link_title
end
def object_link_text_extras(object, matches)
extras = super
 
Loading
Loading
Loading
Loading
@@ -70,6 +70,11 @@ module Banzai
def unescape_html_entities(text)
CGI.unescapeHTML(text.to_s)
end
def object_link_title(object)
# use title of wrapped element instead
nil
end
end
end
end
Loading
Loading
@@ -59,6 +59,10 @@ module Banzai
html_safe
end
end
def object_link_title(object)
nil
end
end
end
end
Loading
Loading
@@ -52,7 +52,7 @@ module Banzai
end
 
def reference_class(type)
"gfm gfm-#{type}"
"gfm gfm-#{type} has-tooltip"
end
 
# Ensure that a :project key exists in context
Loading
Loading
Loading
Loading
@@ -65,14 +65,14 @@ describe Banzai::Filter::CommitRangeReferenceFilter, lib: true do
expect(reference_filter(act).to_html).to eq exp
end
 
it 'includes a title attribute' do
it 'includes no title attribute' do
doc = reference_filter("See #{reference}")
expect(doc.css('a').first.attr('title')).to eq range.reference_title
expect(doc.css('a').first.attr('title')).to eq ""
end
 
it 'includes default classes' do
doc = reference_filter("See #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-commit_range'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-commit_range has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -55,7 +55,7 @@ describe Banzai::Filter::CommitReferenceFilter, lib: true do
 
it 'includes a title attribute' do
doc = reference_filter("See #{reference}")
expect(doc.css('a').first.attr('title')).to eq commit.link_title
expect(doc.css('a').first.attr('title')).to eq commit.title
end
 
it 'escapes the title attribute' do
Loading
Loading
@@ -67,7 +67,7 @@ describe Banzai::Filter::CommitReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("See #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-commit'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-commit has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -64,7 +64,7 @@ describe Banzai::Filter::ExternalIssueReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = filter("Issue #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip'
end
 
it 'supports an :only_path context' do
Loading
Loading
Loading
Loading
@@ -54,7 +54,7 @@ describe Banzai::Filter::IssueReferenceFilter, lib: true do
 
it 'includes a title attribute' do
doc = reference_filter("Issue #{reference}")
expect(doc.css('a').first.attr('title')).to eq "Issue: #{issue.title}"
expect(doc.css('a').first.attr('title')).to eq issue.title
end
 
it 'escapes the title attribute' do
Loading
Loading
@@ -66,7 +66,7 @@ describe Banzai::Filter::IssueReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Issue #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -21,7 +21,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Label #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-label'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-label has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -46,7 +46,7 @@ describe Banzai::Filter::MergeRequestReferenceFilter, lib: true do
 
it 'includes a title attribute' do
doc = reference_filter("Merge #{reference}")
expect(doc.css('a').first.attr('title')).to eq "Merge Request: #{merge.title}"
expect(doc.css('a').first.attr('title')).to eq merge.title
end
 
it 'escapes the title attribute' do
Loading
Loading
@@ -58,7 +58,7 @@ describe Banzai::Filter::MergeRequestReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Merge #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-merge_request'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-merge_request has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -20,7 +20,7 @@ describe Banzai::Filter::MilestoneReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Milestone #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-milestone'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-milestone has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -39,7 +39,7 @@ describe Banzai::Filter::SnippetReferenceFilter, lib: true do
 
it 'includes a title attribute' do
doc = reference_filter("Snippet #{reference}")
expect(doc.css('a').first.attr('title')).to eq "Snippet: #{snippet.title}"
expect(doc.css('a').first.attr('title')).to eq snippet.title
end
 
it 'escapes the title attribute' do
Loading
Loading
@@ -51,7 +51,7 @@ describe Banzai::Filter::SnippetReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Snippet #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-snippet'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-snippet has-tooltip'
end
 
it 'includes a data-project attribute' do
Loading
Loading
Loading
Loading
@@ -104,7 +104,7 @@ describe Banzai::Filter::UserReferenceFilter, lib: true do
 
it 'includes default classes' do
doc = reference_filter("Hey #{reference}")
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-project_member'
expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-project_member has-tooltip'
end
 
it 'supports an :only_path context' do
Loading
Loading
Loading
Loading
@@ -76,16 +76,6 @@ describe CommitRange, models: true do
end
end
 
describe '#reference_title' do
it 'returns the correct String for three-dot ranges' do
expect(range.reference_title).to eq "Commits #{full_sha_from} through #{full_sha_to}"
end
it 'returns the correct String for two-dot ranges' do
expect(range2.reference_title).to eq "Commits #{full_sha_from}^ through #{full_sha_to}"
end
end
describe '#to_param' do
it 'includes the correct keys' do
expect(range.to_param.keys).to eq %i(from to)
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