Sha256: 80cb829b707bd40f5a265ca568810c7e458c80527a86bd6c689ef8c63e300953

Contents?: true

Size: 1.5 KB

Versions: 9

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module Hyrax
  module MembershipHelper
    ##
    # @param resource [#member_of_collection_ids, #member_of_collections_json]
    #
    # @return [String] JSON for `data-members`
    #
    # @todo optimize collection name lookup. the legacy `WorkForm`
    #   implementation pulls all the collections already (though maybe with
    #   instance-level caching?), but we should consider doing this more
    #   efficiently.
    #
    # @see app/assets/javascripts/hyrax/relationships.js
    def member_of_collections_json(resource)
      return resource.member_of_collections_json if
        resource.respond_to?(:member_of_collections_json)

      resource = resource.model if resource.respond_to?(:model)

      Hyrax.custom_queries.find_collections_for(resource: resource).map do |collection|
        { id: collection.id.to_s,
          label: collection.title.first,
          path: url_for(collection) }
      end.to_json
    end

    ##
    # @param resource [#work_members_json]
    #
    # @return [String] JSON for `data-members`
    #
    # @see app/assets/javascripts/hyrax/relationships.js
    def work_members_json(resource)
      return resource.work_members_json if
        resource.respond_to?(:work_members_json)

      resource = resource.model if resource.respond_to?(:model)

      Hyrax.custom_queries.find_child_works(resource: resource).map do |member|
        { id: member.id.to_s,
          label: member.title.first,
          path: url_for(member) }
      end.to_json
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
hyrax-3.3.0 app/helpers/hyrax/membership_helper.rb
hyrax-3.2.0 app/helpers/hyrax/membership_helper.rb
hyrax-3.1.0 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.2 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.1 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.0 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.0.pre.rc4 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.0.pre.rc3 app/helpers/hyrax/membership_helper.rb
hyrax-3.0.0.pre.rc2 app/helpers/hyrax/membership_helper.rb