ecoportal-api-oozes 0.7.3 → 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -2
- data/lib/ecoportal/api/common/content/collection_model.rb +5 -0
- data/lib/ecoportal/api/common/content/double_model.rb +27 -12
- data/lib/ecoportal/api/common/content/hash_diff_patch.rb +8 -1
- data/lib/ecoportal/api/v2/page.rb +3 -3
- data/lib/ecoportal/api/v2/page/component.rb +8 -0
- data/lib/ecoportal/api/v2/page/component/action_field.rb +2 -2
- data/lib/ecoportal/api/v2/page/component/chart_field.rb +54 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/frequency.rb +29 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/heatmap.rb +27 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/indicator.rb +26 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/multiseries.rb +31 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/sankey.rb +27 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/serie.rb +26 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/series_config.rb +23 -0
- data/lib/ecoportal/api/v2/page/component/chart_fr_field.rb +32 -0
- data/lib/ecoportal/api/v2/page/component/checklist_field.rb +2 -2
- data/lib/ecoportal/api/v2/page/component/date_field.rb +18 -0
- data/lib/ecoportal/api/v2/page/component/files_field.rb +1 -2
- data/lib/ecoportal/api/v2/page/component/gauge_field.rb +2 -2
- data/lib/ecoportal/api/v2/page/component/gauge_stop.rb +62 -0
- data/lib/ecoportal/api/v2/page/component/images_field.rb +1 -2
- data/lib/ecoportal/api/v2/page/component/selection_field.rb +2 -3
- data/lib/ecoportal/api/v2/page/components.rb +2 -2
- data/lib/ecoportal/api/v2/page/sections.rb +1 -1
- data/lib/ecoportal/api/v2/version.rb +1 -1
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6039e6c6b1c32fcbcd956ef9a425588cbd9dfe94d06898223af14f433bab2c3a
|
4
|
+
data.tar.gz: c4dca6d50e4a664d343942636079f7c3cfe11999502ca891e8cf1f8598ed79f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91f9c47478b1054e0efb2380bb623c951d751f10c24a833b7fd380ddaa35bdc825b42b5574f23524accfc0e10ba692857c0597be9805cde1acede6d5959b0730
|
7
|
+
data.tar.gz: 2106b17efa000c7d1b44ce667bf3d80fe84a4c59bb7c0772cc8d19396e5fa024e39fc7823064e9531ac9c82037be3bfdc17e8827ae41ae1bdb7b648c15d52abe
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,31 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
## [0.7.
|
4
|
+
## [0.7.4] - 2021-02-12
|
5
|
+
|
6
|
+
### Added
|
7
|
+
- `Ecoportal::API::V2::Page::Component::GaugeStop#color=` enabled setting colours using a `symbol`
|
8
|
+
- `:blue`, `:blue_greyed`, `:blue_light`
|
9
|
+
- `:turquoise`, `:jade`, `:green`, `:pistachio`, `:avocado`
|
10
|
+
- `:yellow`, `:orange`, `:pumpkin`, `:red`, `:magenta`, `:fuchsia`, `:purple`, `:violet`
|
11
|
+
- `Ecoportal::API::V2::Page::Component::GaugeStop#color_sym` to get the color as `symbol` name
|
12
|
+
- added support for chart fields:
|
13
|
+
- `Ecoportal::API::V2::Page::Component::ChartField` with the different `mode` types
|
14
|
+
- `Ecoportal::API::V2::Page::Component::ChartFrField` (LTIFR)
|
15
|
+
|
16
|
+
### Changed
|
17
|
+
- `Ecoportal::API::Page::Component::DateField` Date objects + Timezones
|
18
|
+
- `#value` should be shown in local time
|
19
|
+
- `#value=` should be set by local time
|
20
|
+
- `Ecoportal::API::Common::Content::DoubleModel.embeds_multiple` renamed to `embeds_many`
|
21
|
+
- `Ecoportal::API::Common::Content::DoubleModel.embeds_one` removed parameter `:multiple`
|
22
|
+
- Fields under `Ecoportal::API::Page::Component` that `embeds_many` should generate new elements in a standard way
|
23
|
+
- added `Ecoportal::API::Common::Content::CollectionModel#items_class` method
|
24
|
+
|
25
|
+
### Fixed
|
26
|
+
- solved `pretty_print` name collision renaming to `Ecoportal::API::Common::Content::DoubleModel#print_pretty`
|
27
|
+
|
28
|
+
## [0.7.3] - 2021-02-01
|
5
29
|
|
6
30
|
### Added
|
7
31
|
- `Ecoportal::API::Common::Content::CollectionModel#delete!` finally scoped how delete should work :)
|
@@ -33,7 +57,6 @@ All notable changes to this project will be documented in this file.
|
|
33
57
|
- `Ecoportal::API::V2::Page::Section` more supported properties:
|
34
58
|
* `minimized`
|
35
59
|
|
36
|
-
|
37
60
|
### Changed
|
38
61
|
- upgraded `ecoportal-api` dependency
|
39
62
|
|
@@ -101,6 +101,11 @@ module Ecoportal
|
|
101
101
|
super(ini_doc, parent: parent, key: key)
|
102
102
|
end
|
103
103
|
|
104
|
+
# @return [Class] the class of the elements of the Collection
|
105
|
+
def items_class
|
106
|
+
self.class.klass
|
107
|
+
end
|
108
|
+
|
104
109
|
# Transforms `value` into the actual `key` to access the object in the doc `Array`
|
105
110
|
def _doc_key(value)
|
106
111
|
#print "*(#{value.class})"
|
@@ -131,7 +131,32 @@ module Ecoportal
|
|
131
131
|
end
|
132
132
|
|
133
133
|
# Helper to embed one nested object under one property
|
134
|
-
def embeds_one(method, key: method, nullable: false,
|
134
|
+
def embeds_one(method, key: method, nullable: false, klass:)
|
135
|
+
embed(method, key: key, nullable: nullable, multiple: false, klass: klass)
|
136
|
+
end
|
137
|
+
|
138
|
+
# @note
|
139
|
+
# - if you have a dedicated `Enumerable` class to manage `many`, you should use `:enum_class`
|
140
|
+
# - otherwise, just indicate the child class in `:klass` and it will auto generate the class
|
141
|
+
# @param
|
142
|
+
def embeds_many(method, key: method, order_matters: false, order_key: nil, klass: nil, enum_class: nil)
|
143
|
+
if enum_class
|
144
|
+
eclass = enum_class
|
145
|
+
elsif klass
|
146
|
+
eclass = new_class(method, inherits: Common::Content::CollectionModel) do |dim_class|
|
147
|
+
dim_class.klass = klass
|
148
|
+
dim_class.order_matters = order_matters
|
149
|
+
dim_class.order_key = order_key
|
150
|
+
end
|
151
|
+
else
|
152
|
+
raise "You should either specify the 'klass' of the elements or the 'enum_class'"
|
153
|
+
end
|
154
|
+
embed(method, key: key, multiple: true, klass: eclass)
|
155
|
+
end
|
156
|
+
|
157
|
+
private
|
158
|
+
|
159
|
+
def embed(method, key: method, nullable: false, multiple: false, klass:)
|
135
160
|
method = method.to_s.freeze
|
136
161
|
var = instance_variable_name(method).freeze
|
137
162
|
k = key.to_s.freeze
|
@@ -150,16 +175,6 @@ module Ecoportal
|
|
150
175
|
end
|
151
176
|
end
|
152
177
|
|
153
|
-
def embeds_multiple(method, key: method, order_matters: false, order_key: nil, klass:)
|
154
|
-
dim_class = new_class(method, inherits: Common::Content::CollectionModel) do |dklass|
|
155
|
-
dklass.klass = klass
|
156
|
-
dklass.order_matters = order_matters
|
157
|
-
dklass.order_key = order_key
|
158
|
-
end
|
159
|
-
|
160
|
-
embeds_one(method, key: key, multiple: true, klass: dim_class)
|
161
|
-
end
|
162
|
-
|
163
178
|
end
|
164
179
|
|
165
180
|
attr_reader :_parent, :_key
|
@@ -252,7 +267,7 @@ module Ecoportal
|
|
252
267
|
end
|
253
268
|
end
|
254
269
|
|
255
|
-
def
|
270
|
+
def print_pretty
|
256
271
|
puts JSON.pretty_generate(as_json)
|
257
272
|
self
|
258
273
|
end
|
@@ -60,8 +60,13 @@ module Ecoportal
|
|
60
60
|
a == b
|
61
61
|
end
|
62
62
|
|
63
|
-
def patch_data(a, b = nil)
|
63
|
+
def patch_data(a, b = nil, delete: false)
|
64
64
|
{}.tap do |data_hash|
|
65
|
+
if delete
|
66
|
+
patch_ver = (a && a["patch_ver"]) || 1
|
67
|
+
data_hash["patch_ver"] = patch_ver
|
68
|
+
next
|
69
|
+
end
|
65
70
|
a.each do |key, a_value|
|
66
71
|
b_value = b[key] if b_has_key = b && b.key?(key)
|
67
72
|
is_meta_key = META_KEYS.include?(key)
|
@@ -85,6 +90,8 @@ module Ecoportal
|
|
85
90
|
"id" => id,
|
86
91
|
"operation" => "delete"
|
87
92
|
}
|
93
|
+
#,
|
94
|
+
#{}"data" => patch_data(b, delete: true)
|
88
95
|
end
|
89
96
|
|
90
97
|
def patch_new(a)
|
@@ -15,9 +15,9 @@ module Ecoportal
|
|
15
15
|
class_resolver :sections_class, "Ecoportal::API::V2::Page::Sections"
|
16
16
|
class_resolver :stages_class, "Ecoportal::API::V2::Page::Stages"
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
embeds_many :components, enum_class: :components_class
|
19
|
+
embeds_many :sections, enum_class: :sections_class
|
20
|
+
embeds_many :stages, enum_class: :stages_class
|
21
21
|
|
22
22
|
def as_update
|
23
23
|
super.tap do |hash|
|
@@ -21,6 +21,8 @@ module Ecoportal
|
|
21
21
|
class_resolver :signature_field_class, "Ecoportal::API::V2::Page::Component::SignatureField"
|
22
22
|
class_resolver :reference_field_class, "Ecoportal::API::V2::Page::Component::ReferenceField"
|
23
23
|
class_resolver :law_field_class, "Ecoportal::API::V2::Page::Component::LawField"
|
24
|
+
class_resolver :chart_field_class, "Ecoportal::API::V2::Page::Component::ChartField"
|
25
|
+
class_resolver :chart_fr_field_class, "Ecoportal::API::V2::Page::Component::ChartFrField"
|
24
26
|
|
25
27
|
class << self
|
26
28
|
def new_doc(type:)
|
@@ -66,6 +68,10 @@ module Ecoportal
|
|
66
68
|
reference_field_class
|
67
69
|
when "law"
|
68
70
|
law_field_class
|
71
|
+
when "chart"
|
72
|
+
chart_field_class
|
73
|
+
when "frequency_rate_chart"
|
74
|
+
chart_fr_field_class
|
69
75
|
else
|
70
76
|
self
|
71
77
|
end
|
@@ -115,3 +121,5 @@ require 'ecoportal/api/v2/page/component/images_field'
|
|
115
121
|
require 'ecoportal/api/v2/page/component/signature_field'
|
116
122
|
require 'ecoportal/api/v2/page/component/reference_field'
|
117
123
|
require 'ecoportal/api/v2/page/component/law_field'
|
124
|
+
require 'ecoportal/api/v2/page/component/chart_field'
|
125
|
+
require 'ecoportal/api/v2/page/component/chart_fr_field'
|
@@ -8,12 +8,12 @@ module Ecoportal
|
|
8
8
|
passthrough :required_number_of_completed_actions
|
9
9
|
passthrough :permits_and_rules_integration, :add_subscribed, :add_subscribed_to_tasks
|
10
10
|
|
11
|
-
|
11
|
+
embeds_many :actions, klass: "Ecoportal::API::V2::Page::Component::Action", order_key: :weight
|
12
12
|
|
13
13
|
# Adds a task with `name` short description
|
14
14
|
# @return [Ecoportal::API::V2::Page::Component::Action]
|
15
15
|
def add_task (name)
|
16
|
-
task_doc =
|
16
|
+
task_doc = actions.items_class.new_doc
|
17
17
|
actions.upsert!(task_doc) do |task|
|
18
18
|
task.name = name
|
19
19
|
if prev = previous_task(task)
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField < Page::Component
|
7
|
+
passthrough :mode
|
8
|
+
passthrough :relative, :relstart, :relbound
|
9
|
+
passthrough :bounded, :ubound, :lbound
|
10
|
+
passthrough :filter_date_input
|
11
|
+
passthrough :user_id, :lock_chart_user
|
12
|
+
|
13
|
+
embeds_one :series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::SeriesConfig"
|
14
|
+
embeds_one :frequency_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Frequency"
|
15
|
+
embeds_one :heatmap_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Heatmap"
|
16
|
+
embeds_one :sankey_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Sankey"
|
17
|
+
embeds_one :indicator_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Indicator"
|
18
|
+
embeds_one :faceted_series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Multiseries"
|
19
|
+
|
20
|
+
embeds_many :series, klass: "Ecoportal::API::V2::Page::Component::ChartField::Serie"
|
21
|
+
|
22
|
+
MODES = ["frequency", "series", "heatmap", "sankey", "indicator", "faceted_series"]
|
23
|
+
|
24
|
+
def config
|
25
|
+
case mode
|
26
|
+
when "frequency"
|
27
|
+
frequency_config
|
28
|
+
when "series"
|
29
|
+
series_config
|
30
|
+
when "heatmap"
|
31
|
+
heatmap_config
|
32
|
+
when "sankey"
|
33
|
+
sankey_config
|
34
|
+
when "indicator"
|
35
|
+
indicator_config
|
36
|
+
when "faceted_series"
|
37
|
+
faceted_series_config
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
require 'ecoportal/api/v2/page/component/chart_field/frequency'
|
49
|
+
require 'ecoportal/api/v2/page/component/chart_field/series_config'
|
50
|
+
require 'ecoportal/api/v2/page/component/chart_field/serie'
|
51
|
+
require 'ecoportal/api/v2/page/component/chart_field/heatmap'
|
52
|
+
require 'ecoportal/api/v2/page/component/chart_field/sankey'
|
53
|
+
require 'ecoportal/api/v2/page/component/chart_field/indicator'
|
54
|
+
require 'ecoportal/api/v2/page/component/chart_field/multiseries'
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Frequency < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id, :source_type
|
11
|
+
|
12
|
+
passthrough :mode, :input
|
13
|
+
passarray :tags
|
14
|
+
passthrough :secondary
|
15
|
+
|
16
|
+
passthrough :output, :bar_mode
|
17
|
+
passthrough :series_size, :skip_zeroes
|
18
|
+
|
19
|
+
passarray :filters, :people_filters, :task_filters
|
20
|
+
|
21
|
+
passthrough :color
|
22
|
+
passarray :color_map
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Heatmap < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id, :source_type
|
11
|
+
|
12
|
+
passthrough :xinput, :xmode
|
13
|
+
passthrough :yinput, :ymode
|
14
|
+
passarray :xtags, :ytags
|
15
|
+
|
16
|
+
passthrough :bucket_type
|
17
|
+
|
18
|
+
passarray :filters, :people_filters, :task_filters
|
19
|
+
|
20
|
+
passthrough :color
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Indicator < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id, :source_type
|
11
|
+
|
12
|
+
passthrough :date_input, :secondary
|
13
|
+
passthrough :duration, :math_mode, :currency
|
14
|
+
|
15
|
+
passthrough :display_previous, :change_format, :invert_colors
|
16
|
+
|
17
|
+
passarray :filters, :people_filters, :task_filters
|
18
|
+
|
19
|
+
passthrough :color
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Multiseries < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id, :source_type
|
11
|
+
|
12
|
+
passthrough :xinput, :xlabel
|
13
|
+
passthrough :interval, :calc_mode
|
14
|
+
|
15
|
+
passthrough :yinput, :ylabel
|
16
|
+
passthrough :facet_by_discrete, :discrete_facet
|
17
|
+
passthrough :facet_by_tags
|
18
|
+
passarray :facet_tags
|
19
|
+
|
20
|
+
passarray :filters, :people_filters, :task_filters
|
21
|
+
|
22
|
+
passthrough :display_mode, :display_type
|
23
|
+
passthrough :color
|
24
|
+
passarray :color_map
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Sankey < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id, :source_type
|
11
|
+
|
12
|
+
passthrough :xinput, :xmode
|
13
|
+
passthrough :yinput, :ymode
|
14
|
+
passthrough :zinput, :zmode
|
15
|
+
passarray :xtags, :ytags, :ztags
|
16
|
+
|
17
|
+
passarray :filters, :people_filters, :task_filters
|
18
|
+
|
19
|
+
passthrough :color
|
20
|
+
passarray :color_map
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Serie < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
passthrough :register_id
|
11
|
+
|
12
|
+
passthrough :input, :type
|
13
|
+
passarray :y_axes
|
14
|
+
|
15
|
+
passthrough :visual, :stacked
|
16
|
+
|
17
|
+
passarray :filters, :people_filters, :task_filters
|
18
|
+
|
19
|
+
passthrough :color
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class SeriesConfig < Common::Content::DoubleModel
|
8
|
+
passkey :id
|
9
|
+
passthrough :patch_ver
|
10
|
+
|
11
|
+
passthrough :xlabel, :xtype
|
12
|
+
passthrough :interval, :calc_mode, :comparative_year
|
13
|
+
passthrough :ylabel
|
14
|
+
|
15
|
+
passthrough :filled_up_with_zeros, :zero_y, :bounds_rigid
|
16
|
+
passthrough :stack_all
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartFrField < Page::Component
|
7
|
+
passthrough :register_id, :date_input
|
8
|
+
passthrough :filter
|
9
|
+
|
10
|
+
passthrough :facet_by_tags, :facet_by_select
|
11
|
+
passthrough :select_input, :select_mapping
|
12
|
+
passarray :facet_tags
|
13
|
+
|
14
|
+
passthrough :relative, :relstart, :relbound
|
15
|
+
passthrough :bounded, :ubound, :lbound
|
16
|
+
|
17
|
+
passthrough :display_mode, :display_type
|
18
|
+
passarray :guidelines
|
19
|
+
passthrough :cumulative, :cumulative_mode, :cumulative_start
|
20
|
+
passthrough :multiplier, :granularity
|
21
|
+
|
22
|
+
passthrough :color
|
23
|
+
passarray :color_map
|
24
|
+
|
25
|
+
passthrough :chart_user
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -4,10 +4,10 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChecklistField < Page::Component
|
7
|
-
|
7
|
+
embeds_many :items, klass: "Ecoportal::API::V2::Page::Component::ChecklistItem", order_key: :weight
|
8
8
|
|
9
9
|
def add_item(label:, pos: NOT_USED, before: NOT_USED, after: NOT_USED)
|
10
|
-
itm_doc =
|
10
|
+
itm_doc = items.stops.items_class.new_doc
|
11
11
|
items.upsert!(itm_doc, pos: pos, before: before, after: after) do |item|
|
12
12
|
item.label = label
|
13
13
|
if prev = previous_item(item)
|
@@ -8,6 +8,24 @@ module Ecoportal
|
|
8
8
|
passthrough :show_time, :today_button, :past_only
|
9
9
|
passthrough :create_event, :remind_me_in
|
10
10
|
passthrough :renews, :renews_every, :renews_unit, :renews_until
|
11
|
+
|
12
|
+
ISO8601 = "%Y-%m-%dT%H:%M:00Z" # "%Y-%m-%dT%H:%M:00.00Z"
|
13
|
+
|
14
|
+
def value=(val)
|
15
|
+
doc["value"] = self.class.to_time(val).yield_self do |datetime|
|
16
|
+
datetime = datetime.utc.strftime(ISO8601) if datetime
|
17
|
+
datetime
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def value
|
22
|
+
if val = doc["value"]
|
23
|
+
(Time.parse(val) rescue nil).yield_self do |datetime|
|
24
|
+
datetime.localtime if datetime
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
11
29
|
end
|
12
30
|
end
|
13
31
|
end
|
@@ -4,8 +4,7 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class FilesField < Page::Component
|
7
|
-
|
8
|
-
embeds_multiple :items, klass: "Ecoportal::API::V2::Page::File", order_key: :position
|
7
|
+
embeds_many :items, klass: "Ecoportal::API::V2::Page::File", order_key: :position
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
@@ -7,12 +7,12 @@ module Ecoportal
|
|
7
7
|
passthrough :value, :max
|
8
8
|
passthrough :active_color
|
9
9
|
|
10
|
-
|
10
|
+
embeds_many :stops, klass: "Ecoportal::API::V2::Page::Component::GaugeStop", order_key: :threshold
|
11
11
|
|
12
12
|
# Adds a stop at `threshold` with `color`
|
13
13
|
# @return [Ecoportal::API::V2::Page::Component::GaugeStop]
|
14
14
|
def add_stop (threshold: 0.0, color: '#e256d1')
|
15
|
-
stop_doc =
|
15
|
+
stop_doc = stops.items_class.new_doc
|
16
16
|
stops.upsert!(stop_doc) do |stop|
|
17
17
|
stop.threshold = threshold
|
18
18
|
stop.color = color
|
@@ -18,6 +18,68 @@ module Ecoportal
|
|
18
18
|
passkey :id
|
19
19
|
passthrough :patch_ver, :threshold
|
20
20
|
passthrough :color
|
21
|
+
|
22
|
+
# Assign the color to the stop.
|
23
|
+
# @note These are the available colors:
|
24
|
+
# - :blue, :blue_greyed, :blue_light
|
25
|
+
# - :turquoise, :jade, :green, :pistachio, :avocado
|
26
|
+
# - :yellow, :orange, :pumpkin, :red, :magenta, :fuchsia, :purple, :violet
|
27
|
+
# @param value [String, Symbol] you can use a `symbol` to specify a color
|
28
|
+
def color=(value)
|
29
|
+
value = to_color(value) if value.is_a?(Symbol)
|
30
|
+
doc["color"] = value
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Symbol] to get the `color` sym code
|
34
|
+
def color_sym
|
35
|
+
color_maps.each do |k, v|
|
36
|
+
return k if color == v
|
37
|
+
end
|
38
|
+
:undefined
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def to_color(value)
|
44
|
+
return nil unless valid_color?(value)
|
45
|
+
return value if value.is_a?(String)
|
46
|
+
color_maps[value]
|
47
|
+
end
|
48
|
+
|
49
|
+
def valid_color?(value)
|
50
|
+
return true if value.is_a?(String) && colors.any? {|c| c == value}
|
51
|
+
return true if value.is_a?(Symbol) && color_syms.any? {|s| s == value}
|
52
|
+
end
|
53
|
+
|
54
|
+
def color_syms
|
55
|
+
@color_syms ||= color_maps.keys
|
56
|
+
end
|
57
|
+
|
58
|
+
def colors
|
59
|
+
@colors ||= color_maps.values
|
60
|
+
end
|
61
|
+
|
62
|
+
def color_maps
|
63
|
+
@color_maps ||= [
|
64
|
+
[:blue, "#5656e2"],
|
65
|
+
[:blue_greyed, "#568be2"],
|
66
|
+
[:blue_light, "#56c0e2"],
|
67
|
+
[:turquoise, "#56e2cf"],
|
68
|
+
[:jade, "#56e29b"],
|
69
|
+
[:green, "#56e267"],
|
70
|
+
[:pistachio, "#79e256"],
|
71
|
+
[:avocado, "#aee256"],
|
72
|
+
[:yellow, "#e2e156"],
|
73
|
+
[:orange, "#e2ad56"],
|
74
|
+
[:pumpkin, "#e27956"],
|
75
|
+
[:red, "#e25667"],
|
76
|
+
[:magenta, "#e2569c"],
|
77
|
+
[:fuchsia, "#e256d1"],
|
78
|
+
[:purple, "#be56e2"],
|
79
|
+
[:violet, "#8a56e2"]
|
80
|
+
].to_h
|
81
|
+
end
|
82
|
+
|
21
83
|
end
|
22
84
|
end
|
23
85
|
end
|
@@ -4,8 +4,7 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ImagesField < Page::Component
|
7
|
-
|
8
|
-
embeds_multiple :images, klass: "Ecoportal::API::V2::Page::Image", order_key: :weight
|
7
|
+
embeds_many :images, klass: "Ecoportal::API::V2::Page::Image", order_key: :weight
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
@@ -7,8 +7,7 @@ module Ecoportal
|
|
7
7
|
passthrough :multiple, :flat
|
8
8
|
passthrough :other, :other_desc
|
9
9
|
|
10
|
-
|
11
|
-
embeds_multiple :options, klass: "Ecoportal::API::V2::Page::Component::SelectionOption", order_key: :weight
|
10
|
+
embeds_many :options, klass: "Ecoportal::API::V2::Page::Component::SelectionOption", order_key: :weight
|
12
11
|
|
13
12
|
def select(value)
|
14
13
|
opt = options.find {|opt| opt.value == value}
|
@@ -35,7 +34,7 @@ module Ecoportal
|
|
35
34
|
end
|
36
35
|
|
37
36
|
def add_option(name:, value:, pos: NOT_USED, before: NOT_USED, after: NOT_USED)
|
38
|
-
opt_doc =
|
37
|
+
opt_doc = options.items_class.new_doc
|
39
38
|
options.upsert!(opt_doc, pos: pos, before: before, after: after) do |option|
|
40
39
|
option.name = name
|
41
40
|
option.value = value
|
@@ -21,14 +21,14 @@ module Ecoportal
|
|
21
21
|
|
22
22
|
def get_by_name(name, type: nil)
|
23
23
|
pool = type ? get_by_type(type) : self
|
24
|
-
|
24
|
+
|
25
25
|
pool.select do |comp|
|
26
26
|
comp.label.to_s.strip.downcase == name.to_s.strip.downcase
|
27
27
|
end.first
|
28
28
|
end
|
29
29
|
|
30
30
|
def add(label:, type:)
|
31
|
-
fld_doc =
|
31
|
+
fld_doc = component_class.new_doc(type: type)
|
32
32
|
upsert!(fld_doc) do |fld|
|
33
33
|
fld.label = label
|
34
34
|
yield(fld) if block_given?
|
@@ -8,7 +8,7 @@ module Ecoportal
|
|
8
8
|
self.klass = :section_class
|
9
9
|
|
10
10
|
def add(name: nil, split: false, pos: NOT_USED, before: NOT_USED, after: NOT_USED)
|
11
|
-
sec_doc =
|
11
|
+
sec_doc = section_class.new_doc(split: split)
|
12
12
|
upsert!(sec_doc, pos: pos, before: before, after: after) do |section|
|
13
13
|
section.heading = name
|
14
14
|
if prev = previous_section(section)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecoportal-api-oozes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -183,6 +183,15 @@ files:
|
|
183
183
|
- lib/ecoportal/api/v2/page/component.rb
|
184
184
|
- lib/ecoportal/api/v2/page/component/action.rb
|
185
185
|
- lib/ecoportal/api/v2/page/component/action_field.rb
|
186
|
+
- lib/ecoportal/api/v2/page/component/chart_field.rb
|
187
|
+
- lib/ecoportal/api/v2/page/component/chart_field/frequency.rb
|
188
|
+
- lib/ecoportal/api/v2/page/component/chart_field/heatmap.rb
|
189
|
+
- lib/ecoportal/api/v2/page/component/chart_field/indicator.rb
|
190
|
+
- lib/ecoportal/api/v2/page/component/chart_field/multiseries.rb
|
191
|
+
- lib/ecoportal/api/v2/page/component/chart_field/sankey.rb
|
192
|
+
- lib/ecoportal/api/v2/page/component/chart_field/serie.rb
|
193
|
+
- lib/ecoportal/api/v2/page/component/chart_field/series_config.rb
|
194
|
+
- lib/ecoportal/api/v2/page/component/chart_fr_field.rb
|
186
195
|
- lib/ecoportal/api/v2/page/component/checklist_field.rb
|
187
196
|
- lib/ecoportal/api/v2/page/component/checklist_item.rb
|
188
197
|
- lib/ecoportal/api/v2/page/component/date_field.rb
|