promethee 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -39
  3. data/app/assets/javascripts/promethee-edit.js +209 -0
  4. data/app/assets/stylesheets/{promethee-editor.sass → promethee-edit.sass} +6 -6
  5. data/app/assets/stylesheets/{promethee-editor → promethee-edit}/_move.sass +7 -7
  6. data/app/assets/stylesheets/{promethee-editor → promethee-edit}/_preview.sass +1 -1
  7. data/app/assets/stylesheets/{promethee-editor → promethee-edit}/_write.sass +8 -8
  8. data/app/views/promethee/_edit.html.erb +33 -115
  9. data/app/views/promethee/_localize.html.erb +11 -7
  10. data/app/{assets/javascripts/promethee-editor.js → views/promethee/components/column/_edit.define.html.erb} +0 -0
  11. data/app/views/promethee/{edit/inspector/component/_column.html.erb → components/column/_edit.inspect.html.erb} +1 -1
  12. data/app/views/promethee/{edit/move/component/_column.html.erb → components/column/_edit.move.html.erb} +4 -4
  13. data/app/views/promethee/components/column/_edit.write.html.erb +17 -0
  14. data/app/views/promethee/components/column/_localize.html.erb +3 -0
  15. data/app/views/promethee/{show/component/_column.html.erb → components/column/_show.html.erb} +0 -0
  16. data/app/views/promethee/components/cover/_edit.define.html.erb +13 -0
  17. data/app/views/promethee/{edit/inspector/component/_cover.html.erb → components/cover/_edit.inspect.html.erb} +1 -1
  18. data/app/views/promethee/components/cover/_edit.move.html.erb +7 -0
  19. data/app/views/promethee/components/cover/_edit.write.html.erb +39 -0
  20. data/app/views/promethee/{localize/component/_cover.html.erb → components/cover/_localize.html.erb} +4 -2
  21. data/app/views/promethee/{show/component/_cover.html.erb → components/cover/_show.html.erb} +0 -0
  22. data/app/views/promethee/components/details/_edit.define.html.erb +13 -0
  23. data/app/views/promethee/{edit/inspector/component/_details.html.erb → components/details/_edit.inspect.html.erb} +1 -1
  24. data/app/views/promethee/{edit/move/component/_details.html.erb → components/details/_edit.move.html.erb} +1 -1
  25. data/app/views/promethee/components/details/_edit.write.html.erb +35 -0
  26. data/app/views/promethee/{localize/component/_details.html.erb → components/details/_localize.html.erb} +3 -1
  27. data/app/views/promethee/{show/component/_details.html.erb → components/details/_show.html.erb} +0 -0
  28. data/app/views/promethee/components/image/_edit.define.html.erb +14 -0
  29. data/app/views/promethee/{edit/inspector/component/_image.html.erb → components/image/_edit.inspect.html.erb} +1 -1
  30. data/app/views/promethee/{edit/move/component/_image.html.erb → components/image/_edit.move.html.erb} +1 -1
  31. data/app/views/promethee/{edit/write/component/_image.html.erb → components/image/_edit.write.html.erb} +7 -23
  32. data/app/views/promethee/{localize/component/_image.html.erb → components/image/_localize.html.erb} +5 -2
  33. data/app/views/promethee/{show/component/_image.html.erb → components/image/_show.html.erb} +0 -0
  34. data/app/views/promethee/components/row/_edit.define.html.erb +11 -0
  35. data/app/views/promethee/components/row/_edit.inspect.html.erb +3 -0
  36. data/app/views/promethee/{edit/move/component/_row.html.erb → components/row/_edit.move.html.erb} +1 -1
  37. data/app/views/promethee/components/row/_edit.write.html.erb +33 -0
  38. data/app/views/promethee/components/row/_localize.html.erb +3 -0
  39. data/app/views/promethee/{show/component/_row.html.erb → components/row/_show.html.erb} +0 -0
  40. data/app/views/promethee/components/slider/_edit.define.html.erb +11 -0
  41. data/app/views/promethee/components/slider/_edit.inspect.html.erb +3 -0
  42. data/app/views/promethee/{edit/move/component/_slider.html.erb → components/slider/_edit.move.html.erb} +2 -3
  43. data/app/views/promethee/{edit/write/component/_slider.html.erb → components/slider/_edit.write.html.erb} +25 -32
  44. data/app/views/promethee/components/slider/_localize.html.erb +3 -0
  45. data/app/views/promethee/{show/component/_slider.html.erb → components/slider/_show.html.erb} +0 -0
  46. data/app/views/promethee/components/text/_edit.define.html.erb +12 -0
  47. data/app/views/promethee/{edit/inspector/component/_text.html.erb → components/text/_edit.inspect.html.erb} +1 -1
  48. data/app/views/promethee/{edit/move/component/_text.html.erb → components/text/_edit.move.html.erb} +1 -1
  49. data/app/views/promethee/components/text/_edit.write.html.erb +32 -0
  50. data/app/views/promethee/{localize/component/_text.html.erb → components/text/_localize.html.erb} +4 -2
  51. data/app/views/promethee/{show/component/_text.html.erb → components/text/_show.html.erb} +0 -0
  52. data/app/views/promethee/components/video/_edit.define.html.erb +12 -0
  53. data/app/views/promethee/{edit/inspector/component/_video.html.erb → components/video/_edit.inspect.html.erb} +1 -1
  54. data/app/views/promethee/{edit/move/component/_video.html.erb → components/video/_edit.move.html.erb} +1 -1
  55. data/app/views/promethee/{edit/write/component/_video.html.erb → components/video/_edit.write.html.erb} +7 -39
  56. data/app/views/promethee/components/video/_localize.html.erb +3 -0
  57. data/app/views/promethee/{show/component/_video.html.erb → components/video/_show.html.erb} +0 -0
  58. data/app/views/promethee/edit/_move.html.erb +35 -74
  59. data/app/views/promethee/edit/_preview.html.erb +3 -3
  60. data/app/views/promethee/edit/_write.html.erb +67 -17
  61. data/app/views/promethee/show/_component.html.erb +1 -1
  62. data/lib/promethee/rails/version.rb +1 -1
  63. metadata +55 -57
  64. data/app/views/promethee/edit/inspector/_inspector.html.erb +0 -11
  65. data/app/views/promethee/edit/inspector/component/_row.html.erb +0 -3
  66. data/app/views/promethee/edit/inspector/component/_slider.html.erb +0 -3
  67. data/app/views/promethee/edit/move/_component.html.erb +0 -5
  68. data/app/views/promethee/edit/move/_components.html.erb +0 -26
  69. data/app/views/promethee/edit/move/component/_cover.html.erb +0 -8
  70. data/app/views/promethee/edit/shared/_data.html.erb +0 -1
  71. data/app/views/promethee/edit/shared/_navbar.html.erb +0 -25
  72. data/app/views/promethee/edit/write/_add_button.html.erb +0 -66
  73. data/app/views/promethee/edit/write/_component.html.erb +0 -3
  74. data/app/views/promethee/edit/write/_components.html.erb +0 -7
  75. data/app/views/promethee/edit/write/_toolbar.html.erb +0 -5
  76. data/app/views/promethee/edit/write/component/_column.html.erb +0 -21
  77. data/app/views/promethee/edit/write/component/_cover.html.erb +0 -55
  78. data/app/views/promethee/edit/write/component/_details.html.erb +0 -52
  79. data/app/views/promethee/edit/write/component/_row.html.erb +0 -42
  80. data/app/views/promethee/edit/write/component/_text.html.erb +0 -44
  81. data/app/views/promethee/localize/_component.html.erb +0 -3
  82. data/app/views/promethee/localize/component/_column.html.erb +0 -3
  83. data/app/views/promethee/localize/component/_row.html.erb +0 -3
  84. data/app/views/promethee/localize/component/_slider.html.erb +0 -3
  85. data/app/views/promethee/localize/component/_video.html.erb +0 -3
@@ -1,41 +1,44 @@
1
- <script type="text/ng-template" id="promethee/write/component/slider">
2
- <div
3
- ng-controller="SliderController"
4
- ng-click="inspect(component, $event)"
5
- class="row promethee-editor__component promethee-editor__component--slider"
6
- >
7
- <div class="promethee-editor__component-selected" ng-class="{'promethee-editor__component-selected--visible': promethee.inspected === component}">
8
- <div class="promethee-editor__toolbar">
1
+ <script type="text/ng-template" id="promethee/components/slider/edit/write">
2
+ <div ng-controller="SliderController"
3
+ ng-click="inspect(component, $event)"
4
+ class=" row
5
+ promethee-edit__component
6
+ promethee-edit__component--slider">
7
+ <div class="promethee-edit__component-selected" ng-class="{'promethee-edit__component-selected--visible': promethee.inspected === component}">
8
+ <div class="promethee-edit__toolbar">
9
9
  Slider
10
-
11
10
  <ng-include src="'promethee/write/toolbar'"></ng-include>
12
-
13
11
  <div class="pull-right">
14
- <span ng-show="editing" ng-click="prev()" class="promethee-editor__button"><%= fa_icon 'chevron-left' %></span>
15
- <span ng-show="editing" ng-click="next()" class="promethee-editor__button"><%= fa_icon 'chevron-right' %></span>
12
+ <span ng-show="editing" ng-click="prev()" class="promethee-edit__button"><%= fa_icon 'chevron-left' %></span>
13
+ <span ng-show="editing" ng-click="next()" class="promethee-edit__button"><%= fa_icon 'chevron-right' %></span>
16
14
  </div>
17
15
  </div>
18
-
19
16
  <div id="{{sliderId}}" class="carousel slide" data-ride="carousel" ng-init="components = component.children">
20
17
  <div class="carousel-inner" style="min-height: 100px">
21
18
  <div ng-repeat="component in components track by $index" class="item" ng-class="{active: $index === 0}">
22
19
  <ng-include src="'promethee/' + (editing ? 'write' : 'move') + '/component'"></ng-include>
23
20
  </div>
24
21
  </div>
25
-
26
- <a ng-hide="editing" ng-click="$event.preventDefault()" class="left carousel-control fontawesome-carousel-control" href="#{{sliderId}}" data-slide="prev">
22
+ <a ng-hide="editing"
23
+ ng-click="$event.preventDefault()"
24
+ class="left carousel-control fontawesome-carousel-control"
25
+ href="#{{sliderId}}"
26
+ data-slide="prev">
27
27
  <%= fa_icon 'angle-left' %>
28
28
  </a>
29
- <a ng-hide="editing" ng-click="$event.preventDefault()" class="right carousel-control fontawesome-carousel-control" href="#{{sliderId}}" data-slide="next">
29
+ <a ng-hide="editing"
30
+ ng-click="$event.preventDefault()"
31
+ class="right carousel-control fontawesome-carousel-control"
32
+ href="#{{sliderId}}"
33
+ data-slide="next">
30
34
  <%= fa_icon 'angle-right' %>
31
35
  </a>
32
36
  </div>
33
-
34
- <span
35
- type="button"
36
- class="btn btn-default btn-block"
37
- ng-click="addComponentTo(component.children);goToLastItem();"
38
- >
37
+ <span type="button"
38
+ class=" btn
39
+ btn-default
40
+ btn-block"
41
+ ng-click="addComponentTo(component.children);goToLastItem();">
39
42
  Add item
40
43
  </span>
41
44
  </div>
@@ -43,16 +46,6 @@
43
46
  </script>
44
47
 
45
48
  <script>
46
- angular.injector(['ng', 'Promethee']).get('definitions').push({
47
- name: 'Slider',
48
- thumb: 'http://via.placeholder.com/300x200',
49
- data: {
50
- type: 'slider',
51
- attributes: {},
52
- children: []
53
- }
54
- });
55
-
56
49
  promethee.controller('SliderController', ['$scope', '$element', function($scope, $element) {
57
50
  $scope.sliderId = 'slider-' + Date.now() + '-' + Math.floor(Math.random()*1000000);
58
51
 
@@ -0,0 +1,3 @@
1
+ <script type="text/ng-template" id="promethee/components/slider/localize">
2
+
3
+ </script>
@@ -0,0 +1,12 @@
1
+ <script>
2
+ angular.injector(['ng', 'Promethee']).get('definitions').push({
3
+ name: 'Text',
4
+ thumb: 'http://via.placeholder.com/300x200',
5
+ data: {
6
+ type: 'text',
7
+ attributes: {
8
+ body: 'Edit me'
9
+ }
10
+ }
11
+ });
12
+ </script>
@@ -1,4 +1,4 @@
1
- <script type="text/ng-template" id="promethee/inspector/component/text">
1
+ <script type="text/ng-template" id="promethee/components/text/edit/inspect">
2
2
  {{promethee.inspected.attributes.body | textContentFromHTML: 'distinctParagraphs' | numberOfWords}} words<br>
3
3
  {{promethee.inspected.attributes.body | textContentFromHTML | numberOfCharacters}} characters
4
4
  </script>
@@ -1,3 +1,3 @@
1
- <script type="text/ng-template" id="promethee/move/component/text">
1
+ <script type="text/ng-template" id="promethee/components/text/edit/move">
2
2
  <div ng-bind-html="component.attributes.body | htmlSafe"></div>
3
3
  </script>
@@ -0,0 +1,32 @@
1
+ <script type="text/ng-template" id="promethee/components/text/edit/write">
2
+ <div ng-controller="TextController"
3
+ ng-click="inspect(component, $event)"
4
+ class=" promethee-edit__component
5
+ promethee-edit__component--text">
6
+ <div class="promethee-edit__component-selected" ng-class="{'promethee-edit__component-selected--visible': promethee.inspected === component}">
7
+ <div class="promethee-edit__toolbar">
8
+ Text
9
+ <ng-include src="'promethee/write/toolbar'"></ng-include>
10
+ </div>
11
+ <div ng-show="promethee.inspected === component">
12
+ <summernote config="options" ng-model="component.attributes.body"></summernote>
13
+ </div>
14
+ <div ng-hide="promethee.inspected === component">
15
+ <div class="promethee-edit__wrapper" ng-bind-html="component.attributes.body | htmlSafe"></div>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </script>
20
+
21
+ <script>
22
+ promethee.controller('TextController', ['$scope', function($scope) {
23
+ $scope.options = {
24
+ toolbar: [
25
+ ['headline', ['style']],
26
+ ['style', ['bold', 'italic']],
27
+ ['alignment', ['ul', 'ol', 'paragraph']],
28
+ ['code', ['codeview']]
29
+ ]
30
+ };
31
+ }]);
32
+ </script>
@@ -1,11 +1,13 @@
1
- <script type="text/ng-template" id="promethee/localize/component/text">
1
+ <script type="text/ng-template" id="promethee/components/text/localize">
2
2
  <div class="row">
3
3
  <div class="col-md-6">
4
+ <b>Local</b>
4
5
  <summernote config="options" ng-model="component.attributes.body"></summernote>
5
6
  </div>
6
7
  <div class="col-md-6">
7
8
  <b>Master</b>
8
- <div class="promethee-editor__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
9
+ <div class="promethee-edit__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
9
10
  </div>
10
11
  </div>
12
+ <hr>
11
13
  </script>
@@ -0,0 +1,12 @@
1
+ <script>
2
+ angular.injector(['ng', 'Promethee']).get('definitions').push({
3
+ name: 'Video',
4
+ thumb: 'http://via.placeholder.com/300x200',
5
+ data: {
6
+ type: 'video',
7
+ attributes: {
8
+ url: 'https://vimeo.com/115082758'
9
+ }
10
+ }
11
+ });
12
+ </script>
@@ -1,4 +1,4 @@
1
- <script type="text/ng-template" id="promethee/inspector/component/video">
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
4
  <input ng-model="promethee.inspected.attributes.url" class="form-control" type="text"/>
@@ -1,4 +1,4 @@
1
- <script type="text/ng-template" id="promethee/move/component/video">
1
+ <script type="text/ng-template" id="promethee/components/video/edit/move">
2
2
  <div ng-controller="VideoController">
3
3
  <div class="embed-responsive embed-responsive-16by9">
4
4
  <iframe ng-if="embed" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="allowfullscreen" ng-src="{{embed | urlSafe}}"></iframe>
@@ -1,15 +1,13 @@
1
- <script type="text/ng-template" id="promethee/write/component/video">
2
- <div
3
- ng-controller="VideoController"
4
- ng-click="inspect(component, $event)"
5
- class="promethee-editor__component promethee-editor__component--video"
6
- >
7
- <div class="promethee-editor__component-selected" ng-class="{'promethee-editor__component-selected--visible': promethee.inspected === component}">
8
- <div class="promethee-editor__toolbar">
1
+ <script type="text/ng-template" id="promethee/components/video/edit/write">
2
+ <div ng-controller="VideoController"
3
+ ng-click="inspect(component, $event)"
4
+ class=" promethee-edit__component
5
+ promethee-edit__component--video">
6
+ <div class="promethee-edit__component-selected" ng-class="{'promethee-edit__component-selected--visible': promethee.inspected === component}">
7
+ <div class="promethee-edit__toolbar">
9
8
  Video
10
9
  <ng-include src="'promethee/write/toolbar'"></ng-include>
11
10
  </div>
12
-
13
11
  <div class="embed-responsive embed-responsive-16by9">
14
12
  <iframe ng-if="embed" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="allowfullscreen" ng-src="{{embed | urlSafe}}"></iframe>
15
13
  <div class="video-neutralizing-overlay"></div>
@@ -19,37 +17,7 @@
19
17
  </script>
20
18
 
21
19
  <script>
22
- angular.injector(['ng', 'Promethee']).get('definitions').push({
23
- name: 'Video',
24
- thumb: 'http://via.placeholder.com/300x200',
25
- data: {
26
- type: 'video',
27
- attributes: {
28
- url: 'https://vimeo.com/115082758'
29
- }
30
- }
31
- });
32
-
33
20
  promethee.controller('VideoController', ['$scope', function($scope) {
34
- Object.defineProperty($scope, 'editing', {
35
- get: function() {
36
- return inspected == $scope.component;
37
- }
38
- });
39
-
40
- $scope.edit = function(event) {
41
- event.stopPropagation();
42
- inspected = $scope.component;
43
- };
44
-
45
- $scope.complete = function() {
46
- inspected = null;
47
- };
48
-
49
- $scope.toggleEdit = function() {
50
- $scope[$scope.editing ? 'complete' : 'edit']();
51
- };
52
-
53
21
  Object.defineProperty($scope, 'embed', {
54
22
  get: function() {
55
23
  var embed = null;
@@ -0,0 +1,3 @@
1
+ <script type="text/ng-template" id="promethee/components/video/localize">
2
+
3
+ </script>
@@ -1,79 +1,40 @@
1
- <%= render 'promethee/edit/move/component' %>
2
- <%= render 'promethee/edit/move/components' %>
3
- <% Dir[__dir__ + '/move/component/*.html.erb'].map do |file| %>
4
- <%= render "promethee/edit/move/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
5
- <% end %>
6
-
7
- <div class="promethee-editor__move" ng-show="mode == 'move'">
1
+ <div class="promethee-edit__move" ng-show="promethee.mode == 'move'">
8
2
  <ng-include src="'promethee/move/components'"></ng-include>
9
3
  </div>
10
4
 
11
- <script type="text/javascript">
12
- promethee
13
- .directive('draggable', function() {
14
- return {
15
- restrict:'A',
16
- link: function(scope, element, attrs) {
17
- element.draggable({
18
- revert: true,
19
- revertDuration: 0,
20
- scroll: true,
21
- refreshPositions: true,
22
- start: function() {
23
- var $elementDragged = $(element[0]);
24
- var type = $elementDragged.data('type');
25
- $('.promethee-editor__move').addClass('promethee-editor__move--dragging promethee-editor__move--dragging--' + type);
26
-
27
- // The droppable zone immediately before has no use, it would put the object at the same position
28
- // FIXME the selector is not correct
29
- /*
30
- var $droppableBefore = $elementDragged.prev('.promethee-editor__move__draggable').find('.promethee-editor__move__droppable').last();
31
- if ($droppableBefore.length === 0) {
32
- // For the first child, we look for the previous droppable zone
33
- $droppableBefore = $elementDragged.prev('.promethee-editor__move__droppable');
34
- }
35
- $droppableBefore.addClass('promethee-editor__move__droppable--hidden');
36
- */
37
- },
38
- stop: function() {
39
- var $elementDragged = $(element[0]);
40
- var type = $elementDragged.data('type');
41
- $('.promethee-editor__move').removeClass('promethee-editor__move--dragging promethee-editor__move--dragging--' + type);
42
- // $('.promethee-editor__move__droppable').removeClass('promethee-editor__move__droppable--hidden');
43
- }
44
- });
45
- }
46
- }
47
- })
48
- .directive('droppable', function($compile) {
49
- return {
50
- restrict: 'A',
51
- link: function(scope, element, attrs) {
52
- element.droppable({
53
- tolerance: 'pointer',
54
- drop: function(event, ui) {
55
- var draggedFromList = angular.element(ui.draggable).parent().scope().components;
56
- var draggedFromIndex = parseInt(ui.draggable[0].getAttribute('data-index'));
57
- // console.log('dragged', draggedFromList, draggedFromIndex);
58
- draggedFromList.splice(draggedFromIndex, 1);
59
-
60
- var component = angular.element(ui.draggable).scope().component;
61
- var droppedToList = angular.element(this).scope().components;
62
- var droppedToIndex = parseInt(this.getAttribute('data-index'));
63
- if (draggedFromList == droppedToList) {
64
- // The object we dragged was removed from the list
65
- if (draggedFromIndex < droppedToIndex) {
66
- // It was before the dropped index, so removing it changed the index
67
- droppedToIndex -= 1;
68
- }
69
- }
70
- // console.log('dropped', component, droppedToList, droppedToIndex);
71
- droppedToList.splice(droppedToIndex, 0, component);
5
+ <script type="text/ng-template" id="promethee/move/component">
6
+ <div class="promethee-edit__move__component">
7
+ <ng-include src="'promethee/components/' + component.type + '/edit/move'"></ng-include>
8
+ </div>
9
+ </script>
72
10
 
73
- scope.$apply();
74
- }
75
- });
76
- }
77
- }
78
- });
11
+ <script type="text/ng-template" id="promethee/move/components">
12
+ <div ng-init="type = component.type; components = component.children">
13
+ <div
14
+ droppable
15
+ class=" promethee-edit__move__droppable
16
+ promethee-edit__move__droppable--{{type}}
17
+ promethee-edit__move__droppable--{{type}}--first"
18
+ data-index="0"
19
+ >
20
+ </div>
21
+ <div
22
+ draggable
23
+ ng-repeat="component in components"
24
+ class=" promethee-edit__move__draggable
25
+ promethee-edit__move__draggable--{{type}}"
26
+ data-index="{{$index}}"
27
+ data-type="{{component.type}}"
28
+ >
29
+ <ng-include src="'promethee/move/component'"></ng-include>
30
+ <div
31
+ droppable
32
+ class=" promethee-edit__move__droppable
33
+ promethee-edit__move__droppable--{{type}}"
34
+ data-index="{{$index+1}}"
35
+ data-type="{{type}}"
36
+ >
37
+ </div>
38
+ </div>
39
+ </div>
79
40
  </script>
@@ -1,4 +1,4 @@
1
- <div class="promethee-editor__preview promethee-editor__preview--{{preview}}" ng-show="mode == 'preview'">
2
- <i class="fa fa-refresh fa-spin fa-fw promethee-editor__preview-loader"></i>
3
- <iframe class="promethee-editor__preview-frame" name="preview" sandbox="allow-scripts" frameBorder="0"></iframe>
1
+ <div class="promethee-edit__preview promethee-edit__preview--{{promethee.preview}}" ng-show="promethee.mode == 'preview'">
2
+ <i class="fa fa-refresh fa-spin fa-fw promethee-edit__preview-loader"></i>
3
+ <iframe class="promethee-edit__preview-frame" name="preview" sandbox="allow-scripts" frameBorder="0"></iframe>
4
4
  </div>
@@ -1,21 +1,71 @@
1
- <%= render 'promethee/edit/write/add_button' %>
2
- <%= render 'promethee/edit/write/toolbar' %>
3
- <%= render 'promethee/edit/write/component' %>
4
- <%= render 'promethee/edit/write/components' %>
5
- <% Dir[__dir__ + '/write/component/_*.html.erb'].map do |file| %>
6
- <%= render "promethee/edit/write/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
7
- <% end %>
8
- <% Dir[__dir__ + '/inspector/component/_*.html.erb'].map do |file| %>
9
- <%= render "promethee/edit/inspector/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
10
- <% end %>
11
- <div class="promethee-editor__write" ng-show="mode == 'write'">
12
- <div ng-class="{ 'container-fluid': fullscreen }">
13
- <div ng-init="component = component || data"
14
- class="promethee-editor__component promethee-editor__component--page"
15
- >
1
+ <div class="promethee-edit__write" ng-show="promethee.mode == 'write'">
2
+ <div ng-class="{ 'container-fluid': promethee.fullscreen }">
3
+ <div ng-init="component = promethee.data"
4
+ class=" promethee-edit__component
5
+ promethee-edit__component--page">
16
6
  <ng-include src="'promethee/write/components'"></ng-include>
17
7
  </div>
18
8
  </div>
19
9
  <ng-include src="'promethee/write/add_button'"></ng-include>
20
- <%= render 'promethee/edit/inspector/inspector' %>
21
- </div>
10
+ <div class="promethee-edit__inspect" ng-show="promethee.inspected">
11
+ <div class="promethee-edit__inspect-header">
12
+ <div class="pull-right">
13
+ <span ng-click="promethee.inspected = null"><%= fa_icon :times %></span>
14
+ </div>
15
+ <h5>{{promethee.inspected.type}}</h5>
16
+ </div>
17
+ <div class="promethee-edit__inspect-content">
18
+ <ng-include ng-if="promethee.inspected" src="'promethee/components/' + promethee.inspected.type + '/edit/inspect'"></ng-include>
19
+ </div>
20
+ </div>
21
+ </div>
22
+
23
+ <script type="text/ng-template" id="promethee/write/components">
24
+ <div ng-init="components = component.children">
25
+ <div ng-repeat="component in components">
26
+ <ng-include src="'promethee/write/component'"></ng-include>
27
+ </div>
28
+ </div>
29
+ </script>
30
+
31
+ <script type="text/ng-template" id="promethee/write/component">
32
+ <ng-include src="'promethee/components/' + component.type + '/edit/write'"></ng-include>
33
+ </script>
34
+
35
+ <script type="text/ng-template" id="promethee/write/toolbar">
36
+ <div class="pull-right">
37
+ <span ng-click="remove(component, components)" class="promethee-edit__button"><%= fa_icon :times %></span>
38
+ </div>
39
+ </script>
40
+
41
+ <script type="text/ng-template" id="promethee/write/add_button">
42
+ <a ng-click="addComponentTo(component.children)" class="promethee-edit__adder__button"><%= fa_icon 'plus-circle', class: "fa-3x" %></a>
43
+ </script>
44
+
45
+ <div class="promethee-edit__adder" ng-controller="AdderController">
46
+ <% # FIXME le style comme ça ce n'est pas propre, sortir de la modal bootstrap et utiliser ng-show %>
47
+ <div class="modal fade in" tabindex="-1" role="dialog" style="display: {{adding ? 'block' : 'none'}}">
48
+ <div class="modal-dialog modal-lg" role="document">
49
+ <div class="modal-content">
50
+ <div class="modal-header">
51
+ <button type="button" class="close" ng-click="close()"><span aria-hidden="true">&times;</span></button>
52
+ <h4 class="modal-title">Select component</h4>
53
+ </div>
54
+ <div class="modal-body">
55
+ <div class="row">
56
+ <div
57
+ ng-repeat="definition in definitions"
58
+ ng-click="pushComponent(definition)"
59
+ class="col-md-3">
60
+ <div class="thumbnail">
61
+ <img ng-src="{{definition.thumb}}" class="img-responsive">
62
+ <h4>{{definition.name}}</h4>
63
+ <p>{{definition.description}}</p>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>