promethee 1.3.7 → 1.3.9

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