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.
Direct Known Subclasses
Constant Summary
Constants inherited from AbstractReferenceFilter
AbstractReferenceFilter::REFERENCE_PLACEHOLDER, AbstractReferenceFilter::REFERENCE_PLACEHOLDER_PATTERN
Constants inherited from ReferenceFilter
ReferenceFilter::REFERENCE_TYPE_DATA_ATTRIBUTE
Instance Method Summary collapse
- #data_attributes_for(text, parent, object, **data) ⇒ Object
- #object_link_text_extras(issue, matches) ⇒ Object
- #parent_records(parent, ids) ⇒ Object
- #reference_class(object_sym, tooltip: false) ⇒ Object
- #url_for_object(issue, project) ⇒ Object
Methods inherited from IssuableReferenceFilter
#find_object, #record_identifier
Methods inherited from AbstractReferenceFilter
#call, #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
#data_attributes_for(text, parent, object, **data) ⇒ Object
36 37 38 |
# File 'lib/banzai/filter/references/issue_reference_filter.rb', line 36 def data_attributes_for(text, parent, object, **data) super.merge(project_path: parent.full_path, iid: object.iid) end |
#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).includes(:project, :namespace, :work_item_type) end |
#reference_class(object_sym, tooltip: false) ⇒ Object
32 33 34 |
# File 'lib/banzai/filter/references/issue_reference_filter.rb', line 32 def reference_class(object_sym, tooltip: false) super 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 |