locomotivecms 4.0.0.rc0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +0 -6
  5. data/app/api/locomotive/api/entities/site_entity.rb +1 -1
  6. data/app/api/locomotive/api/forms/content_type_form.rb +1 -0
  7. data/app/api/locomotive/api/forms/page_form.rb +2 -1
  8. data/app/api/locomotive/api/forms/site_form.rb +7 -1
  9. data/app/api/locomotive/api/helpers/persistence_helper.rb +3 -0
  10. data/app/api/locomotive/api/resources/account_resource.rb +15 -3
  11. data/app/api/locomotive/api/resources/content_type_resource.rb +3 -0
  12. data/app/api/locomotive/api/resources/membership_resource.rb +1 -1
  13. data/app/api/locomotive/api/resources/site_resource.rb +6 -0
  14. data/app/assets/javascripts/locomotive/editor.js +1311 -703
  15. data/app/assets/javascripts/locomotive/views/content_entries/edit_view.js.coffee +5 -0
  16. data/app/assets/javascripts/locomotive/views/content_entries/index_view.js.coffee +1 -0
  17. data/app/assets/javascripts/locomotive/views/content_entries/new_view.js.coffee +4 -0
  18. data/app/assets/javascripts/locomotive/views/current_site/edit_view.js.coffee +6 -0
  19. data/app/assets/javascripts/locomotive/views/page_content/edit_view.js.coffee +1 -0
  20. data/app/assets/javascripts/locomotive/views/pages/_form_view.js.coffee +6 -0
  21. data/app/assets/javascripts/locomotive/views/pages/edit_view.js.coffee +4 -0
  22. data/app/assets/javascripts/locomotive/views/pages/list_view.js.coffee +5 -0
  23. data/app/assets/javascripts/locomotive/views/pages/new_view.js.coffee +4 -0
  24. data/app/assets/stylesheets/locomotive/editor.css +390 -127
  25. data/app/assets/stylesheets/locomotive/new/_sidebar.scss +4 -0
  26. data/app/assets/stylesheets/locomotive/old/_list.scss +35 -0
  27. data/app/assets/stylesheets/locomotive/old/_main.scss +6 -6
  28. data/app/controllers/locomotive/concerns/authorization_controller.rb +4 -2
  29. data/app/controllers/locomotive/content_entries_controller.rb +6 -0
  30. data/app/controllers/locomotive/content_entry_impersonations_controller.rb +11 -0
  31. data/app/controllers/locomotive/current_site_controller.rb +0 -1
  32. data/app/controllers/locomotive/dashboard_controller.rb +2 -0
  33. data/app/helpers/locomotive/dashboard_helper.rb +0 -101
  34. data/app/helpers/locomotive/shared/activities_helper.rb +106 -0
  35. data/app/helpers/locomotive/shared/site_metafields_helper.rb +1 -1
  36. data/app/mailers/locomotive/notifications.rb +8 -0
  37. data/app/models/locomotive/account.rb +1 -0
  38. data/app/models/locomotive/concerns/site/cache.rb +2 -0
  39. data/app/models/locomotive/concerns/site/locales.rb +1 -0
  40. data/app/models/locomotive/content_type.rb +8 -7
  41. data/app/models/locomotive/membership.rb +1 -1
  42. data/app/models/locomotive/page.rb +2 -0
  43. data/app/models/locomotive/section.rb +1 -1
  44. data/app/policies/locomotive/account_policy.rb +1 -1
  45. data/app/policies/locomotive/content_asset_policy.rb +11 -3
  46. data/app/policies/locomotive/content_entry_policy.rb +11 -3
  47. data/app/policies/locomotive/page_policy.rb +16 -5
  48. data/app/policies/locomotive/site_policy.rb +18 -4
  49. data/app/policies/locomotive/translation_policy.rb +12 -4
  50. data/app/views/locomotive/content_entries/form/_actions.html.slim +12 -1
  51. data/app/views/locomotive/content_entries/form/_advanced.html.slim +1 -1
  52. data/app/views/locomotive/content_entries/index.html.slim +25 -17
  53. data/app/views/locomotive/current_site/form/_advanced.html.slim +6 -1
  54. data/app/views/locomotive/current_site/form/_url_redirections.html.slim +9 -3
  55. data/app/views/locomotive/layouts/account.html.slim +1 -33
  56. data/app/views/locomotive/pages/form/_main.html.slim +5 -2
  57. data/app/views/locomotive/shared/_head.html.slim +1 -1
  58. data/app/views/locomotive/shared/account/_head.html.slim +33 -0
  59. data/app/views/locomotive/shared/account/_navigation.html.slim +2 -1
  60. data/app/views/locomotive/sites/index.html.slim +4 -3
  61. data/config/locales/en.yml +7 -5
  62. data/config/locales/fr.yml +2 -0
  63. data/config/locales/simple_form.en.yml +3 -0
  64. data/config/webpack/production.js +1 -1
  65. data/lib/generators/locomotive/install/install_generator.rb +15 -2
  66. data/lib/generators/locomotive/install/templates/README +1 -1
  67. data/lib/generators/locomotive/install/templates/mongoid_heroku.yml +1 -1
  68. data/lib/locomotive/steam/middlewares/missing_translations.rb +3 -0
  69. data/lib/locomotive/steam/middlewares/page_editing.rb +7 -0
  70. data/lib/locomotive/steam/services/liquid_parser_with_cache_service.rb +22 -15
  71. data/lib/locomotive/steam_adaptor.rb +1 -1
  72. data/lib/locomotive/version.rb +1 -1
  73. data/lib/tasks/development_tasks.rake +7 -3
  74. data/lib/tasks/locomotive_tasks.rake +10 -0
  75. metadata +43 -16
  76. data/config/initializers/rails_fixes.rb +0 -16
  77. data/lib/locomotive/steam/middlewares/cache.rb +0 -69
@@ -49,7 +49,7 @@ en:
49
49
  dashboard: Dashboard
50
50
  assets: Assets
51
51
  pages: Pages
52
- settings: General Settings
52
+ settings: Site Administration
53
53
  metafields: Properties
54
54
  developers: Developers
55
55
  content_types:
@@ -87,6 +87,8 @@ en:
87
87
  create_account: "Please create an account first and then create a site."
88
88
  add_domain: "Add the <strong>%{host}</strong> domain to the list of domains of one of your sites."
89
89
  sign_in: "Please sign in first. Then, add the <strong>%{host}</strong> domain to the list of domains of one of your sites."
90
+ access_denied:
91
+ message: "You're not allowed to perform this action. Contact your site administrator for some help."
90
92
 
91
93
  notifications:
92
94
  new_content_entry:
@@ -261,7 +263,7 @@ en:
261
263
 
262
264
  current_site:
263
265
  edit:
264
- title: Editing the current site
266
+ title: Site Administration
265
267
  form:
266
268
  main:
267
269
  new_membership: "Add account"
@@ -359,9 +361,9 @@ en:
359
361
  content_entries:
360
362
  index:
361
363
  title: '%{type}'
362
- download: download entries
363
- new: new entry
364
- bulk_destroy: delete entries
364
+ download: Download entries
365
+ new: New entry
366
+ bulk_destroy: Delete entries
365
367
  edit_notification_settings: Edit notification settings
366
368
  search_placeholder: "Enter your search keywords here"
367
369
  group_by:
@@ -83,6 +83,8 @@ fr:
83
83
  create_account: "Veuillez créer un compte avant de créer un site"
84
84
  add_domain: "Ajoutez le domaine <strong>%{host}</strong> à la liste de domaines de l'un de vos sites."
85
85
  sign_in: "Veuillez d'abord vous identifier. Puis, ajoutez le domaine <strong>%{host}</strong> à la liste de domaines de l'un de vos sites."
86
+ access_denied:
87
+ message: "Vous n'êtes pas autorisé(e) à effectuer cette action. Veuillez contacter l'administrateur du site pour de l'aide."
86
88
  notifications:
87
89
  new_content_entry:
88
90
  subject: "[%{domain}][%{type}] nouvelle entité"
@@ -101,6 +101,7 @@ en:
101
101
  asset_host: "Site-specific asset host that overrides engine asset host (ex. \"localhost\", \"asset.dev\", \"https://asset-host.com/\")."
102
102
  memberships: "You can invite other accounts to edit/manage the site."
103
103
  cache_enabled: "When enabled, your pages will be cached as long as the content doesn't change. Disabling cache per page is allowed."
104
+ bypass_browser_locale: "By default, in a multi locales site, if a visitor visits the index page for the first time, we'll redirect her/him to the locale matching one of the browser languages. Toggle on if you don't want this behaviour."
104
105
  redirect_to_first_domain: "When enabled, requests made to any domains listed above will be redirected to the first domain."
105
106
  redirect_to_https: "When enabled, non secure requests will be redirected to https. This requires the installation of a SSL certificate on the web server."
106
107
  url_redirections_expert_mode: "When enabled, a textarea will let you manage your redirections. <strong>IMPORTANT: save your site before returning to the default mode.</strong>"
@@ -167,4 +168,6 @@ en:
167
168
  delete: Delete this site
168
169
  page:
169
170
  delete: Delete
171
+ content_entry:
172
+ delete: Delete
170
173
 
@@ -1,6 +1,6 @@
1
1
  const config = require('./development.js');
2
2
 
3
- config.target = 'node'
3
+ config.target = 'web'
4
4
  config.mode = 'production';
5
5
  config.optimization = { minimize: true };
6
6
 
@@ -3,7 +3,7 @@ module Locomotive
3
3
 
4
4
  source_root File.expand_path('../../../../../', __FILE__)
5
5
 
6
- class_option :heroku, type: :boolean, default: false, description: 'if the Engine runs on Heroku'
6
+ class_option :heroku, type: :boolean, default: false, description: 'if the Engine is supposed to run on Heroku'
7
7
 
8
8
  def copy_initializers
9
9
  @source_paths = nil # reset it for the find_in_source_paths method
@@ -19,6 +19,19 @@ module Locomotive
19
19
  if options.heroku? || yes?('Do you want to store your assets on Amazon S3?')
20
20
  template 'carrierwave_aws.rb', 'config/initializers/carrierwave.rb'
21
21
  gem 'carrierwave-aws'
22
+ gem 'rack-cors', require: 'rack/cors'
23
+ inject_into_file 'Gemfile', after: "# the framework and any gems in your application.\n" do <<-RUBY
24
+
25
+ config.assets.initialize_on_precompile = false
26
+
27
+ config.middleware.insert_before ActionDispatch::Static, Rack::Cors do
28
+ allow do
29
+ origins '*'
30
+ resource '/assets/*', headers: :any, methods: :any
31
+ end
32
+ end
33
+
34
+ RUBY
22
35
  else
23
36
  template 'carrierwave.rb', 'config/initializers/carrierwave.rb'
24
37
  end
@@ -41,7 +54,7 @@ module Locomotive
41
54
  inject_into_file 'Gemfile', after: "source 'https://rubygems.org'\n" do <<-'RUBY'
42
55
 
43
56
  if ENV['HEROKU_APP_NAME']
44
- ruby '2.5.1'
57
+ ruby '2.6.2'
45
58
  end
46
59
  RUBY
47
60
  end
@@ -1,6 +1,6 @@
1
1
  ===============================================================================
2
2
 
3
- The Locomotive Engine has been correctly installed in your Rails application.
3
+ The LocomotiveCMS Engine has been correctly installed in your Rails application.
4
4
 
5
5
  1. Edit the main config files:
6
6
 
@@ -72,7 +72,7 @@ test:
72
72
  production:
73
73
  clients:
74
74
  default:
75
- uri: <%%= ENV['MONGOLAB_URI'] || ENV['MONGOHQ_URL'] %>
75
+ uri: <%%= ENV['MONGODB_URI'] || ENV['MONGO_URL'] %>
76
76
  options:
77
77
  # consistency: :strong
78
78
  # identity_map_enabled: true
@@ -32,6 +32,9 @@ module Locomotive
32
32
 
33
33
  translations.each do |attributes|
34
34
  if existing = site.translations.where(key: attributes[:key]).first
35
+ # don't need to call the DB if we already have the values in DB
36
+ next if existing.values == attributes[:values]
37
+
35
38
  existing.update_attribute :values, existing.values.merge(attributes[:values])
36
39
  else
37
40
  new_translations << attributes
@@ -48,6 +48,13 @@ module Locomotive
48
48
  )
49
49
  response.first.gsub!('</head>', %(#{html}</head>))
50
50
 
51
+ # make sure there is no span tags within the head.
52
+ # For the record, Steam adds a span tag next to a block liquid tag
53
+ response.first.gsub!(/<head>(.+)<\/head>/m) do
54
+ head = Regexp.last_match[1]
55
+ "<head>#{head.gsub(/<span/, '<meta').gsub(/<\/span>/, '</meta>')}</head>"
56
+ end
57
+
51
58
  # new way of letting the parent window know about the status of the preview
52
59
  response.first.gsub!('</body>', %(
53
60
  <script type="text/javascript">
@@ -3,7 +3,7 @@ module Locomotive
3
3
 
4
4
  class LiquidParserWithCacheService < LiquidParserService
5
5
 
6
- UNMARSHALABLE_OPTIONS = %i(parser page parent_finder snippet_finder).freeze
6
+ UNMARSHALABLE_OPTIONS = %i(parser page parent_finder snippet_finder section_finder locale).freeze
7
7
 
8
8
  attr_accessor_initialize :current_site, :parent_finder, :snippet_finder, :locale
9
9
 
@@ -39,17 +39,18 @@ module Locomotive
39
39
  def marshal(template)
40
40
  _template = template.dup
41
41
 
42
+ # delete the unmarshalable options of the Liquid Template
43
+ delete_unmarshalable_options(_template)
44
+
42
45
  # get rid of options in any tags/blocks of the document
43
46
  # because options can not be marshaled
44
- remove_unmarshalable_options(_template)
45
-
46
47
  clean_template!(_template.root)
47
48
 
48
49
  Marshal.dump(_template)
49
50
  end
50
51
 
51
52
  def clean_template!(node)
52
- remove_unmarshalable_options(node)
53
+ remove_unmarshalable_parse_context_options(node)
53
54
 
54
55
  # special case
55
56
  clean_template!(node.descendant) if node.respond_to?(:descendant) && node.descendant
@@ -60,30 +61,36 @@ module Locomotive
60
61
  end
61
62
  end
62
63
 
63
- # [Debug](used to find the node element whic can't be marshaled): Marshal.dump(node)
64
+ # FIXME: To debug marshalling errors, find the node element which can't be marshaled with `Marshal.dump(node)`
64
65
  end
65
66
 
66
- def remove_unmarshalable_options(node)
67
- options = node.instance_variable_get(:@options)
67
+ def remove_unmarshalable_parse_context_options(node)
68
+ parse_context = node.instance_variable_get(:@parse_context)
68
69
 
69
- return if options.blank?
70
+ return if parse_context.nil?
70
71
 
71
- unless options[:inherited_blocks].blank?
72
- remove_unmarshalable_options_from_inherited_blocks(options)
72
+ unless parse_context[:inherited_blocks].blank?
73
+ remove_unmarshalable_parse_context_options_from_inherited_blocks(parse_context)
73
74
  end
74
75
 
75
- options.delete_if { |name, _| UNMARSHALABLE_OPTIONS.include?(name) }
76
+ delete_unmarshalable_options(parse_context)
76
77
  end
77
78
 
78
- def remove_unmarshalable_options_from_inherited_blocks(options)
79
- options[:inherited_blocks].values.each do |blocks|
79
+ def remove_unmarshalable_parse_context_options_from_inherited_blocks(parse_context)
80
+ parse_context[:inherited_blocks].values.each do |blocks|
80
81
  (blocks.respond_to?(:has_key?) ? blocks.values : blocks).each do |block|
81
- _options = block.instance_variable_get(:@options)
82
- _options.delete_if { |name, _| UNMARSHALABLE_OPTIONS.include?(name) }
82
+ _parse_context = block.instance_variable_get(:@parse_context)
83
+ delete_unmarshalable_options(_parse_context)
83
84
  end
84
85
  end
85
86
  end
86
87
 
88
+ def delete_unmarshalable_options(template_or_parse_context)
89
+ options = template_or_parse_context.instance_variable_get(:@template_options) ||
90
+ template_or_parse_context.instance_variable_get(:@options)
91
+ options.delete_if { |name, _| UNMARSHALABLE_OPTIONS.include?(name) }
92
+ end
93
+
87
94
  end
88
95
 
89
96
  end
@@ -32,7 +32,7 @@ Locomotive::Steam.configure do |config|
32
32
  require_relative 'steam/middlewares/catch_error'
33
33
  config.middleware.insert_after Locomotive::Steam::Middlewares::Site, Locomotive::Steam::Middlewares::CatchError
34
34
 
35
- %w(cache page_editing missing_translations wysihtml_css).each do |name|
35
+ %w(page_editing missing_translations wysihtml_css).each do |name|
36
36
  require_relative "steam/middlewares/#{name}"
37
37
  config.middleware.insert_after Locomotive::Steam::Middlewares::Page, Locomotive::Steam::Middlewares.const_get(name.camelize)
38
38
  end
@@ -1,3 +1,3 @@
1
1
  module Locomotive
2
- VERSION = '4.0.0.rc0'
2
+ VERSION = '4.0.0'
3
3
  end
@@ -4,7 +4,11 @@ namespace :development do
4
4
 
5
5
  desc "Display the API routes"
6
6
  task api_routes: :environment do
7
- puts Locomotive::API::Dispatch.routes.map(&:to_s).join("\n")
7
+ Locomotive::API::Dispatch.routes.each do |api|
8
+ method = api.request_method.ljust(10)
9
+ path = api.path
10
+ puts "#{method} #{path}"
11
+ end
8
12
  end
9
13
 
10
14
  desc "Setup sites and account for development"
@@ -19,7 +23,7 @@ namespace :development do
19
23
  end
20
24
  end
21
25
 
22
- account = Locomotive::Account.new email: "admin@locomotivecms.com", password: "locomotive", password_confirmation: "locomotive", name: "Admin"
26
+ account = Locomotive::Account.new email: "admin@locomotivecms.com", password: "locomotive", password_confirmation: "locomotive", name: "Admin", super_admin: true
23
27
  account.api_key = 'd49cd50f6f0d2b163f48fc73cb249f0244c37074'
24
28
  account.save!
25
29
 
@@ -33,7 +37,7 @@ namespace :development do
33
37
 
34
38
  puts "\"LocomotiveCMS\" created: #{site._id}"
35
39
 
36
- site = Locomotive::Site.create! name: "Sample site", handle: "sample", domains: ["sample.example.com"]
40
+ site = Locomotive::Site.create! name: "Sample site", handle: "sample", domains: ["sample.example.com", "acme.example.local"]
37
41
  site.memberships.build account: account, role: 'admin'
38
42
  site.save!
39
43
 
@@ -45,6 +45,16 @@ namespace :locomotive do
45
45
  end
46
46
  puts '[x] set the number of entries by content type'
47
47
 
48
+ # content_types: filter_fields (don't use ids but use field name instead)
49
+ Locomotive::ContentType.where(:'filter_fields.0'.exists => true).all.each_by(10) do |content_type|
50
+ content_type.filter_fields = content_type.filter_fields.map do |id_or_name|
51
+ content_type.entries_custom_fields.where(id: id_or_name).first&.name || id_or_name
52
+ end
53
+ content_type.save
54
+ end
55
+ puts '[x] make filter_fields an array of only names (and not of field ids)'
56
+
57
+
48
58
  # content_entries: many_to_many relationships, make sure both sides are consistent
49
59
  Locomotive::ContentType.where('entries_custom_fields.type' => 'many_to_many').all.each_by(10) do |content_type|
50
60
  # puts "[#{content_type.site.name}] #{content_type.name}"
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.rc0
4
+ version: 4.0.0
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-04-26 00:00:00.000000000 Z
11
+ date: 2019-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,20 +30,34 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '6.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rails-html-sanitizer
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 1.3.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 1.3.0
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: devise
35
49
  requirement: !ruby/object:Gem::Requirement
36
50
  requirements:
37
51
  - - "~>"
38
52
  - !ruby/object:Gem::Version
39
- version: 4.6.2
53
+ version: 4.7.1
40
54
  type: :runtime
41
55
  prerelease: false
42
56
  version_requirements: !ruby/object:Gem::Requirement
43
57
  requirements:
44
58
  - - "~>"
45
59
  - !ruby/object:Gem::Version
46
- version: 4.6.2
60
+ version: 4.7.1
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: devise-encryptable
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +100,20 @@ dependencies:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
102
  version: 1.1.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: mongo
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 2.8.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '='
115
+ - !ruby/object:Gem::Version
116
+ version: 2.8.0
89
117
  - !ruby/object:Gem::Dependency
90
118
  name: mongoid
91
119
  requirement: !ruby/object:Gem::Requirement
@@ -134,28 +162,28 @@ dependencies:
134
162
  requirements:
135
163
  - - "~>"
136
164
  - !ruby/object:Gem::Version
137
- version: 2.10.0.beta3
165
+ version: 2.10.0
138
166
  type: :runtime
139
167
  prerelease: false
140
168
  version_requirements: !ruby/object:Gem::Requirement
141
169
  requirements:
142
170
  - - "~>"
143
171
  - !ruby/object:Gem::Version
144
- version: 2.10.0.beta3
172
+ version: 2.10.0
145
173
  - !ruby/object:Gem::Dependency
146
174
  name: locomotivecms_steam
147
175
  requirement: !ruby/object:Gem::Requirement
148
176
  requirements:
149
177
  - - "~>"
150
178
  - !ruby/object:Gem::Version
151
- version: 1.5.0.rc0
179
+ version: 1.5.0
152
180
  type: :runtime
153
181
  prerelease: false
154
182
  version_requirements: !ruby/object:Gem::Requirement
155
183
  requirements:
156
184
  - - "~>"
157
185
  - !ruby/object:Gem::Version
158
- version: 1.5.0.rc0
186
+ version: 1.5.0
159
187
  - !ruby/object:Gem::Dependency
160
188
  name: slim
161
189
  requirement: !ruby/object:Gem::Requirement
@@ -176,14 +204,14 @@ dependencies:
176
204
  requirements:
177
205
  - - "~>"
178
206
  - !ruby/object:Gem::Version
179
- version: 4.0.1
207
+ version: 5.0.0
180
208
  type: :runtime
181
209
  prerelease: false
182
210
  version_requirements: !ruby/object:Gem::Requirement
183
211
  requirements:
184
212
  - - "~>"
185
213
  - !ruby/object:Gem::Version
186
- version: 4.0.1
214
+ version: 5.0.0
187
215
  - !ruby/object:Gem::Dependency
188
216
  name: kaminari-actionview
189
217
  requirement: !ruby/object:Gem::Requirement
@@ -847,6 +875,7 @@ files:
847
875
  - app/helpers/locomotive/pages_helper.rb
848
876
  - app/helpers/locomotive/public_submission_accounts_helper.rb
849
877
  - app/helpers/locomotive/shared/accounts_helper.rb
878
+ - app/helpers/locomotive/shared/activities_helper.rb
850
879
  - app/helpers/locomotive/shared/pages_helper.rb
851
880
  - app/helpers/locomotive/shared/site_metafields_helper.rb
852
881
  - app/helpers/locomotive/shared/sites_helper.rb
@@ -1055,6 +1084,7 @@ files:
1055
1084
  - app/views/locomotive/shared/_main_app_header.html.slim
1056
1085
  - app/views/locomotive/shared/_navigation.html.slim
1057
1086
  - app/views/locomotive/shared/_sidebar.html.slim
1087
+ - app/views/locomotive/shared/account/_head.html.slim
1058
1088
  - app/views/locomotive/shared/account/_navigation.html.slim
1059
1089
  - app/views/locomotive/shared/rte/_image_popover.html.slim
1060
1090
  - app/views/locomotive/shared/rte/_link_popover.html.slim
@@ -1077,7 +1107,6 @@ files:
1077
1107
  - config/initializers/devise.rb
1078
1108
  - config/initializers/mongoid.rb
1079
1109
  - config/initializers/multi_json.rb
1080
- - config/initializers/rails_fixes.rb
1081
1110
  - config/initializers/simple_form.rb
1082
1111
  - config/initializers/slim.rb
1083
1112
  - config/initializers/time_format.rb
@@ -1292,7 +1321,6 @@ files:
1292
1321
  - lib/locomotive/regexps.rb
1293
1322
  - lib/locomotive/simple_form.rb
1294
1323
  - lib/locomotive/simple_token_authentication.rb
1295
- - lib/locomotive/steam/middlewares/cache.rb
1296
1324
  - lib/locomotive/steam/middlewares/catch_error.rb
1297
1325
  - lib/locomotive/steam/middlewares/missing_translations.rb
1298
1326
  - lib/locomotive/steam/middlewares/page_editing.rb
@@ -1381,12 +1409,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
1381
1409
  version: '0'
1382
1410
  required_rubygems_version: !ruby/object:Gem::Requirement
1383
1411
  requirements:
1384
- - - ">"
1412
+ - - ">="
1385
1413
  - !ruby/object:Gem::Version
1386
- version: 1.3.1
1414
+ version: '0'
1387
1415
  requirements: []
1388
- rubyforge_project:
1389
- rubygems_version: 2.7.3
1416
+ rubygems_version: 3.0.3
1390
1417
  signing_key:
1391
1418
  specification_version: 4
1392
1419
  summary: A platform to create, publish and edit sites