promethee 3.0.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/UPGRADING +2 -2
- data/app/assets/stylesheets/promethee-edit.sass +1 -0
- data/app/assets/stylesheets/promethee-edit/_localizer.sass +4 -0
- data/app/models/concerns/promethee_data.rb +57 -34
- data/app/services/promethee/structure_upgrader/components/aside.rb +51 -0
- data/app/services/promethee/structure_upgrader/components/base.rb +36 -0
- data/app/services/promethee/structure_upgrader/components/blockquote.rb +32 -0
- data/app/services/promethee/structure_upgrader/components/collection.rb +31 -0
- data/app/services/promethee/structure_upgrader/components/collection_item.rb +55 -0
- data/app/services/promethee/structure_upgrader/components/column.rb +92 -0
- data/app/services/promethee/structure_upgrader/components/cover.rb +49 -0
- data/app/services/promethee/structure_upgrader/components/faq.rb +16 -0
- data/app/services/promethee/structure_upgrader/components/faq_item.rb +49 -0
- data/app/services/promethee/structure_upgrader/components/image.rb +42 -0
- data/app/services/promethee/structure_upgrader/components/page.rb +56 -0
- data/app/services/promethee/structure_upgrader/components/row.rb +32 -0
- data/app/services/promethee/structure_upgrader/components/slider.rb +16 -0
- data/app/services/promethee/structure_upgrader/components/slider_item.rb +55 -0
- data/app/services/promethee/structure_upgrader/components/table.rb +116 -0
- data/app/services/promethee/structure_upgrader/components/table_cell.rb +16 -0
- data/app/services/promethee/structure_upgrader/components/text.rb +25 -0
- data/app/services/promethee/structure_upgrader/components/video.rb +32 -0
- data/app/services/promethee/structure_upgrader_service.rb +110 -0
- data/app/views/promethee/_edit.html.erb +34 -4
- data/app/views/promethee/_localize.html.erb +34 -3
- data/app/views/promethee/components/aside/_edit.define.html.erb +29 -4
- data/app/views/promethee/components/aside/_edit.inspect.html.erb +6 -6
- data/app/views/promethee/components/aside/_edit.move.html.erb +7 -7
- data/app/views/promethee/components/aside/_localize.html.erb +11 -11
- data/app/views/promethee/components/aside/_show.html.erb +8 -8
- data/app/views/promethee/components/blockquote/_edit.define.html.erb +12 -2
- data/app/views/promethee/components/blockquote/_edit.inspect.html.erb +4 -4
- data/app/views/promethee/components/blockquote/_edit.move.html.erb +3 -3
- data/app/views/promethee/components/blockquote/_localize.html.erb +8 -8
- data/app/views/promethee/components/blockquote/_show.html.erb +3 -3
- data/app/views/promethee/components/collection/_edit.define.html.erb +12 -1
- data/app/views/promethee/components/collection/_edit.inspect.html.erb +4 -4
- data/app/views/promethee/components/collection/_edit.move.html.erb +1 -1
- data/app/views/promethee/components/collection/_localize.html.erb +0 -1
- data/app/views/promethee/components/collection/_show.html.erb +1 -2
- data/app/views/promethee/components/collection_item/_edit.define.html.erb +27 -5
- data/app/views/promethee/components/collection_item/_edit.inspect.html.erb +6 -6
- data/app/views/promethee/components/collection_item/_edit.move.html.erb +5 -5
- data/app/views/promethee/components/collection_item/_localize.html.erb +9 -9
- data/app/views/promethee/components/collection_item/_show.html.erb +7 -7
- data/app/views/promethee/components/column/_edit.define.html.erb +58 -8
- data/app/views/promethee/components/column/_edit.inspect.html.erb +19 -19
- data/app/views/promethee/components/column/_localize.html.erb +0 -1
- data/app/views/promethee/components/column/_show.html.erb +10 -10
- data/app/views/promethee/components/cover/_edit.define.html.erb +26 -6
- data/app/views/promethee/components/cover/_edit.inspect.html.erb +4 -4
- data/app/views/promethee/components/cover/_edit.move.html.erb +4 -4
- data/app/views/promethee/components/cover/_localize.html.erb +14 -14
- data/app/views/promethee/components/cover/_show.html.erb +10 -10
- data/app/views/promethee/components/faq_item/_edit.define.html.erb +25 -5
- data/app/views/promethee/components/faq_item/_edit.inspect.html.erb +4 -4
- data/app/views/promethee/components/faq_item/_edit.move.html.erb +6 -6
- data/app/views/promethee/components/faq_item/_localize.html.erb +7 -7
- data/app/views/promethee/components/faq_item/_show.html.erb +7 -7
- data/app/views/promethee/components/image/_edit.define.html.erb +19 -4
- data/app/views/promethee/components/image/_edit.inspect.html.erb +3 -3
- data/app/views/promethee/components/image/_edit.move.html.erb +5 -5
- data/app/views/promethee/components/image/_localize.html.erb +20 -17
- data/app/views/promethee/components/image/_show.html.erb +6 -6
- data/app/views/promethee/components/page/_edit.define.html.erb +32 -7
- data/app/views/promethee/components/page/_edit.inspect.html.erb +5 -5
- data/app/views/promethee/components/page/_localize.html.erb +8 -8
- data/app/views/promethee/components/page/_show.html.erb +4 -4
- data/app/views/promethee/components/row/_edit.define.html.erb +12 -2
- data/app/views/promethee/components/row/_edit.inspect.html.erb +8 -8
- data/app/views/promethee/components/row/_edit.move.html.erb +9 -9
- data/app/views/promethee/components/row/_show.html.erb +7 -6
- data/app/views/promethee/components/slider_item/_edit.define.html.erb +27 -5
- data/app/views/promethee/components/slider_item/_edit.inspect.html.erb +6 -6
- data/app/views/promethee/components/slider_item/_edit.move.html.erb +7 -7
- data/app/views/promethee/components/slider_item/_localize.html.erb +9 -9
- data/app/views/promethee/components/slider_item/_show.html.erb +7 -8
- data/app/views/promethee/components/table/_edit.define.html.erb +9 -6
- data/app/views/promethee/components/table/_edit.inspect.html.erb +138 -50
- data/app/views/promethee/components/table/_edit.move.html.erb +17 -7
- data/app/views/promethee/components/table/_localize.html.erb +0 -43
- data/app/views/promethee/components/table/_show.html.erb +13 -16
- data/app/views/promethee/components/table_cell/_edit.define.html.erb +22 -0
- data/app/views/promethee/components/table_cell/_edit.inspect.html.erb +0 -0
- data/app/views/promethee/components/table_cell/_edit.move.html.erb +0 -0
- data/app/views/promethee/components/table_cell/_icon.svg +3 -0
- data/app/views/promethee/components/table_cell/_localize.html.erb +14 -0
- data/app/views/promethee/components/table_cell/_show.html.erb +0 -0
- data/app/views/promethee/components/text/_edit.define.html.erb +6 -1
- data/app/views/promethee/components/text/_edit.inspect.html.erb +3 -3
- data/app/views/promethee/components/text/_edit.move.html.erb +1 -1
- data/app/views/promethee/components/text/_localize.html.erb +3 -3
- data/app/views/promethee/components/text/_show.html.erb +2 -2
- data/app/views/promethee/components/video/_edit.define.html.erb +12 -2
- data/app/views/promethee/components/video/_edit.inspect.html.erb +2 -2
- data/app/views/promethee/components/video/_edit.move.html.erb +6 -6
- data/app/views/promethee/components/video/_localize.html.erb +4 -4
- data/app/views/promethee/components/video/_show.html.erb +4 -3
- data/app/views/promethee/presets/_image-with-text.html.erb +171 -6
- data/lib/promethee/data/localization.rb +13 -2
- data/lib/promethee/rails/version.rb +1 -1
- data/lib/tasks/promethee/promethee.rake +6 -0
- metadata +31 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9919911b70d645a32c0cc7cb303e88e358964153829f76747dd62b2acbafc8f8
|
4
|
+
data.tar.gz: f72bac7ccb51c4c55686bdafe41997d8d6d366f0f00861127ed593786d90938a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53817f67399c99bd21ba4f2e01c276fc4ef0dc80c62f9c3f7a17e25bc6f73d6cb7758983e2990457672d35042623ddd7f476394be8be36249b552e39a7e76d5c
|
7
|
+
data.tar.gz: 6832ef6057efface08ee81ee0db720bf9534df96637b34b3cebd703f849b0c1b3d483b94417ae6ed27c66846e520593e0492e3d6d161e3d087ecd2eb81281bf0
|
data/UPGRADING
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
###################################
|
2
|
-
# NOTE FOR UPGRADING TO
|
2
|
+
# NOTE FOR UPGRADING TO 4.x.x #
|
3
3
|
###################################
|
4
4
|
|
5
|
-
In Prométhée
|
5
|
+
In Prométhée 4.0, to apply the correct sanitization process, every attribute has an explicit type.
|
6
6
|
A rake task is available to upgrade your data.
|
7
7
|
|
8
8
|
For more details, check the documentation:
|
@@ -4,51 +4,57 @@ module PrometheeData
|
|
4
4
|
# Setter to serialize data as JSON
|
5
5
|
def data=(value)
|
6
6
|
value = JSON.parse value if value.is_a? String
|
7
|
-
|
7
|
+
|
8
|
+
if value.has_key? 'components'
|
9
|
+
# For translations, contents are in components, not children
|
10
|
+
value['components'].map { |component| promethee_sanitize(component) }
|
11
|
+
else
|
12
|
+
# For masters, contents are in children
|
13
|
+
value = promethee_sanitize(value)
|
14
|
+
end
|
8
15
|
super(value)
|
9
16
|
end
|
10
17
|
|
11
18
|
# Getters and setters to get PAGE Title, Description & Thumbnail
|
12
19
|
def promethee_data_page_title
|
13
|
-
data['attributes']['
|
20
|
+
data['attributes']['title']['value']
|
14
21
|
rescue
|
15
22
|
''
|
16
23
|
end
|
17
24
|
|
18
25
|
def promethee_data_page_title=(value)
|
19
|
-
self.data['attributes']['
|
26
|
+
self.data['attributes']['title']['value'] = value
|
20
27
|
end
|
21
28
|
|
22
29
|
def promethee_data_page_description
|
23
|
-
data['attributes']['
|
30
|
+
data['attributes']['description']['value']
|
24
31
|
rescue
|
25
32
|
''
|
26
33
|
end
|
27
34
|
|
28
35
|
def promethee_data_page_description=(value)
|
29
|
-
self.data['attributes']['
|
36
|
+
self.data['attributes']['description']['value'] = value
|
30
37
|
end
|
31
38
|
|
32
39
|
def promethee_data_page_thumbnail
|
33
|
-
ActiveStorage::Blob.find_signed(data['attributes']['thumbnail']['id'])
|
40
|
+
ActiveStorage::Blob.find_signed(data['attributes']['thumbnail']['value']['id'])
|
34
41
|
rescue
|
35
42
|
nil
|
36
43
|
end
|
37
44
|
|
38
45
|
# Getters to get TRANSLATION Title & Description
|
39
46
|
def promethee_data_translation_title
|
40
|
-
data['components'].first['attributes']['
|
47
|
+
data['components'].first['attributes']['title']['value']
|
41
48
|
rescue
|
42
49
|
''
|
43
50
|
end
|
44
51
|
|
45
52
|
def promethee_data_translation_description
|
46
|
-
data['components'].first['attributes']['
|
53
|
+
data['components'].first['attributes']['description']['value']
|
47
54
|
rescue
|
48
55
|
''
|
49
56
|
end
|
50
57
|
|
51
|
-
|
52
58
|
def promethee_data_searchable
|
53
59
|
promethee_extract_searchable data
|
54
60
|
end
|
@@ -62,20 +68,25 @@ module PrometheeData
|
|
62
68
|
searchable = ' '
|
63
69
|
searchable += promethee_extract_searchable_attributes component['attributes'] if component.include?('attributes')
|
64
70
|
# For masters, contents are in children
|
65
|
-
searchable += promethee_extract_searchable_children component['children'] if component.include?
|
71
|
+
searchable += promethee_extract_searchable_children component['children'] if component.include?('children')
|
66
72
|
# For translations, contents are in components, not children
|
67
|
-
searchable += promethee_extract_searchable_children component['components'] if component.include?
|
73
|
+
searchable += promethee_extract_searchable_children component['components'] if component.include?('components')
|
68
74
|
searchable
|
69
75
|
end
|
70
76
|
|
71
77
|
def promethee_extract_searchable_attributes(attributes)
|
72
78
|
searchable = ' '
|
73
|
-
attributes.each do |key,
|
74
|
-
if
|
75
|
-
clean_value = strip_tags value
|
79
|
+
attributes.each do |key, value_object|
|
80
|
+
if value_object['searchable']
|
81
|
+
clean_value = strip_tags value_object['value']
|
76
82
|
searchable += "#{clean_value} "
|
77
|
-
|
78
|
-
|
83
|
+
end
|
84
|
+
if value_object['type'] == 'array'
|
85
|
+
value_object['value'].each do |object|
|
86
|
+
searchable += promethee_extract_searchable_attributes(object)
|
87
|
+
end
|
88
|
+
elsif value_object['type'] == 'hash'
|
89
|
+
searchable += promethee_extract_searchable_attributes(value_object['value'])
|
79
90
|
end
|
80
91
|
end
|
81
92
|
searchable
|
@@ -89,24 +100,36 @@ module PrometheeData
|
|
89
100
|
searchable
|
90
101
|
end
|
91
102
|
|
92
|
-
def promethee_sanitize(
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
value.each do |element|
|
104
|
-
new_array << promethee_sanitize(element)
|
105
|
-
end
|
106
|
-
data[key] = new_array
|
107
|
-
end
|
108
|
-
end if data.respond_to? :each
|
103
|
+
def promethee_sanitize(component)
|
104
|
+
attributes = component['attributes']
|
105
|
+
attributes = promethee_sanitize_attributes(attributes)
|
106
|
+
|
107
|
+
children = component['children']
|
108
|
+
children.each do |child|
|
109
|
+
child = promethee_sanitize(child)
|
110
|
+
end unless children.nil?
|
111
|
+
|
112
|
+
component
|
113
|
+
end
|
109
114
|
|
110
|
-
|
115
|
+
def promethee_sanitize_attributes(attributes)
|
116
|
+
attributes.each do |key, value_object|
|
117
|
+
case value_object['type']
|
118
|
+
when 'string'
|
119
|
+
while value_object['value'] != Loofah.fragment(value_object['value']).text(encode_special_chars: false)
|
120
|
+
value_object['value'] = Loofah.fragment(value_object['value']).text(encode_special_chars: false)
|
121
|
+
end
|
122
|
+
when 'text'
|
123
|
+
value_object['value'] = sanitize(value_object['value'])
|
124
|
+
when 'hash'
|
125
|
+
value_object['value'] = promethee_sanitize_attributes(value_object['value'])
|
126
|
+
when 'array'
|
127
|
+
value_object['value'].each do |object|
|
128
|
+
object = promethee_sanitize_attributes(object)
|
129
|
+
end
|
130
|
+
end if value_object.has_key?('type')
|
131
|
+
attributes[key] = value_object
|
132
|
+
end unless attributes.nil?
|
133
|
+
attributes
|
111
134
|
end
|
112
135
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# Aside Component
|
2
|
+
# ================
|
3
|
+
#
|
4
|
+
# V3
|
5
|
+
# -----
|
6
|
+
#
|
7
|
+
# {
|
8
|
+
# searchable_visible_content: '<p>Edit me</p>',
|
9
|
+
# searchable_collapsed_content: '',
|
10
|
+
# searchable_open_label: 'See more',
|
11
|
+
# open_label_position: 'left'
|
12
|
+
# }
|
13
|
+
#
|
14
|
+
|
15
|
+
module Promethee::StructureUpgrader::Components
|
16
|
+
class Aside < Base
|
17
|
+
def upgraded_attributes
|
18
|
+
{
|
19
|
+
'visible_content' => {
|
20
|
+
'searchable' => true,
|
21
|
+
'translatable' => true,
|
22
|
+
'type' => 'text',
|
23
|
+
'value' => attribute('searchable_visible_content')
|
24
|
+
},
|
25
|
+
'collapsed_content' => {
|
26
|
+
'searchable' => true,
|
27
|
+
'translatable' => true,
|
28
|
+
'type' => 'text',
|
29
|
+
'value' => attribute('searchable_collapsed_content')
|
30
|
+
},
|
31
|
+
'open_label' => {
|
32
|
+
'searchable' => true,
|
33
|
+
'translatable' => true,
|
34
|
+
'type' => 'string',
|
35
|
+
'value': string_attribute('searchable_open_label')
|
36
|
+
},
|
37
|
+
'open_label_position' => {
|
38
|
+
'collection' => [
|
39
|
+
{ 'label' => 'Left', 'value' => 'left' },
|
40
|
+
{ 'label' => 'Center', 'value' => 'center' },
|
41
|
+
{ 'label' => 'Right', 'value' => 'right' }
|
42
|
+
],
|
43
|
+
'searchable' => false,
|
44
|
+
'translatable' => false,
|
45
|
+
'type' => 'enum',
|
46
|
+
'value' => attribute('open_label_position')
|
47
|
+
}
|
48
|
+
}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Promethee::StructureUpgrader::Components
|
2
|
+
class Base
|
3
|
+
def initialize(data)
|
4
|
+
@data = data
|
5
|
+
# puts "<#{self.class}> Initialized."
|
6
|
+
|
7
|
+
upgrade
|
8
|
+
end
|
9
|
+
|
10
|
+
def upgraded_data
|
11
|
+
@upgraded_data
|
12
|
+
end
|
13
|
+
|
14
|
+
def upgrade
|
15
|
+
@upgraded_data = @data.deep_dup
|
16
|
+
return if @upgraded_data['attributes'].empty?
|
17
|
+
|
18
|
+
@upgraded_data['attributes'] = upgraded_attributes.deep_stringify_keys
|
19
|
+
end
|
20
|
+
|
21
|
+
def upgraded_attributes
|
22
|
+
raise NotImplementedError
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def string_attribute(*path)
|
28
|
+
text = attribute(*path)
|
29
|
+
Loofah.fragment(text).text(encode_special_chars: false)
|
30
|
+
end
|
31
|
+
|
32
|
+
def attribute(*path)
|
33
|
+
@data.dig('attributes', *path)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Blockquote Component
|
2
|
+
# ================
|
3
|
+
#
|
4
|
+
# V3
|
5
|
+
# -----
|
6
|
+
#
|
7
|
+
# {
|
8
|
+
# searchable_body: '<p>Edit me</p>',
|
9
|
+
# searchable_author: ''
|
10
|
+
# }
|
11
|
+
#
|
12
|
+
|
13
|
+
module Promethee::StructureUpgrader::Components
|
14
|
+
class Blockquote < Base
|
15
|
+
def upgraded_attributes
|
16
|
+
{
|
17
|
+
'body' => {
|
18
|
+
'searchable' => true,
|
19
|
+
'translatable' => true,
|
20
|
+
'type' => 'text',
|
21
|
+
'value' => attribute('searchable_body'),
|
22
|
+
},
|
23
|
+
'author' => {
|
24
|
+
'searchable' => true,
|
25
|
+
'translatable' => false,
|
26
|
+
'type' => 'string',
|
27
|
+
'value' => string_attribute('searchable_author')
|
28
|
+
}
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# Collection Component
|
2
|
+
# ================
|
3
|
+
#
|
4
|
+
# V3
|
5
|
+
# -----
|
6
|
+
#
|
7
|
+
# {
|
8
|
+
# items_per_line: 6
|
9
|
+
# }
|
10
|
+
#
|
11
|
+
|
12
|
+
module Promethee::StructureUpgrader::Components
|
13
|
+
class Collection < Base
|
14
|
+
def upgraded_attributes
|
15
|
+
{
|
16
|
+
'items_per_line' => {
|
17
|
+
'collection' => [
|
18
|
+
{ 'label' => '2', 'value' => 2 },
|
19
|
+
{ 'label' => '3', 'value' => 3 },
|
20
|
+
{ 'label' => '4', 'value' => 4 },
|
21
|
+
{ 'label' => '6', 'value' => 6 }
|
22
|
+
],
|
23
|
+
'searchable' => false,
|
24
|
+
'translatable' => false,
|
25
|
+
'type' => 'enum',
|
26
|
+
'value' => attribute('items_per_line')
|
27
|
+
}
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Collection Item Component
|
2
|
+
# ================
|
3
|
+
#
|
4
|
+
# V3
|
5
|
+
# -----
|
6
|
+
#
|
7
|
+
# {
|
8
|
+
# searchable_caption: "",
|
9
|
+
# media_type: "image",
|
10
|
+
# image: {
|
11
|
+
# id: undefined,
|
12
|
+
# name: ""
|
13
|
+
# },
|
14
|
+
# video: {
|
15
|
+
# url: "https://vimeo.com/115082758"
|
16
|
+
# }
|
17
|
+
# }
|
18
|
+
#
|
19
|
+
|
20
|
+
module Promethee::StructureUpgrader::Components
|
21
|
+
class CollectionItem < Base
|
22
|
+
def upgraded_attributes
|
23
|
+
{
|
24
|
+
'caption' => {
|
25
|
+
'searchable' => true,
|
26
|
+
'translatable' => true,
|
27
|
+
'type' => 'text',
|
28
|
+
'value' => attribute('searchable_caption')
|
29
|
+
},
|
30
|
+
'media_type' => {
|
31
|
+
'collection' => [
|
32
|
+
{ 'label' => 'Image', 'value' => 'image' },
|
33
|
+
{ 'label' => 'Video', 'value' => 'video' }
|
34
|
+
],
|
35
|
+
'searchable' => false,
|
36
|
+
'translatable' => false,
|
37
|
+
'type' => 'enum',
|
38
|
+
'value' => attribute('media_type')
|
39
|
+
},
|
40
|
+
'image' => {
|
41
|
+
'searchable' => false,
|
42
|
+
'translatable' => false,
|
43
|
+
'type' => 'blob',
|
44
|
+
'value' => attribute('image')
|
45
|
+
},
|
46
|
+
'video' => {
|
47
|
+
'searchable' => false,
|
48
|
+
'translatable' => true,
|
49
|
+
'type' => 'video',
|
50
|
+
'value' => attribute('video', 'url')
|
51
|
+
}
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# Column Component
|
2
|
+
# ================
|
3
|
+
#
|
4
|
+
# V3
|
5
|
+
# -----
|
6
|
+
#
|
7
|
+
# {
|
8
|
+
# size: 4,
|
9
|
+
# offset: 0,
|
10
|
+
# mobile: {
|
11
|
+
# enabled: false,
|
12
|
+
# size: 12,
|
13
|
+
# offset: 0
|
14
|
+
# },
|
15
|
+
# tablet: {
|
16
|
+
# enabled: false,
|
17
|
+
# size: 12,
|
18
|
+
# offset: 0
|
19
|
+
# }
|
20
|
+
# }
|
21
|
+
#
|
22
|
+
|
23
|
+
module Promethee::StructureUpgrader::Components
|
24
|
+
class Column < Base
|
25
|
+
def upgraded_attributes
|
26
|
+
{
|
27
|
+
'size' => {
|
28
|
+
'searchable' => false,
|
29
|
+
'translatable' => false,
|
30
|
+
'type' => 'integer',
|
31
|
+
'value' => attribute('size')
|
32
|
+
},
|
33
|
+
'offset' => {
|
34
|
+
'searchable' => false,
|
35
|
+
'translatable' => false,
|
36
|
+
'type' => 'integer',
|
37
|
+
'value' => attribute('offset')
|
38
|
+
},
|
39
|
+
'mobile' => {
|
40
|
+
'searchable' => false,
|
41
|
+
'translatable' => false,
|
42
|
+
'type' => 'hash',
|
43
|
+
'value' => {
|
44
|
+
'enabled' => {
|
45
|
+
'searchable' => false,
|
46
|
+
'translatable' => false,
|
47
|
+
'type' => 'boolean',
|
48
|
+
'value' => attribute('mobile', 'enabled')
|
49
|
+
},
|
50
|
+
'size' => {
|
51
|
+
'searchable' => false,
|
52
|
+
'translatable' => false,
|
53
|
+
'type' => 'integer',
|
54
|
+
'value' => attribute('mobile', 'size')
|
55
|
+
},
|
56
|
+
'offset' => {
|
57
|
+
'searchable' => false,
|
58
|
+
'translatable' => false,
|
59
|
+
'type' => 'integer',
|
60
|
+
'value' => attribute('mobile', 'offset')
|
61
|
+
}
|
62
|
+
}
|
63
|
+
},
|
64
|
+
'tablet' => {
|
65
|
+
'searchable' => false,
|
66
|
+
'translatable' => false,
|
67
|
+
'type' => 'hash',
|
68
|
+
'value' => {
|
69
|
+
'enabled' => {
|
70
|
+
'searchable' => false,
|
71
|
+
'translatable' => false,
|
72
|
+
'type' => 'boolean',
|
73
|
+
'value' => attribute('tablet', 'enabled')
|
74
|
+
},
|
75
|
+
'size' => {
|
76
|
+
'searchable' => false,
|
77
|
+
'translatable' => false,
|
78
|
+
'type' => 'integer',
|
79
|
+
'value' => attribute('tablet', 'size')
|
80
|
+
},
|
81
|
+
'offset' => {
|
82
|
+
'searchable' => false,
|
83
|
+
'translatable' => false,
|
84
|
+
'type' => 'integer',
|
85
|
+
'value' => attribute('tablet', 'offset')
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|