Class: Hyrax::Forms::ResourceForm
- Defined in:
- app/forms/hyrax/forms/resource_form.rb
Overview
This form wraps ‘Hyrax::ChangeSet` in the `HydraEditor::Form` interface.
Constant Summary collapse
- InWorksPopulator =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
lambda do || self.in_works_ids = if persisted? Hyrax.query_service .find_inverse_references_by(resource: model, property: :member_ids) .select(&:work?) .map(&:id) else [] end end
- LockKeyPopulator =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Note:includes special handling for Wings, to support compatibility with ‘etag`-driven, application-side lock checks. for non-wings adapters we want to move away from application side lock validation and rely on the adapter/database features instead.
lambda do || if Hyrax.config.disable_wings || !Hyrax..is_a?(Wings::Valkyrie::MetadataAdapter) Hyrax.logger.info "trying to prepopulate a lock token for " \ "#{self.class.inspect}, but optimistic locking isn't " \ "supported for the configured adapter: #{Hyrax..class}" self.version = '' else self.version = model.persisted? ? Wings::ActiveFedoraConverter.convert(resource: model).etag : '' end end
Class Method Summary collapse
-
.for(resource) ⇒ Object
Factory for generic, per-work froms.
-
.required_fields ⇒ Array<Symbol>
List of required field names as symbols.
-
.required_fields=(fields) ⇒ Array<Symbol>
List of required field names as symbols.
Instance Method Summary collapse
-
#[]=(attr, value) ⇒ Object
The set value.
-
#display_additional_fields? ⇒ Boolean
Whether there are terms to display ‘below-the-fold’.
-
#model_class ⇒ Class
deprecated
Deprecated.
use model.class instead
-
#primary_terms ⇒ Array<Symbol>
Terms for display ‘above-the-fold’, or in the most prominent form real estate.
-
#secondary_terms ⇒ Array<Symbol>
Terms for display ‘below-the-fold’.
Class Method Details
.for(resource) ⇒ Object
Factory for generic, per-work froms
130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 130 def for(resource) "#{resource.class.name}Form".constantize.new(resource) rescue NameError => _err case resource when Hyrax::FileSet Hyrax::Forms::FileSetForm.new(resource) when Hyrax::PcdmCollection Hyrax::Forms::PcdmCollectionForm.new(resource) else Hyrax::Forms::ResourceForm(resource.class).new(resource) end end |
.required_fields ⇒ Array<Symbol>
Returns list of required field names as symbols.
145 146 147 148 149 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 145 def required_fields definitions .select { |_, definition| definition[:required] } .keys.map(&:to_sym) end |
.required_fields=(fields) ⇒ Array<Symbol>
Returns list of required field names as symbols.
155 156 157 158 159 160 161 162 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 155 def required_fields=(fields) fields = fields.map(&:to_s) raise(KeyError) unless fields.all? { |f| definitions.key?(f) } fields.each { |field| definitions[field].merge!(required: true) } required_fields end |
Instance Method Details
#[]=(attr, value) ⇒ Object
Returns the set value.
170 171 172 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 170 def []=(attr, value) public_send("#{attr}=".to_sym, value) end |
#display_additional_fields? ⇒ Boolean
Returns whether there are terms to display ‘below-the-fold’.
201 202 203 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 201 def display_additional_fields? secondary_terms.any? end |
#model_class ⇒ Class
use model.class instead
178 179 180 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 178 def model_class # rubocop:disable Rails/Delegate model.class end |
#primary_terms ⇒ Array<Symbol>
Returns terms for display ‘above-the-fold’, or in the most prominent form real estate.
185 186 187 188 189 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 185 def primary_terms _form_field_definitions .select { |_, definition| definition[:primary] } .keys.map(&:to_sym) end |
#secondary_terms ⇒ Array<Symbol>
Returns terms for display ‘below-the-fold’.
193 194 195 196 197 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 193 def secondary_terms _form_field_definitions .select { |_, definition| definition[:display] && !definition[:primary] } .keys.map(&:to_sym) end |