Class: Blacklight::DocumentComponent
- Inherits:
-
Component
- Object
- Component
- Blacklight::DocumentComponent
- Defined in:
- app/components/blacklight/document_component.rb
Overview
Note:
when subclassing this component, if you override the initializer,
you must explicitly specify the counter variable document_counter even if you don't use it.
Otherwise view_component will not provide the count value when calling the component.
A component for rendering a single document
Instance Method Summary collapse
- #before_render ⇒ Object
-
#classes ⇒ Object
HTML classes to apply to the root element.
-
#initialize(document: nil, partials: nil, id: nil, classes: [], component: :article, title_component: nil, counter: nil, document_counter: nil, counter_offset: 0, show: false) ⇒ DocumentComponent
constructor
rubocop:disable Metrics/ParameterLists.
Constructor Details
#initialize(document: nil, partials: nil, id: nil, classes: [], component: :article, title_component: nil, counter: nil, document_counter: nil, counter_offset: 0, show: false) ⇒ DocumentComponent
rubocop:disable Metrics/ParameterLists
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'app/components/blacklight/document_component.rb', line 86 def initialize(document: nil, partials: nil, id: nil, classes: [], component: :article, title_component: nil, counter: nil, document_counter: nil, counter_offset: 0, show: false) @presenter = document @document = @presenter.document @view_partials = partials || [] @component = component @title_component = title_component @id = id @classes = classes @counter = counter @document_counter = document_counter @counter ||= 1 + @document_counter + counter_offset if @document_counter.present? @show = show end |
Instance Method Details
#before_render ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'app/components/blacklight/document_component.rb', line 117 def before_render with_title unless title with_thumbnail unless thumbnail (fields: presenter.field_presenters, show: @show) unless unless view_partials.each do |view_partial| with_partial(view_partial) do helpers.render_document_partial document, view_partial, component: self, document_counter: counter end end end |
#classes ⇒ Object
HTML classes to apply to the root element
108 109 110 111 112 113 114 115 |
# File 'app/components/blacklight/document_component.rb', line 108 def classes [ @classes, helpers.render_document_class(@document), 'document', ("document-position-#{@counter}" if @counter) ].compact.flatten end |