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
139 140 141 142 143 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 139 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.
147 148 149 150 151 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 147 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.
157 158 159 160 161 162 163 164 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 157 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.
172 173 174 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 172 def []=(attr, value) public_send("#{attr}=".to_sym, value) end |
#display_additional_fields? ⇒ Boolean
Returns whether there are terms to display ‘below-the-fold’.
203 204 205 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 203 def display_additional_fields? secondary_terms.any? end |
#model_class ⇒ Class
use model.class instead
180 181 182 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 180 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.
187 188 189 190 191 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 187 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’.
195 196 197 198 199 |
# File 'app/forms/hyrax/forms/resource_form.rb', line 195 def secondary_terms _form_field_definitions .select { |_, definition| definition[:display] && !definition[:primary] } .keys.map(&:to_sym) end |