Class: Hyrax::Forms::ResourceForm
- Defined in:
- app/forms/hyrax/forms/resource_form.rb
Overview
This form wraps ‘Hyrax::ChangeSet` in the `HydraEditor::Form` interface.
Defined Under Namespace
Classes: Permission
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 || self.version = case Hyrax. when Wings::Valkyrie::MetadataAdapter model.persisted? ? Wings::ActiveFedoraConverter.convert(resource: model).etag : '' else 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}" '' end end
Class Method Summary collapse
-
.for(work) ⇒ 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(work) ⇒ Object
Factory for generic, per-work froms
134 135 136 137 138 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 134 def for(work) "#{work.class}Form".constantize.new(work) rescue NameError => _err Hyrax::Forms::ResourceForm(work.class).new(work) end |
.required_fields ⇒ Array<Symbol>
Returns list of required field names as symbols.
142 143 144 145 146 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 142 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.
152 153 154 155 156 157 158 159 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 152 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.
167 168 169 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 167 def []=(attr, value) public_send("#{attr}=".to_sym, value) end |
#display_additional_fields? ⇒ Boolean
Returns whether there are terms to display ‘below-the-fold’.
198 199 200 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 198 def display_additional_fields? secondary_terms.any? end |
#model_class ⇒ Class
use model.class instead
175 176 177 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 175 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.
182 183 184 185 186 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 182 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’.
190 191 192 193 194 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 190 def secondary_terms _form_field_definitions .select { |_, definition| definition[:display] && !definition[:primary] } .keys.map(&:to_sym) end |