Class: Hyrax::FileSetPresenter

Inherits:
Object
  • Object
show all
Includes:
CharacterizationBehavior, DisplaysImage, ModelProxy, PresentsAttributes, WithEvents
Defined in:
app/presenters/hyrax/file_set_presenter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DisplaysImage

#display_image

Methods included from WithEvents

#log_event, #stream

Methods included from CharacterizationBehavior

#additional_characterization_metadata, #characterization_metadata, #characterized?, #label_for_term, #primary_characterization_values, #secondary_characterization_values

Methods included from PresentsAttributes

#attribute_to_html, #display_microdata?, #microdata_type_to_html, #permission_badge, #permission_badge_class

Methods included from ModelProxy

#persisted?, #to_model, #valid_child_concerns

Constructor Details

#initialize(solr_document, current_ability, request = nil) ⇒ FileSetPresenter

Returns a new instance of FileSetPresenter.

Parameters:

  • solr_document (SolrDocument)
  • current_ability (Ability)
  • request (ActionDispatch::Request) (defaults to: nil)

    the http request context



15
16
17
18
19
# File 'app/presenters/hyrax/file_set_presenter.rb', line 15

def initialize(solr_document, current_ability, request = nil)
  @solr_document = solr_document
  @current_ability = current_ability
  @request = request
end

Instance Attribute Details

#current_abilityObject

Returns the value of attribute current_ability.



10
11
12
# File 'app/presenters/hyrax/file_set_presenter.rb', line 10

def current_ability
  @current_ability
end

#requestObject

Returns the value of attribute request.



10
11
12
# File 'app/presenters/hyrax/file_set_presenter.rb', line 10

def request
  @request
end

#solr_documentObject

Returns the value of attribute solr_document.



10
11
12
# File 'app/presenters/hyrax/file_set_presenter.rb', line 10

def solr_document
  @solr_document
end

Instance Method Details

#editor?Boolean

Deprecated.

use ‘::Ability.can?(:edit, presenter)`. Hyrax views calling presenter #editor methods will continue to call them until Hyrax 4.0.0. The deprecation time horizon for the presenter methods themselves is 5.0.0.

Returns:

  • (Boolean)


68
69
70
# File 'app/presenters/hyrax/file_set_presenter.rb', line 68

def editor?
  current_ability.can?(:edit, self)
end

#event_classObject

This overrides the method in WithEvents



90
91
92
# File 'app/presenters/hyrax/file_set_presenter.rb', line 90

def event_class
  solr_document.to_model.model_name.name
end

#events(size = 100) ⇒ Object



85
86
87
# File 'app/presenters/hyrax/file_set_presenter.rb', line 85

def events(size = 100)
  super(size)
end

#first_titleObject

The first title assertion



54
55
56
# File 'app/presenters/hyrax/file_set_presenter.rb', line 54

def first_title
  title.first
end

#fixity_check_statusObject



94
95
96
# File 'app/presenters/hyrax/file_set_presenter.rb', line 94

def fixity_check_status
  Hyrax::FixityStatusPresenter.new(id).render_file_set_status
end

#licenseObject



76
77
78
79
# File 'app/presenters/hyrax/file_set_presenter.rb', line 76

def license
  return if solr_document.license.nil?
  solr_document.license.first
end

The link text when linking to the show page of this FileSet



59
60
61
# File 'app/presenters/hyrax/file_set_presenter.rb', line 59

def link_name
  current_ability.can?(:read, id) ? first_title : 'File'
end

#page_titleObject

The title of the webpage that shows this FileSet.



49
50
51
# File 'app/presenters/hyrax/file_set_presenter.rb', line 49

def page_title
  "#{human_readable_type} | #{title.first} | ID: #{id} | #{I18n.t('hyrax.product_name')}"
end

#parentWorkShowPresenter?

Returns nil if no parent can be found.

Returns:



100
101
102
# File 'app/presenters/hyrax/file_set_presenter.rb', line 100

def parent
  @parent_presenter ||= fetch_parent_presenter
end

#show_partialsArray<String>

Returns:

  • (Array<String>)


111
112
113
# File 'app/presenters/hyrax/file_set_presenter.rb', line 111

def show_partials
  ['show_details']
end


44
45
46
# File 'app/presenters/hyrax/file_set_presenter.rb', line 44

def single_use_links
  @single_use_links ||= SingleUseLink.where(item_id: id).map { |link| link_presenter_class.new(link) }
end

#stats_pathObject



81
82
83
# File 'app/presenters/hyrax/file_set_presenter.rb', line 81

def stats_path
  Hyrax::Engine.routes.url_helpers.stats_file_path(self, locale: I18n.locale)
end

#tweeterObject



72
73
74
# File 'app/presenters/hyrax/file_set_presenter.rb', line 72

def tweeter
  TwitterPresenter.twitter_handle_for(user_key: depositor)
end

#user_can_perform_any_action?Boolean

Returns:

  • (Boolean)


104
105
106
107
# File 'app/presenters/hyrax/file_set_presenter.rb', line 104

def user_can_perform_any_action?
  Deprecation.warn("We're removing Hyrax::FileSetPresenter.user_can_perform_any_action? in Hyrax 4.0.0; Instead use can? in view contexts.")
  current_ability.can?(:edit, id) || current_ability.can?(:destroy, id) || current_ability.can?(:download, id)
end

#workflowObject



40
41
42
# File 'app/presenters/hyrax/file_set_presenter.rb', line 40

def workflow
  nil
end