promethee 1.3.1 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -2
- data/app/assets/stylesheets/promethee-edit/_move.sass +47 -57
- data/app/views/promethee/_edit.html.erb +3 -2
- data/app/views/promethee/components/column/_edit.move.html.erb +4 -6
- data/app/views/promethee/edit/_move.header.html.erb +1 -2
- data/app/views/promethee/edit/_move.html.erb +35 -25
- data/lib/promethee.rb +0 -3
- data/lib/promethee/rails/helper.rb +12 -0
- data/lib/promethee/rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9d64c7758ac9560202c0c5e3a2df6a42290bb4a
|
4
|
+
data.tar.gz: 9e9b2f4dd45a864b334fae766af431d5187fe845
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 185bc919628cd9e1a86ba9c4085c01f2e0ecfa32be03203699006d92254197c61be9f1e6260f35bfeb26f27168da11c758d3e6825453ffb28a78dfb7cd3f7d16
|
7
|
+
data.tar.gz: 53a3a042392290e5e179b73047749e53295cd60d8e63862ab0011a0ebc4b2e30c2e384a93b58f8e8918c1331fda7a6339fdbfcfa4baa8fa43a3e07cabdc9c11c
|
data/README.md
CHANGED
@@ -97,7 +97,6 @@ With stylesheets set:
|
|
97
97
|
```
|
98
98
|
@import 'bootstrap'
|
99
99
|
@import 'font-awesome.css'
|
100
|
-
@import 'material_icons.css'
|
101
100
|
@import 'summernote'
|
102
101
|
@import 'promethee'
|
103
102
|
```
|
@@ -138,7 +137,6 @@ With stylesheets set:
|
|
138
137
|
```
|
139
138
|
@import 'bootstrap'
|
140
139
|
@import 'font-awesome.css'
|
141
|
-
@import 'material_icons.css'
|
142
140
|
@import 'summernote'
|
143
141
|
@import 'promethee'
|
144
142
|
@import 'promethee-edit'
|
@@ -41,6 +41,7 @@
|
|
41
41
|
background: black
|
42
42
|
&__page
|
43
43
|
z-index: 1
|
44
|
+
padding-bottom: 200px
|
44
45
|
&__columns, &__page
|
45
46
|
.row
|
46
47
|
margin-left: -5px
|
@@ -60,16 +61,15 @@
|
|
60
61
|
&__droppable
|
61
62
|
visibility: hidden
|
62
63
|
opacity: .2
|
63
|
-
margin:
|
64
|
+
margin: 2px 0
|
64
65
|
position: relative
|
65
66
|
background: white
|
66
67
|
width: 100%
|
67
|
-
height:
|
68
|
+
height: 20px
|
68
69
|
border: 1px dashed #253742
|
69
70
|
transition: width .2s, height .2s, opacity .2s
|
70
71
|
&.ui-droppable-active
|
71
72
|
visibility: visible
|
72
|
-
height: 10px
|
73
73
|
&.ui-droppable-hover
|
74
74
|
opacity: 1
|
75
75
|
height: 100px
|
@@ -112,61 +112,51 @@
|
|
112
112
|
.promethee-edit__move__droppable
|
113
113
|
display: none
|
114
114
|
// It's a little specific, columns can be dropped on rows "first droppable", or on columns "inside droppables"
|
115
|
-
&.promethee-edit__move__droppable--row--
|
116
|
-
&.promethee-edit__move__droppable--row--
|
115
|
+
&.promethee-edit__move__droppable--row--first,
|
116
|
+
&.promethee-edit__move__droppable--row--inside-column
|
117
117
|
display: block
|
118
118
|
|
119
|
-
.promethee-
|
120
|
-
|
121
|
-
position: fixed
|
122
|
-
width: calc(50vw - 420px)
|
123
|
-
min-width: 100px
|
124
|
-
top: 80px
|
125
|
-
right: 30px
|
126
|
-
bottom: 15px
|
127
|
-
z-index: 1000
|
128
|
-
&-header
|
129
|
-
font-size: 18px
|
130
|
-
font-weight: bold
|
131
|
-
text-transform: uppercase
|
132
|
-
margin-bottom: 20px
|
133
|
-
&-content
|
134
|
-
overflow: scroll
|
135
|
-
label.label-control
|
136
|
-
font-weight: normal
|
137
|
-
|
138
|
-
.promethee-edit__library
|
139
|
-
background: white
|
140
|
-
position: fixed
|
141
|
-
width: calc(50vw - 420px)
|
142
|
-
min-width: 100px
|
143
|
-
top: 80px
|
144
|
-
left: 30px
|
145
|
-
bottom: 15px
|
146
|
-
z-index: 1000
|
147
|
-
&-header
|
148
|
-
font-size: 18px
|
149
|
-
font-weight: bold
|
150
|
-
text-transform: uppercase
|
151
|
-
margin-bottom: 20px
|
152
|
-
&-content
|
153
|
-
overflow: scroll
|
154
|
-
&__item
|
155
|
-
max-width: 300px
|
156
|
-
z-index: 100000
|
157
|
-
background-color: #253742
|
158
|
-
margin-bottom: 30px
|
159
|
-
height: 100px
|
119
|
+
.promethee-edit
|
120
|
+
&__inspect, &__library
|
160
121
|
min-width: 100px
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
font-
|
122
|
+
max-width: 400px
|
123
|
+
background: white
|
124
|
+
position: fixed
|
125
|
+
top: 80px
|
126
|
+
bottom: 15px
|
127
|
+
z-index: 1000
|
128
|
+
width: calc(50vw - 420px)
|
129
|
+
overflow-x: hidden
|
130
|
+
overflow-y: scroll
|
131
|
+
&-header
|
132
|
+
font-size: 18px
|
133
|
+
font-weight: bold
|
172
134
|
text-transform: uppercase
|
135
|
+
margin-bottom: 20px
|
136
|
+
|
137
|
+
&__inspect
|
138
|
+
right: 30px
|
139
|
+
label.label-control
|
140
|
+
font-weight: normal
|
141
|
+
|
142
|
+
&__library
|
143
|
+
left: 30px
|
144
|
+
&__item
|
145
|
+
max-width: 300px
|
146
|
+
z-index: 100000
|
147
|
+
background-color: #253742
|
148
|
+
margin-bottom: 30px
|
149
|
+
height: 100px
|
150
|
+
min-width: 100px
|
151
|
+
padding-top: 10px
|
152
|
+
text-align: center
|
153
|
+
color: white
|
154
|
+
&__icon
|
155
|
+
display: block
|
156
|
+
svg
|
157
|
+
width: 60px
|
158
|
+
&__name
|
159
|
+
margin-top: -10px
|
160
|
+
font-size: 11px
|
161
|
+
font-weight: normal
|
162
|
+
text-transform: uppercase
|
@@ -32,8 +32,8 @@ promethee.controller('PrometheeController', ['$scope', 'summernoteConfig', funct
|
|
32
32
|
inspected: null,
|
33
33
|
mode: 'move',
|
34
34
|
preview: 'desktop',
|
35
|
-
fullscreen: false
|
36
|
-
|
35
|
+
// fullscreen: false
|
36
|
+
fullscreen: true
|
37
37
|
};
|
38
38
|
|
39
39
|
$scope.inspect = function(component, event) {
|
@@ -67,6 +67,7 @@ promethee.controller('PrometheeController', ['$scope', 'summernoteConfig', funct
|
|
67
67
|
$scope.remove = function(component, components) {
|
68
68
|
var index = components.indexOf(component);
|
69
69
|
components.splice(index, 1);
|
70
|
+
this.promethee.inspected = null;
|
70
71
|
}
|
71
72
|
|
72
73
|
$scope.submit = function() {
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/column/edit/move">
|
2
2
|
<div ng-click="inspect(component, $event)"
|
3
3
|
ng-class="{'promethee-edit__component--selected': promethee.inspected === component}"
|
4
|
-
class=" promethee-edit__component
|
5
|
-
promethee-edit__component--column
|
4
|
+
class=" <%= promethee_bem_classes 'promethee-edit__component', "--column" %>
|
6
5
|
col
|
7
6
|
col-md-{{component.attributes.size}}
|
8
7
|
col-md-offset-{{component.attributes.offset}}">
|
@@ -11,12 +10,11 @@
|
|
11
10
|
<div class="header">Column</div>
|
12
11
|
<ng-include src="'promethee/move/components'"></ng-include>
|
13
12
|
<div
|
14
|
-
class=" promethee-edit__move__droppable
|
15
|
-
promethee-edit__move__droppable--row
|
16
|
-
promethee-edit__move__droppable--row--inside-column"
|
17
13
|
droppable
|
14
|
+
class=" <%= promethee_bem_classes 'promethee-edit__move__droppable', '--row', '--inside-column' %>"
|
18
15
|
data-index="{{$index+1}}"
|
19
|
-
data-
|
16
|
+
data-id="{{parent_id}}"
|
17
|
+
data-type="{{parent_type}}"
|
20
18
|
>
|
21
19
|
</div>
|
22
20
|
</div>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<%# This causes an infinite loop when imported as angular, so i import it as erb %>
|
2
2
|
<div ng-click="inspect(component, $event)"
|
3
3
|
ng-class="{'promethee-edit__component--selected': promethee.inspected === component}"
|
4
|
-
class=" promethee-edit__component
|
5
|
-
promethee-edit__component--<%= type %>">
|
4
|
+
class="<%= promethee_bem_classes 'promethee-edit__component', "--#{type}" %>">
|
6
5
|
<div class="promethee-edit__component__inner">
|
7
6
|
<%= render 'promethee/edit/move.close' %>
|
@@ -10,8 +10,17 @@ promethee
|
|
10
10
|
scroll: true,
|
11
11
|
refreshPositions: true,
|
12
12
|
cursor: 'move',
|
13
|
+
cursorAt: { top: 0, left: 0 },
|
13
14
|
helper: 'clone',
|
14
|
-
appendTo: '.promethee-edit__move'
|
15
|
+
appendTo: '.promethee-edit__move',
|
16
|
+
start: function(event, ui) {
|
17
|
+
var type = $(element[0]).data('type');
|
18
|
+
$('.promethee-edit__move').addClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
19
|
+
},
|
20
|
+
stop: function(event, ui) {
|
21
|
+
var type = $(element[0]).data('type');
|
22
|
+
$('.promethee-edit__move').removeClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
23
|
+
}
|
15
24
|
});
|
16
25
|
}
|
17
26
|
}
|
@@ -30,23 +39,17 @@ promethee
|
|
30
39
|
var $elementDragged = $(element[0]);
|
31
40
|
var type = $elementDragged.data('type');
|
32
41
|
$('.promethee-edit__move').addClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
/*
|
37
|
-
var $droppableBefore = $elementDragged.prev('.promethee-edit__move__draggable').find('.promethee-edit__move__droppable').last();
|
38
|
-
if ($droppableBefore.length === 0) {
|
39
|
-
// For the first child, we look for the previous droppable zone
|
40
|
-
$droppableBefore = $elementDragged.prev('.promethee-edit__move__droppable');
|
41
|
-
}
|
42
|
-
$droppableBefore.addClass('promethee-edit__move__droppable--hidden');
|
43
|
-
*/
|
42
|
+
var listId = $elementDragged.data('list-id');
|
43
|
+
var listIndex = $elementDragged.data('list-index');
|
44
|
+
$('.promethee-edit__move__droppable[data-id="' + listId + '"][data-index="' + listIndex + '"]').hide();
|
44
45
|
},
|
45
46
|
stop: function() {
|
46
47
|
var $elementDragged = $(element[0]);
|
47
48
|
var type = $elementDragged.data('type');
|
48
49
|
$('.promethee-edit__move').removeClass('promethee-edit__move--dragging promethee-edit__move--dragging--' + type);
|
49
|
-
|
50
|
+
var listId = $elementDragged.data('list-id');
|
51
|
+
var listIndex = $elementDragged.data('list-index');
|
52
|
+
$('.promethee-edit__move__droppable[data-id="' + listId + '"][data-index="' + listIndex + '"]').show();
|
50
53
|
}
|
51
54
|
});
|
52
55
|
}
|
@@ -80,7 +83,7 @@ promethee
|
|
80
83
|
}
|
81
84
|
component.id = guid();
|
82
85
|
} else {
|
83
|
-
var draggedFromIndex = parseInt(ui.draggable[0].getAttribute('data-index'));
|
86
|
+
var draggedFromIndex = parseInt(ui.draggable[0].getAttribute('data-list-index'));
|
84
87
|
// console.log('dragged', draggedFromList, draggedFromIndex);
|
85
88
|
draggedFromList.splice(draggedFromIndex, 1);
|
86
89
|
|
@@ -138,12 +141,17 @@ promethee.controller('AdderController',
|
|
138
141
|
<div class="row">
|
139
142
|
<div ng-repeat="definition in promethee.definitions"
|
140
143
|
class="col-md-12 col-lg-6">
|
141
|
-
<div
|
144
|
+
<div addable
|
145
|
+
class="promethee-edit__library__item"
|
146
|
+
data-type="{{definition.data.type}}">
|
142
147
|
<div class="promethee-edit__library__item__icon" ng-bind-html="definition.icon | htmlSafe"></div>
|
143
148
|
<div class="promethee-edit__library__item__name">{{definition.name}}</div>
|
144
149
|
</div>
|
145
150
|
</div>
|
151
|
+
</div>
|
146
152
|
</div>
|
153
|
+
<div class="promethee-edit__library-header">Presets</div>
|
154
|
+
<div class="promethee-edit__library-content">
|
147
155
|
</div>
|
148
156
|
</div>
|
149
157
|
|
@@ -180,30 +188,32 @@ promethee.controller('AdderController',
|
|
180
188
|
</script>
|
181
189
|
|
182
190
|
<script type="text/ng-template" id="promethee/move/components">
|
183
|
-
<div ng-init="
|
191
|
+
<div ng-init="parent_id = component.id; parent_type = component.type; components = component.children">
|
184
192
|
<div
|
185
193
|
droppable
|
186
|
-
class=" promethee-edit__move__droppable
|
187
|
-
|
188
|
-
|
194
|
+
class="<%= promethee_bem_classes 'promethee-edit__move__droppable', '--{{parent_type}}', '--first' %>"
|
195
|
+
data-id="{{parent_id}}"
|
196
|
+
data-type="{{parent_type}}"
|
189
197
|
data-index="0"
|
190
198
|
>
|
191
199
|
</div>
|
192
200
|
<div
|
193
201
|
draggable
|
194
202
|
ng-repeat="component in components"
|
195
|
-
class=" promethee-edit__move__draggable
|
196
|
-
|
197
|
-
data-index="{{$index}}"
|
203
|
+
class="<%= promethee_bem_classes 'promethee-edit__move__draggable', '--{{component.type}}' %>"
|
204
|
+
data-id="{{component.id}}"
|
198
205
|
data-type="{{component.type}}"
|
206
|
+
data-list-id="{{parent_id}}"
|
207
|
+
data-list-type="{{parent_type}}"
|
208
|
+
data-list-index="{{$index}}"
|
199
209
|
>
|
200
210
|
<ng-include src="'promethee/move/component'"></ng-include>
|
201
211
|
<div
|
202
212
|
droppable
|
203
|
-
class=" promethee-edit__move__droppable
|
204
|
-
|
213
|
+
class="<%= promethee_bem_classes 'promethee-edit__move__droppable', '--{{parent_type}}' %>"
|
214
|
+
data-id="{{parent_id}}"
|
215
|
+
data-type="{{parent_type}}"
|
205
216
|
data-index="{{$index+1}}"
|
206
|
-
data-type="{{type}}"
|
207
217
|
>
|
208
218
|
</div>
|
209
219
|
</div>
|
data/lib/promethee.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
require 'bootstrap-sass'
|
2
2
|
require 'font-awesome-rails'
|
3
|
-
require 'material_icons'
|
4
3
|
require 'jquery-rails'
|
5
4
|
require 'jquery-ui-rails'
|
6
|
-
require 'tinymce-rails'
|
7
5
|
require 'angularjs-rails'
|
8
|
-
require 'angular-ui-tinymce/rails'
|
9
6
|
require 'angular_rails_csrf'
|
10
7
|
|
11
8
|
module Promethee
|
@@ -22,6 +22,18 @@ module Promethee::Rails::Helper
|
|
22
22
|
promethee_partials_for 'utils/_*.html.erb'
|
23
23
|
end
|
24
24
|
|
25
|
+
# promethee_bem_classes 'promethee-edit__move__droppable', '--{{type}}', '--first'
|
26
|
+
# -> promethee-edit__move__droppable promethee-edit__move__droppable--{{type}} promethee-edit__move__droppable--{{type}}--first"
|
27
|
+
def promethee_bem_classes(*args)
|
28
|
+
classes = ''
|
29
|
+
current_class = ''
|
30
|
+
args.each do |arg|
|
31
|
+
current_class << arg
|
32
|
+
classes << "#{current_class} "
|
33
|
+
end
|
34
|
+
classes
|
35
|
+
end
|
36
|
+
|
25
37
|
protected
|
26
38
|
|
27
39
|
# Example: promethee_partials_for 'components/*/_edit.*.html.erb'
|
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.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Dargelos
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2018-03-
|
16
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rails
|