locomotivecms 4.0.0.alpha3 → 4.0.0.rc0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/app/api/locomotive/api/entities/content_type_entity.rb +1 -0
  4. data/app/api/locomotive/api/forms/content_type_form.rb +1 -0
  5. data/app/api/locomotive/api/resources/content_type_resource.rb +1 -0
  6. data/app/assets/javascripts/locomotive/editor.js +3028 -3112
  7. data/app/assets/javascripts/locomotive/views/content_assets/edit_image_view.js.coffee +1 -0
  8. data/app/assets/javascripts/locomotive/views/inputs/rte/edit_table_view.js.coffee +1 -0
  9. data/app/assets/javascripts/locomotive/views/inputs/rte/file_view.js.coffee +1 -0
  10. data/app/assets/javascripts/locomotive/views/inputs/rte/link_view.js.coffee +1 -0
  11. data/app/assets/javascripts/locomotive/views/inputs/rte/table_view.js.coffee +1 -0
  12. data/app/assets/javascripts/locomotive/views/inputs/rte_view.js.coffee.erb +2 -1
  13. data/app/assets/stylesheets/locomotive/editor.css +31 -4
  14. data/app/controllers/locomotive/content_entries_controller.rb +8 -2
  15. data/app/controllers/locomotive/content_entry_impersonations_controller.rb +32 -0
  16. data/app/helpers/locomotive/content_types_helper.rb +2 -2
  17. data/app/mailers/locomotive/notifications.rb +8 -3
  18. data/app/models/locomotive/concerns/content_entry/authentication.rb +13 -0
  19. data/app/models/locomotive/concerns/page/editable_elements.rb +1 -1
  20. data/app/models/locomotive/content_entry.rb +1 -0
  21. data/app/models/locomotive/content_type.rb +1 -0
  22. data/app/services/locomotive/content_entry_service.rb +8 -9
  23. data/app/uploaders/locomotive/theme_asset_uploader.rb +1 -1
  24. data/app/views/locomotive/content_entries/_list.html.slim +1 -1
  25. data/app/views/locomotive/content_entries/edit.html.slim +10 -3
  26. data/app/views/locomotive/content_entries/new.html.slim +3 -1
  27. data/config/routes.rb +2 -0
  28. data/lib/generators/locomotive/install/install_generator.rb +2 -10
  29. data/lib/locomotive/dependencies.rb +1 -0
  30. data/lib/locomotive/steam/services/api_content_entry_service.rb +2 -2
  31. data/lib/locomotive/steam/services/api_entry_submission_service.rb +13 -3
  32. data/lib/locomotive/version.rb +1 -1
  33. data/lib/tasks/locomotive_tasks.rake +29 -0
  34. data/vendor/assets/javascripts/locomotive/wysihtml5x-toolbar.js +0 -1
  35. metadata +52 -8
data/config/routes.rb CHANGED
@@ -71,6 +71,8 @@ Locomotive::Engine.routes.draw do
71
71
  put :sort, on: :collection
72
72
  get :export, on: :collection
73
73
  delete :bulk_destroy, on: :collection
74
+
75
+ resource :impersonation, only: [:create], controller: 'content_entry_impersonations'
74
76
  end
75
77
 
76
78
  namespace :custom_fields, path: 'content_types/:slug/fields/:name' do
@@ -41,7 +41,7 @@ module Locomotive
41
41
  inject_into_file 'Gemfile', after: "source 'https://rubygems.org'\n" do <<-'RUBY'
42
42
 
43
43
  if ENV['HEROKU_APP_NAME']
44
- ruby '2.4.3'
44
+ ruby '2.5.1'
45
45
  end
46
46
  RUBY
47
47
  end
@@ -63,7 +63,7 @@ end
63
63
  RUBY
64
64
  end
65
65
 
66
- gem 'platform-api', '~> 2'
66
+ gem 'platform-api', '~> 2.2.0'
67
67
  end
68
68
  end
69
69
 
@@ -75,14 +75,6 @@ end
75
75
  remove_file 'public/robots.txt'
76
76
  end
77
77
 
78
- def use_puma_as_app_server
79
- inject_into_file 'Gemfile', after: "# gem 'unicorn'\n" do <<-'RUBY'
80
- # Use Puma as the app server
81
- gem 'puma'
82
- RUBY
83
- end
84
- end
85
-
86
78
  def show_readme
87
79
  readme 'README'
88
80
  end
@@ -14,6 +14,7 @@ require 'bootstrap-kaminari-views'
14
14
  require 'bootstrap-sass'
15
15
  require 'font-awesome-sass'
16
16
  require 'autoprefixer-rails'
17
+ require 'jbuilder'
17
18
  require 'slim'
18
19
  require 'simple_form'
19
20
  require 'responders'
@@ -28,7 +28,7 @@ module Locomotive
28
28
  def with_form(type_slug, attributes, as_json, &block)
29
29
  load_content_type(type_slug)
30
30
 
31
- useTempfiles(attributes)
31
+ use_tempfiles(attributes)
32
32
 
33
33
  ::Mongoid::Fields::I18n.with_locale(self.locale) do
34
34
  form = Locomotive::API::Forms::ContentEntryForm.new(@content_type, attributes)
@@ -39,7 +39,7 @@ module Locomotive
39
39
  end
40
40
  end
41
41
 
42
- def useTempfiles(attributes)
42
+ def use_tempfiles(attributes)
43
43
  # kind of marshal/unmarshal mechanism :-)
44
44
  attributes.each do |key, value|
45
45
  if value.is_a?(Hash) && value['tempfile'].present? && value['tempfile'].is_a?(String) && value['filename'].present?
@@ -22,9 +22,10 @@ module Locomotive
22
22
  def create_entry(attributes)
23
23
  ::Mongoid::Fields::I18n.with_locale(locale) do
24
24
  entry = engine_service.public_create(attributes, {
25
- ip_address: self.request.ip,
26
- user_agent: self.request.user_agent,
27
- referer: self.request.referer
25
+ ip_address: self.request.ip,
26
+ user_agent: self.request.user_agent,
27
+ referer: self.request.referer,
28
+ emails: notified_emails
28
29
  })
29
30
 
30
31
  entity = entry.to_steam(@content_type)
@@ -40,6 +41,15 @@ module Locomotive
40
41
  self.service.locale
41
42
  end
42
43
 
44
+ # a public form might need to inform accounts from other Locomotive sites
45
+ def notified_emails
46
+ (
47
+ self.request.params['notified_emails'] ||
48
+ self.request.params['notified_accounts'] ||
49
+ ''
50
+ ).split(',')
51
+ end
52
+
43
53
  def engine_service
44
54
  Locomotive::ContentEntryService.new(@content_type, nil, locale)
45
55
  end
@@ -1,3 +1,3 @@
1
1
  module Locomotive
2
- VERSION = '4.0.0.alpha3'
2
+ VERSION = '4.0.0.rc0'
3
3
  end
@@ -94,6 +94,35 @@ namespace :locomotive do
94
94
  end
95
95
  puts '[x] set completion for translations'
96
96
 
97
+ # rename routes to url_redirections
98
+ Locomotive::Site.all.each_by(10) do |site|
99
+ site.url_redirections = site.routes
100
+ site.routes = nil
101
+ site.save
102
+ end
103
+ puts '[x] rename site attribute: change routes to url_redirections'
104
+
105
+ # editable controle are now localized by default
106
+ Locomotive::Site.all.each_by(10) do |site|
107
+ site.pages.each_by(10) do |page|
108
+ page.editable_elements.each do |el|
109
+ next if !el.is_a?(Locomotive::EditableControl) || el.attributes['content'].is_a?(Hash)
110
+
111
+ value = el.attributes['content']
112
+
113
+ # trick: reset the content with an empty hash
114
+ new_attributes = el.attributes.dup
115
+ new_attributes[:content] = {}
116
+ el.instance_variable_set(:@attributes, new_attributes)
117
+
118
+ site.locales.each do |locale|
119
+ Mongoid::Fields::I18n.with_locale(locale) { el.set(content: value) }
120
+ end
121
+ end
122
+ end
123
+ end
124
+ puts '[x] editable_control elements are localized by default'
125
+
97
126
  puts "\nDone!"
98
127
  end
99
128
 
@@ -18339,7 +18339,6 @@ wysihtml5.views.View = Base.extend(
18339
18339
  },
18340
18340
 
18341
18341
  _updateLinkStates: function() {
18342
-
18343
18342
  var i, state, action, command, displayDialogAttributeValue,
18344
18343
  commandMapping = this.commandMapping,
18345
18344
  composer = this.composer,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locomotivecms
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha3
4
+ version: 4.0.0.rc0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-06 00:00:00.000000000 Z
11
+ date: 2019-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.1
19
+ version: 5.2.3
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '6.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.2.1
29
+ version: 5.2.3
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '6.0'
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 4.4.1
39
+ version: 4.6.2
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 4.4.1
46
+ version: 4.6.2
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: devise-encryptable
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -128,6 +128,34 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: 2.3.1
131
+ - !ruby/object:Gem::Dependency
132
+ name: custom_fields
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 2.10.0.beta3
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 2.10.0.beta3
145
+ - !ruby/object:Gem::Dependency
146
+ name: locomotivecms_steam
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: 1.5.0.rc0
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 1.5.0.rc0
131
159
  - !ruby/object:Gem::Dependency
132
160
  name: slim
133
161
  requirement: !ruby/object:Gem::Requirement
@@ -302,14 +330,14 @@ dependencies:
302
330
  requirements:
303
331
  - - "~>"
304
332
  - !ruby/object:Gem::Version
305
- version: 3.3.7
333
+ version: 3.4.1
306
334
  type: :runtime
307
335
  prerelease: false
308
336
  version_requirements: !ruby/object:Gem::Requirement
309
337
  requirements:
310
338
  - - "~>"
311
339
  - !ruby/object:Gem::Version
312
- version: 3.3.7
340
+ version: 3.4.1
313
341
  - !ruby/object:Gem::Dependency
314
342
  name: autoprefixer-rails
315
343
  requirement: !ruby/object:Gem::Requirement
@@ -464,6 +492,20 @@ dependencies:
464
492
  - - "~>"
465
493
  - !ruby/object:Gem::Version
466
494
  version: 0.5.0
495
+ - !ruby/object:Gem::Dependency
496
+ name: adomain
497
+ requirement: !ruby/object:Gem::Requirement
498
+ requirements:
499
+ - - "~>"
500
+ - !ruby/object:Gem::Version
501
+ version: 0.1.1
502
+ type: :runtime
503
+ prerelease: false
504
+ version_requirements: !ruby/object:Gem::Requirement
505
+ requirements:
506
+ - - "~>"
507
+ - !ruby/object:Gem::Version
508
+ version: 0.1.1
467
509
  - !ruby/object:Gem::Dependency
468
510
  name: grape
469
511
  requirement: !ruby/object:Gem::Requirement
@@ -769,6 +811,7 @@ files:
769
811
  - app/controllers/locomotive/concerns/within_site_controller.rb
770
812
  - app/controllers/locomotive/content_assets_controller.rb
771
813
  - app/controllers/locomotive/content_entries_controller.rb
814
+ - app/controllers/locomotive/content_entry_impersonations_controller.rb
772
815
  - app/controllers/locomotive/current_site_controller.rb
773
816
  - app/controllers/locomotive/current_site_metafields_controller.rb
774
817
  - app/controllers/locomotive/custom_fields/select_options_controller.rb
@@ -831,6 +874,7 @@ files:
831
874
  - app/models/locomotive/concerns/asset/checksum.rb
832
875
  - app/models/locomotive/concerns/asset/types.rb
833
876
  - app/models/locomotive/concerns/asset/vignette.rb
877
+ - app/models/locomotive/concerns/content_entry/authentication.rb
834
878
  - app/models/locomotive/concerns/content_entry/counter.rb
835
879
  - app/models/locomotive/concerns/content_entry/csv.rb
836
880
  - app/models/locomotive/concerns/content_entry/file_size.rb