74 lines
2.3 KiB
Ruby
74 lines
2.3 KiB
Ruby
|
|
module Carto
|
|
module Api
|
|
class LayerVizJSONAdapter
|
|
extend Forwardable
|
|
|
|
TEMPLATES_MAP = {
|
|
'table/views/infowindow_light' => 'infowindow_light',
|
|
'table/views/infowindow_dark' => 'infowindow_dark',
|
|
'table/views/infowindow_light_header_blue' => 'infowindow_light_header_blue',
|
|
'table/views/infowindow_light_header_yellow' => 'infowindow_light_header_yellow',
|
|
'table/views/infowindow_light_header_orange' => 'infowindow_light_header_orange',
|
|
'table/views/infowindow_light_header_green' => 'infowindow_light_header_green',
|
|
'table/views/infowindow_header_with_image' => 'infowindow_header_with_image'
|
|
}
|
|
|
|
delegate [:options, :kind, :id, :order, :legend, :user] => :layer
|
|
|
|
attr_reader :layer
|
|
|
|
def initialize(layer)
|
|
@layer = layer
|
|
end
|
|
|
|
def public_values
|
|
{
|
|
'options' => options,
|
|
|
|
# TODO: kind should be renamed to type
|
|
# rename once a new layer presenter is written. See CartoDB::LayerModule::Presenter#with_kind_as_type
|
|
# TODO: use symbols instead of strings
|
|
'kind' => kind,
|
|
|
|
'infowindow' => infowindow,
|
|
'tooltip' => tooltip,
|
|
'id' => id,
|
|
'order' => order
|
|
}
|
|
end
|
|
|
|
def get_presenter(options, configuration)
|
|
Carto::Api::LayerPresenter.new(self, options, configuration)
|
|
end
|
|
|
|
def infowindow
|
|
@layer.infowindow
|
|
end
|
|
|
|
def tooltip
|
|
@layer.tooltip
|
|
end
|
|
|
|
def infowindow_template_path
|
|
if infowindow.present? && infowindow['template_name'].present?
|
|
template_name = TEMPLATES_MAP.fetch(infowindow['template_name'], self.infowindow['template_name'])
|
|
Rails.root.join("lib/assets/javascripts/cartodb/table/views/infowindow/templates/#{template_name}.jst.mustache")
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def tooltip_template_path
|
|
if tooltip.present? && tooltip['template_name'].present?
|
|
template_name = TEMPLATES_MAP.fetch(tooltip['template_name'], tooltip['template_name'])
|
|
Rails.root.join("lib/assets/javascripts/cartodb/table/views/tooltip/templates/#{template_name}.jst.mustache")
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|