Class: Hyrax::AdminSetPresenter

Inherits:
CollectionPresenter show all
Defined in:
app/presenters/hyrax/admin_set_presenter.rb

Instance Attribute Summary

Attributes inherited from CollectionPresenter

#current_ability, #parent_collections, #request, #solr_document, #subcollection_count

Instance Method Summary collapse

Methods inherited from CollectionPresenter

#[], #banner_file, #collection_type_badge, #create_many_work_types?, #create_work_presenter, #draw_select_work_modal?, #first_work_type, #initialize, #logo_record, #parent_collection_count, #size, terms, #terms_with_values, #total_parent_collections, #total_viewable_collections, #total_viewable_works, #user_can_create_new_nest_collection?, #user_can_nest_collection?

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, #to_partial_path

Constructor Details

This class inherits a constructor from Hyrax::CollectionPresenter

Instance Method Details

#allow_batch?Boolean

Determine if the user can perform batch operations on this admin set. Currently, the only batch operation allowed is deleting, so this is equivalent to checking if the user can delete the admin set determined by criteria…

  • user must be able to edit the admin set to be able to delete it

  • the admin set itself must be able to be deleted (i.e., there cannot be any works in the admin set)

Returns:

  • (Boolean)

    Boolean true if the user can perform batch actions; otherwise, false



50
51
52
53
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 50

def allow_batch?
  return false unless current_ability.can?(:edit, solr_document)
  !disable_delete?
end

#available_parent_collectionsObject



30
31
32
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 30

def available_parent_collections(*)
  []
end

#collection_typeObject



22
23
24
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 22

def collection_type
  @collection_type ||= Hyrax::CollectionType.find_or_create_admin_set_type
end

#disable_delete?Boolean

AdminSet cannot be deleted if default set or non-empty

Returns:

  • (Boolean)


12
13
14
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 12

def disable_delete?
  AdminSet.default_set?(id) || total_items > 0
end

#disabled_messageObject

Message to display if deletion is disabled



17
18
19
20
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 17

def disabled_message
  return I18n.t('hyrax.admin.admin_sets.delete.error_default_set') if AdminSet.default_set?(id)
  return I18n.t('hyrax.admin.admin_sets.delete.error_not_empty') if total_items > 0
end

#managed_accessObject

For the Managed Collections tab, determine the label to use for the level of access the user has for this admin set. Checks from most permissive to most restrictive.

Returns:

  • String the access label (e.g. Manage, Deposit, View)



37
38
39
40
41
42
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 37

def managed_access
  return I18n.t('hyrax.dashboard.my.collection_list.managed_access.manage') if current_ability.can?(:edit, solr_document)
  return I18n.t('hyrax.dashboard.my.collection_list.managed_access.deposit') if current_ability.can?(:deposit, solr_document)
  return I18n.t('hyrax.dashboard.my.collection_list.managed_access.view') if current_ability.can?(:read, solr_document)
  ''
end

#show_pathObject



26
27
28
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 26

def show_path
  Hyrax::Engine.routes.url_helpers.admin_admin_set_path(id, locale: I18n.locale)
end

#total_itemsObject



3
4
5
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 3

def total_items
  ActiveFedora::SolrService.count("{!field f=isPartOf_ssim}#{id}")
end

#total_viewable_itemsObject



7
8
9
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 7

def total_viewable_items
  ActiveFedora::Base.where("isPartOf_ssim:#{id}").accessible_by(current_ability).count
end