Module: Hydra::RepositoryController
- Includes:
- MediaShelf::ActiveFedoraHelper
- Included in:
- AssetsController, CatalogController, DownloadsController, FileAssetsController, GenericContentObjectsController, GetController
- Defined in:
- vendor/plugins/hydra_repository/lib/hydra/repository_controller.rb
Overview
Hydra-repository Contoller is a controller layer mixin. It is in the controller scope: request params, session etc.
NOTE: Be careful when creating variables here as they may be overriding something that already exists. The ActionController docs: api.rubyonrails.org/classes/ActionController/Base.html
Override these methods in your own controller for customizations:
class HomeController < ActionController::Base
include Stanford::SolrHelper def solr_search_params super.merge :per_page=>10 end
end
Class Method Summary (collapse)
Instance Method Summary (collapse)
-
- (Object) downloadables(fedora_object = @fedora_object, opts = {})
Returns a list of datastreams for download.
- - (Object) solr_name(field_name, field_type = :text)
Methods included from MediaShelf::ActiveFedoraHelper
#load_af_instance_from_solr, #retrieve_af_model
Class Method Details
+ (Object) included(c)
22 23 24 25 26 |
# File 'vendor/plugins/hydra_repository/lib/hydra/repository_controller.rb', line 22 def self.included(c) if c.respond_to?(:helper_method) c.helper_method :solr_name end end |
Instance Method Details
- (Object) downloadables(fedora_object = @fedora_object, opts = {})
Returns a list of datastreams for download. Uses user’s roles and “mime_type” value in submitted params to decide what to return. if you pass the optional argument of :canonical=>true, it will return the canonical datastream for this object (a single object not a hash of datastreams)
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'vendor/plugins/hydra_repository/lib/hydra/repository_controller.rb', line 35 def downloadables(fedora_object=@fedora_object, opts={}) if opts[:canonical] mime_type = opts[:mime_type] ? opts[:mime_type] : "application/pdf" result = filter_datastreams_for_mime_type(fedora_object.datastreams, mime_type).sort.first[1] elsif editor? if params["mime_type"] == "all" result = fedora_object.datastreams else result = Hash[] fedora_object.datastreams.each_pair do |dsid,ds| if !ds.new_object? mime_type = ds.attributes["mimeType"] ? ds.attributes["mimeType"] : "" if mime_type.include?("pdf") || ds.label.include?("_TEXT.xml") || ds.label.include?("_METS.xml") result[dsid] = ds end end end end else result = Hash[] fedora_object.datastreams.each_pair do |dsid,ds| if ds.attributes["mimeType"].include?("pdf") result[dsid] = ds end end end # puts "downloadables result: #{result}" return result end |
- (Object) solr_name(field_name, field_type = :text)
28 29 30 |
# File 'vendor/plugins/hydra_repository/lib/hydra/repository_controller.rb', line 28 def solr_name(field_name, field_type = :text) ::ActiveFedora::SolrService.solr_name(field_name, field_type) end |