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
@@ -0,0 +1,22 @@
|
|
1
|
+
<%
|
2
|
+
init = <<~JAVASCRIPT
|
3
|
+
promethee.definitions.push({
|
4
|
+
name: 'Table cell',
|
5
|
+
icon: #{ promethee_component_render_icon 'table_cell' },
|
6
|
+
position: 60,
|
7
|
+
library: false,
|
8
|
+
data: {
|
9
|
+
type: 'table_cell',
|
10
|
+
attributes: {
|
11
|
+
text: {
|
12
|
+
searchable: true,
|
13
|
+
translatable: true,
|
14
|
+
type: 'string',
|
15
|
+
value: ''
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
})
|
20
|
+
JAVASCRIPT
|
21
|
+
%>
|
22
|
+
<div ng-init="<%= init %>"></div>
|
File without changes
|
File without changes
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500" viewBox="0 0 500 500">
|
2
|
+
<image id="Objet_dynamique_vectoriel" data-name="Objet dynamique vectoriel" x="72" y="113" width="355" height="274" xlink:href="data:img/png;base64,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"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/table_cell/localize">
|
2
|
+
<div ng-show="master.attributes.text.value !== ''">
|
3
|
+
<div class="row mt-2" ng-show="master.attributes.text.value !== ''">
|
4
|
+
<div class="col-md-6">
|
5
|
+
<b>Text</b>
|
6
|
+
<p>{{ master.attributes.text.value }}</p>
|
7
|
+
</div>
|
8
|
+
<div class="col-md-6">
|
9
|
+
<b>Text</b>
|
10
|
+
<input class="form-control" ng-model="component.attributes.text.value" type="text">
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</script>
|
File without changes
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/text/edit/inspect">
|
2
2
|
<div class="form-group">
|
3
|
-
<summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.
|
3
|
+
<summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.body.value"></summernote>
|
4
4
|
</div>
|
5
5
|
|
6
|
-
{{promethee.inspected.attributes.
|
7
|
-
{{promethee.inspected.attributes.
|
6
|
+
{{promethee.inspected.attributes.body.value | textContentFromHTML | numberOfWords}} words<br>
|
7
|
+
{{promethee.inspected.attributes.body.value | textContentFromHTML | numberOfCharacters}} characters
|
8
8
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/text/edit/move">
|
2
2
|
<%= render 'promethee/edit/move.header', type: 'text' %>
|
3
|
-
<div ng-bind-html="component.attributes.
|
3
|
+
<div ng-bind-html="component.attributes.body.value | htmlSafe"></div>
|
4
4
|
</div>
|
5
5
|
</div>
|
6
6
|
</script>
|
@@ -1,14 +1,14 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/text/localize">
|
2
|
-
<div ng-show="master.attributes.
|
2
|
+
<div ng-show="master.attributes.body.value">
|
3
3
|
<hr>
|
4
4
|
<div class="row">
|
5
5
|
<div class="col-md-6">
|
6
6
|
<b>Text</b>
|
7
|
-
<div ng-bind-html="master.attributes.
|
7
|
+
<div ng-bind-html="master.attributes.body.value | htmlSafe"></div>
|
8
8
|
</div>
|
9
9
|
<div class="col-md-6">
|
10
10
|
<b>Text</b>
|
11
|
-
<summernote config="summernoteConfig" ng-model="component.attributes.
|
11
|
+
<summernote config="summernoteConfig" ng-model="component.attributes.body.value"></summernote>
|
12
12
|
</div>
|
13
13
|
</div>
|
14
14
|
</div>
|
@@ -8,8 +8,18 @@
|
|
8
8
|
data: {
|
9
9
|
type: 'video',
|
10
10
|
attributes: {
|
11
|
-
url:
|
12
|
-
|
11
|
+
url: {
|
12
|
+
searchable: false,
|
13
|
+
translatable: true,
|
14
|
+
type: 'string',
|
15
|
+
value: 'https://vimeo.com/115082758'
|
16
|
+
},
|
17
|
+
autoplay: {
|
18
|
+
searchable: false,
|
19
|
+
translatable: false,
|
20
|
+
type: 'boolean',
|
21
|
+
value: false
|
22
|
+
}
|
13
23
|
}
|
14
24
|
}
|
15
25
|
})
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/video/edit/inspect">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Url</label>
|
4
|
-
<input ng-model="promethee.inspected.attributes.url" class="form-control" type="text" />
|
4
|
+
<input ng-model="promethee.inspected.attributes.url.value" class="form-control" type="text" />
|
5
5
|
</div>
|
6
6
|
|
7
7
|
<div class="form-group">
|
8
|
-
<input ng-model="promethee.inspected.attributes.autoplay" type="checkbox" />
|
8
|
+
<input ng-model="promethee.inspected.attributes.autoplay.value" type="checkbox" />
|
9
9
|
<label class="label-control"> Autoplay</label>
|
10
10
|
</div>
|
11
11
|
</script>
|
@@ -2,11 +2,11 @@
|
|
2
2
|
<%= render 'promethee/edit/move.header', type: 'video' %>
|
3
3
|
<div ng-controller="VideoController">
|
4
4
|
<div class="embed-responsive embed-responsive-16by9">
|
5
|
-
<iframe ng-if="embed"
|
6
|
-
frameborder="0"
|
7
|
-
webkitallowfullscreen=""
|
8
|
-
mozallowfullscreen=""
|
9
|
-
allowfullscreen="allowfullscreen"
|
5
|
+
<iframe ng-if="embed"
|
6
|
+
frameborder="0"
|
7
|
+
webkitallowfullscreen=""
|
8
|
+
mozallowfullscreen=""
|
9
|
+
allowfullscreen="allowfullscreen"
|
10
10
|
ng-src="{{embed | urlSafe}}"></iframe>
|
11
11
|
<div class="video-neutralizing-overlay"></div>
|
12
12
|
</div>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
Object.defineProperty($scope, 'embed', {
|
21
21
|
get: function() {
|
22
22
|
var embed = null;
|
23
|
-
var url = this.component.attributes.url + '';
|
23
|
+
var url = this.component.attributes.url.value + '';
|
24
24
|
|
25
25
|
if(url.includes('vimeo')) {
|
26
26
|
var id = url.replace(/^(?:https?:)?\/\/(?:(?:www|player)\.)?vimeo\.com\/(?:video\/)?(\d+).*?$/, '$1');
|
@@ -1,15 +1,15 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/video/localize">
|
2
|
-
<div ng-show="master.attributes.url !== ''">
|
2
|
+
<div ng-show="master.attributes.url.value !== ''">
|
3
3
|
<hr>
|
4
4
|
<div class="row">
|
5
5
|
<div class="col-md-6">
|
6
6
|
<b>URL</b>
|
7
|
-
<div ng-bind-html="master.attributes.url | htmlSafe"></div>
|
7
|
+
<div ng-bind-html="master.attributes.url.value | htmlSafe"></div>
|
8
8
|
</div>
|
9
9
|
<div class="col-md-6">
|
10
10
|
<div class="form-group">
|
11
|
-
<
|
12
|
-
<input class="form-control" ng-model="component.attributes.url" type="text">
|
11
|
+
<b>URL</b>
|
12
|
+
<input class="form-control" ng-model="component.attributes.url.value" type="text">
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
</div>
|
@@ -1,14 +1,15 @@
|
|
1
1
|
<%
|
2
|
-
url = component[:attributes]
|
2
|
+
url = component[:attributes].dig(:url, :value)&.to_s
|
3
|
+
autoplay = component[:attributes].dig(:autoplay, :value)
|
3
4
|
|
4
5
|
if 'vimeo'.in? url
|
5
6
|
video_id = url.gsub(/\A(?:https?:)?\/\/(?:(?:www|player)\.)?vimeo\.com\/(?:video\/)?(\d+).*?\z/, '\1')
|
6
7
|
iframe_src = "https://player.vimeo.com/video/#{video_id}?color=ffffff&title=0&byline=0&portrait=0"
|
7
|
-
iframe_src += "&loop=1&autoplay=1&autopause=0&muted=1" if
|
8
|
+
iframe_src += "&loop=1&autoplay=1&autopause=0&muted=1" if autoplay
|
8
9
|
elsif 'youtube'.in? url
|
9
10
|
video_id = url.split('watch?v=').last
|
10
11
|
iframe_src = "https://www.youtube.com/embed/#{video_id}"
|
11
|
-
iframe_src += "?autoplay=1&mute=1&loop=1" if
|
12
|
+
iframe_src += "?autoplay=1&mute=1&loop=1" if autoplay
|
12
13
|
else
|
13
14
|
iframe_src = url
|
14
15
|
end
|
@@ -7,27 +7,192 @@
|
|
7
7
|
{
|
8
8
|
"type": "row",
|
9
9
|
"attributes": {
|
10
|
-
|
11
|
-
|
10
|
+
bgcolor: {
|
11
|
+
searchable: false,
|
12
|
+
translatable: false,
|
13
|
+
type: 'color',
|
14
|
+
value: "rgba(255,255,255,0)",
|
15
|
+
},
|
16
|
+
backgrounds: {
|
17
|
+
searchable: false,
|
18
|
+
translatable: false,
|
19
|
+
type: 'array',
|
20
|
+
value: []
|
21
|
+
}
|
12
22
|
},
|
13
23
|
"children": [
|
14
24
|
{
|
15
25
|
"type": "column",
|
16
|
-
"attributes": {
|
26
|
+
"attributes": {
|
27
|
+
size: {
|
28
|
+
searchable: false,
|
29
|
+
translatable: false,
|
30
|
+
type: 'integer',
|
31
|
+
value: 4
|
32
|
+
},
|
33
|
+
offset: {
|
34
|
+
searchable: false,
|
35
|
+
translatable: false,
|
36
|
+
type: 'integer',
|
37
|
+
value: 0
|
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: false
|
49
|
+
},
|
50
|
+
size: {
|
51
|
+
searchable: false,
|
52
|
+
translatable: false,
|
53
|
+
type: 'integer',
|
54
|
+
value: 12
|
55
|
+
},
|
56
|
+
offset: {
|
57
|
+
searchable: false,
|
58
|
+
translatable: false,
|
59
|
+
type: 'integer',
|
60
|
+
value: 0
|
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: false
|
74
|
+
},
|
75
|
+
size: {
|
76
|
+
searchable: false,
|
77
|
+
translatable: false,
|
78
|
+
type: 'integer',
|
79
|
+
value: 12
|
80
|
+
},
|
81
|
+
offset: {
|
82
|
+
searchable: false,
|
83
|
+
translatable: false,
|
84
|
+
type: 'integer',
|
85
|
+
value: 0
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
},
|
17
90
|
"children": [
|
18
91
|
{
|
19
92
|
"type": "image",
|
20
|
-
"attributes": {
|
93
|
+
"attributes": {
|
94
|
+
image: {
|
95
|
+
searchable: false,
|
96
|
+
translatable: false,
|
97
|
+
type: 'blob',
|
98
|
+
value: {
|
99
|
+
id: undefined,
|
100
|
+
name: ''
|
101
|
+
}
|
102
|
+
},
|
103
|
+
alt: {
|
104
|
+
searchable: true,
|
105
|
+
translatable: true,
|
106
|
+
type: 'string',
|
107
|
+
value: ''
|
108
|
+
},
|
109
|
+
caption: {
|
110
|
+
searchable: true,
|
111
|
+
translatable: true,
|
112
|
+
type: 'string',
|
113
|
+
value: ''
|
114
|
+
}
|
115
|
+
}
|
21
116
|
}
|
22
117
|
]
|
23
118
|
},
|
24
119
|
{
|
25
120
|
"type": "column",
|
26
|
-
"attributes": {
|
121
|
+
"attributes": {
|
122
|
+
size: {
|
123
|
+
searchable: false,
|
124
|
+
translatable: false,
|
125
|
+
type: 'integer',
|
126
|
+
value: 8
|
127
|
+
},
|
128
|
+
offset: {
|
129
|
+
searchable: false,
|
130
|
+
translatable: false,
|
131
|
+
type: 'integer',
|
132
|
+
value: 0
|
133
|
+
},
|
134
|
+
mobile: {
|
135
|
+
searchable: false,
|
136
|
+
translatable: false,
|
137
|
+
type: 'hash',
|
138
|
+
value: {
|
139
|
+
enabled: {
|
140
|
+
searchable: false,
|
141
|
+
translatable: false,
|
142
|
+
type: 'boolean',
|
143
|
+
value: false
|
144
|
+
},
|
145
|
+
size: {
|
146
|
+
searchable: false,
|
147
|
+
translatable: false,
|
148
|
+
type: 'integer',
|
149
|
+
value: 12
|
150
|
+
},
|
151
|
+
offset: {
|
152
|
+
searchable: false,
|
153
|
+
translatable: false,
|
154
|
+
type: 'integer',
|
155
|
+
value: 0
|
156
|
+
}
|
157
|
+
}
|
158
|
+
},
|
159
|
+
tablet: {
|
160
|
+
searchable: false,
|
161
|
+
translatable: false,
|
162
|
+
type: 'hash',
|
163
|
+
value: {
|
164
|
+
enabled: {
|
165
|
+
searchable: false,
|
166
|
+
translatable: false,
|
167
|
+
type: 'boolean',
|
168
|
+
value: false
|
169
|
+
},
|
170
|
+
size: {
|
171
|
+
searchable: false,
|
172
|
+
translatable: false,
|
173
|
+
type: 'integer',
|
174
|
+
value: 12
|
175
|
+
},
|
176
|
+
offset: {
|
177
|
+
searchable: false,
|
178
|
+
translatable: false,
|
179
|
+
type: 'integer',
|
180
|
+
value: 0
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
},
|
27
185
|
"children": [
|
28
186
|
{
|
29
187
|
"type": "text",
|
30
|
-
"attributes": {
|
188
|
+
"attributes": {
|
189
|
+
body: {
|
190
|
+
searchable: true,
|
191
|
+
translatable: true,
|
192
|
+
type: 'text',
|
193
|
+
value: '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A dicta, est quos distinctio culpa! Quasi cupiditate, totam nulla reprehenderit animi iusto qui cumque culpa repellat eum sit? Debitis, laboriosam reiciendis!</p>'
|
194
|
+
}
|
195
|
+
}
|
31
196
|
}
|
32
197
|
]
|
33
198
|
}
|
@@ -25,16 +25,27 @@ class Promethee::Data::Localization < Promethee::Data
|
|
25
25
|
@master_data.flat.each do |master_component|
|
26
26
|
localized_component = find_localized_component master_component[:id]
|
27
27
|
# We take the localized component if it exists, the master component otherwise
|
28
|
-
component = localized_component || master_component
|
28
|
+
component = localized_component || get_component_without_attributes_values(master_component)
|
29
29
|
component[:attributes] ||= {}
|
30
30
|
# We add it to the list of localized components
|
31
31
|
@data[:components] << component
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
+
def get_component_without_attributes_values(component)
|
36
|
+
clean_component = component.deep_dup
|
37
|
+
clean_component[:attributes] = clean_component[:attributes].keep_if { |key, object_value|
|
38
|
+
object_value[:translatable]
|
39
|
+
}.map { |key, object_value|
|
40
|
+
[key, object_value.merge({ value: '' })]
|
41
|
+
}.to_h
|
42
|
+
|
43
|
+
clean_component
|
44
|
+
end
|
45
|
+
|
35
46
|
def find_localized_component(id)
|
36
47
|
return unless @data_before_merge
|
37
48
|
return unless @data_before_merge.include? :components
|
38
49
|
@data_before_merge[:components].find { |component| component[:id] == id }
|
39
50
|
end
|
40
|
-
end
|
51
|
+
end
|