Class: Hyrax::Forms::BatchUploadForm

Inherits:
WorkForm
  • Object
show all
Defined in:
app/forms/hyrax/forms/batch_upload_form.rb

Defined Under Namespace

Classes: Name

Instance Attribute Summary collapse

Attributes inherited from WorkForm

#current_ability

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from WorkForm

#[], #agreement_accepted?, build_permitted_params, #display_additional_fields?, #find_child_work, #initialize, #initialize_field, #member_of_collections, #member_of_collections_json, sanitize_params, #secondary_terms, #select_files, #version, #work_members, #work_members_json

Constructor Details

This class inherits a constructor from Hyrax::Forms::WorkForm

Instance Attribute Details

#payload_concernObject

a Class name: what is form creating a batch of?



11
12
13
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 11

def payload_concern
  @payload_concern
end

Class Method Details

.model_nameObject

Override of ActiveModel::Model name that allows us to use our custom name class



45
46
47
48
49
50
51
52
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 45

def self.model_name
  @_model_name ||= begin
    namespace = module_parents.detect do |n|
      n.respond_to?(:use_relative_model_naming?) && n.use_relative_model_naming?
    end
    Name.new(model_class, namespace)
  end
end

Instance Method Details

#depositorObject

The WorkForm delegates ‘#depositor` to `:model`, but `:model` in the BatchUpload context is a blank work with a `nil` depositor value. This causes the “Sharing With” widget to display the Depositor as “()”. We should be able to reliably pull back the depositor of the new batch of works by asking the form’s Ability what its ‘current_user` is.



18
19
20
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 18

def depositor
  current_ability.current_user
end

#form_classObject



36
37
38
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 36

def form_class
  @form_class ||= "#{payload_class}Form".safe_constantize
end

#model_nameObject



54
55
56
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 54

def model_name
  self.class.model_name
end

#payload_classObject



32
33
34
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 32

def payload_class
  @payload_class ||= Valkyrie.config.resource_class_resolver.call(payload_concern)
end

#primary_termsObject

On the batch upload, title is set per-file.



23
24
25
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 23

def primary_terms
  super - [:title]
end

#required_fieldsObject



27
28
29
30
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 27

def required_fields
  return super unless Hyrax.config.use_valkyrie?
  form_class.required_fields
end

#to_modelObject

This is required for routing to the BatchUploadController



59
60
61
# File 'app/forms/hyrax/forms/batch_upload_form.rb', line 59

def to_model
  self
end