Module: Cul::Hydra::Controllers::Helpers::HydraAutocompleteHelperBehavior
- Defined in:
- lib/cul_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb
Instance Method Summary collapse
- #autocomplete_fedora_text_field(resource, datastream_name, field_key, opts = {}) ⇒ Object
- #field_name_for(field_key) ⇒ Object
- #generate_base_id(field_name, current_value, values, opts) ⇒ Object
Instance Method Details
#autocomplete_fedora_text_field(resource, datastream_name, field_key, opts = {}) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cul_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb', line 3 def autocomplete_fedora_text_field(resource, datastream_name, field_key, opts={}) field_name = field_name_for(field_key) field_values = get_values_from_datastream(resource, datastream_name, field_key, opts) field_values = [""] if field_values.empty? field_values = [field_values.first] unless opts.fetch(:multiple, true) required = opts.fetch(:required, true) ? "required" : "" body = "" field_values.each_with_index do |current_value, z| base_id = generate_base_id(field_name, current_value, field_values, opts) name = "asset[#{datastream_name}][#{field_name}][#{z}]" body << "<input class=\"editable-edit edit autocomplete\" id=\"#{base_id}\" data-datastream-name=\"#{datastream_name}\" name=\"#{name}\" value=\"#{h(current_value.strip)}\" #{required} type=\"text\" />" body << "<a href=\"\" title=\"Delete '#{h(current_value)}'\" class=\"destructive field\">Delete</a>" if opts.fetch(:multiple, true) && !current_value.empty? end result = field_selectors_for(datastream_name, field_key) result << body return body end |
#field_name_for(field_key) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/cul_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb', line 20 def field_name_for(field_key) if field_key.kind_of?(Array) return OM::XML::Terminology.pointers_to_flat_array(field_key, true).join("__") else return field_key.to_s end end |
#generate_base_id(field_name, current_value, values, opts) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/cul_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb', line 27 def generate_base_id(field_name, current_value, values, opts) if opts.fetch(:multiple, true) return field_name+"__"+values.index(current_value).to_s else return field_name end end |