promethee 1.6.14 → 1.6.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/promethee-edit.sass +11 -0
- data/app/assets/stylesheets/promethee-edit/_move.sass +0 -42
- data/app/assets/stylesheets/promethee.sass +10 -7
- data/app/controllers/promethee_controller.rb +2 -1
- data/app/models/concerns/promethee_data.rb +29 -0
- data/app/views/promethee/_edit.html.erb +2 -12
- data/app/views/promethee/_localize.html.erb +0 -11
- data/app/views/promethee/components/aside/_edit.define.html.erb +3 -3
- data/app/views/promethee/components/aside/_edit.inspect.html.erb +3 -3
- data/app/views/promethee/components/aside/_edit.move.html.erb +11 -8
- data/app/views/promethee/components/aside/_localize.html.erb +8 -10
- data/app/views/promethee/components/aside/_show.html.erb +7 -7
- data/app/views/promethee/components/collection/_edit.move.html.erb +0 -1
- data/app/views/promethee/components/column/_edit.move.html.erb +0 -8
- data/app/views/promethee/components/cover/_edit.define.html.erb +3 -3
- data/app/views/promethee/components/cover/_edit.inspect.html.erb +3 -3
- data/app/views/promethee/components/cover/_edit.move.html.erb +3 -4
- data/app/views/promethee/components/cover/_localize.html.erb +10 -13
- data/app/views/promethee/components/cover/_show.html.erb +9 -9
- data/app/views/promethee/components/image/_edit.define.html.erb +2 -2
- data/app/views/promethee/components/image/_edit.inspect.html.erb +5 -11
- data/app/views/promethee/components/image/_edit.move.html.erb +3 -2
- data/app/views/promethee/components/image/_localize.html.erb +7 -9
- data/app/views/promethee/components/image/_show.html.erb +5 -5
- data/app/views/promethee/components/page/_edit.define.html.erb +2 -2
- data/app/views/promethee/components/page/_edit.inspect.html.erb +9 -15
- data/app/views/promethee/components/page/_edit.move.html.erb +0 -4
- data/app/views/promethee/components/page/_localize.html.erb +5 -8
- data/app/views/promethee/components/row/_edit.define.html.erb +2 -9
- data/app/views/promethee/components/row/_edit.inspect.html.erb +37 -15
- data/app/views/promethee/components/row/_edit.move.html.erb +7 -3
- data/app/views/promethee/components/row/_localize.html.erb +0 -1
- data/app/views/promethee/components/row/_show.html.erb +23 -1
- data/app/views/promethee/components/slider/_edit.define.html.erb +0 -3
- data/app/views/promethee/components/slider/_edit.inspect.html.erb +11 -51
- data/app/views/promethee/components/slider/_edit.move.html.erb +0 -14
- data/app/views/promethee/components/slider/_show.html.erb +4 -5
- data/app/views/promethee/components/slider_item/_edit.define.html.erb +18 -0
- data/app/views/promethee/components/slider_item/_edit.inspect.html.erb +52 -0
- data/app/views/promethee/components/slider_item/_edit.move.html.erb +14 -0
- data/app/views/promethee/components/slider_item/_icon.svg +3 -0
- data/app/views/promethee/components/slider_item/_localize.html.erb +15 -0
- data/app/views/promethee/components/slider_item/_show.html.erb +5 -0
- data/app/views/promethee/components/text/_edit.define.html.erb +1 -1
- data/app/views/promethee/components/text/_edit.inspect.html.erb +3 -3
- data/app/views/promethee/components/text/_edit.move.html.erb +1 -2
- data/app/views/promethee/components/text/_localize.html.erb +3 -5
- data/app/views/promethee/components/text/_show.html.erb +2 -2
- data/app/views/promethee/components/video/_edit.inspect.html.erb +4 -2
- data/app/views/promethee/components/video/_edit.move.html.erb +6 -1
- data/app/views/promethee/components/video/_localize.html.erb +0 -1
- data/app/views/promethee/edit/_inspect.advanced.html.erb +7 -0
- data/app/views/promethee/edit/_move.html.erb +3 -15
- data/app/views/promethee/edit/_radiobuttons.html.erb +8 -0
- data/app/views/promethee/templates/_uploader.html.erb +7 -3
- data/lib/promethee/rails/version.rb +1 -1
- metadata +9 -1
@@ -4,10 +4,8 @@
|
|
4
4
|
<div class="row" ng-controller="SliderMoveController">
|
5
5
|
<div class="col-md-2" ng-repeat-start="component in components">
|
6
6
|
<ng-include src="'promethee/move/component'"></ng-include>
|
7
|
-
<div ng-bind-html="parent.attributes.contents['content-' + component.id] | htmlSafe"></div>
|
8
7
|
</div>
|
9
8
|
<div class="clearfix" ng-if="$index%6 === 5" ng-repeat-end></div>
|
10
|
-
<pre class="hidden">{{component.attributes.search = concatenateChildrenSearch(component)}}</pre>
|
11
9
|
</div>
|
12
10
|
</div>
|
13
11
|
</div>
|
@@ -16,18 +14,6 @@
|
|
16
14
|
<script>
|
17
15
|
promethee.controller('SliderMoveController', ['$scope', function($scope) {
|
18
16
|
$scope.parent = $scope.component;
|
19
|
-
$scope.parent_id = $scope.component.id;
|
20
|
-
$scope.parent_type = $scope.component.type;
|
21
17
|
$scope.components = $scope.component.children;
|
22
|
-
|
23
|
-
$scope.$watch('component.children.length', function() {
|
24
|
-
var keys = $scope.component.children.map(function(component) {
|
25
|
-
return 'content-' + component.id;
|
26
|
-
});
|
27
|
-
|
28
|
-
for(var key in $scope.component.attributes.contents) {
|
29
|
-
if(!keys.includes(key)) delete $scope.component.attributes.contents[key];
|
30
|
-
}
|
31
|
-
});
|
32
18
|
}]);
|
33
19
|
</script>
|
@@ -1,10 +1,9 @@
|
|
1
1
|
<div id="slider-<%= component[:id] %>" class="carousel slide <%= promethee_class_for component %>" data-ride="carousel">
|
2
2
|
<div class="carousel-inner">
|
3
|
-
<% component[:children].each.with_index do |
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
</div>
|
3
|
+
<% component[:children].each.with_index do |item, n| %>
|
4
|
+
<div class="item<%= ' active' if n.zero? %>">
|
5
|
+
<%= render 'promethee/show/component', component: item %>
|
6
|
+
</div>
|
8
7
|
<% end %>
|
9
8
|
</div>
|
10
9
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%
|
2
|
+
init = <<~JAVASCRIPT
|
3
|
+
promethee.definitions.push({
|
4
|
+
name: 'Slider Item',
|
5
|
+
icon: #{ promethee_component_render_icon 'slider' },
|
6
|
+
position: 15,
|
7
|
+
library: false,
|
8
|
+
data: {
|
9
|
+
type: 'slider_item',
|
10
|
+
attributes: {
|
11
|
+
media: {},
|
12
|
+
text: ""
|
13
|
+
}
|
14
|
+
}
|
15
|
+
})
|
16
|
+
JAVASCRIPT
|
17
|
+
%>
|
18
|
+
<div ng-init="<%= init %>"></div>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/slider_item/edit/inspect">
|
2
|
+
<div ng-if="promethee.inspected.attributes.media.type !== undefined">
|
3
|
+
<div class="row" ng-controller="SliderItemMediaInspectorController">
|
4
|
+
<div class="col-xs-9">
|
5
|
+
<span class="label label-info">{{component.type}}</span>
|
6
|
+
</div>
|
7
|
+
<div class="col-xs-3">
|
8
|
+
<ng-include src="'promethee/move/component'"></ng-include>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="row">
|
14
|
+
<div class="col-xs-12">
|
15
|
+
<div class="form-group">
|
16
|
+
<label class="label-control">Text</label>
|
17
|
+
<summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.text"></summernote>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="pull-right btn-toolbar" ng-controller="SliderItemInspectorController">
|
23
|
+
<span ng-show="promethee.inspected.attributes.media.type === undefined" ng-repeat="definition in itemDefinitions" class="btn btn-default" ng-click="setMedia(definition)">Set {{definition.name}}</span>
|
24
|
+
<span ng-show="promethee.inspected.attributes.media.type !== undefined" class="btn btn-danger" ng-click="removeMedia()">Remove Media</span>
|
25
|
+
</div>
|
26
|
+
</script>
|
27
|
+
|
28
|
+
<script>
|
29
|
+
promethee.controller('SliderItemInspectorController', ['$scope', function($scope) {
|
30
|
+
var availableComponents = ['image', 'video'];
|
31
|
+
|
32
|
+
$scope.itemDefinitions = $scope.promethee.definitions.filter(function(definition) {
|
33
|
+
return availableComponents.includes(definition.data.type);
|
34
|
+
});
|
35
|
+
|
36
|
+
$scope.setMedia = function(definition) {
|
37
|
+
var media = JSON.parse(JSON.stringify(definition.data));
|
38
|
+
$scope.promethee.inspected.attributes.media = media;
|
39
|
+
};
|
40
|
+
|
41
|
+
$scope.removeMedia = function() {
|
42
|
+
$scope.promethee.inspected.attributes.media = {};
|
43
|
+
};
|
44
|
+
}])
|
45
|
+
|
46
|
+
promethee.controller('SliderItemMediaInspectorController', ['$scope', function($scope) {
|
47
|
+
$scope.component = $scope.promethee.inspected.attributes.media;
|
48
|
+
$scope.$watch("promethee.inspected", function() {
|
49
|
+
$scope.component = $scope.promethee.inspected.attributes.media;
|
50
|
+
})
|
51
|
+
}])
|
52
|
+
</script>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/slider_item/edit/move">
|
2
|
+
<%= render 'promethee/edit/move.header', type: 'slider_item' %>
|
3
|
+
<div class="header">Slider Item</div>
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-xs-12" ng-if="component.attributes.media.type !== undefined">
|
6
|
+
<div ng-init="component = component.attributes.media">
|
7
|
+
<ng-include src="'promethee/move/component'"></ng-include>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
<div class="col-xs-12" ng-show="component.attributes.text !== ''">Text</div>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</script>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
|
2
|
+
<path fill="#FFF" d="M30.3,35.9 L30.3,64.4 L70.9,64.4 L70.9,35.9 L30.3,35.9 Z M71.9,34.9 L71.9,65.4 L29.3,65.4 L29.3,34.9 L71.9,34.9 Z M75,32 L75,68.2 L26.1,68.2 L26.1,32 L75,32 Z M73,34 L28.1,34 L28.1,66.2 L73,66.2 L73,34 Z M90,37.7 L77,37.7 L77,35.7 L92,35.7 L92,64.5 L77,64.5 L77,62.5 L90,62.5 L90,37.7 Z M11,62.5 L24,62.5 L24,64.5 L9,64.5 L9,35.7 L24,35.7 L24,37.7 L11,37.7 L11,62.5 Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/slider_item/localize">
|
2
|
+
<div ng-show="component.master.attributes.text !== ''">
|
3
|
+
<hr>
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-md-6">
|
6
|
+
<b>Slide Item Text</b>
|
7
|
+
<div class="promethee-edit__wrapper" ng-bind-html="component.master.attributes.text | htmlSafe"></div>
|
8
|
+
</div>
|
9
|
+
<div class="col-md-6">
|
10
|
+
<label class="label-control">Slide Item Text</label>
|
11
|
+
<summernote config="summernoteConfig" ng-model="component.attributes.text"></summernote>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</script>
|
@@ -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.searchable_body"></summernote>
|
4
4
|
</div>
|
5
5
|
|
6
|
-
{{promethee.inspected.attributes.
|
7
|
-
{{promethee.inspected.attributes.
|
6
|
+
{{promethee.inspected.attributes.searchable_body | textContentFromHTML | numberOfWords}} words<br>
|
7
|
+
{{promethee.inspected.attributes.searchable_body | textContentFromHTML | numberOfCharacters}} characters
|
8
8
|
</script>
|
@@ -1,7 +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.
|
4
|
-
<pre class="hidden">{{component.attributes.search = (component.attributes.body | textContentFromHTML)}}</pre>
|
3
|
+
<div ng-bind-html="component.attributes.searchable_body | htmlSafe"></div>
|
5
4
|
</div>
|
6
5
|
</div>
|
7
6
|
</script>
|
@@ -1,16 +1,14 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/text/localize">
|
2
|
-
<div ng-show="component.master.attributes.
|
2
|
+
<div ng-show="component.master.attributes.searchable_body">
|
3
3
|
<hr>
|
4
|
-
|
5
4
|
<div class="row">
|
6
5
|
<div class="col-md-6">
|
7
6
|
<b>Text</b>
|
8
|
-
<div ng-bind-html="component.master.attributes.
|
7
|
+
<div ng-bind-html="component.master.attributes.searchable_body | htmlSafe"></div>
|
9
8
|
</div>
|
10
9
|
<div class="col-md-6">
|
11
10
|
<b>Text</b>
|
12
|
-
<summernote config="summernoteConfig" ng-model="component.attributes.
|
13
|
-
<pre class="hidden">{{component.attributes.search = (component.attributes.body | textContentFromHTML)}}</pre>
|
11
|
+
<summernote config="summernoteConfig" ng-model="component.attributes.searchable_body"></summernote>
|
14
12
|
</div>
|
15
13
|
</div>
|
16
14
|
</div>
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/video/edit/inspect">
|
2
2
|
<div class="form-group">
|
3
|
-
<label
|
4
|
-
<input
|
3
|
+
<label class="label-control">Url</label>
|
4
|
+
<input ng-model="promethee.inspected.attributes.url"
|
5
|
+
class="form-control"
|
6
|
+
type="text" />
|
5
7
|
</div>
|
6
8
|
</script>
|
@@ -2,7 +2,12 @@
|
|
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"
|
5
|
+
<iframe ng-if="embed"
|
6
|
+
frameborder="0"
|
7
|
+
webkitallowfullscreen=""
|
8
|
+
mozallowfullscreen=""
|
9
|
+
allowfullscreen="allowfullscreen"
|
10
|
+
ng-src="{{embed | urlSafe}}"></iframe>
|
6
11
|
<div class="video-neutralizing-overlay"></div>
|
7
12
|
</div>
|
8
13
|
</div>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<hr>
|
2
|
+
<div class="btn btn-default btn-xs" ng-click="advancedConfigurationOpen = !advancedConfigurationOpen">
|
3
|
+
Advanced configuration
|
4
|
+
<%= fa_icon 'angle-down', 'ng-class': "{'fa-rotate-180': advancedConfigurationOpen}" %>
|
5
|
+
</div>
|
6
|
+
<br><br>
|
7
|
+
<div ng-show="advancedConfigurationOpen">
|
@@ -36,22 +36,12 @@ promethee
|
|
36
36
|
refreshPositions: true,
|
37
37
|
cursor: 'move',
|
38
38
|
start: function() {
|
39
|
-
var
|
40
|
-
var type = $elementDragged.data('type');
|
39
|
+
var type = $(element[0]).data('type');
|
41
40
|
$('.promethee-edit__move').addClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
42
|
-
var listId = $elementDragged.data('list-id');
|
43
|
-
var listIndex = $elementDragged.data('list-index');
|
44
|
-
// FIXME no jquery hide
|
45
|
-
$('.promethee-edit__move__droppable[data-id="' + listId + '"][data-index="' + listIndex + '"]').hide();
|
46
41
|
},
|
47
42
|
stop: function() {
|
48
|
-
var
|
49
|
-
var type = $elementDragged.data('type');
|
43
|
+
var type = $(element[0]).data('type');
|
50
44
|
$('.promethee-edit__move').removeClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
51
|
-
var listId = $elementDragged.data('list-id');
|
52
|
-
var listIndex = $elementDragged.data('list-index');
|
53
|
-
// FIXME no jquery show
|
54
|
-
$('.promethee-edit__move__droppable[data-id="' + listId + '"][data-index="' + listIndex + '"]').show();
|
55
45
|
}
|
56
46
|
});
|
57
47
|
}
|
@@ -185,13 +175,12 @@ promethee
|
|
185
175
|
<div ng-init="parent_id = component.id; parent_type = component.type; components = component.children">
|
186
176
|
<div
|
187
177
|
droppable
|
188
|
-
class="<%= promethee_bem_classes 'promethee-edit__move__droppable', '--{{parent_type}}'
|
178
|
+
class="<%= promethee_bem_classes 'promethee-edit__move__droppable', '--{{parent_type}}' %>"
|
189
179
|
data-id="{{parent_id}}"
|
190
180
|
data-type="{{parent_type}}"
|
191
181
|
data-index="0"
|
192
182
|
>
|
193
183
|
</div>
|
194
|
-
<div class="<%= promethee_bem_classes 'promethee-edit__move__droppable-substitute', '--{{parent_type}}', '--first' %>"></div>
|
195
184
|
<div
|
196
185
|
draggable
|
197
186
|
ng-repeat="component in components"
|
@@ -211,7 +200,6 @@ promethee
|
|
211
200
|
data-index="{{$index+1}}"
|
212
201
|
>
|
213
202
|
</div>
|
214
|
-
<div class="<%= promethee_bem_classes 'promethee-edit__move__droppable-substitute', '--{{parent_type}}' %>"></div>
|
215
203
|
</div>
|
216
204
|
</div>
|
217
205
|
</script>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="form-group">
|
2
|
+
<label class="label-control"><%= label %></label>
|
3
|
+
<div style="margin-left: 2px">
|
4
|
+
<% values.each do |value| %>
|
5
|
+
<label class="radio-inline"> <input ng-model="background.<%= attribute %>" type="radio" value="<%= value %>" /><%= value.humanize %> </label>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
</div>
|
@@ -1,8 +1,12 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee_uploader">
|
2
2
|
<div class="form-group" ngf-drop="prometheeUploader.upload($file)" ngf-pattern="{{limits || ''}}">
|
3
|
-
<
|
4
|
-
<
|
5
|
-
<div
|
3
|
+
<div class="label-control" ng-show="label != ''">{{label}}</div>
|
4
|
+
<div class="button btn btn-default" ngf-select="prometheeUploader.upload($file, ngModel)" ngf-accept="{{limits || ''}}" class="drop-box" style="margin-top: 5px; margin-bottom: 5px;">Select an image</div>
|
5
|
+
<div ng-show="ngModel.id != undefined" class="promethee_uploader--preview">
|
6
|
+
<img ng-src="/promethee/blob/{{ngModel.id}}" />
|
7
|
+
{{ngModel.name}}
|
8
|
+
<span class="promethee_uploader--preview__delete fa fa-trash" ng-click="ngModel = { id: undefined, name: '' }"></span>
|
9
|
+
</div>
|
6
10
|
<div class="progress" ng-show="prometheeUploader.upload_progress != undefined && prometheeUploader.upload_progress != 0 && prometheeUploader.upload_progress != 100">
|
7
11
|
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: {{prometheeUploader.upload_progress}}%"></div>
|
8
12
|
</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.6.
|
4
|
+
version: 1.6.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Dargelos
|
@@ -232,6 +232,12 @@ files:
|
|
232
232
|
- app/views/promethee/components/slider/_icon.svg
|
233
233
|
- app/views/promethee/components/slider/_localize.html.erb
|
234
234
|
- app/views/promethee/components/slider/_show.html.erb
|
235
|
+
- app/views/promethee/components/slider_item/_edit.define.html.erb
|
236
|
+
- app/views/promethee/components/slider_item/_edit.inspect.html.erb
|
237
|
+
- app/views/promethee/components/slider_item/_edit.move.html.erb
|
238
|
+
- app/views/promethee/components/slider_item/_icon.svg
|
239
|
+
- app/views/promethee/components/slider_item/_localize.html.erb
|
240
|
+
- app/views/promethee/components/slider_item/_show.html.erb
|
235
241
|
- app/views/promethee/components/text/_edit.define.html.erb
|
236
242
|
- app/views/promethee/components/text/_edit.inspect.html.erb
|
237
243
|
- app/views/promethee/components/text/_edit.move.html.erb
|
@@ -244,10 +250,12 @@ files:
|
|
244
250
|
- app/views/promethee/components/video/_icon.svg
|
245
251
|
- app/views/promethee/components/video/_localize.html.erb
|
246
252
|
- app/views/promethee/components/video/_show.html.erb
|
253
|
+
- app/views/promethee/edit/_inspect.advanced.html.erb
|
247
254
|
- app/views/promethee/edit/_move.header.html.erb
|
248
255
|
- app/views/promethee/edit/_move.html.erb
|
249
256
|
- app/views/promethee/edit/_move.remove.html.erb
|
250
257
|
- app/views/promethee/edit/_preview.html.erb
|
258
|
+
- app/views/promethee/edit/_radiobuttons.html.erb
|
251
259
|
- app/views/promethee/presets/_icon.image-with-text.svg
|
252
260
|
- app/views/promethee/presets/_image-with-text.html.erb
|
253
261
|
- app/views/promethee/preview.html.erb
|