diff --git a/lib/activeadmin/views/activeadmin_form.rb b/lib/activeadmin/views/activeadmin_form.rb index 02e72e8..f8ca1e8 100644 --- a/lib/activeadmin/views/activeadmin_form.rb +++ b/lib/activeadmin/views/activeadmin_form.rb @@ -14,13 +14,26 @@ def latlng **args default_lng = args[:default_lng] || 37.6155600 map_zoom = args[:map_zoom] || 12 + all_parameters = [ + form_builder, + lang, + id_lat, + id_lng, + height, + loading_map, + api_key, + default_lat, + default_lng, + map_zoom + ] + case map when :yandex - insert_tag(YandexMapProxy, form_builder, lang, id_lat, id_lng, height, loading_map, api_key, default_lat, default_lng, map_zoom) + insert_tag(YandexMapProxy, *all_parameters) when :google - insert_tag(GoogleMapProxy, form_builder, lang, id_lat, id_lng, height, loading_map, api_key, default_lat, default_lng, map_zoom) + insert_tag(GoogleMapProxy, *all_parameters) when :openstreetmap - insert_tag(OpenStreetMapProxy, form_builder, lang, id_lat, id_lng, height, loading_map, api_key, default_lat, default_lng, map_zoom) + insert_tag(OpenStreetMapProxy, *all_parameters) end end end diff --git a/lib/activeadmin/views/pages/show.rb b/lib/activeadmin/views/pages/show.rb new file mode 100644 index 0000000..e9cad2c --- /dev/null +++ b/lib/activeadmin/views/pages/show.rb @@ -0,0 +1,48 @@ +module ActiveAdmin + module Views + module Pages + class Show + def latlng **args + class_name = 'point'#form_builder.object.class.model_name.element + lang = args[:lang] || 'en' + map = args[:map] || :google + id_lat = args[:id_lat] || "#{class_name}_lat" + id_lng = args[:id_lng] || "#{class_name}_lng" + height = args[:height] || 400 + loading_map = args[:loading_map] || true + api_key = args[:api_key] || (args[:api_key_env] && ENV[args[:api_key_env]]) + default_lat = args[:default_lat] || 55.7522200 + default_lng = args[:default_lng] || 37.6155600 + map_zoom = args[:map_zoom] || 12 + + @template_name = "yandex.html.erb" + template = File.read(File.expand_path("../../templates/#{@template_name}", __FILE__)) + hash = { + loading_map_code: loading_map_code, + height: height, + id_lat: id_lat, + id_lng: id_lng, + map_zoom: map_zoom, + default_lat: default_lat, + default_lng: default_lng + } + + panel('Title') do + raw ERB.new(template).result(OpenStruct.new(hash).instance_eval { binding }) + end + end + + def loading_map_code + # @loading_map ? script_html : '' + @api_key = 'AIzaSyBufYrzlt76fVO3jOjo3KLpqLVk1lEU2lo' + lang = 'ru' + "" % [lang, key] + end + + def key + @api_key ? "&#{@api_key_name}=#{@api_key}" : '' + end + end + end + end +end diff --git a/lib/activeadmin_latlng.rb b/lib/activeadmin_latlng.rb index 7a271ac..eb0bf10 100644 --- a/lib/activeadmin_latlng.rb +++ b/lib/activeadmin_latlng.rb @@ -4,6 +4,7 @@ require 'activeadmin/views/yandex_map_proxy' require 'activeadmin/views/openstreetmap_proxy' require 'activeadmin/views/activeadmin_form' +require 'activeadmin/views/pages/show' module ActiveadminLatlng end diff --git a/lib/activeadmin_latlng/version.rb b/lib/activeadmin_latlng/version.rb index 81ef6a6..ea0d105 100644 --- a/lib/activeadmin_latlng/version.rb +++ b/lib/activeadmin_latlng/version.rb @@ -1,3 +1,3 @@ module ActiveadminLatlng - VERSION = "1.3.0".freeze + VERSION = "1.4.0".freeze end