Module: Blacklight::DocumentHelperBehavior

Included in:
CatalogHelperBehavior
Defined in:
app/helpers/blacklight/document_helper_behavior.rb

Overview

Helper methods for catalog-like controllers that work with documents

Instance Method Summary collapse

Instance Method Details

#bookmarked?(document) ⇒ Boolean

Check if the document is in the user’s bookmarks

Parameters:

Returns:

  • (Boolean)


55
56
57
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 55

def bookmarked? document
  current_bookmarks.any? { |x| x.document_id == document.id && x.document_type == document.class }
end

#document_class_prefixString

Return a prefix for the document classes infered from the document

Returns:

  • (String)

See Also:



23
24
25
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 23

def document_class_prefix
  'blacklight-'
end

#document_presenter(document) ⇒ Object

Returns a document presenter for the given document



61
62
63
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 61

def document_presenter(document)
  document_presenter_class(document).new(document, self)
end

#document_presenter_class(_document = nil) ⇒ Object

Override this method if you want to use a differnet presenter for your documents

Parameters:

  • _document (Blacklight::Document) (defaults to: nil)

    optional, here for extension + backwards compatibility only



68
69
70
71
72
73
74
75
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 68

def document_presenter_class(_document = nil)
  case action_name
  when 'show', 'citation'
    blacklight_config.view_config(:show, action_name: action_name).document_presenter_class
  else
    blacklight_config.view_config(document_index_view_type, action_name: action_name).document_presenter_class
  end
end

#render_document_class(document = @document) ⇒ String

Get the classes to add to a document’s div

Parameters:

Returns:

  • (String)


10
11
12
13
14
15
16
17
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 10

def render_document_class(document = @document)
  types = document_presenter(document).display_type
  return if types.blank?

  Array(types).compact.map do |t|
    "#{document_class_prefix}#{t.try(:parameterize) || t}"
  end.join(' ')
end

#render_document_sidebar_partial(document) ⇒ String

Render the sidebar partial for a document This is used as an integration point by downstream apps to add to the default sidebar. See: github.com/geoblacklight/geoblacklight/blob/7d3c31c7af3362879b97e2c1351a2496c728c59c/app/helpers/blacklight_helper.rb#L7

Parameters:

Returns:

  • (String)


35
36
37
# File 'app/helpers/blacklight/document_helper_behavior.rb', line 35

def render_document_sidebar_partial(document)
  render 'show_sidebar', document: document
end