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
@@ -1,6 +1,6 @@
|
|
1
1
|
<%
|
2
|
-
# 576 768 992 1200
|
3
|
-
# | | | |
|
2
|
+
# 576 768 992 1200
|
3
|
+
# | | | |
|
4
4
|
# BS4 xs | sm | md | lg | xl
|
5
5
|
# BS3 xs | sm | md | lg
|
6
6
|
|
@@ -14,16 +14,16 @@
|
|
14
14
|
# - BS3 treats tablets as mobile (wrong behaviour for us)
|
15
15
|
|
16
16
|
# Desktop
|
17
|
-
size = component[:attributes]
|
18
|
-
offset = component[:attributes]
|
17
|
+
size = component[:attributes].dig(:size, :value)
|
18
|
+
offset = component[:attributes].dig(:offset, :value)
|
19
19
|
classes = " col-lg-#{size} offset-lg-#{offset} col-lg-offset-#{offset}" # BS4 desktop+, BS3 desktop large
|
20
20
|
|
21
21
|
# Tablet override
|
22
22
|
# - md for BS4
|
23
23
|
# - sm for BS3
|
24
|
-
if component[:attributes]
|
25
|
-
size = component[:attributes]
|
26
|
-
offset = component[:attributes]
|
24
|
+
if component[:attributes].dig(:tablet, :value, :enabled, :value)
|
25
|
+
size = component[:attributes].dig(:tablet, :value, :size, :value)
|
26
|
+
offset = component[:attributes].dig(:tablet, :value, :offset, :value)
|
27
27
|
classes += " col-md-#{size} col-md-offset-#{offset} offset-md-#{offset}" # BS4, breaks small desktop for BS3
|
28
28
|
classes += " col-sm-#{size} col-sm-offset-#{offset} offset-sm-#{offset}" # BS3, breaks mobile landscape for BS4
|
29
29
|
else
|
@@ -34,9 +34,9 @@ end
|
|
34
34
|
# Mobile override
|
35
35
|
# - no class for BS4 (xs disappears, sm is treated in the same way)
|
36
36
|
# - xs for BS3
|
37
|
-
if component[:attributes]
|
38
|
-
size = component[:attributes]
|
39
|
-
offset = component[:attributes]
|
37
|
+
if component[:attributes].dig(:mobile, :value, :enabled, :value)
|
38
|
+
size = component[:attributes].dig(:mobile, :value, :size, :value)
|
39
|
+
offset = component[:attributes].dig(:mobile, :value, :offset, :value)
|
40
40
|
classes += " col-#{size} offset-#{offset}" # BS4, does nothing for BS3
|
41
41
|
classes += " col-xs-#{size} col-xs-offset-#{offset}" # BS3, does nothing for BS4
|
42
42
|
end
|
@@ -9,15 +9,35 @@
|
|
9
9
|
type: 'cover',
|
10
10
|
attributes: {
|
11
11
|
image: {
|
12
|
-
|
13
|
-
|
12
|
+
searchable: false,
|
13
|
+
translatable: false,
|
14
|
+
type: 'blob',
|
15
|
+
value: {
|
16
|
+
id: undefined,
|
17
|
+
name: ''
|
18
|
+
}
|
14
19
|
},
|
15
|
-
|
16
|
-
|
17
|
-
|
20
|
+
surtitle: {
|
21
|
+
searchable: true,
|
22
|
+
translatable: true,
|
23
|
+
type: 'string',
|
24
|
+
value: ''
|
25
|
+
},
|
26
|
+
title: {
|
27
|
+
searchable: true,
|
28
|
+
translatable: true,
|
29
|
+
type: 'string',
|
30
|
+
value: ''
|
31
|
+
},
|
32
|
+
subtitle: {
|
33
|
+
searchable: true,
|
34
|
+
translatable: true,
|
35
|
+
type: 'string',
|
36
|
+
value: ''
|
37
|
+
}
|
18
38
|
}
|
19
39
|
}
|
20
40
|
})
|
21
41
|
JAVASCRIPT
|
22
42
|
%>
|
23
|
-
<div ng-init="<%= init %>"></div>
|
43
|
+
<div ng-init="<%= init %>"></div>
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/cover/edit/inspect">
|
2
|
-
<promethee-uploader ng-model="promethee.inspected.attributes.image" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
2
|
+
<promethee-uploader ng-model="promethee.inspected.attributes.image.value" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
3
3
|
|
4
4
|
<div class="form-group">
|
5
5
|
<label class="label-control">Surtitle</label>
|
6
|
-
<input ng-model="promethee.inspected.attributes.
|
6
|
+
<input ng-model="promethee.inspected.attributes.surtitle.value" class="form-control" type="text"/>
|
7
7
|
</div>
|
8
8
|
|
9
9
|
<div class="form-group">
|
10
10
|
<label class="label-control">Title</label>
|
11
|
-
<input ng-model="promethee.inspected.attributes.
|
11
|
+
<input ng-model="promethee.inspected.attributes.title.value" class="form-control" type="text"/>
|
12
12
|
</div>
|
13
13
|
|
14
14
|
<div class="form-group">
|
15
15
|
<label class="label-control">Subtitle</label>
|
16
|
-
<input ng-model="promethee.inspected.attributes.
|
16
|
+
<input ng-model="promethee.inspected.attributes.subtitle.value" class="form-control" type="text"/>
|
17
17
|
</div>
|
18
18
|
</script>
|
@@ -2,11 +2,11 @@
|
|
2
2
|
<%= render 'promethee/edit/move.header', type: 'cover' %>
|
3
3
|
<div class=" promethee-edit__wrapper
|
4
4
|
promethee-edit__cover-content"
|
5
|
-
style="background-image:url('{{ component.attributes.image.id ? '/promethee/blob/' + component.attributes.image.id : '' }}')">
|
5
|
+
style="background-image:url('{{ component.attributes.image.value.id ? '/promethee/blob/' + component.attributes.image.value.id : '' }}')">
|
6
6
|
<hgroup>
|
7
|
-
<h2 class="surtitle">{{component.attributes.
|
8
|
-
<h1>{{component.attributes.
|
9
|
-
<h2 class="subtitle">{{component.attributes.
|
7
|
+
<h2 class="surtitle">{{component.attributes.surtitle.value}}</h2>
|
8
|
+
<h1>{{component.attributes.title.value}}</h1>
|
9
|
+
<h2 class="subtitle">{{component.attributes.subtitle.value}}</h2>
|
10
10
|
</hgroup>
|
11
11
|
</div>
|
12
12
|
</div>
|
@@ -1,48 +1,48 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/cover/localize">
|
2
|
-
<div ng-show="master.attributes.
|
2
|
+
<div ng-show="master.attributes.surtitle.value || master.attributes.title.value || master.attributes.subtitle.value">
|
3
3
|
<hr>
|
4
4
|
|
5
5
|
<div class="row">
|
6
6
|
<div class="col-md-6">
|
7
|
-
<img ng-src="/promethee/blob/{{master.attributes.image.id}}" class="img-fluid img-responsive">
|
7
|
+
<img ng-src="/promethee/blob/{{master.attributes.image.value.id}}" class="img-fluid img-responsive" style="max-width: 200px">
|
8
8
|
</div>
|
9
9
|
</div>
|
10
10
|
|
11
|
-
<div class="row" ng-show="master.attributes.
|
11
|
+
<div class="row" ng-show="master.attributes.surtitle.value">
|
12
12
|
<div class="col-md-6">
|
13
13
|
<b>Surtitle</b>
|
14
|
-
<p>{{master.attributes.
|
14
|
+
<p>{{master.attributes.surtitle.value}}</p>
|
15
15
|
</div>
|
16
16
|
<div class="col-md-6">
|
17
17
|
<div class="form-group">
|
18
|
-
<
|
19
|
-
<input class="form-control" ng-model="component.attributes.
|
18
|
+
<b>Surtitle</b>
|
19
|
+
<input class="form-control" ng-model="component.attributes.surtitle.value" type="text">
|
20
20
|
</div>
|
21
21
|
</div>
|
22
22
|
</div>
|
23
23
|
|
24
|
-
<div class="row" ng-show="master.attributes.
|
24
|
+
<div class="row" ng-show="master.attributes.title.value">
|
25
25
|
<div class="col-md-6">
|
26
26
|
<b>Title</b>
|
27
|
-
<p>{{master.attributes.
|
27
|
+
<p>{{master.attributes.title.value}}</p>
|
28
28
|
</div>
|
29
29
|
<div class="col-md-6">
|
30
30
|
<div class="form-group">
|
31
|
-
<
|
32
|
-
<input class="form-control" ng-model="component.attributes.
|
31
|
+
<b>Title</b>
|
32
|
+
<input class="form-control" ng-model="component.attributes.title.value" type="text">
|
33
33
|
</div>
|
34
34
|
</div>
|
35
35
|
</div>
|
36
36
|
|
37
|
-
<div class="row" ng-show="master.attributes.
|
37
|
+
<div class="row" ng-show="master.attributes.subtitle.value">
|
38
38
|
<div class="col-md-6">
|
39
39
|
<b>Subtitle</b>
|
40
|
-
<p>{{master.attributes.
|
40
|
+
<p>{{master.attributes.subtitle.value}}</p>
|
41
41
|
</div>
|
42
42
|
<div class="col-md-6">
|
43
43
|
<div class="form-group">
|
44
|
-
<
|
45
|
-
<input class="form-control" ng-model="component.attributes.
|
44
|
+
<b>Subtitle</b>
|
45
|
+
<input class="form-control" ng-model="component.attributes.subtitle.value" type="text">
|
46
46
|
</div>
|
47
47
|
</div>
|
48
48
|
</div>
|
@@ -1,21 +1,21 @@
|
|
1
1
|
<%
|
2
|
-
blob = blob_from_data component[:attributes]
|
2
|
+
blob = blob_from_data component[:attributes].dig(:image, :value)
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
surtitle = component[:attributes].dig(:surtitle, :value)&.to_s
|
5
|
+
title = component[:attributes].dig(:title, :value)&.to_s
|
6
|
+
subtitle = component[:attributes].dig(:subtitle, :value)&.to_s
|
7
7
|
%>
|
8
8
|
<div id="component-<%= component[:id] %>" class="<%= promethee_class_for(component) %>" style="background-image: url(<%= url_for(blob.variant(resize: '1920>', quality: 95)) if blob %>)">
|
9
|
-
<% if
|
10
|
-
<p><%=
|
9
|
+
<% if surtitle.present? %>
|
10
|
+
<p><%= surtitle %></p>
|
11
11
|
<% end %>
|
12
12
|
|
13
|
-
<% if
|
14
|
-
<h1><%=
|
13
|
+
<% if title.present? %>
|
14
|
+
<h1><%= title %></h1>
|
15
15
|
<% end %>
|
16
16
|
|
17
|
-
<% if
|
18
|
-
<p><%=
|
17
|
+
<% if subtitle.present? %>
|
18
|
+
<p><%= subtitle %></p>
|
19
19
|
<% end %>
|
20
20
|
|
21
21
|
</div>
|
@@ -9,12 +9,32 @@
|
|
9
9
|
type: 'faq_item',
|
10
10
|
attributes: {
|
11
11
|
image: {
|
12
|
-
|
13
|
-
|
12
|
+
searchable: false,
|
13
|
+
translatable: false,
|
14
|
+
type: 'blob',
|
15
|
+
value: {
|
16
|
+
id: undefined,
|
17
|
+
name: ''
|
18
|
+
}
|
14
19
|
},
|
15
|
-
|
16
|
-
|
17
|
-
|
20
|
+
title: {
|
21
|
+
searchable: true,
|
22
|
+
translatable: true,
|
23
|
+
type: 'string',
|
24
|
+
value: ''
|
25
|
+
},
|
26
|
+
body: {
|
27
|
+
searchable: true,
|
28
|
+
translatable: true,
|
29
|
+
type: 'text',
|
30
|
+
value: ''
|
31
|
+
},
|
32
|
+
special_question: {
|
33
|
+
searchable: false,
|
34
|
+
translatable: false,
|
35
|
+
type: 'boolean',
|
36
|
+
value: false
|
37
|
+
}
|
18
38
|
}
|
19
39
|
}
|
20
40
|
})
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/faq_item/edit/inspect">
|
2
|
-
<promethee-uploader ng-model="promethee.inspected.attributes.image" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
2
|
+
<promethee-uploader ng-model="promethee.inspected.attributes.image.value" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
3
3
|
|
4
4
|
<div class="form-group">
|
5
5
|
<label class="label-control">Title</label>
|
6
|
-
<input class="form-control" ng-model="promethee.inspected.attributes.
|
6
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.title.value" type="text">
|
7
7
|
</div>
|
8
8
|
|
9
9
|
<div class="form-group">
|
10
10
|
<label class="label-control">Body</label>
|
11
|
-
<summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.
|
11
|
+
<summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.body.value"></summernote>
|
12
12
|
</div>
|
13
13
|
|
14
14
|
<div class="form-group">
|
15
|
-
<input ng-model="promethee.inspected.attributes.special_question" type="checkbox" />
|
15
|
+
<input ng-model="promethee.inspected.attributes.special_question.value" type="checkbox" />
|
16
16
|
<label class="label-control"> Special question</label>
|
17
17
|
</div>
|
18
18
|
</script>
|
@@ -1,17 +1,17 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/faq_item/edit/move">
|
2
2
|
<%= render 'promethee/edit/move.header', type: 'faq_item' %>
|
3
3
|
<div class="header">FAQ Item</div>
|
4
|
-
<div class="row promethee-edit__faq_item__content{{ component.attributes.special_question ? '--special' : '' }}">
|
4
|
+
<div class="row promethee-edit__faq_item__content{{ component.attributes.special_question.value ? '--special' : '' }}">
|
5
5
|
<div class="col-9 col-xs-9">
|
6
|
-
<h4>{{component.attributes.
|
7
|
-
<div ng-bind-html="component.attributes.
|
6
|
+
<h4>{{component.attributes.title.value}}</h4>
|
7
|
+
<div ng-bind-html="component.attributes.body.value | htmlSafe"></div>
|
8
8
|
</div>
|
9
9
|
<div class="col-3 col-xs-3">
|
10
|
-
<figure ng-show="component.attributes.image.id">
|
11
|
-
<img ng-src="{{ component.attributes.image.id ? '/promethee/blob/' + component.attributes.image.id : '#' }}" class="img-fluid img-responsive">
|
10
|
+
<figure ng-show="component.attributes.image.value.id">
|
11
|
+
<img ng-src="{{ component.attributes.image.value.id ? '/promethee/blob/' + component.attributes.image.value.id : '#' }}" class="img-fluid img-responsive">
|
12
12
|
</figure>
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
|
-
</script>
|
17
|
+
</script>
|
@@ -1,27 +1,27 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/faq_item/localize">
|
2
|
-
<div ng-show="master.attributes.
|
2
|
+
<div ng-show="master.attributes.title.value">
|
3
3
|
<hr>
|
4
4
|
<div class="row">
|
5
5
|
<div class="col-md-6">
|
6
6
|
<b>Title</b>
|
7
|
-
<p>{{master.attributes.
|
7
|
+
<p>{{master.attributes.title.value}}</p>
|
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.
|
11
|
+
<b>Title</b>
|
12
|
+
<input class="form-control" ng-model="component.attributes.title.value" type="text">
|
13
13
|
</div>
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
<div class="row">
|
17
17
|
<div class="col-md-6">
|
18
18
|
<b>Body</b>
|
19
|
-
<div ng-bind-html="master.attributes.
|
19
|
+
<div ng-bind-html="master.attributes.body.value | htmlSafe"></div>
|
20
20
|
</div>
|
21
21
|
<div class="col-md-6">
|
22
22
|
<div class="form-group">
|
23
|
-
<
|
24
|
-
<summernote config="summernoteConfig" ng-model="component.attributes.
|
23
|
+
<b>Body</b>
|
24
|
+
<summernote config="summernoteConfig" ng-model="component.attributes.body.value"></summernote>
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
</div>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<%
|
2
|
-
title = component[:attributes]
|
3
|
-
body = component[:attributes]
|
4
|
-
special_question = component[:attributes]
|
2
|
+
title = component[:attributes].dig(:title, :value)&.to_s
|
3
|
+
body = component[:attributes].dig(:body, :value)&.to_s.html_safe
|
4
|
+
special_question = component[:attributes].dig(:special_question, :value)
|
5
5
|
|
6
|
-
image_blob = blob_from_data component[:attributes]
|
6
|
+
image_blob = blob_from_data component[:attributes].dig(:image, :value)
|
7
7
|
%>
|
8
8
|
|
9
9
|
<div class="<%= promethee_class_for component %> <%= 'promethee__component__faq_item--special' if special_question %>">
|
@@ -18,14 +18,14 @@ image_blob = blob_from_data component[:attributes][:image]
|
|
18
18
|
<% if image_blob %>
|
19
19
|
<div class="row ">
|
20
20
|
<div class="col-9 col-xs-9">
|
21
|
-
<%= body
|
21
|
+
<%= body %>
|
22
22
|
</div>
|
23
23
|
<div class="col-3 col-xs-3">
|
24
24
|
<%= render 'promethee/show/image.srcset', blob: image_blob, alt: '', caption: '' %>
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
<% else %>
|
28
|
-
<%= body
|
28
|
+
<%= body %>
|
29
29
|
<% end %>
|
30
30
|
</div>
|
31
|
-
</div>
|
31
|
+
</div>
|
@@ -9,11 +9,26 @@
|
|
9
9
|
type: 'image',
|
10
10
|
attributes: {
|
11
11
|
image: {
|
12
|
-
|
13
|
-
|
12
|
+
searchable: false,
|
13
|
+
translatable: false,
|
14
|
+
type: 'blob',
|
15
|
+
value: {
|
16
|
+
id: undefined,
|
17
|
+
name: ''
|
18
|
+
}
|
14
19
|
},
|
15
|
-
|
16
|
-
|
20
|
+
alt: {
|
21
|
+
searchable: true,
|
22
|
+
translatable: true,
|
23
|
+
type: 'string',
|
24
|
+
value: ''
|
25
|
+
},
|
26
|
+
caption: {
|
27
|
+
searchable: true,
|
28
|
+
translatable: true,
|
29
|
+
type: 'string',
|
30
|
+
value: ''
|
31
|
+
}
|
17
32
|
}
|
18
33
|
}
|
19
34
|
})
|
@@ -1,16 +1,16 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/image/edit/inspect">
|
2
2
|
|
3
|
-
<promethee-uploader ng-model="promethee.inspected.attributes.image" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
3
|
+
<promethee-uploader ng-model="promethee.inspected.attributes.image.value" label="Image" limits="'.jpg,.jpeg,.png,.gif'"></promethee-uploader>
|
4
4
|
|
5
5
|
<div class="form-group">
|
6
6
|
<label class="label-control">Caption</label>
|
7
|
-
<input class="form-control" ng-model="promethee.inspected.attributes.
|
7
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.caption.value">
|
8
8
|
</div>
|
9
9
|
|
10
10
|
<%= render 'promethee/edit/inspect.advanced' %>
|
11
11
|
<div class="form-group">
|
12
12
|
<label class="label-control">Alt</label>
|
13
|
-
<input class="form-control" ng-model="promethee.inspected.attributes.
|
13
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.alt.value">
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
</script>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/image/edit/move">
|
2
2
|
<%= render 'promethee/edit/move.header', type: 'image' %>
|
3
|
-
<figure ng-show="component.attributes.image.id">
|
4
|
-
<img ng-src="{{ component.attributes.image.id ? '/promethee/blob/' + component.attributes.image.id : '#' }}"
|
3
|
+
<figure ng-show="component.attributes.image.value.id">
|
4
|
+
<img ng-src="{{ component.attributes.image.value.id ? '/promethee/blob/' + component.attributes.image.value.id : '#' }}"
|
5
5
|
class="img-fluid img-responsive">
|
6
|
-
<figcaption ng-show="component.attributes.
|
7
|
-
{{component.attributes.
|
6
|
+
<figcaption ng-show="component.attributes.caption.value">
|
7
|
+
{{component.attributes.caption.value}}
|
8
8
|
</figcaption>
|
9
9
|
</figure>
|
10
|
-
<div ng-hide="component.attributes.image.id">
|
10
|
+
<div ng-hide="component.attributes.image.value.id">
|
11
11
|
<p ng-hide="editing"
|
12
12
|
class="text-center text-empty">Click to set the image</p>
|
13
13
|
</div>
|