Class: Banzai::Filter::References::IssueReferenceFilter
- Inherits:
-
IssuableReferenceFilter
- Object
- HTML::Pipeline::Filter
- ReferenceFilter
- AbstractReferenceFilter
- IssuableReferenceFilter
- Banzai::Filter::References::IssueReferenceFilter
- Defined in:
- lib/banzai/filter/references/issue_reference_filter.rb
Overview
HTML filter that replaces issue references with links. References to issues that do not exist are ignored.
This filter supports cross-project references.
When external issues tracker like Jira is activated we should not use issue reference pattern, but we should still be able to reference issues from other GitLab projects.
Constant Summary
Constants inherited from AbstractReferenceFilter
AbstractReferenceFilter::REFERENCE_PLACEHOLDER, AbstractReferenceFilter::REFERENCE_PLACEHOLDER_PATTERN
Instance Method Summary collapse
- #object_link_text_extras(issue, matches) ⇒ Object
- #parent_records(parent, ids) ⇒ Object
- #url_for_object(issue, project) ⇒ Object
Methods inherited from IssuableReferenceFilter
#find_object, #record_identifier
Methods inherited from AbstractReferenceFilter
#call, #data_attributes_for, #find_object, #find_object_cached, #find_object_from_link, #find_object_from_link_cached, #from_ref_cached, #identifier, #initialize, #object_link_filter, #object_link_text, #object_link_title, #parent, #parent_type, #parse_symbol, #record_identifier, #references_in, #symbol_from_match, #url_for_object_cached, #wrap_link
Methods included from CrossProjectReference
Methods inherited from ReferenceFilter
call, #call, #call_and_update_nodes, #each_node, #group, #initialize, #nodes, #object_class, #project, #references_in, #requires_unescaping?
Methods included from OutputSafety
Methods included from RequestStoreReferenceCache
#cached_call, #get_or_set_cache
Constructor Details
This class inherits a constructor from Banzai::Filter::References::AbstractReferenceFilter
Instance Method Details
#object_link_text_extras(issue, matches) ⇒ Object
28 29 30 |
# File 'lib/banzai/filter/references/issue_reference_filter.rb', line 28 def object_link_text_extras(issue, matches) super + design_link_extras(issue, matches.named_captures['path']) end |
#parent_records(parent, ids) ⇒ Object
24 25 26 |
# File 'lib/banzai/filter/references/issue_reference_filter.rb', line 24 def parent_records(parent, ids) parent.issues.where(iid: ids.to_a) end |
#url_for_object(issue, project) ⇒ Object
18 19 20 21 22 |
# File 'lib/banzai/filter/references/issue_reference_filter.rb', line 18 def url_for_object(issue, project) return issue_path(issue, project) if only_path? issue_url(issue, project) end |