promethee 1.0.20 → 1.1.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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/promethee-editor.sass +26 -57
- data/app/assets/stylesheets/promethee-editor/_move.sass +102 -0
- data/app/assets/stylesheets/promethee-editor/_preview.sass +2 -3
- data/app/assets/stylesheets/promethee-editor/_write.sass +58 -0
- data/app/views/promethee/_edit.html.erb +34 -99
- data/app/views/promethee/_localize.html.erb +1 -1
- data/app/views/promethee/_show.html.erb +1 -2
- data/app/views/promethee/edit/_move.html.erb +17 -38
- data/app/views/promethee/edit/_preview.html.erb +4 -36
- data/app/views/promethee/edit/_write.html.erb +9 -25
- data/app/views/promethee/edit/inspector/_inspector.html.erb +11 -0
- data/app/views/promethee/edit/inspector/component/_column.html.erb +2 -2
- data/app/views/promethee/edit/inspector/component/_cover.html.erb +1 -1
- data/app/views/promethee/edit/inspector/component/_details.html.erb +1 -1
- data/app/views/promethee/edit/inspector/component/_image.html.erb +3 -3
- data/app/views/promethee/edit/inspector/component/_text.html.erb +2 -11
- data/app/views/promethee/edit/inspector/component/_video.html.erb +1 -1
- data/app/views/promethee/edit/move/_component.html.erb +3 -1
- data/app/views/promethee/edit/move/_components.html.erb +10 -4
- data/app/views/promethee/edit/move/component/_column.html.erb +11 -9
- data/app/views/promethee/edit/move/component/_cover.html.erb +1 -1
- data/app/views/promethee/edit/move/component/_details.html.erb +1 -1
- data/app/views/promethee/edit/move/component/_row.html.erb +2 -2
- data/app/views/promethee/edit/shared/_data.html.erb +1 -0
- data/app/views/promethee/edit/shared/_navbar.html.erb +13 -19
- data/app/views/promethee/edit/write/_add_button.html.erb +23 -31
- data/app/views/promethee/edit/write/_toolbar.html.erb +1 -1
- data/app/views/promethee/edit/write/component/_column.html.erb +5 -37
- data/app/views/promethee/edit/write/component/_cover.html.erb +3 -22
- data/app/views/promethee/edit/write/component/_details.html.erb +3 -22
- data/app/views/promethee/edit/write/component/_image.html.erb +4 -23
- data/app/views/promethee/edit/write/component/_row.html.erb +4 -25
- data/app/views/promethee/edit/write/component/_slider.html.erb +3 -20
- data/app/views/promethee/edit/write/component/_text.html.erb +5 -24
- data/app/views/promethee/edit/write/component/_video.html.erb +7 -6
- data/lib/promethee/data.rb +56 -100
- data/lib/promethee/rails/version.rb +1 -1
- metadata +6 -4
- data/app/assets/stylesheets/promethee-editor/_component.sass +0 -27
- data/app/assets/stylesheets/promethee-editor/_mover.sass +0 -85
@@ -37,7 +37,7 @@ promethee_data = Promethee::Data.new master_data, localization_data: localizatio
|
|
37
37
|
class="promethee-localizer"
|
38
38
|
ng-app="PrometheeLocalizer"
|
39
39
|
ng-controller="PrometheeLocalizerController as prometheeLocalizerController">
|
40
|
-
<input type="hidden" name="
|
40
|
+
<input type="hidden" name="localization[data]" id="page_data" value="{{data}}" />
|
41
41
|
|
42
42
|
<%= render 'promethee/localize/component' %>
|
43
43
|
<% Dir[__dir__ + '/localize/component/*.html.erb'].map do |file| %>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<%
|
2
|
-
promethee_data = Promethee::Data.new
|
2
|
+
promethee_data = Promethee::Data.new master_data, localization_data: localization_data
|
3
3
|
%>
|
4
|
-
|
5
4
|
<div class="promethee">
|
6
5
|
<%= render 'promethee/show/components', components: promethee_data[:children] %>
|
7
6
|
</div>
|
@@ -4,30 +4,9 @@
|
|
4
4
|
<%= render "promethee/edit/move/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
|
5
5
|
<% end %>
|
6
6
|
|
7
|
-
<
|
8
|
-
<
|
9
|
-
|
10
|
-
<div class="promethee__move--droppable promethee__move--droppable--{{type}} promethee__move--droppable--{{type}}--first"
|
11
|
-
droppable
|
12
|
-
data-index="0"
|
13
|
-
>
|
14
|
-
</div>
|
15
|
-
<div ng-repeat="component in components"
|
16
|
-
class="promethee__move--draggable promethee__move--draggable--{{type}}"
|
17
|
-
draggable
|
18
|
-
data-index="{{$index}}"
|
19
|
-
data-type="{{component.type}}"
|
20
|
-
>
|
21
|
-
<ng-include src="'promethee/move/component/' + component.type"></ng-include>
|
22
|
-
<div class="promethee__move--droppable promethee__move--droppable--{{type}}"
|
23
|
-
droppable
|
24
|
-
data-index="{{$index+1}}"
|
25
|
-
data-type="{{type}}"
|
26
|
-
>
|
27
|
-
</div>
|
28
|
-
</div>
|
29
|
-
</div>
|
30
|
-
</script>
|
7
|
+
<div class="promethee-editor__move" ng-show="mode == 'move'">
|
8
|
+
<ng-include src="'promethee/move/components'"></ng-include>
|
9
|
+
</div>
|
31
10
|
|
32
11
|
<script type="text/javascript">
|
33
12
|
promethee
|
@@ -36,34 +15,31 @@
|
|
36
15
|
restrict:'A',
|
37
16
|
link: function(scope, element, attrs) {
|
38
17
|
element.draggable({
|
18
|
+
revert: true,
|
19
|
+
revertDuration: 0,
|
39
20
|
scroll: true,
|
40
|
-
cursor: "pointer",
|
41
|
-
cursorAt: { top: 0, left: 0 },
|
42
21
|
refreshPositions: true,
|
43
22
|
start: function() {
|
44
23
|
var $elementDragged = $(element[0]);
|
45
|
-
$elementDragged.addClass('promethee__move--dragged');
|
46
24
|
var type = $elementDragged.data('type');
|
47
|
-
$('.
|
25
|
+
$('.promethee-editor__move').addClass('promethee-editor__move--dragging promethee-editor__move--dragging--' + type);
|
48
26
|
|
49
27
|
// The droppable zone immediately before has no use, it would put the object at the same position
|
50
|
-
|
28
|
+
// FIXME the selector is not correct
|
29
|
+
/*
|
30
|
+
var $droppableBefore = $elementDragged.prev('.promethee-editor__move__draggable').find('.promethee-editor__move__droppable').last();
|
51
31
|
if ($droppableBefore.length === 0) {
|
52
32
|
// For the first child, we look for the previous droppable zone
|
53
|
-
$droppableBefore = $elementDragged.prev('.
|
33
|
+
$droppableBefore = $elementDragged.prev('.promethee-editor__move__droppable');
|
54
34
|
}
|
55
|
-
$droppableBefore.addClass('
|
35
|
+
$droppableBefore.addClass('promethee-editor__move__droppable--hidden');
|
36
|
+
*/
|
56
37
|
},
|
57
38
|
stop: function() {
|
58
39
|
var $elementDragged = $(element[0]);
|
59
|
-
$elementDragged.removeClass('promethee__move--dragged');
|
60
40
|
var type = $elementDragged.data('type');
|
61
|
-
$('.
|
62
|
-
|
63
|
-
$('.promethee__move--droppable').removeClass('promethee__move--droppable--hidden');
|
64
|
-
},
|
65
|
-
helper: function( event ) {
|
66
|
-
return $( '<div></div>' );
|
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');
|
67
43
|
}
|
68
44
|
});
|
69
45
|
}
|
@@ -74,9 +50,11 @@
|
|
74
50
|
restrict: 'A',
|
75
51
|
link: function(scope, element, attrs) {
|
76
52
|
element.droppable({
|
53
|
+
tolerance: 'pointer',
|
77
54
|
drop: function(event, ui) {
|
78
55
|
var draggedFromList = angular.element(ui.draggable).parent().scope().components;
|
79
56
|
var draggedFromIndex = parseInt(ui.draggable[0].getAttribute('data-index'));
|
57
|
+
// console.log('dragged', draggedFromList, draggedFromIndex);
|
80
58
|
draggedFromList.splice(draggedFromIndex, 1);
|
81
59
|
|
82
60
|
var component = angular.element(ui.draggable).scope().component;
|
@@ -89,6 +67,7 @@
|
|
89
67
|
droppedToIndex -= 1;
|
90
68
|
}
|
91
69
|
}
|
70
|
+
// console.log('dropped', component, droppedToList, droppedToIndex);
|
92
71
|
droppedToList.splice(droppedToIndex, 0, component);
|
93
72
|
|
94
73
|
scope.$apply();
|
@@ -1,36 +1,4 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<iframe
|
7
|
-
class="promethee-editor__preview-frame"
|
8
|
-
name="preview"
|
9
|
-
sandbox="allow-scripts"
|
10
|
-
frameBorder="0"
|
11
|
-
>
|
12
|
-
</iframe>
|
13
|
-
</div>
|
14
|
-
</script>
|
15
|
-
|
16
|
-
<script>
|
17
|
-
promethee.controller('PreviewController', ['data', '$scope', function(data, $scope) {
|
18
|
-
var update = function() {
|
19
|
-
var form = document.createElement('form');
|
20
|
-
form.method = 'post';
|
21
|
-
form.action = <%= promethee_preview_path.to_json.html_safe %>;
|
22
|
-
form.target = 'preview';
|
23
|
-
|
24
|
-
var input = document.createElement('input');
|
25
|
-
input.name = 'data';
|
26
|
-
input.value = JSON.stringify($scope.data);
|
27
|
-
|
28
|
-
form.appendChild(input);
|
29
|
-
form.submit();
|
30
|
-
};
|
31
|
-
|
32
|
-
$scope.$watch('action.current', function(newValue, oldValue) {
|
33
|
-
if(newValue !== oldValue && newValue == 'preview') update();
|
34
|
-
});
|
35
|
-
}]);
|
36
|
-
</script>
|
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>
|
4
|
+
</div>
|
@@ -8,30 +8,14 @@
|
|
8
8
|
<% Dir[__dir__ + '/inspector/component/_*.html.erb'].map do |file| %>
|
9
9
|
<%= render "promethee/edit/inspector/component/#{File.basename(file, '.html.erb').sub(/\A_/, '')}" %>
|
10
10
|
<% end %>
|
11
|
-
|
12
|
-
<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
class="promethee-editor__component promethee-editor__component--page"
|
18
|
-
>
|
19
|
-
<ng-include src="'promethee/write/components'"></ng-include>
|
20
|
-
</div>
|
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
|
+
>
|
16
|
+
<ng-include src="'promethee/write/components'"></ng-include>
|
21
17
|
</div>
|
22
|
-
<ng-include src="'promethee/write/add_button'"></ng-include>
|
23
18
|
</div>
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<div class="pull-right">
|
28
|
-
<span ng-click="inspected.component = null"><%= fa_icon 'window-close' %></span>
|
29
|
-
</div>
|
30
|
-
<h5 ng-if="inspected.component">{{inspected.component.type}}</h5>
|
31
|
-
</div>
|
32
|
-
|
33
|
-
<div ng-if="inspected.component" class="promethee-editor__inspector-content">
|
34
|
-
<ng-include src="'promethee/inspector/component/' + inspected.component.type"></ng-include>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
</script>
|
19
|
+
<ng-include src="'promethee/write/add_button'"></ng-include>
|
20
|
+
<%= render 'promethee/edit/inspector/inspector' %>
|
21
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div class="promethee-editor__inspector" ng-show="promethee.inspected">
|
2
|
+
<div class="promethee-editor__inspector-header">
|
3
|
+
<div class="pull-right">
|
4
|
+
<span ng-click="promethee.inspected = null"><%= fa_icon :times %></span>
|
5
|
+
</div>
|
6
|
+
<h5>{{promethee.inspected.type}}</h5>
|
7
|
+
</div>
|
8
|
+
<div class="promethee-editor__inspector-content">
|
9
|
+
<ng-include ng-if="promethee.inspected" src="'promethee/inspector/component/' + promethee.inspected.type"></ng-include>
|
10
|
+
</div>
|
11
|
+
</div>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/column">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Size</label>
|
4
|
-
<input ng-model="inspected.
|
4
|
+
<input ng-model="promethee.inspected.attributes.size" class="form-control" type="number"/>
|
5
5
|
</div>
|
6
6
|
<div class="form-group">
|
7
7
|
<label class="label-control">Offset</label>
|
8
|
-
<input ng-model="inspected.
|
8
|
+
<input ng-model="promethee.inspected.attributes.offset" class="form-control" type="number"/>
|
9
9
|
</div>
|
10
10
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/cover">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Image Url</label>
|
4
|
-
<input ng-model="inspected.
|
4
|
+
<input ng-model="promethee.inspected.attributes.src" class="form-control" type="text"/>
|
5
5
|
</div>
|
6
6
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/details">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Summary</label>
|
4
|
-
<input ng-model="inspected.
|
4
|
+
<input ng-model="promethee.inspected.attributes.summary" class="form-control" type="text"/>
|
5
5
|
</div>
|
6
6
|
</script>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/image">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Url</label>
|
4
|
-
<input class="form-control" ng-model="inspected.
|
4
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.src">
|
5
5
|
</div>
|
6
6
|
|
7
7
|
<div class="form-group">
|
8
8
|
<label class="label-control">Alt</label>
|
9
|
-
<input class="form-control" ng-model="inspected.
|
9
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.alt">
|
10
10
|
</div>
|
11
11
|
|
12
12
|
<div class="form-group">
|
@@ -18,6 +18,6 @@
|
|
18
18
|
['alignment', ['ul', 'ol', 'paragraph']],
|
19
19
|
['code', ['codeview']]
|
20
20
|
]
|
21
|
-
}" ng-model="inspected.
|
21
|
+
}" ng-model="promethee.inspected.attributes.caption"></summernote>
|
22
22
|
</div>
|
23
23
|
</script>
|
@@ -1,13 +1,4 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/text">
|
2
|
-
<
|
3
|
-
|
4
|
-
Number of words
|
5
|
-
<span class="badge badge-primary badge-pill">{{inspected.component.attributes.body | textContentFromHTML: 'distinctParagraphs' | numberOfWords}}</span>
|
6
|
-
</li>
|
7
|
-
|
8
|
-
<li class="list-group-item">
|
9
|
-
Number of characters
|
10
|
-
<span class="badge badge-primary badge-pill">{{inspected.component.attributes.body | textContentFromHTML | numberOfCharacters}}</span>
|
11
|
-
</li>
|
12
|
-
</ul>
|
2
|
+
{{promethee.inspected.attributes.body | textContentFromHTML: 'distinctParagraphs' | numberOfWords}} words<br>
|
3
|
+
{{promethee.inspected.attributes.body | textContentFromHTML | numberOfCharacters}} characters
|
13
4
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/inspector/component/video">
|
2
2
|
<div class="form-group">
|
3
3
|
<label class="label-control">Url</label>
|
4
|
-
<input ng-model="inspected.
|
4
|
+
<input ng-model="promethee.inspected.attributes.url" class="form-control" type="text"/>
|
5
5
|
</div>
|
6
6
|
</script>
|
@@ -1,3 +1,5 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/component">
|
2
|
-
<
|
2
|
+
<div class="promethee-editor__move__component">
|
3
|
+
<ng-include src="'promethee/move/component/' + component.type"></ng-include>
|
4
|
+
</div>
|
3
5
|
</script>
|
@@ -1,19 +1,25 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/components">
|
2
2
|
<div ng-init="type = component.type; components = component.children">
|
3
|
+
<div
|
4
|
+
class="promethee-editor__move__droppable promethee-editor__move__droppable--{{type}} promethee-editor__move__droppable--{{type}}--first"
|
5
|
+
droppable
|
6
|
+
data-index="0"
|
7
|
+
>
|
8
|
+
</div>
|
3
9
|
<div
|
4
10
|
ng-repeat="component in components"
|
5
|
-
class="
|
11
|
+
class="promethee-editor__move__draggable promethee-editor__move__draggable--{{type}}"
|
6
12
|
draggable
|
7
13
|
data-index="{{$index}}"
|
8
14
|
data-type="{{component.type}}"
|
9
|
-
|
15
|
+
>
|
10
16
|
<ng-include src="'promethee/move/component'"></ng-include>
|
11
17
|
<div
|
12
|
-
class="
|
18
|
+
class="promethee-editor__move__droppable promethee-editor__move__droppable--{{type}}"
|
13
19
|
droppable
|
14
20
|
data-index="{{$index+1}}"
|
15
21
|
data-type="{{type}}"
|
16
|
-
|
22
|
+
>
|
17
23
|
</div>
|
18
24
|
</div>
|
19
25
|
</div>
|
@@ -1,13 +1,15 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/component/column">
|
2
2
|
<div class="col col-md-{{component.attributes.size}} col-md-offset-{{component.attributes.offset}}">
|
3
|
-
<
|
4
|
-
<ng-include src="'promethee/move'"></ng-include>
|
5
|
-
<div
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
<div class="header">Column</div>
|
4
|
+
<ng-include src="'promethee/move/components'"></ng-include>
|
5
|
+
<div
|
6
|
+
class=" promethee-editor__move__droppable
|
7
|
+
promethee-editor__move__droppable--row
|
8
|
+
promethee-editor__move__droppable--row--inside-column"
|
9
|
+
droppable
|
10
|
+
data-index="{{$index+1}}"
|
11
|
+
data-type="{{type}}"
|
12
|
+
>
|
13
|
+
</div>
|
12
14
|
</div>
|
13
15
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/component/details">
|
2
2
|
<details>
|
3
3
|
<summary>{{component.attributes.summary}}</summary>
|
4
|
-
<ng-include src="'promethee/move'"></ng-include>
|
4
|
+
<ng-include src="'promethee/move/components'"></ng-include>
|
5
5
|
</details>
|
6
6
|
</script>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/move/component/row">
|
2
|
-
<
|
2
|
+
<div class="header">Row</div>
|
3
3
|
<div class="row">
|
4
|
-
<ng-include src="'promethee/move'"></ng-include>
|
4
|
+
<ng-include src="'promethee/move/components'"></ng-include>
|
5
5
|
</div>
|
6
6
|
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<input type="hidden" name="page[data]" id="page_data" value="{{data}}" />
|
@@ -1,29 +1,23 @@
|
|
1
|
-
<nav class="navbar navbar-default promethee-editor__navbar">
|
1
|
+
<nav class="navbar navbar-default promethee-editor__navbar" ng-class="{'navbar-fixed-top': fullscreen }">
|
2
2
|
<div class="container-fluid">
|
3
3
|
<div class="navbar-header promethee-editor__icon">
|
4
4
|
<div class="navbar-brand"><%= File.read(__dir__ + '/../../../../assets/images/icon-promethee.svg').html_safe %></div>
|
5
5
|
</div>
|
6
6
|
<div id="navbar">
|
7
7
|
<ul class="nav navbar-nav navbar-right">
|
8
|
-
<li ng-click="
|
9
|
-
|
10
|
-
<li
|
11
|
-
|
12
|
-
ng-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
<li ng-click="mode = 'write'" ng-class="{active: mode == 'write'}"><a><%= fa_icon :pencil %></a></li>
|
9
|
+
<li ng-click="mode = 'move'" ng-class="{active: mode == 'move'}"><a><%= fa_icon :arrows %></a></li>
|
10
|
+
<li ng-click="enablePreview()" ng-class="{active: mode == 'preview'}">
|
11
|
+
<a data-toggle="dropdown"><%= fa_icon :eye %></a>
|
12
|
+
<ul class="dropdown-menu" ng-show="mode == 'preview'">
|
13
|
+
<li ng-click="preview = 'desktop'" ng-class="{active: preview == 'desktop'}"><a><i class="fa fa-desktop"></i></a></li>
|
14
|
+
<li ng-click="preview = 'tablet'" ng-class="{active: preview == 'tablet'}"><a><i class="fa fa-tablet"></i></a></li>
|
15
|
+
<li ng-click="preview = 'mobile'" ng-class="{active: preview == 'mobile'}"><a><i class="fa fa-mobile"></i></a></li>
|
16
|
+
</ul>
|
17
17
|
</li>
|
18
|
-
|
19
|
-
|
20
|
-
<a ng-hide="
|
21
|
-
<a ng-show="action.is('preview')"><%= fa_icon 'eye-slash' %></a>
|
22
|
-
</li>
|
23
|
-
|
24
|
-
<li ng-click="fullscreen.toggle()" ng-class="{active: fullscreen.enabled}">
|
25
|
-
<a ng-show="fullscreen.disabled"><%= fa_icon :expand %></a>
|
26
|
-
<a ng-show="fullscreen.enabled"><%= fa_icon :compress %></a>
|
18
|
+
<li ng-click="fullscreen = !fullscreen">
|
19
|
+
<a ng-show="fullscreen"><%= fa_icon :expand %></a>
|
20
|
+
<a ng-hide="fullscreen"><%= fa_icon :compress %></a>
|
27
21
|
</li>
|
28
22
|
</ul>
|
29
23
|
</div>
|
@@ -1,33 +1,26 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/write/add_button">
|
2
|
-
<
|
3
|
-
|
4
|
-
class="btn btn-default btn-block"
|
5
|
-
ng-click="addComponentTo(data.children)"
|
6
|
-
ng-hide="action.is('preview')"
|
7
|
-
style="margin-bottom: 6px"
|
8
|
-
>
|
9
|
-
Add component
|
10
|
-
</span>
|
2
|
+
<a ng-click="addComponentTo(component.children)" class="promethee-editor__adder__button"><%= fa_icon 'plus-circle', class: "fa-3x" %></a>
|
3
|
+
</script>
|
11
4
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
</
|
5
|
+
<div class="promethee-editor__adder" ng-controller="AdderController">
|
6
|
+
<div class="modal fade in" tabindex="-1" role="dialog" style="display: {{adding ? 'block' : 'none'}}">
|
7
|
+
<div class="modal-dialog modal-lg" role="document">
|
8
|
+
<div class="modal-content">
|
9
|
+
<div class="modal-header">
|
10
|
+
<button type="button" class="close" ng-click="close()"><span aria-hidden="true">×</span></button>
|
11
|
+
<h4 class="modal-title">Select component</h4>
|
12
|
+
</div>
|
13
|
+
<div class="modal-body">
|
14
|
+
<div class="row">
|
15
|
+
<div
|
16
|
+
ng-repeat="definition in definitions"
|
17
|
+
ng-click="pushComponent(definition)"
|
18
|
+
class="col-md-3"
|
19
|
+
>
|
20
|
+
<div class="thumbnail">
|
21
|
+
<img ng-src="{{definition.thumb}}" class="img-responsive">
|
22
|
+
<h4>{{definition.name}}</h4>
|
23
|
+
<p>{{definition.description}}</p>
|
31
24
|
</div>
|
32
25
|
</div>
|
33
26
|
</div>
|
@@ -35,12 +28,11 @@
|
|
35
28
|
</div>
|
36
29
|
</div>
|
37
30
|
</div>
|
38
|
-
</
|
31
|
+
</div>
|
39
32
|
|
40
33
|
<script type="text/javascript">
|
41
|
-
promethee.controller('AdderController', ['$scope', '$rootScope', 'definitions',
|
34
|
+
promethee.controller('AdderController', ['$scope', '$rootScope', 'definitions', function($scope, $rootScope, definitions) {
|
42
35
|
|
43
|
-
$scope.action = action;
|
44
36
|
$scope.adding = false;
|
45
37
|
$scope.childrenToAddTo = null;
|
46
38
|
$scope.definitions = definitions;
|