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.
-
#any_items? ⇒ Boolean
True if there are items.
- #available_parent_collections ⇒ Object
- #collection_type ⇒ Object
-
#collection_type_gid ⇒ Object
Overrides delegate because admin sets do not index collection type gid.
-
#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, #valid_child_concerns
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)
66 67 68 69 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 66 def allow_batch? return false unless current_ability.can?(:edit, solr_document) !disable_delete? end |
#any_items? ⇒ Boolean
Returns true if there are items.
6 7 8 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 6 def any_items? total_items.positive? end |
#available_parent_collections ⇒ Object
46 47 48 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 46 def available_parent_collections(*) [] end |
#collection_type ⇒ Object
33 34 35 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 33 def collection_type @collection_type ||= Hyrax::CollectionType.find_or_create_admin_set_type end |
#collection_type_gid ⇒ Object
Overrides delegate because admin sets do not index collection type gid
38 39 40 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 38 def collection_type_gid collection_type.to_global_id end |
#disable_delete? ⇒ Boolean
AdminSet cannot be deleted if default set or non-empty
23 24 25 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 23 def disable_delete? default_set? || any_items? end |
#disabled_message ⇒ Object
Message to display if deletion is disabled
28 29 30 31 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 28 def return I18n.t('hyrax.admin.admin_sets.delete.error_default_set') if default_set? I18n.t('hyrax.admin.admin_sets.delete.error_not_empty') if any_items? 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.
53 54 55 56 57 58 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 53 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
42 43 44 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 42 def show_path Hyrax::Engine.routes.url_helpers.admin_admin_set_path(id, locale: I18n.locale) end |
#total_items ⇒ Object
10 11 12 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 10 def total_items Hyrax::SolrService.count("{!field f=#{Hyrax.config.admin_set_predicate.qname.last}_ssim}#{id}") end |
#total_viewable_items ⇒ Object
14 15 16 17 18 19 20 |
# File 'app/presenters/hyrax/admin_set_presenter.rb', line 14 def total_viewable_items field_pairs = { "#{Hyrax.config.admin_set_predicate.qname.last}_ssim" => id.to_s } SolrQueryService.new .with_field_pairs(field_pairs: field_pairs) .accessible_by(ability: current_ability) .count end |