Use JavaScript tooltips for mentions (!5301)
This commit is contained in:
parent
177cc4e4cb
commit
0d8352973b
19 changed files with 28 additions and 56 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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"
|
||||
#
|
||||
|
@ -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`
|
||||
|
|
|
@ -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|
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
|
|
@ -35,7 +35,7 @@ module Banzai
|
|||
end
|
||||
|
||||
def object_link_title(range)
|
||||
range.reference_title
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -59,6 +59,10 @@ module Banzai
|
|||
html_safe
|
||||
end
|
||||
end
|
||||
|
||||
def object_link_title(object)
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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…
Reference in a new issue