lib/ecoportal/api/v2/page/component/chart_field.rb in ecoportal-api-v2-0.8.8 vs lib/ecoportal/api/v2/page/component/chart_field.rb in ecoportal-api-v2-0.8.9
- old
+ new
@@ -3,29 +3,41 @@
class V2
class Page
class Component
class ChartField < Page::Component
passthrough :mode
- passthrough :relative, :relstart, :relbound
- passthrough :bounded, :ubound, :lbound
+ passboolean :relative, :bounded
+ passthrough :relstart, :relbound
+ passthrough :ubound, :lbound
+
passthrough :filter_date_input
- passthrough :user_id, :lock_chart_user
+ passthrough :user_id, :user_lookup
+ passboolean :lock_chart_user
+
embeds_one :series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::SeriesConfig"
embeds_one :frequency_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Frequency"
embeds_one :heatmap_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Heatmap"
embeds_one :sankey_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Sankey"
embeds_one :indicator_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Indicator"
embeds_one :faceted_series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Multiseries"
embeds_one :benchmark_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Benchmark"
embeds_many :series, klass: "Ecoportal::API::V2::Page::Component::ChartField::Serie"
- MODES = ["frequency", "series", "heatmap", "sankey", "indicator", "faceted_series"]
+ MODES = ["frequency", "series", "heatmap", "sankey", "indicator", "faceted_series", "benchmark"]
+ def mode=(value)
+ raise "Unsuported mode #{value}. Should be one of #{MODES}" unless MODES.include?(value)
+ config_doc(nil)
+ doc["mode"] = value
+ config_doc(config.class.new_doc)
+ self.mode
+ end
+
def config
- case mode
+ case self.mode
when "frequency"
frequency_config
when "series"
series_config
when "heatmap"
@@ -39,16 +51,38 @@
when "benchmark"
benchmark_config
end
end
+ private
+
+ def config_doc(value)
+ case self.mode
+ when "frequency"
+ doc["frequency_config"] = value
+ when "series"
+ doc["series_config"] = value
+ when "heatmap"
+ doc["heatmap_config"] = value
+ when "sankey"
+ doc["sankey_config"] = value
+ when "indicator"
+ doc["indicator_config"] = value
+ when "faceted_series"
+ doc["faceted_series_config"] = value
+ when "benchmark"
+ doc["benchmark_config"] = value
+ end
+ end
+
end
end
end
end
end
end
+require 'ecoportal/api/v2/page/component/chart_field/config'
require 'ecoportal/api/v2/page/component/chart_field/frequency'
require 'ecoportal/api/v2/page/component/chart_field/series_config'
require 'ecoportal/api/v2/page/component/chart_field/serie'
require 'ecoportal/api/v2/page/component/chart_field/heatmap'
require 'ecoportal/api/v2/page/component/chart_field/sankey'