promethee 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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>