promethee 1.0.18 → 1.0.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -4
- data/app/assets/stylesheets/promethee-editor/_component.sass +17 -0
- data/app/assets/stylesheets/promethee-editor/_mover.sass +11 -0
- data/app/assets/stylesheets/promethee.sass +15 -0
- data/app/views/promethee/_localize.html.erb +4 -2
- data/app/views/promethee/edit/_write.html.erb +3 -0
- data/app/views/promethee/edit/move/component/_cover.html.erb +8 -0
- data/app/views/promethee/edit/move/component/_details.html.erb +6 -0
- data/app/views/promethee/edit/move/component/_image.html.erb +4 -1
- data/app/views/promethee/edit/move/component/_slider.html.erb +7 -0
- data/app/views/promethee/edit/write/component/_cover.html.erb +70 -0
- data/app/views/promethee/edit/write/component/_details.html.erb +68 -0
- data/app/views/promethee/edit/write/component/_image.html.erb +19 -3
- data/app/views/promethee/edit/write/component/_slider.html.erb +77 -0
- data/app/views/promethee/localize/_component.html.erb +3 -0
- data/app/views/promethee/localize/component/_column.html.erb +2 -10
- data/app/views/promethee/localize/component/_cover.html.erb +11 -0
- data/app/views/promethee/localize/component/_details.html.erb +11 -0
- data/app/views/promethee/localize/component/_image.html.erb +11 -1
- data/app/views/promethee/localize/component/_slider.html.erb +3 -0
- data/app/views/promethee/localize/component/_text.html.erb +9 -1
- data/app/views/promethee/show/component/_cover.html.erb +6 -0
- data/app/views/promethee/show/component/_details.html.erb +8 -0
- data/app/views/promethee/show/component/_image.html.erb +9 -2
- data/app/views/promethee/show/component/_slider.html.erb +16 -0
- data/lib/promethee/rails/version.rb +1 -1
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff4222a60ff026188abda14dedaef525f7af012a
|
4
|
+
data.tar.gz: 8272fbd675688bb2b8c079c1c61b922f6b86a992
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fa8ec13bc82dc0b430724afad25795c56166774a792a934b72160d9977d07f9c2e296ebfd268e76852f88fbb23e60a4fbad956a5c46a173c69853c101dd58b6
|
7
|
+
data.tar.gz: 30c2f867088622d787d15727d8fb5117f564ddaac82c005e4577289f9baf3bff5e2f3b3965f68f425b067130952a55a4c82d4e75f82a19424a4f502a10f96299
|
data/README.md
CHANGED
@@ -163,9 +163,10 @@ With javascript set:
|
|
163
163
|
//= require jquery
|
164
164
|
//= require jquery-ui
|
165
165
|
//= require bootstrap
|
166
|
+
//= require summernote
|
166
167
|
//= require angular
|
167
168
|
//= require angular-animate
|
168
|
-
//= require
|
169
|
+
//= require angular-ui-bootstrap
|
169
170
|
//= require angular-summernote
|
170
171
|
//= require promethee
|
171
172
|
//= require promethee-editor
|
@@ -306,12 +307,15 @@ This would do quite the same thing:
|
|
306
307
|
- promethee-i18n
|
307
308
|
- Component versioning
|
308
309
|
- Edit in a column
|
309
|
-
- UI
|
310
|
+
- UI and branding
|
310
311
|
- Gallery
|
311
312
|
- Menu
|
312
313
|
- Tab
|
313
|
-
- Cover
|
314
|
-
- Chapter (or maybe it's a cover too?)
|
314
|
+
- ~~Cover~~
|
315
|
+
- ~~Chapter (or maybe it's a cover too? *Yes it is, but see next line*)~~
|
316
|
+
- Section (in order to organize page contents within distincts parts which can be referenced. eg: scrollspy, hyperlink, tabs, ...)
|
317
|
+
- Utils rake tasks (generate, destroy, override, ...)
|
318
|
+
- Doc (to be updated in terms of the new component concept and structure)
|
315
319
|
|
316
320
|
## Development
|
317
321
|
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -2,9 +2,26 @@
|
|
2
2
|
&--text
|
3
3
|
.mce-tinymce
|
4
4
|
border: none
|
5
|
+
|
5
6
|
.mce-panel
|
6
7
|
border-top-color: $promethee-transparent-grey
|
8
|
+
|
7
9
|
.mce-btn-group:not(:first-child)
|
8
10
|
border-left-color: $promethee-transparent-grey
|
11
|
+
|
9
12
|
.mce-top-part::before
|
10
13
|
box-shadow: none
|
14
|
+
|
15
|
+
&--cover
|
16
|
+
.promethee-editor__cover-content
|
17
|
+
padding: 150px 30px
|
18
|
+
background-repeat: no-repeat
|
19
|
+
background-position: center center
|
20
|
+
background-size: cover
|
21
|
+
|
22
|
+
&--slider
|
23
|
+
.fontawesome-carousel-control .fa
|
24
|
+
top: 50%
|
25
|
+
position: absolute
|
26
|
+
transform: translateY(-50%)
|
27
|
+
font-size: 30px
|
@@ -2,10 +2,13 @@
|
|
2
2
|
transform-origin: top
|
3
3
|
transition: transform ease-out 0.5s
|
4
4
|
transform: scale(0.3)
|
5
|
+
|
5
6
|
&.ng-hide
|
6
7
|
transform: scale(1)
|
8
|
+
|
7
9
|
.row, .col
|
8
10
|
position: relative
|
11
|
+
|
9
12
|
&--draggable
|
10
13
|
h4
|
11
14
|
font-size: 11px
|
@@ -14,8 +17,10 @@
|
|
14
17
|
color: $promethee-color
|
15
18
|
padding: 0 0 0 3px
|
16
19
|
margin: 0
|
20
|
+
|
17
21
|
&--row
|
18
22
|
padding-left: 10px
|
23
|
+
|
19
24
|
&--droppable
|
20
25
|
margin: 10px 0
|
21
26
|
position: relative
|
@@ -24,6 +29,7 @@
|
|
24
29
|
width: 400px
|
25
30
|
height: 40px
|
26
31
|
transition: .2s
|
32
|
+
|
27
33
|
&--hidden
|
28
34
|
visibility: hidden
|
29
35
|
pointer-events: none
|
@@ -39,14 +45,17 @@
|
|
39
45
|
left: -25px
|
40
46
|
width: 40px
|
41
47
|
height: 400px
|
48
|
+
|
42
49
|
&--inside-column
|
43
50
|
position: absolute
|
44
51
|
top: 0
|
45
52
|
right: -25px
|
46
53
|
width: 40px
|
47
54
|
height: 400px
|
55
|
+
|
48
56
|
&--dragged
|
49
57
|
opacity: 0.25
|
58
|
+
|
50
59
|
.ui-droppable-active
|
51
60
|
border-color: $promethee-color
|
52
61
|
|
@@ -57,6 +66,7 @@
|
|
57
66
|
&--dragging
|
58
67
|
.promethee__move--droppable.promethee__move--droppable--row
|
59
68
|
display: none
|
69
|
+
|
60
70
|
// Except for columns, which can be dropped only on rows
|
61
71
|
&--dragging.promethee__move--dragging--column
|
62
72
|
.promethee__move--droppable
|
@@ -65,6 +75,7 @@
|
|
65
75
|
&.promethee__move--droppable.promethee__move--droppable--row--inside-column,
|
66
76
|
&.promethee__move--droppable.promethee__move--droppable--row--first
|
67
77
|
display: block
|
78
|
+
|
68
79
|
.video-neutralizing-overlay
|
69
80
|
background: transparent
|
70
81
|
position: absolute
|
@@ -1 +1,16 @@
|
|
1
1
|
.promethee
|
2
|
+
&__component
|
3
|
+
&--cover
|
4
|
+
background-repeat: no-repeat
|
5
|
+
background-position: center center
|
6
|
+
background-size: cover
|
7
|
+
padding: 150px 30px
|
8
|
+
|
9
|
+
&--slider
|
10
|
+
.promethee__component
|
11
|
+
margin-bottom: 0
|
12
|
+
.fontawesome-carousel-control .fa
|
13
|
+
top: 50%
|
14
|
+
position: absolute
|
15
|
+
transform: translateY(-50%)
|
16
|
+
font-size: 30px
|
@@ -14,7 +14,8 @@ promethee_data = Promethee::Data.new master_data, localization_data: localizatio
|
|
14
14
|
|
15
15
|
prometheeLocalizer.controller('PrometheeLocalizerController', ['$scope', 'data', function($scope, data) {
|
16
16
|
|
17
|
-
$scope.data =
|
17
|
+
$scope.data = data;
|
18
|
+
$scope.component = {children: data.components};
|
18
19
|
|
19
20
|
$scope.options = {
|
20
21
|
toolbar: [
|
@@ -38,11 +39,12 @@ promethee_data = Promethee::Data.new master_data, localization_data: localizatio
|
|
38
39
|
ng-controller="PrometheeLocalizerController as prometheeLocalizerController">
|
39
40
|
<input type="hidden" name="page[data]" id="page_data" value="{{data}}" />
|
40
41
|
|
42
|
+
<%= render 'promethee/localize/component' %>
|
41
43
|
<% Dir[__dir__ + '/localize/component/*.html.erb'].map do |file| %>
|
42
44
|
<%= render "promethee/localize/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
|
43
45
|
<% end %>
|
44
46
|
|
45
47
|
<div ng-repeat="component in component.children">
|
46
|
-
<ng-include src="'promethee/localize/
|
48
|
+
<ng-include src="'promethee/localize/component'"></ng-include>
|
47
49
|
</div>
|
48
50
|
</div>
|
@@ -5,6 +5,9 @@
|
|
5
5
|
<% Dir[__dir__ + '/write/component/_*.html.erb'].map do |file| %>
|
6
6
|
<%= render "promethee/edit/write/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
|
7
7
|
<% end %>
|
8
|
+
<% Dir[__dir__ + '/write/toolbar/_*.html.erb'].map do |file| %>
|
9
|
+
<%= render "promethee/edit/write/toolbar/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
|
10
|
+
<% end %>
|
8
11
|
|
9
12
|
<script type="text/ng-template" id="promethee/write">
|
10
13
|
<div class="promethee-editor__page">
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/move/component/cover">
|
2
|
+
<div
|
3
|
+
class="promethee-editor__wrapper promethee-editor__cover-content"
|
4
|
+
ng-bind-html="component.attributes.body | htmlSafe"
|
5
|
+
style="background-image: url('{{component.attributes.src}}')"
|
6
|
+
></div>
|
7
|
+
</div>
|
8
|
+
</script>
|
@@ -1,3 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/component/image">
|
2
|
-
<
|
2
|
+
<figure>
|
3
|
+
<img ng-src="{{component.attributes.src}}" class="img-responsive">
|
4
|
+
<figcaption ng-show="component.attributes.caption" ng-bind-html="component.attributes.caption | htmlSafe"></figcaption>
|
5
|
+
</figure>
|
3
6
|
</script>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/write/component/cover">
|
2
|
+
<div ng-controller="CoverController" class="promethee-editor__component promethee-editor__component--cover">
|
3
|
+
<div class="promethee-editor__toolbar">
|
4
|
+
Cover
|
5
|
+
<ng-include src="'promethee/write/toolbar'"></ng-include>
|
6
|
+
</div>
|
7
|
+
<div ng-show="editing" class="promethee-editor__wrapper">
|
8
|
+
<div class="form-group">
|
9
|
+
<label class="label-control">Image Url</label>
|
10
|
+
<input ng-model="component.attributes.src" class="form-control" type="text"/>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div
|
15
|
+
ng-hide="editing"
|
16
|
+
class="promethee-editor__wrapper promethee-editor__cover-content"
|
17
|
+
ng-bind-html="component.attributes.body | htmlSafe"
|
18
|
+
ng-click="edit()"
|
19
|
+
style="background-image: url('{{component.attributes.src}}')"
|
20
|
+
></div>
|
21
|
+
|
22
|
+
<div
|
23
|
+
ng-show="editing"
|
24
|
+
class="promethee-editor__wrapper promethee-editor__cover-content"
|
25
|
+
style="background-image: url('{{component.attributes.src}}')"
|
26
|
+
>
|
27
|
+
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</script>
|
31
|
+
|
32
|
+
<script>
|
33
|
+
angular.injector(['ng', 'Promethee']).get('definitions').push({
|
34
|
+
name: 'Cover',
|
35
|
+
thumb: 'http://via.placeholder.com/300x200',
|
36
|
+
data: {
|
37
|
+
type: 'cover',
|
38
|
+
attributes: {
|
39
|
+
src: 'https://picsum.photos/1920/1080/?random',
|
40
|
+
alt: '',
|
41
|
+
caption: ''
|
42
|
+
}
|
43
|
+
}
|
44
|
+
});
|
45
|
+
|
46
|
+
promethee.controller('CoverController', ['$scope', function($scope) {
|
47
|
+
$scope.editing = false;
|
48
|
+
|
49
|
+
$scope.edit = function() {
|
50
|
+
$scope.editing = true;
|
51
|
+
};
|
52
|
+
|
53
|
+
$scope.complete = function() {
|
54
|
+
$scope.editing = false;
|
55
|
+
};
|
56
|
+
|
57
|
+
$scope.toggleEdit = function() {
|
58
|
+
$scope.editing = !$scope.editing;
|
59
|
+
};
|
60
|
+
|
61
|
+
$scope.options = {
|
62
|
+
toolbar: [
|
63
|
+
['headline', ['style']],
|
64
|
+
['style', ['bold', 'italic']],
|
65
|
+
['alignment', ['ul', 'ol', 'paragraph']],
|
66
|
+
['code', ['codeview']]
|
67
|
+
]
|
68
|
+
};
|
69
|
+
}]);
|
70
|
+
</script>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/write/component/details">
|
2
|
+
<div ng-controller="DetailsController"
|
3
|
+
class="promethee-editor__component promethee-editor__component--details">
|
4
|
+
<div class="promethee-editor__toolbar">
|
5
|
+
Details
|
6
|
+
<ng-include src="'promethee/write/toolbar'"></ng-include>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div ng-show="editing" class="promethee-editor__wrapper">
|
10
|
+
<div class="form-group">
|
11
|
+
<label class="label-control">Summary</label>
|
12
|
+
<input ng-model="component.attributes.summary" class="form-control" type="text"/>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<details>
|
17
|
+
<summary>{{component.attributes.summary}}</summary>
|
18
|
+
<ng-include src="'promethee/write/components'"></ng-include>
|
19
|
+
|
20
|
+
<span
|
21
|
+
type="button"
|
22
|
+
class="btn btn-default btn-block"
|
23
|
+
ng-click="addComponentTo(component.children)"
|
24
|
+
>
|
25
|
+
Add component
|
26
|
+
</span>
|
27
|
+
</details>
|
28
|
+
</div>
|
29
|
+
</script>
|
30
|
+
|
31
|
+
<script>
|
32
|
+
angular.injector(['ng', 'Promethee']).get('definitions').push({
|
33
|
+
name: 'Details',
|
34
|
+
thumb: 'http://via.placeholder.com/300x200',
|
35
|
+
data: {
|
36
|
+
type: 'details',
|
37
|
+
children: [],
|
38
|
+
attributes: {
|
39
|
+
summary: 'Edit me'
|
40
|
+
}
|
41
|
+
}
|
42
|
+
});
|
43
|
+
|
44
|
+
promethee.controller('DetailsController', ['$scope', function($scope) {
|
45
|
+
$scope.editing = false;
|
46
|
+
|
47
|
+
$scope.edit = function() {
|
48
|
+
$scope.editing = true;
|
49
|
+
};
|
50
|
+
|
51
|
+
$scope.complete = function() {
|
52
|
+
$scope.editing = false;
|
53
|
+
};
|
54
|
+
|
55
|
+
$scope.toggleEdit = function() {
|
56
|
+
$scope.editing = !$scope.editing;
|
57
|
+
};
|
58
|
+
|
59
|
+
$scope.options = {
|
60
|
+
toolbar: [
|
61
|
+
['headline', ['style']],
|
62
|
+
['style', ['bold', 'italic']],
|
63
|
+
['alignment', ['ul', 'ol', 'paragraph']],
|
64
|
+
['code', ['codeview']]
|
65
|
+
]
|
66
|
+
};
|
67
|
+
}]);
|
68
|
+
</script>
|
@@ -13,10 +13,15 @@
|
|
13
13
|
<label class="label-control">Alt</label>
|
14
14
|
<input ng-model="component.attributes.alt" class="form-control" type="text"/>
|
15
15
|
</div>
|
16
|
+
<div class="form-group">
|
17
|
+
<label class="label-control">Caption</label>
|
18
|
+
<summernote config="options" ng-model="component.attributes.caption"></summernote>
|
19
|
+
</div>
|
16
20
|
</div>
|
17
|
-
<
|
21
|
+
<figure ng-show="component.attributes.src">
|
18
22
|
<img ng-click="edit()" ng-src="{{component.attributes.src}}" class="img-responsive">
|
19
|
-
|
23
|
+
<figcaption ng-show="component.attributes.caption" ng-bind-html="component.attributes.caption | htmlSafe"></figcaption>
|
24
|
+
</figure>
|
20
25
|
<div ng-hide="component.attributes.src">
|
21
26
|
<p ng-hide="editing" ng-click="edit()" class="text-center">Click to set the image</p>
|
22
27
|
</div>
|
@@ -30,7 +35,9 @@
|
|
30
35
|
data: {
|
31
36
|
type: 'image',
|
32
37
|
attributes: {
|
33
|
-
src: 'https://
|
38
|
+
src: 'https://picsum.photos/1920/1080/?random',
|
39
|
+
alt: '',
|
40
|
+
caption: ''
|
34
41
|
}
|
35
42
|
}
|
36
43
|
});
|
@@ -49,5 +56,14 @@
|
|
49
56
|
$scope.toggleEdit = function() {
|
50
57
|
$scope.editing = !$scope.editing;
|
51
58
|
};
|
59
|
+
|
60
|
+
$scope.options = {
|
61
|
+
toolbar: [
|
62
|
+
['headline', ['style']],
|
63
|
+
['style', ['bold', 'italic']],
|
64
|
+
['alignment', ['ul', 'ol', 'paragraph']],
|
65
|
+
['code', ['codeview']]
|
66
|
+
]
|
67
|
+
};
|
52
68
|
}]);
|
53
69
|
</script>
|
@@ -0,0 +1,77 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/write/component/slider">
|
2
|
+
<div ng-controller="SliderController"
|
3
|
+
class="row promethee-editor__component promethee-editor__component--slider">
|
4
|
+
<div class="promethee-editor__toolbar">
|
5
|
+
Slider
|
6
|
+
|
7
|
+
<ng-include src="'promethee/write/toolbar'"></ng-include>
|
8
|
+
|
9
|
+
<div class="pull-right">
|
10
|
+
<span ng-show="editing" ng-click="prev()" class="promethee-editor__button"><%= fa_icon 'chevron-left' %></span>
|
11
|
+
<span ng-show="editing" ng-click="next()" class="promethee-editor__button"><%= fa_icon 'chevron-right' %></span>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div id="{{sliderId}}" class="carousel slide" data-ride="carousel" ng-init="components = component.children">
|
16
|
+
<div class="carousel-inner" style="min-height: 100px">
|
17
|
+
<div ng-repeat="component in components track by $index" class="item" ng-class="{active: $index === 0}">
|
18
|
+
<ng-include src="'promethee/' + (editing ? 'write' : 'move') + '/component'"></ng-include>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<a ng-hide="editing" ng-click="$event.preventDefault()" class="left carousel-control fontawesome-carousel-control" href="#{{sliderId}}" data-slide="prev">
|
23
|
+
<%= fa_icon 'angle-left' %>
|
24
|
+
</a>
|
25
|
+
<a ng-hide="editing" ng-click="$event.preventDefault()" class="right carousel-control fontawesome-carousel-control" href="#{{sliderId}}" data-slide="next">
|
26
|
+
<%= fa_icon 'angle-right' %>
|
27
|
+
</a>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<span
|
31
|
+
type="button"
|
32
|
+
class="btn btn-default btn-block"
|
33
|
+
ng-click="addComponentTo(component.children);goToLastItem();"
|
34
|
+
>
|
35
|
+
Add item
|
36
|
+
</span>
|
37
|
+
</div>
|
38
|
+
</script>
|
39
|
+
|
40
|
+
<script>
|
41
|
+
angular.injector(['ng', 'Promethee']).get('definitions').push({
|
42
|
+
name: 'Slider',
|
43
|
+
thumb: 'http://via.placeholder.com/300x200',
|
44
|
+
data: {
|
45
|
+
type: 'slider',
|
46
|
+
attributes: {},
|
47
|
+
children: []
|
48
|
+
}
|
49
|
+
});
|
50
|
+
|
51
|
+
promethee.controller('SliderController', ['$scope', '$element', function($scope, $element) {
|
52
|
+
$scope.sliderId = 'slider-' + Date.now() + '-' + Math.floor(Math.random()*1000000);
|
53
|
+
|
54
|
+
$scope.$watch('editing', function(newVal) {
|
55
|
+
if(newVal === true) $element.find('.carousel').carousel('pause');
|
56
|
+
else $element.find('.carousel').carousel('play');
|
57
|
+
});
|
58
|
+
|
59
|
+
$scope.goToLastItem = function() {
|
60
|
+
setTimeout(function() {
|
61
|
+
$element.find('.carousel').carousel($scope.component.children.length - 1);
|
62
|
+
}, 1000);
|
63
|
+
};
|
64
|
+
|
65
|
+
$scope.prev = function() {
|
66
|
+
$element.find('.carousel').carousel('prev');
|
67
|
+
};
|
68
|
+
|
69
|
+
$scope.next = function() {
|
70
|
+
$element.find('.carousel').carousel('next');
|
71
|
+
};
|
72
|
+
|
73
|
+
$element.find('.carousel').carousel();
|
74
|
+
|
75
|
+
// element.ready(function() { this.find('.carousel').carousel() });
|
76
|
+
}]);
|
77
|
+
</script>
|
@@ -1,11 +1,3 @@
|
|
1
|
-
<script type="text/ng-template" id="promethee/localize/component/
|
2
|
-
|
3
|
-
<div class="col-md-6">
|
4
|
-
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
5
|
-
</div>
|
6
|
-
<div class="col-md-6">
|
7
|
-
<b>Master</b>
|
8
|
-
<div class="promethee-editor__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
|
9
|
-
</div>
|
10
|
-
</div>
|
1
|
+
<script type="text/ng-template" id="promethee/localize/component/column">
|
2
|
+
|
11
3
|
</script>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/localize/component/cover">
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-6">
|
4
|
+
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
5
|
+
</div>
|
6
|
+
<div class="col-md-6">
|
7
|
+
<b>Master</b>
|
8
|
+
<div class="promethee-editor__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
</script>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/localize/component/details">
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-6">
|
4
|
+
<input ng-model="component.attributes.summary" type="text" class="form-control">
|
5
|
+
</div>
|
6
|
+
<div class="col-md-6">
|
7
|
+
<b>Master</b>
|
8
|
+
<input ng-model="component.master.attributes.summary" type="text" class="form-control" disabled/>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
</script>
|
@@ -1,3 +1,13 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/localize/component/image">
|
2
|
-
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-6">
|
4
|
+
<input ng-model="component.attributes.alt" type="text" class="form-control">
|
5
|
+
<summernote config="options" ng-model="component.attributes.caption"></summernote>
|
6
|
+
</div>
|
7
|
+
<div class="col-md-6">
|
8
|
+
<b>Master</b>
|
9
|
+
<input ng-model="component.master.attributes.alt" type="text" class="form-control" disabled/>
|
10
|
+
<div class="promethee-editor__wrapper" ng-bind-html="component.master.attributes.caption | htmlSafe"></div>
|
11
|
+
</div>
|
12
|
+
</div>
|
3
13
|
</script>
|
@@ -1,3 +1,11 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/localize/component/text">
|
2
|
-
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-6">
|
4
|
+
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
5
|
+
</div>
|
6
|
+
<div class="col-md-6">
|
7
|
+
<b>Master</b>
|
8
|
+
<div class="promethee-editor__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
|
9
|
+
</div>
|
10
|
+
</div>
|
3
11
|
</script>
|
@@ -1,7 +1,14 @@
|
|
1
1
|
<%
|
2
2
|
src = component[:attributes][:src]
|
3
3
|
alt = component[:attributes][:alt]
|
4
|
+
caption = component[:attributes][:caption].to_s
|
4
5
|
%>
|
5
|
-
<
|
6
|
+
<figure class="<%= promethee_class_for component %>">
|
6
7
|
<img class="img-responsive" src="<%= src %>" alt="<%= alt %>">
|
7
|
-
|
8
|
+
|
9
|
+
<% if caption.present? %>
|
10
|
+
<figcaption>
|
11
|
+
<%= caption.html_safe %>
|
12
|
+
</figcaption>
|
13
|
+
<% end %>
|
14
|
+
</figure>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div id="slider-<%= component[:id] %>" class="carousel slide <%= promethee_class_for component %>" data-ride="carousel">
|
2
|
+
<div class="carousel-inner">
|
3
|
+
<% component[:children].each.with_index do |child, n| %>
|
4
|
+
<div class="item<%= ' active' if n.zero? %>">
|
5
|
+
<%= render 'promethee/show/component', component: child %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<a class="left carousel-control fontawesome-carousel-control" href="#slider-<%= component[:id] %>" data-slide="prev">
|
11
|
+
<%= fa_icon 'angle-left' %>
|
12
|
+
</a>
|
13
|
+
<a class="right carousel-control fontawesome-carousel-control" href="#slider-<%= component[:id] %>" data-slide="next">
|
14
|
+
<%= fa_icon 'angle-right' %>
|
15
|
+
</a>
|
16
|
+
</div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: promethee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Dargelos
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2018-01-
|
14
|
+
date: 2018-01-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -242,8 +242,11 @@ files:
|
|
242
242
|
- app/views/promethee/edit/move/_component.html.erb
|
243
243
|
- app/views/promethee/edit/move/_components.html.erb
|
244
244
|
- app/views/promethee/edit/move/component/_column.html.erb
|
245
|
+
- app/views/promethee/edit/move/component/_cover.html.erb
|
246
|
+
- app/views/promethee/edit/move/component/_details.html.erb
|
245
247
|
- app/views/promethee/edit/move/component/_image.html.erb
|
246
248
|
- app/views/promethee/edit/move/component/_row.html.erb
|
249
|
+
- app/views/promethee/edit/move/component/_slider.html.erb
|
247
250
|
- app/views/promethee/edit/move/component/_text.html.erb
|
248
251
|
- app/views/promethee/edit/move/component/_video.html.erb
|
249
252
|
- app/views/promethee/edit/shared/_navbar.html.erb
|
@@ -252,21 +255,31 @@ files:
|
|
252
255
|
- app/views/promethee/edit/write/_components.html.erb
|
253
256
|
- app/views/promethee/edit/write/_toolbar.html.erb
|
254
257
|
- app/views/promethee/edit/write/component/_column.html.erb
|
258
|
+
- app/views/promethee/edit/write/component/_cover.html.erb
|
259
|
+
- app/views/promethee/edit/write/component/_details.html.erb
|
255
260
|
- app/views/promethee/edit/write/component/_image.html.erb
|
256
261
|
- app/views/promethee/edit/write/component/_row.html.erb
|
262
|
+
- app/views/promethee/edit/write/component/_slider.html.erb
|
257
263
|
- app/views/promethee/edit/write/component/_text.html.erb
|
258
264
|
- app/views/promethee/edit/write/component/_video.html.erb
|
265
|
+
- app/views/promethee/localize/_component.html.erb
|
259
266
|
- app/views/promethee/localize/component/_column.html.erb
|
267
|
+
- app/views/promethee/localize/component/_cover.html.erb
|
268
|
+
- app/views/promethee/localize/component/_details.html.erb
|
260
269
|
- app/views/promethee/localize/component/_image.html.erb
|
261
270
|
- app/views/promethee/localize/component/_row.html.erb
|
271
|
+
- app/views/promethee/localize/component/_slider.html.erb
|
262
272
|
- app/views/promethee/localize/component/_text.html.erb
|
263
273
|
- app/views/promethee/localize/component/_video.html.erb
|
264
274
|
- app/views/promethee/preview.html.erb
|
265
275
|
- app/views/promethee/show/_component.html.erb
|
266
276
|
- app/views/promethee/show/_components.html.erb
|
267
277
|
- app/views/promethee/show/component/_column.html.erb
|
278
|
+
- app/views/promethee/show/component/_cover.html.erb
|
279
|
+
- app/views/promethee/show/component/_details.html.erb
|
268
280
|
- app/views/promethee/show/component/_image.html.erb
|
269
281
|
- app/views/promethee/show/component/_row.html.erb
|
282
|
+
- app/views/promethee/show/component/_slider.html.erb
|
270
283
|
- app/views/promethee/show/component/_text.html.erb
|
271
284
|
- app/views/promethee/show/component/_video.html.erb
|
272
285
|
- config/routes.rb
|