Class: Banzai::Filter::References::IssueReferenceFilter

Inherits:
IssuableReferenceFilter show all
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

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

#parent_from_ref

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

#escape_once

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


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