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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33b4d9a4512c42d8731062cf61acce1d96fd0e73
4
- data.tar.gz: f5707c5375d68c7c975f6018a73f075c7afee603
3
+ metadata.gz: df76ca52499900498a2ff40350dae10ceadb8727
4
+ data.tar.gz: 983fdb405ee1e2cb7de785b6246f5d2b32f77320
5
5
  SHA512:
6
- metadata.gz: 5751b7d854521e47695b54de6d4d0a8805cf5e9583035c914de2b7321878fc94d1e9a9b24739a221138b034c046a822aaee1b6056f8c2476d6c82021625b000a
7
- data.tar.gz: 972382e131cb399a4c605b82a0b181c5865eac49c36972044139f9d87a093ce5f0057ebc445e9b92a79325442dd31289227c5329dcf52edca5f5268730fb49f2
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="localization[data]" id="page_data" value="{{data}}" />
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,3 @@
1
+ <script type="text/ng-template" id="promethee/components/page/localize">
2
+
3
+ </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
- ['$scope', '$rootScope', 'definitions', 'identifier',
128
- function($scope, $rootScope, definitions, identifier) {
126
+ // promethee.controller('AdderController',
127
+ // ['$scope', '$rootScope', 'definitions', 'identifier',
128
+ // function($scope, $rootScope, definitions, identifier) {
129
129
 
130
- $scope.adding = false;
131
- $scope.childrenToAddTo = null;
132
- $scope.definitions = definitions;
130
+ // $scope.adding = false;
131
+ // $scope.childrenToAddTo = null;
132
+ // $scope.definitions = definitions;
133
133
 
134
- $scope.close = function() {
135
- $scope.adding = false;
136
- $scope.addingToChildren = null;
137
- };
134
+ // $scope.close = function() {
135
+ // $scope.adding = false;
136
+ // $scope.addingToChildren = null;
137
+ // };
138
138
 
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
- };
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
- $rootScope.addComponentTo = function(components) {
147
- $scope.adding = true;
148
- $scope.childrenToAddTo = components;
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/components'"></ng-include>
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', locals: { localization_data: localization_data, master_data: master_data }
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
@@ -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
- case data.class.to_s
29
- when 'Hash'
30
- h = data
31
- when 'String'
32
- h = JSON.parse data
33
- when 'NilClass'
34
- h = {}
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
@@ -1,5 +1,5 @@
1
1
  module Promethee
2
2
  module Rails
3
- VERSION = '1.3.7'
3
+ VERSION = '1.3.9'
4
4
  end
5
5
  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.7
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-28 00:00:00.000000000 Z
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