Class: Hyrax::AdminSetPresenter
- Inherits:
-
CollectionPresenter
- Object
- CollectionPresenter
- Hyrax::AdminSetPresenter
- 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
-
#allow_batch? ⇒ Boolean
Determine if the user can perform batch operations on this admin set.
- #available_parent_collections ⇒ Object
- #collection_type ⇒ Object
-
#disable_delete? ⇒ Boolean
AdminSet cannot be deleted if default set or non-empty.
-
#disabled_message ⇒ Object
Message to display if deletion is disabled.
-
#managed_access ⇒ Object
For the Managed Collections tab, determine the label to use for the level of access the user has for this admin set.
- #show_path ⇒ Object
- #total_items ⇒ Object
- #total_viewable_items ⇒ Object
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)
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_collections ⇒ Object
30 31 32 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 30 def available_parent_collections(*) [] end |
#collection_type ⇒ Object
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
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_message ⇒ Object
Message to display if deletion is disabled
17 18 19 20 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 17 def 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_access ⇒ Object
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.
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_path ⇒ Object
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_items ⇒ Object
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_items ⇒ Object
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 |