Module: Hydra::AssetsControllerHelper

Included in:
AssetsController, CatalogController, FileAssetsController, GenericContentObjectsController
Defined in:
vendor/plugins/hydra_repository/lib/hydra/assets_controller_helper.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) apply_depositor_metadata(asset)



4
5
6
7
8
# File 'vendor/plugins/hydra_repository/lib/hydra/assets_controller_helper.rb', line 4

def (asset)
  if asset.respond_to?(:apply_depositor_metadata) && current_user.respond_to?(:login)
    asset.(current_user.)
  end
end

- (Object) prep_updater_method_args(params)

parses your params hash, massaging them into an appropriate set of params and opts to pass into ActiveFedora::Base.update_indexed_attributes



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'vendor/plugins/hydra_repository/lib/hydra/assets_controller_helper.rb', line 19

def prep_updater_method_args(params)
  args = {:params=>{}, :opts=>{}}
  
  params["asset"].each_pair do |datastream_name,fields|
    
    args[:opts][:datastreams] = datastream_name
    
    # TEMPORARY HACK: special case for supporting textile 
    if params["field_id"]=="abstract_0" 
      params[:field_selectors] = {"descMetadata" => {"abstract" => [:abstract]}}
    end
    
    if params.fetch("field_selectors",false) && params["field_selectors"].fetch(datastream_name, false)
      # If there is an entry in field_selectors for the datastream (implying a nokogiri datastream), retrieve the field_selector for this field.
      # if no field selector, exists, use the field name
      fields.each_pair do |field_name,field_values|
        parent_select = OM.destringify( params["field_selectors"][datastream_name].fetch(field_name, field_name) )
        args[:params][parent_select] = field_values       
      end        
    else
      args[:params] = unescape_keys(params[:asset][datastream_name])
    end
  end
  
  return args
   
end

- (Object) set_collection_type(asset, collection)



10
11
12
13
14
# File 'vendor/plugins/hydra_repository/lib/hydra/assets_controller_helper.rb', line 10

def set_collection_type(asset, collection)
  if asset.respond_to?(:set_collection_type)
    asset.set_collection_type(collection)
  end
end