promethee 1.3.7 → 1.3.9
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/README.md +7 -1
- data/app/views/promethee/_edit.html.erb +9 -5
- data/app/views/promethee/_localize.html.erb +1 -1
- data/app/views/promethee/components/cover/_localize.html.erb +4 -4
- data/app/views/promethee/components/image/_localize.html.erb +5 -5
- data/app/views/promethee/components/page/_edit.inspect.html.erb +11 -0
- data/app/views/promethee/components/page/_edit.move.html.erb +19 -0
- data/app/views/promethee/components/page/_localize.html.erb +3 -0
- data/app/views/promethee/components/page/_show.html.erb +1 -0
- data/app/views/promethee/components/text/_localize.html.erb +4 -4
- data/app/views/promethee/edit/_move.html.erb +24 -31
- data/lib/promethee/core_ext/tags.rb +7 -1
- data/lib/promethee/data.rb +10 -11
- data/lib/promethee/rails/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df76ca52499900498a2ff40350dae10ceadb8727
|
4
|
+
data.tar.gz: 983fdb405ee1e2cb7de785b6246f5d2b32f77320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd489fa650db088fb8c99deb76b9021697cc04f2d9df416bb4b6ebac9a529f55371ecb3bf1437f7f8246aa33aa1853b994a50af6f17c82270d940a3e95226cf4
|
7
|
+
data.tar.gz: e7bd37fb63c2df0fa1503e44f0f4fb399c1f4f17268bb70cad4c75e7d6233cfb1b453cae3123fbccabf84e148119642f3343141e644a9bc0a444ce46f6b10611
|
data/README.md
CHANGED
@@ -129,7 +129,6 @@ With javascript set:
|
|
129
129
|
//= require summernote
|
130
130
|
//= require angular
|
131
131
|
//= require angular-animate
|
132
|
-
//= require angular-ui-bootstrap
|
133
132
|
//= require angular-summernote
|
134
133
|
//= require ui-sortable
|
135
134
|
```
|
@@ -284,6 +283,13 @@ class CreateLocalizations < ActiveRecord::Migration[5.1]
|
|
284
283
|
end
|
285
284
|
```
|
286
285
|
|
286
|
+
In the controllers, don't forget to change the params to convert the data from json to a hash:
|
287
|
+
```
|
288
|
+
def page_params
|
289
|
+
params.require(:page).permit(:name, :metier, :position, :parent_id, :data).tap { |permitted| permitted[:data] = JSON.parse(params[:page][:data]) }
|
290
|
+
end
|
291
|
+
```
|
292
|
+
|
287
293
|
### SQLite (or other not native json storage)
|
288
294
|
|
289
295
|
Prométhée takes a ruby hash.
|
@@ -5,7 +5,9 @@ logo = File.read "#{__dir__}/../../assets/images/icon-promethee.svg"
|
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
7
|
var promethee = angular
|
8
|
-
.module('Promethee', ['summernote', 'ngAnimate', 'ui.sortable'])
|
8
|
+
.module('Promethee', ['summernote', 'ngAnimate', 'ui.sortable'], ['$rootScopeProvider', function($rootScopeProvider) {
|
9
|
+
$rootScopeProvider.digestTtl(15);
|
10
|
+
}])
|
9
11
|
.value('definitions', [])
|
10
12
|
.value('presets', []);
|
11
13
|
</script>
|
@@ -20,13 +22,18 @@ var promethee = angular
|
|
20
22
|
|
21
23
|
<script type="text/javascript">
|
22
24
|
promethee.controller('PrometheeController', ['$scope', 'summernoteConfig', 'presets', 'identifier', function($scope, summernoteConfig, presets, identifier) {
|
25
|
+
$scope.data = <%= promethee_data.to_json.html_safe %>;
|
23
26
|
|
24
27
|
// Data (TODO use Adder and probably page definition to init)
|
25
|
-
if ($scope.data === null || $scope.data
|
28
|
+
if (typeof $scope.data !== 'object' || $scope.data === null || $scope.data.type !== 'page') {
|
26
29
|
$scope.data = {
|
27
30
|
id: '',
|
28
31
|
type: 'page',
|
29
32
|
version: 1,
|
33
|
+
attributes: {
|
34
|
+
title: 'New page',
|
35
|
+
description: ''
|
36
|
+
},
|
30
37
|
children: []
|
31
38
|
};
|
32
39
|
}
|
@@ -83,9 +90,6 @@ promethee.controller('PrometheeController', ['$scope', 'summernoteConfig', 'pres
|
|
83
90
|
};
|
84
91
|
|
85
92
|
$scope.summernoteConfig = summernoteConfig;
|
86
|
-
|
87
|
-
$scope.promethee.data = <%= promethee_data.to_json.html_safe %>;
|
88
|
-
|
89
93
|
$scope.sendPreviewData('thumb-preview');
|
90
94
|
}]);
|
91
95
|
</script>
|
@@ -39,7 +39,7 @@ promethee_data = Promethee::Data.new master_data, localization_data: localizatio
|
|
39
39
|
<ng-include src="'promethee/components/' + component.type + '/localize'"></ng-include>
|
40
40
|
</script>
|
41
41
|
|
42
|
-
<input type="hidden" name="
|
42
|
+
<input type="hidden" name="<%= object_name %>[<%= method_name %>]" id="page_data" value="{{data}}" />
|
43
43
|
|
44
44
|
<% Dir["#{__dir__}/components/*/_localize.html.erb"].map do |file| %>
|
45
45
|
<% partial = file.split('app/views/').last.gsub('.html.erb', '').gsub('/_', '/') %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/cover/localize">
|
2
2
|
<div class="row">
|
3
|
-
<div class="col-md-6">
|
4
|
-
<b>Local</b>
|
5
|
-
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
6
|
-
</div>
|
7
3
|
<div class="col-md-6">
|
8
4
|
<b>Master</b>
|
9
5
|
<div class="promethee-edit__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
|
10
6
|
</div>
|
7
|
+
<div class="col-md-6">
|
8
|
+
<b>Local</b>
|
9
|
+
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
10
|
+
</div>
|
11
11
|
</div>
|
12
12
|
<hr>
|
13
13
|
</script>
|
@@ -1,16 +1,16 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/image/localize">
|
2
2
|
<div class="row">
|
3
|
-
<div class="col-md-6">
|
4
|
-
<b>Local</b>
|
5
|
-
<input ng-model="component.attributes.alt" type="text" class="form-control">
|
6
|
-
<summernote config="options" ng-model="component.attributes.caption"></summernote>
|
7
|
-
</div>
|
8
3
|
<div class="col-md-6">
|
9
4
|
<b>Master</b>
|
10
5
|
<img ng-src="{{component.master.attributes.src}}" class="img-responsive" />
|
11
6
|
<input ng-model="component.master.attributes.alt" type="text" class="form-control" disabled/>
|
12
7
|
<div class="promethee-edit__wrapper" ng-bind-html="component.master.attributes.caption | htmlSafe"></div>
|
13
8
|
</div>
|
9
|
+
<div class="col-md-6">
|
10
|
+
<b>Local</b>
|
11
|
+
<input ng-model="component.attributes.alt" type="text" class="form-control">
|
12
|
+
<summernote config="options" ng-model="component.attributes.caption"></summernote>
|
13
|
+
</div>
|
14
14
|
</div>
|
15
15
|
<hr>
|
16
16
|
</script>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/page/edit/inspect">
|
2
|
+
<div class="form-group">
|
3
|
+
<label class="label-control">Title</label>
|
4
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.title">
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="form-group">
|
8
|
+
<label class="label-control">Description</label>
|
9
|
+
<input class="form-control" ng-model="promethee.inspected.attributes.description">
|
10
|
+
</div>
|
11
|
+
</script>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<script type="text/ng-template" id="promethee/components/page/edit/move">
|
2
|
+
<div ng-click="inspect(component, $event)"
|
3
|
+
ng-class="{'promethee-edit__component--selected': promethee.inspected === component}"
|
4
|
+
class="<%= promethee_bem_classes 'promethee-edit__component', "--page" %>">
|
5
|
+
<div class="promethee-edit__component__inner">
|
6
|
+
<div class="header">Page</div>
|
7
|
+
|
8
|
+
<div class="promethee-edit__move__columns">
|
9
|
+
<div class="row">
|
10
|
+
<% 12.times do %>
|
11
|
+
<div class="col col-md-1"><div class="color"></div></div>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<ng-include src="'promethee/move/components'"></ng-include>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render 'promethee/show/components', components: component[:children] %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<script type="text/ng-template" id="promethee/components/text/localize">
|
2
2
|
<div class="row">
|
3
|
-
<div class="col-md-6">
|
4
|
-
<b>Local</b>
|
5
|
-
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
6
|
-
</div>
|
7
3
|
<div class="col-md-6">
|
8
4
|
<b>Master</b>
|
9
5
|
<div class="promethee-edit__wrapper" ng-bind-html="component.master.attributes.body | htmlSafe"></div>
|
10
6
|
</div>
|
7
|
+
<div class="col-md-6">
|
8
|
+
<b>Local</b>
|
9
|
+
<summernote config="options" ng-model="component.attributes.body"></summernote>
|
10
|
+
</div>
|
11
11
|
</div>
|
12
12
|
<hr>
|
13
13
|
</script>
|
@@ -9,7 +9,7 @@ promethee
|
|
9
9
|
revertDuration: 0,
|
10
10
|
scroll: true,
|
11
11
|
refreshPositions: true,
|
12
|
-
cursor: 'move',
|
12
|
+
cursor: 'move',
|
13
13
|
cursorAt: { top: 50, left: 50 },
|
14
14
|
helper: 'clone',
|
15
15
|
appendTo: '.promethee-edit__move',
|
@@ -123,32 +123,32 @@ promethee
|
|
123
123
|
}
|
124
124
|
}]);
|
125
125
|
|
126
|
-
promethee.controller('AdderController',
|
127
|
-
|
128
|
-
|
126
|
+
// promethee.controller('AdderController',
|
127
|
+
// ['$scope', '$rootScope', 'definitions', 'identifier',
|
128
|
+
// function($scope, $rootScope, definitions, identifier) {
|
129
129
|
|
130
|
-
|
131
|
-
|
132
|
-
|
130
|
+
// $scope.adding = false;
|
131
|
+
// $scope.childrenToAddTo = null;
|
132
|
+
// $scope.definitions = definitions;
|
133
133
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
134
|
+
// $scope.close = function() {
|
135
|
+
// $scope.adding = false;
|
136
|
+
// $scope.addingToChildren = null;
|
137
|
+
// };
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
139
|
+
// $scope.pushComponent = function(definition) {
|
140
|
+
// var definition = angular.copy(definition.data);
|
141
|
+
// definition.id = identifier.generate();
|
142
|
+
// $scope.childrenToAddTo.push(definition);
|
143
|
+
// $scope.close();
|
144
|
+
// };
|
145
145
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
146
|
+
// $rootScope.addComponentTo = function(components) {
|
147
|
+
// $scope.adding = true;
|
148
|
+
// $scope.childrenToAddTo = components;
|
149
|
+
// };
|
150
150
|
|
151
|
-
}])
|
151
|
+
// }])
|
152
152
|
</script>
|
153
153
|
|
154
154
|
<div class="promethee-edit__move" ng-show="promethee.mode == 'move'">
|
@@ -180,16 +180,8 @@ promethee.controller('AdderController',
|
|
180
180
|
</div>
|
181
181
|
</div>
|
182
182
|
|
183
|
-
<div class="promethee-edit__move__columns">
|
184
|
-
<div class="row">
|
185
|
-
<% 12.times do %>
|
186
|
-
<div class="col col-md-1"><div class="color"></div></div>
|
187
|
-
<% end %>
|
188
|
-
</div>
|
189
|
-
</div>
|
190
|
-
|
191
183
|
<div class="promethee-edit__move__page">
|
192
|
-
<ng-include src="'promethee/move/
|
184
|
+
<ng-include src="'promethee/move/component'"></ng-include>
|
193
185
|
</div>
|
194
186
|
|
195
187
|
<div class="promethee-edit__inspect" ng-show="promethee.inspected.type">
|
@@ -200,6 +192,7 @@ promethee.controller('AdderController',
|
|
200
192
|
{{promethee.inspected.type}}
|
201
193
|
</div>
|
202
194
|
<div class="promethee-edit__inspect-content">
|
195
|
+
<ng-include src="'promethee/components/page/edit/inspect'" ng-show="promethee.inspected.type == 'page'"></ng-include>
|
203
196
|
<div ng-repeat="definition in promethee.definitions">
|
204
197
|
<ng-include src="'promethee/components/' + definition.data.type + '/edit/inspect'"
|
205
198
|
ng-show="promethee.inspected.type == definition.data.type"></ng-include>
|
@@ -17,7 +17,13 @@ module ActionView
|
|
17
17
|
localization_data = object.send @method_name unless object.nil?
|
18
18
|
localization_data = @options[:value] if @options.include? :value
|
19
19
|
master_data = @options[:master]
|
20
|
-
ApplicationController.renderer.render partial: 'promethee/localize',
|
20
|
+
ApplicationController.renderer.render partial: 'promethee/localize',
|
21
|
+
locals: {
|
22
|
+
object_name: @object_name,
|
23
|
+
method_name: @method_name,
|
24
|
+
localization_data: localization_data,
|
25
|
+
master_data: master_data
|
26
|
+
}
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
data/lib/promethee/data.rb
CHANGED
@@ -20,25 +20,24 @@ module Promethee
|
|
20
20
|
# The data acts as a hash
|
21
21
|
def [](value)
|
22
22
|
@master_data[value]
|
23
|
-
end
|
23
|
+
end
|
24
24
|
|
25
25
|
protected
|
26
26
|
|
27
27
|
def hashify(data)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
28
|
+
# https://github.com/bbatsov/ruby-style-guide#indent-conditional-assignment
|
29
|
+
h = case data.class.to_s
|
30
|
+
when 'Hash', 'ActiveSupport::HashWithIndifferentAccess' then data
|
31
|
+
when 'String' then JSON.parse data
|
32
|
+
else {}
|
33
|
+
end
|
34
|
+
|
36
35
|
h.deep_symbolize_keys
|
37
36
|
end
|
38
37
|
|
39
38
|
def check_master_integrity
|
40
39
|
@master_data[:version] = 1 unless @master_data.include? :version
|
41
|
-
@master_data[:children] = [] unless @master_data.include? :children
|
40
|
+
@master_data[:children] = [] unless @master_data.include? :children
|
42
41
|
end
|
43
42
|
|
44
43
|
# We merge the localization data in the components from the master data.
|
@@ -103,4 +102,4 @@ module Promethee
|
|
103
102
|
end
|
104
103
|
end
|
105
104
|
end
|
106
|
-
end
|
105
|
+
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.3.
|
4
|
+
version: 1.3.9
|
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-29 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rails
|
@@ -183,6 +183,10 @@ files:
|
|
183
183
|
- app/views/promethee/components/image/_icon.svg
|
184
184
|
- app/views/promethee/components/image/_localize.html.erb
|
185
185
|
- app/views/promethee/components/image/_show.html.erb
|
186
|
+
- app/views/promethee/components/page/_edit.inspect.html.erb
|
187
|
+
- app/views/promethee/components/page/_edit.move.html.erb
|
188
|
+
- app/views/promethee/components/page/_localize.html.erb
|
189
|
+
- app/views/promethee/components/page/_show.html.erb
|
186
190
|
- app/views/promethee/components/row/_edit.define.html.erb
|
187
191
|
- app/views/promethee/components/row/_edit.inspect.html.erb
|
188
192
|
- app/views/promethee/components/row/_edit.move.html.erb
|