Module: Decidim::Map::Autocomplete::FormBuilder

Included in:
FormBuilder
Defined in:
decidim-core/lib/decidim/map/autocomplete.rb

Overview

This module will be included in the main application’s form builder in order to provide the geocoding_field method for the normal form builders. This allows you to include geocoding autocompletion in the forms using the following code:

<%= form_for record do |form| %>
  <%= form.geocoding_field(:address) %>
<% end %>

Instance Method Summary collapse

Instance Method Details

#geocoding_field(attribute, options = {}, geocoding_options = {}) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'decidim-core/lib/decidim/map/autocomplete.rb', line 85

def geocoding_field(attribute, options = {}, geocoding_options = {})
  @autocomplete_utility ||= Decidim::Map.autocomplete(
    organization: @template.current_organization
  )

  return text_field(attribute, options) unless @autocomplete_utility

  # Decidim::Map::Autocomplete::Builder
  builder = @autocomplete_utility.create_builder(
    @template,
    geocoding_options
  )

  options = merge_geocoding_options(attribute, options)

  field(attribute, options) do |opts|
    builder.geocoding_field(
      @object_name,
      attribute,
      opts
    )
  end
end