promethee 1.6.14 → 1.6.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/promethee-edit.sass +11 -0
  3. data/app/assets/stylesheets/promethee-edit/_move.sass +0 -42
  4. data/app/assets/stylesheets/promethee.sass +10 -7
  5. data/app/controllers/promethee_controller.rb +2 -1
  6. data/app/models/concerns/promethee_data.rb +29 -0
  7. data/app/views/promethee/_edit.html.erb +2 -12
  8. data/app/views/promethee/_localize.html.erb +0 -11
  9. data/app/views/promethee/components/aside/_edit.define.html.erb +3 -3
  10. data/app/views/promethee/components/aside/_edit.inspect.html.erb +3 -3
  11. data/app/views/promethee/components/aside/_edit.move.html.erb +11 -8
  12. data/app/views/promethee/components/aside/_localize.html.erb +8 -10
  13. data/app/views/promethee/components/aside/_show.html.erb +7 -7
  14. data/app/views/promethee/components/collection/_edit.move.html.erb +0 -1
  15. data/app/views/promethee/components/column/_edit.move.html.erb +0 -8
  16. data/app/views/promethee/components/cover/_edit.define.html.erb +3 -3
  17. data/app/views/promethee/components/cover/_edit.inspect.html.erb +3 -3
  18. data/app/views/promethee/components/cover/_edit.move.html.erb +3 -4
  19. data/app/views/promethee/components/cover/_localize.html.erb +10 -13
  20. data/app/views/promethee/components/cover/_show.html.erb +9 -9
  21. data/app/views/promethee/components/image/_edit.define.html.erb +2 -2
  22. data/app/views/promethee/components/image/_edit.inspect.html.erb +5 -11
  23. data/app/views/promethee/components/image/_edit.move.html.erb +3 -2
  24. data/app/views/promethee/components/image/_localize.html.erb +7 -9
  25. data/app/views/promethee/components/image/_show.html.erb +5 -5
  26. data/app/views/promethee/components/page/_edit.define.html.erb +2 -2
  27. data/app/views/promethee/components/page/_edit.inspect.html.erb +9 -15
  28. data/app/views/promethee/components/page/_edit.move.html.erb +0 -4
  29. data/app/views/promethee/components/page/_localize.html.erb +5 -8
  30. data/app/views/promethee/components/row/_edit.define.html.erb +2 -9
  31. data/app/views/promethee/components/row/_edit.inspect.html.erb +37 -15
  32. data/app/views/promethee/components/row/_edit.move.html.erb +7 -3
  33. data/app/views/promethee/components/row/_localize.html.erb +0 -1
  34. data/app/views/promethee/components/row/_show.html.erb +23 -1
  35. data/app/views/promethee/components/slider/_edit.define.html.erb +0 -3
  36. data/app/views/promethee/components/slider/_edit.inspect.html.erb +11 -51
  37. data/app/views/promethee/components/slider/_edit.move.html.erb +0 -14
  38. data/app/views/promethee/components/slider/_show.html.erb +4 -5
  39. data/app/views/promethee/components/slider_item/_edit.define.html.erb +18 -0
  40. data/app/views/promethee/components/slider_item/_edit.inspect.html.erb +52 -0
  41. data/app/views/promethee/components/slider_item/_edit.move.html.erb +14 -0
  42. data/app/views/promethee/components/slider_item/_icon.svg +3 -0
  43. data/app/views/promethee/components/slider_item/_localize.html.erb +15 -0
  44. data/app/views/promethee/components/slider_item/_show.html.erb +5 -0
  45. data/app/views/promethee/components/text/_edit.define.html.erb +1 -1
  46. data/app/views/promethee/components/text/_edit.inspect.html.erb +3 -3
  47. data/app/views/promethee/components/text/_edit.move.html.erb +1 -2
  48. data/app/views/promethee/components/text/_localize.html.erb +3 -5
  49. data/app/views/promethee/components/text/_show.html.erb +2 -2
  50. data/app/views/promethee/components/video/_edit.inspect.html.erb +4 -2
  51. data/app/views/promethee/components/video/_edit.move.html.erb +6 -1
  52. data/app/views/promethee/components/video/_localize.html.erb +0 -1
  53. data/app/views/promethee/edit/_inspect.advanced.html.erb +7 -0
  54. data/app/views/promethee/edit/_move.html.erb +3 -15
  55. data/app/views/promethee/edit/_radiobuttons.html.erb +8 -0
  56. data/app/views/promethee/templates/_uploader.html.erb +7 -3
  57. data/lib/promethee/rails/version.rb +1 -1
  58. 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 |child, n| %>
4
- <div class="item<%= ' active' if n.zero? %>">
5
- <%= render 'promethee/show/component', component: child %>
6
- <%= component[:attributes].dig(:contents, :"content-#{child[:id]}").to_s.html_safe %>
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>
@@ -0,0 +1,5 @@
1
+ <% media = component[:attributes][:media] %>
2
+ <div class="carousel-item__content">
3
+ <%= render 'promethee/show/component', component: media if defined?(media[:type]) %>
4
+ <%= component[:attributes][:text].to_s.html_safe %>
5
+ </div>
@@ -8,7 +8,7 @@
8
8
  data: {
9
9
  type: 'text',
10
10
  attributes: {
11
- body: 'Edit me'
11
+ searchable_body: 'Edit me'
12
12
  }
13
13
  }
14
14
  })
@@ -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.body"></summernote>
3
+ <summernote config="summernoteConfig" ng-model="promethee.inspected.attributes.searchable_body"></summernote>
4
4
  </div>
5
5
 
6
- {{promethee.inspected.attributes.body | textContentFromHTML | numberOfWords}} words<br>
7
- {{promethee.inspected.attributes.body | textContentFromHTML | numberOfCharacters}} characters
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.body | htmlSafe"></div>
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.body">
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.body | htmlSafe"></div>
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.body"></summernote>
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,6 @@
1
1
  <%
2
- body = component[:attributes][:body].to_s
2
+ searchable_body = component[:attributes][:searchable_body].to_s
3
3
  %>
4
4
  <div class="<%= promethee_class_for component %>">
5
- <%= body.html_safe %>
5
+ <%= searchable_body.html_safe %>
6
6
  </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 class="label-control">Url</label>
4
- <input ng-model="promethee.inspected.attributes.url" class="form-control" type="text"/>
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" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="allowfullscreen" ng-src="{{embed | urlSafe}}"></iframe>
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>
@@ -1,3 +1,2 @@
1
1
  <script type="text/ng-template" id="promethee/components/video/localize">
2
-
3
2
  </script>
@@ -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 $elementDragged = $(element[0]);
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 $elementDragged = $(element[0]);
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}}', '--first' %>"
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
- <label class="label-control">{{label}}</label>
4
- <p>{{ngModel.name}}</p>
5
- <div class="button btn btn-default" ngf-select="prometheeUploader.upload($file, ngModel)" ngf-accept="{{limits || ''}}" class="drop-box">Select an image</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>
@@ -1,5 +1,5 @@
1
1
  module Promethee
2
2
  module Rails
3
- VERSION = '1.6.14'
3
+ VERSION = '1.6.16'
4
4
  end
5
5
  end
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.14
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