locomotivecms 3.0.0.rc1 → 3.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/README.md +7 -1
  4. data/app/api/locomotive/api/entities/content_type_entity.rb +4 -1
  5. data/app/api/locomotive/api/forms/base_form.rb +4 -2
  6. data/app/api/locomotive/api/forms/content_type_form.rb +1 -0
  7. data/app/api/locomotive/api/forms/theme_asset_form.rb +1 -1
  8. data/app/api/locomotive/api/resources/content_type_resource.rb +4 -2
  9. data/app/assets/javascripts/locomotive/views/inputs/array_view.js.coffee +1 -0
  10. data/app/controllers/locomotive/current_site_controller.rb +8 -0
  11. data/app/helpers/locomotive/editable_elements_helper.rb +2 -2
  12. data/app/helpers/locomotive/errors_helper.rb +7 -3
  13. data/app/helpers/locomotive/pages_helper.rb +2 -2
  14. data/app/helpers/locomotive/shared/accounts_helper.rb +1 -1
  15. data/app/inputs/locomotive/api_key_input.rb +2 -2
  16. data/app/mailers/locomotive/notifications.rb +14 -3
  17. data/app/models/locomotive/concerns/content_type/entry_template.rb +7 -1
  18. data/app/models/locomotive/concerns/content_type/public_submission_title_template.rb +24 -0
  19. data/app/models/locomotive/concerns/site/access_points.rb +1 -0
  20. data/app/models/locomotive/concerns/site/url_redirections.rb +30 -0
  21. data/app/models/locomotive/content_entry.rb +9 -1
  22. data/app/models/locomotive/content_type.rb +1 -0
  23. data/app/models/locomotive/page.rb +1 -1
  24. data/app/models/locomotive/site.rb +1 -0
  25. data/app/policies/locomotive/site_policy.rb +4 -3
  26. data/app/uploaders/locomotive/theme_asset_uploader.rb +6 -9
  27. data/app/views/locomotive/content_assets/_list.html.slim +1 -1
  28. data/app/views/locomotive/content_entries/_entry.html.slim +1 -1
  29. data/app/views/locomotive/content_entries/_list.html.slim +1 -1
  30. data/app/views/locomotive/content_entries/edit.html.slim +2 -0
  31. data/app/views/locomotive/content_entries/form/_tabs.html.slim +3 -3
  32. data/app/views/locomotive/content_entries/new.html.slim +3 -0
  33. data/app/views/locomotive/current_site/_membership.html.slim +1 -1
  34. data/app/views/locomotive/current_site/_url_redirection.html.slim +17 -0
  35. data/app/views/locomotive/current_site/form/_access_points.html.slim +2 -0
  36. data/app/views/locomotive/current_site/form/_panes.html.slim +1 -1
  37. data/app/views/locomotive/current_site/form/_tabs.html.slim +3 -0
  38. data/app/views/locomotive/current_site/form/_url_redirections.html.slim +5 -0
  39. data/app/views/locomotive/custom_fields/select_options/_option.html.slim +3 -1
  40. data/app/views/locomotive/editable_elements/index_without_preview.html.slim +3 -3
  41. data/app/views/locomotive/notifications/new_content_entry.html.slim +4 -0
  42. data/app/views/locomotive/pages/form/_actions.html.slim +1 -1
  43. data/app/views/locomotive/pages/form/_tabs.html.slim +3 -3
  44. data/app/views/locomotive/passwords/edit.html.slim +1 -1
  45. data/app/views/locomotive/passwords/new.html.slim +1 -1
  46. data/app/views/locomotive/public_submission_accounts/edit.html.slim +1 -1
  47. data/app/views/locomotive/registrations/new.html.slim +1 -1
  48. data/app/views/locomotive/sessions/new.html.slim +1 -1
  49. data/app/views/locomotive/translations/index.html.slim +2 -1
  50. data/config/i18n-tasks.yml +110 -0
  51. data/config/locales/carrierwave.fr.yml +1 -1
  52. data/config/locales/default.en.yml +0 -49
  53. data/config/locales/default.fr.yml +1 -232
  54. data/config/locales/devise.fr.yml +1 -68
  55. data/config/locales/{admin_ui.en.yml → en.yml} +31 -91
  56. data/config/locales/flash.en.yml +8 -37
  57. data/config/locales/flash.fr.yml +1 -106
  58. data/config/locales/fr.yml +5 -0
  59. data/config/locales/inputs.fr.yml +1 -0
  60. data/config/locales/mongoid.en.yml +49 -0
  61. data/config/locales/mongoid.fr.yml +12 -0
  62. data/config/locales/simple_form.en.yml +26 -65
  63. data/config/locales/simple_form.fr.yml +1 -0
  64. data/config/{locales → old-locales}/admin_ui.bg.yml +0 -0
  65. data/config/{locales → old-locales}/admin_ui.cs.yml +0 -0
  66. data/config/{locales → old-locales}/admin_ui.de.yml +0 -0
  67. data/config/{locales → old-locales}/admin_ui.es.yml +0 -0
  68. data/config/{locales → old-locales}/admin_ui.et.yml +0 -0
  69. data/config/{locales → old-locales}/admin_ui.fr.yml +0 -0
  70. data/config/{locales → old-locales}/admin_ui.it.yml +0 -0
  71. data/config/{locales → old-locales}/admin_ui.ja.yml +0 -0
  72. data/config/{locales → old-locales}/admin_ui.nb.yml +0 -0
  73. data/config/{locales → old-locales}/admin_ui.nl.yml +0 -0
  74. data/config/{locales → old-locales}/admin_ui.pl.yml +0 -0
  75. data/config/{locales → old-locales}/admin_ui.pt-BR.yml +0 -0
  76. data/config/{locales → old-locales}/admin_ui.pt.yml +0 -0
  77. data/config/{locales → old-locales}/admin_ui.ru.yml +0 -0
  78. data/config/{locales → old-locales}/admin_ui.sk.yml +0 -0
  79. data/config/{locales → old-locales}/admin_ui.sr.yml +0 -0
  80. data/config/{locales → old-locales}/admin_ui.zh-CN.yml +0 -0
  81. data/config/{locales → old-locales}/carrierwave.bg.yml +0 -0
  82. data/config/{locales → old-locales}/carrierwave.cs.yml +0 -0
  83. data/config/{locales → old-locales}/carrierwave.de.yml +0 -0
  84. data/config/{locales → old-locales}/carrierwave.es.yml +0 -0
  85. data/config/{locales → old-locales}/carrierwave.et.yml +0 -0
  86. data/config/old-locales/carrierwave.fr.yml +4 -0
  87. data/config/{locales → old-locales}/carrierwave.it.yml +0 -0
  88. data/config/{locales → old-locales}/carrierwave.ja.yml +0 -0
  89. data/config/{locales → old-locales}/carrierwave.nb.yml +0 -0
  90. data/config/{locales → old-locales}/carrierwave.nl.yml +0 -0
  91. data/config/{locales → old-locales}/carrierwave.pl.yml +0 -0
  92. data/config/{locales → old-locales}/carrierwave.pt-BR.yml +0 -0
  93. data/config/{locales → old-locales}/carrierwave.pt.yml +0 -0
  94. data/config/{locales → old-locales}/carrierwave.ru.yml +0 -0
  95. data/config/{locales → old-locales}/carrierwave.sk.yml +0 -0
  96. data/config/{locales → old-locales}/carrierwave.sr.yml +0 -0
  97. data/config/{locales → old-locales}/carrierwave.zh-CN.yml +0 -0
  98. data/config/{locales → old-locales}/default.bg.yml +0 -0
  99. data/config/{locales → old-locales}/default.cs.yml +0 -0
  100. data/config/{locales → old-locales}/default.de.yml +0 -0
  101. data/config/{locales → old-locales}/default.es.yml +0 -0
  102. data/config/{locales → old-locales}/default.et.yml +0 -0
  103. data/config/old-locales/default.fr.yml +232 -0
  104. data/config/{locales → old-locales}/default.it.yml +0 -0
  105. data/config/{locales → old-locales}/default.ja.yml +0 -0
  106. data/config/{locales → old-locales}/default.nb.yml +0 -0
  107. data/config/{locales → old-locales}/default.nl.yml +0 -0
  108. data/config/{locales → old-locales}/default.pl.yml +0 -0
  109. data/config/{locales → old-locales}/default.pt-BR.yml +0 -0
  110. data/config/{locales → old-locales}/default.pt.yml +0 -0
  111. data/config/{locales → old-locales}/default.ru.yml +0 -0
  112. data/config/{locales → old-locales}/default.sk.yml +0 -0
  113. data/config/{locales → old-locales}/default.sr.yml +0 -0
  114. data/config/{locales → old-locales}/default.zh-CN.yml +0 -0
  115. data/config/{locales → old-locales}/devise.bg.yml +0 -0
  116. data/config/{locales → old-locales}/devise.cs.yml +0 -0
  117. data/config/{locales → old-locales}/devise.de.yml +0 -0
  118. data/config/{locales → old-locales}/devise.es.yml +0 -0
  119. data/config/{locales → old-locales}/devise.et.yml +0 -0
  120. data/config/old-locales/devise.fr.yml +68 -0
  121. data/config/{locales → old-locales}/devise.it.yml +0 -0
  122. data/config/{locales → old-locales}/devise.ja.yml +0 -0
  123. data/config/{locales → old-locales}/devise.nb.yml +0 -0
  124. data/config/{locales → old-locales}/devise.nl.yml +0 -0
  125. data/config/{locales → old-locales}/devise.pl.yml +0 -0
  126. data/config/{locales → old-locales}/devise.pt-BR.yml +0 -0
  127. data/config/{locales → old-locales}/devise.pt.yml +0 -0
  128. data/config/{locales → old-locales}/devise.ru.yml +0 -0
  129. data/config/{locales → old-locales}/devise.sk.yml +0 -0
  130. data/config/{locales → old-locales}/devise.sr.yml +0 -0
  131. data/config/{locales → old-locales}/devise.zh-CN.yml +0 -0
  132. data/config/{locales → old-locales}/flash.bg.yml +0 -0
  133. data/config/{locales → old-locales}/flash.cs.yml +0 -0
  134. data/config/{locales → old-locales}/flash.de.yml +0 -0
  135. data/config/{locales → old-locales}/flash.es.yml +0 -0
  136. data/config/{locales → old-locales}/flash.et.yml +0 -0
  137. data/config/old-locales/flash.fr.yml +106 -0
  138. data/config/{locales → old-locales}/flash.it.yml +0 -0
  139. data/config/{locales → old-locales}/flash.ja.yml +0 -0
  140. data/config/{locales → old-locales}/flash.nb.yml +0 -0
  141. data/config/{locales → old-locales}/flash.nl.yml +0 -0
  142. data/config/{locales → old-locales}/flash.pl.yml +0 -0
  143. data/config/{locales → old-locales}/flash.pt-BR.yml +0 -0
  144. data/config/{locales → old-locales}/flash.pt.yml +0 -0
  145. data/config/{locales → old-locales}/flash.ru.yml +0 -0
  146. data/config/{locales → old-locales}/flash.sk.yml +0 -0
  147. data/config/{locales → old-locales}/flash.sr.yml +0 -0
  148. data/config/{locales → old-locales}/flash.zh-CN.yml +0 -0
  149. data/config/routes.rb +1 -0
  150. data/lib/generators/locomotive/install/templates/carrierwave.rb +12 -7
  151. data/lib/generators/locomotive/install/templates/devise.rb +127 -55
  152. data/lib/generators/locomotive/install/templates/dragonfly.rb +1 -1
  153. data/lib/generators/locomotive/install/templates/locomotive.rb +2 -0
  154. data/lib/locomotive/carrierwave/asset.rb +23 -11
  155. data/lib/locomotive/carrierwave/patches.rb +18 -0
  156. data/lib/locomotive/configuration.rb +6 -5
  157. data/lib/locomotive/dependencies.rb +1 -0
  158. data/lib/locomotive/engine.rb +4 -0
  159. data/lib/locomotive/middlewares/site.rb +1 -0
  160. data/lib/locomotive/steam/middlewares/missing_translations.rb +1 -1
  161. data/lib/locomotive/steam/services/api_entry_submission_service.rb +8 -1
  162. data/lib/locomotive/steam_adaptor.rb +9 -7
  163. data/lib/locomotive/version.rb +1 -1
  164. data/spec/fixtures/assets/ruby_logo.svg +948 -0
  165. data/spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb +1 -1
  166. data/spec/mailers/locomotive/notifications_spec.rb +39 -1
  167. data/spec/models/locomotive/concerns/site/url_redirections_spec.rb +42 -0
  168. data/spec/models/locomotive/theme_asset_spec.rb +29 -0
  169. data/spec/support/factories.rb +15 -1
  170. data/spec/support/features/site_helpers.rb +8 -1
  171. data/spec/support/shared_contexts/api_site_setup.rb +1 -1
  172. metadata +120 -106
  173. data/app/views/locomotive/shared/_footer.html.slim +0 -2
  174. data/app/views/locomotive/shared/_form_actions.html.slim +0 -14
  175. data/app/views/locomotive/shared/actions/_contents.html.slim +0 -7
  176. data/config/cucumber.yml +0 -8
@@ -38,7 +38,7 @@ describe Locomotive::Steam::APIEntrySubmissionService do
38
38
  subject { service.to_json(entry) }
39
39
 
40
40
  it 'includes _id and fields' do
41
- expect(subject).to match('"_id":"42"')
41
+ expect(subject).to match('"_id":42')
42
42
  expect(subject).to match('"name":"John Doe"')
43
43
  expect(subject).to match('"message":"Hello"')
44
44
  end
@@ -5,7 +5,7 @@ describe Locomotive::Notifications do
5
5
  describe 'new_content_entry' do
6
6
 
7
7
  let(:now) { Time.use_zone('America/Chicago') { Time.zone.local(1982, 'sep', 16, 14, 0) } }
8
- let(:site) { FactoryGirl.build(:site, domains: %w{www.acme.com}, timezone_name: 'CET') }
8
+ let(:site) { FactoryGirl.build(:site, name: 'Acme', domains: %w{www.acme.com}, timezone_name: 'Paris') }
9
9
  let(:account) { FactoryGirl.build(:account, email: 'bart@simpson.net') }
10
10
  let(:content_type) { FactoryGirl.build(:content_type, site: site) }
11
11
  let(:content_entry) { FactoryGirl.build(:content_entry, content_type: content_type, site: site) }
@@ -38,6 +38,44 @@ describe Locomotive::Notifications do
38
38
  expect(mail.body.encoded).to match('The list of my projects')
39
39
  end
40
40
 
41
+ describe 'rendering based on field types' do
42
+
43
+ describe 'text type' do
44
+
45
+ let(:content_type) { FactoryGirl.build(:content_type, :with_text_field, site: site) }
46
+ let(:content_entry) { content_type.entries.build(description: "hello\nworld", site: site) }
47
+
48
+ it 'outputs the formatted value of the text field' do
49
+ expect(mail.body.encoded).to match('hello<br/>world')
50
+ end
51
+
52
+ end
53
+
54
+ describe 'date time type' do
55
+
56
+ let(:content_type) { FactoryGirl.build(:content_type, :with_date_time_field, site: site) }
57
+ let(:content_entry) { content_type.entries.build(time: DateTime.parse('2015/09/26 10:45pm CDT'), site: site) }
58
+
59
+ it 'outputs the formatted value of the date time field' do
60
+ expect(mail.body.encoded).to match('09/27/2015 05:45')
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+
67
+ context 'custom title' do
68
+
69
+ before do
70
+ content_type.public_submission_title_template = "{{ site.name }} - you have a message"
71
+ end
72
+
73
+ it 'renders the subject' do
74
+ expect(mail.subject).to eq 'Acme - you have a message'
75
+ end
76
+
77
+ end
78
+
41
79
  end
42
80
 
43
81
  def set_timezone(&block)
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Locomotive::Concerns::Site::UrlRedirections do
4
+
5
+ let(:redirections) { {} }
6
+ let(:site) { build(:site, url_redirections: redirections) }
7
+
8
+ describe '#url_redirections=' do
9
+
10
+ subject { site.url_redirections }
11
+
12
+ describe 'passing nil' do
13
+
14
+ let(:redirections) { nil }
15
+ it { is_expected.to eq([]) }
16
+
17
+ end
18
+
19
+ describe 'passing an array' do
20
+
21
+ let(:redirections) { [['/foo', '/bar'], ['/hello_world', '/hello-world']] }
22
+ it { is_expected.to eq([['/foo', '/bar'], ['/hello_world', '/hello-world']]) }
23
+
24
+ end
25
+
26
+ describe 'passing a flatten array' do
27
+
28
+ let(:redirections) { ['/foo', '/bar', '/hello_world', '/hello-world'] }
29
+ it { is_expected.to eq([['/foo', '/bar'], ['/hello_world', '/hello-world']]) }
30
+
31
+ end
32
+
33
+ describe 'make sure a leading "/" character is present' do
34
+
35
+ let(:redirections) { ['hello_world', 'hello-world'] }
36
+ it { is_expected.to eq([['/hello_world', '/hello-world']]) }
37
+
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -108,6 +108,35 @@ describe Locomotive::ThemeAsset do
108
108
 
109
109
  end
110
110
 
111
+ describe 'SVG assets' do
112
+
113
+ let(:asset) { build(:theme_asset, site: site, folder: folder, source: FixturedAsset.open('ruby_logo.svg'), updated_at: DateTime.parse('2007/06/29 21:10:00')) }
114
+
115
+ before { asset.save }
116
+
117
+ describe 'uploaded in the fonts folder' do
118
+
119
+ let(:folder) { 'fonts' }
120
+
121
+ it 'is considered as a font' do
122
+ expect(asset.content_type).to eq :font
123
+ end
124
+
125
+ end
126
+
127
+
128
+ describe 'uploaded in the images folder' do
129
+
130
+ let(:folder) { 'images' }
131
+
132
+ it 'is considered as an image' do
133
+ expect(asset.content_type).to eq :image
134
+ end
135
+
136
+ end
137
+
138
+ end
139
+
111
140
  describe 'creating from plain text' do
112
141
 
113
142
  let(:asset) { FactoryGirl.build(:theme_asset,
@@ -190,9 +190,11 @@ FactoryGirl.define do
190
190
 
191
191
  factory 'message content type' do
192
192
  name 'Messages'
193
+ slug 'messages'
193
194
  description 'Messages posted from the contact form'
195
+ public_submission_enabled true
194
196
  after(:build) do |content_type, _|
195
- content_type.entries_custom_fields.build label: 'Name', name: 'name', type: 'string'
197
+ content_type.entries_custom_fields.build label: 'Name', name: 'name', type: 'string', required: true
196
198
  content_type.entries_custom_fields.build label: 'Message', name: 'message', type: 'text'
197
199
  end
198
200
  end
@@ -248,6 +250,18 @@ FactoryGirl.define do
248
250
  end
249
251
  end
250
252
 
253
+ trait :with_text_field do
254
+ after(:build) do |content_type, evaluator|
255
+ content_type.entries_custom_fields.build label: 'Description', name: 'description', type: 'text'
256
+ end
257
+ end
258
+
259
+ trait :with_date_time_field do
260
+ after(:build) do |content_type, evaluator|
261
+ content_type.entries_custom_fields.build label: 'Time', name: 'time', type: 'date_time'
262
+ end
263
+ end
264
+
251
265
  trait :with_select_field do
252
266
  after(:build) do |content_type, evaluator|
253
267
  content_type.entries_custom_fields.build(label: 'Category', type: 'select')
@@ -10,7 +10,7 @@ module Features
10
10
  @site = Locomotive::Site.where(name: 'Acme').first
11
11
 
12
12
  # 2. add content types
13
- create('message content type', site: @site, public_submission_enabled: true)
13
+ messages = create('message content type', site: @site)
14
14
  articles = create('article content type', slug: 'articles', site: @site)
15
15
  photos = create('photo content type', slug: 'photos', site: @site)
16
16
 
@@ -20,8 +20,15 @@ module Features
20
20
  articles.entries_custom_fields.build(label: 'Photos', name: 'photos', type: 'has_many', class_name: photos.entries_class_name, inverse_of: 'article')
21
21
  articles.save!
22
22
 
23
+ # 3. create pages
24
+ @site.pages.create(parent: @site.pages.root.first, title: 'Contact', slug: 'contact', raw_template: %{<html><body>{% if message.errors %}num errors: {{ message.errors.size }} / {% for error in message.errors %}-{{error[0]}} {{error[1]}}-{% endfor %}{% endif %}{% model_form 'messages', success: '/', error: '/contact' %}<input type="text" name="content[name]" value="{{customer_message.name}}"><input type="text" name="content[message]" value="{{customer_message.message}}"><input type="submit" value="Send">{% endmodel_form %}</body></html>})
25
+
23
26
  click_link 'Dashboard'
24
27
  end
25
28
 
29
+ def preview_page(path = '')
30
+ visit "/locomotive/#{@site.handle}/preview/#{path}"
31
+ end
32
+
26
33
  end
27
34
  end
@@ -1,6 +1,6 @@
1
1
  shared_context 'api site setup' do
2
2
  include Rack::Test::Methods
3
- let!(:site) { create(:site, domains: %w{www.acme.com}) }
3
+ let!(:site) { create(:site, domains: %w{www.acme.com}, locales: %w(en fr)) }
4
4
 
5
5
  let!(:account) { create(:account) }
6
6
  let(:params) { { locale: :en } }
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: 3.0.0.rc1
4
+ version: 3.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-14 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -170,28 +170,28 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 2.4.0.rc5
173
+ version: 2.4.0.rc8
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 2.4.0.rc5
180
+ version: 2.4.0.rc8
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: locomotivecms_steam
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 1.0.0.rc1
187
+ version: 1.0.0.rc2
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 1.0.0.rc1
194
+ version: 1.0.0.rc2
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: slim
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +262,20 @@ dependencies:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
264
  version: 2.1.0
265
+ - !ruby/object:Gem::Dependency
266
+ name: rails-i18n
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: 4.0.6
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: 4.0.6
265
279
  - !ruby/object:Gem::Dependency
266
280
  name: jquery-rails
267
281
  requirement: !ruby/object:Gem::Requirement
@@ -472,20 +486,6 @@ dependencies:
472
486
  - - "~>"
473
487
  - !ruby/object:Gem::Version
474
488
  version: 0.7.1
475
- - !ruby/object:Gem::Dependency
476
- name: fog
477
- requirement: !ruby/object:Gem::Requirement
478
- requirements:
479
- - - "~>"
480
- - !ruby/object:Gem::Version
481
- version: 1.34.0
482
- type: :runtime
483
- prerelease: false
484
- version_requirements: !ruby/object:Gem::Requirement
485
- requirements:
486
- - - "~>"
487
- - !ruby/object:Gem::Version
488
- version: 1.34.0
489
489
  - !ruby/object:Gem::Dependency
490
490
  name: dragonfly
491
491
  requirement: !ruby/object:Gem::Requirement
@@ -887,6 +887,7 @@ files:
887
887
  - app/models/locomotive/concerns/content_type/group_by.rb
888
888
  - app/models/locomotive/concerns/content_type/label.rb
889
889
  - app/models/locomotive/concerns/content_type/order_by.rb
890
+ - app/models/locomotive/concerns/content_type/public_submission_title_template.rb
890
891
  - app/models/locomotive/concerns/content_type/sync.rb
891
892
  - app/models/locomotive/concerns/page/editable_elements.rb
892
893
  - app/models/locomotive/concerns/page/layout.rb
@@ -903,6 +904,7 @@ files:
903
904
  - app/models/locomotive/concerns/site/cache.rb
904
905
  - app/models/locomotive/concerns/site/locales.rb
905
906
  - app/models/locomotive/concerns/site/timezone.rb
907
+ - app/models/locomotive/concerns/site/url_redirections.rb
906
908
  - app/models/locomotive/concerns/theme_asset/plain_text.rb
907
909
  - app/models/locomotive/content_asset.rb
908
910
  - app/models/locomotive/content_entry.rb
@@ -970,6 +972,7 @@ files:
970
972
  - app/views/locomotive/current_site/_domain.html.slim
971
973
  - app/views/locomotive/current_site/_locale.html.slim
972
974
  - app/views/locomotive/current_site/_membership.html.slim
975
+ - app/views/locomotive/current_site/_url_redirection.html.slim
973
976
  - app/views/locomotive/current_site/edit.html.slim
974
977
  - app/views/locomotive/current_site/form/_access_points.html.slim
975
978
  - app/views/locomotive/current_site/form/_advanced.html.slim
@@ -977,6 +980,7 @@ files:
977
980
  - app/views/locomotive/current_site/form/_panes.html.slim
978
981
  - app/views/locomotive/current_site/form/_seo.html.slim
979
982
  - app/views/locomotive/current_site/form/_tabs.html.slim
983
+ - app/views/locomotive/current_site/form/_url_redirections.html.slim
980
984
  - app/views/locomotive/custom_fields/select_options/_option.html.slim
981
985
  - app/views/locomotive/custom_fields/select_options/edit.html.slim
982
986
  - app/views/locomotive/dashboard/_activity.html.slim
@@ -1024,8 +1028,6 @@ files:
1024
1028
  - app/views/locomotive/public_submission_accounts/edit.html.slim
1025
1029
  - app/views/locomotive/registrations/new.html.slim
1026
1030
  - app/views/locomotive/sessions/new.html.slim
1027
- - app/views/locomotive/shared/_footer.html.slim
1028
- - app/views/locomotive/shared/_form_actions.html.slim
1029
1031
  - app/views/locomotive/shared/_head.html.slim
1030
1032
  - app/views/locomotive/shared/_header.html.slim
1031
1033
  - app/views/locomotive/shared/_locale_picker_link.html.slim
@@ -1034,7 +1036,6 @@ files:
1034
1036
  - app/views/locomotive/shared/_main_app_header.html.slim
1035
1037
  - app/views/locomotive/shared/_sidebar.html.slim
1036
1038
  - app/views/locomotive/shared/_sidebar_without_site.html.slim
1037
- - app/views/locomotive/shared/actions/_contents.html.slim
1038
1039
  - app/views/locomotive/shared/header/_account.html.slim
1039
1040
  - app/views/locomotive/shared/header/_account_menu.html.slim
1040
1041
  - app/views/locomotive/shared/header/_brand.html.slim
@@ -1054,105 +1055,114 @@ files:
1054
1055
  - app/views/locomotive/translations/_form.html.slim
1055
1056
  - app/views/locomotive/translations/edit.html.slim
1056
1057
  - app/views/locomotive/translations/index.html.slim
1057
- - config/cucumber.yml
1058
+ - config/i18n-tasks.yml
1058
1059
  - config/initializers/csv_renderer.rb
1059
1060
  - config/initializers/deny_phantomjs_ttf.rb
1060
1061
  - config/initializers/devise.rb
1061
1062
  - config/initializers/simple_form.rb
1062
1063
  - config/initializers/slim.rb
1063
1064
  - config/initializers/time_format.rb
1064
- - config/locales/admin_ui.bg.yml
1065
- - config/locales/admin_ui.cs.yml
1066
- - config/locales/admin_ui.de.yml
1067
- - config/locales/admin_ui.en.yml
1068
- - config/locales/admin_ui.es.yml
1069
- - config/locales/admin_ui.et.yml
1070
- - config/locales/admin_ui.fr.yml
1071
- - config/locales/admin_ui.it.yml
1072
- - config/locales/admin_ui.ja.yml
1073
- - config/locales/admin_ui.nb.yml
1074
- - config/locales/admin_ui.nl.yml
1075
- - config/locales/admin_ui.pl.yml
1076
- - config/locales/admin_ui.pt-BR.yml
1077
- - config/locales/admin_ui.pt.yml
1078
- - config/locales/admin_ui.ru.yml
1079
- - config/locales/admin_ui.sk.yml
1080
- - config/locales/admin_ui.sr.yml
1081
- - config/locales/admin_ui.zh-CN.yml
1082
- - config/locales/carrierwave.bg.yml
1083
- - config/locales/carrierwave.cs.yml
1084
- - config/locales/carrierwave.de.yml
1085
1065
  - config/locales/carrierwave.en.yml
1086
- - config/locales/carrierwave.es.yml
1087
- - config/locales/carrierwave.et.yml
1088
1066
  - config/locales/carrierwave.fr.yml
1089
- - config/locales/carrierwave.it.yml
1090
- - config/locales/carrierwave.ja.yml
1091
- - config/locales/carrierwave.nb.yml
1092
- - config/locales/carrierwave.nl.yml
1093
- - config/locales/carrierwave.pl.yml
1094
- - config/locales/carrierwave.pt-BR.yml
1095
- - config/locales/carrierwave.pt.yml
1096
- - config/locales/carrierwave.ru.yml
1097
- - config/locales/carrierwave.sk.yml
1098
- - config/locales/carrierwave.sr.yml
1099
- - config/locales/carrierwave.zh-CN.yml
1100
- - config/locales/default.bg.yml
1101
- - config/locales/default.cs.yml
1102
- - config/locales/default.de.yml
1103
1067
  - config/locales/default.en.yml
1104
- - config/locales/default.es.yml
1105
- - config/locales/default.et.yml
1106
1068
  - config/locales/default.fr.yml
1107
- - config/locales/default.it.yml
1108
- - config/locales/default.ja.yml
1109
- - config/locales/default.nb.yml
1110
- - config/locales/default.nl.yml
1111
- - config/locales/default.pl.yml
1112
- - config/locales/default.pt-BR.yml
1113
- - config/locales/default.pt.yml
1114
- - config/locales/default.ru.yml
1115
- - config/locales/default.sk.yml
1116
- - config/locales/default.sr.yml
1117
- - config/locales/default.zh-CN.yml
1118
- - config/locales/devise.bg.yml
1119
- - config/locales/devise.cs.yml
1120
- - config/locales/devise.de.yml
1121
1069
  - config/locales/devise.en.yml
1122
- - config/locales/devise.es.yml
1123
- - config/locales/devise.et.yml
1124
1070
  - config/locales/devise.fr.yml
1125
- - config/locales/devise.it.yml
1126
- - config/locales/devise.ja.yml
1127
- - config/locales/devise.nb.yml
1128
- - config/locales/devise.nl.yml
1129
- - config/locales/devise.pl.yml
1130
- - config/locales/devise.pt-BR.yml
1131
- - config/locales/devise.pt.yml
1132
- - config/locales/devise.ru.yml
1133
- - config/locales/devise.sk.yml
1134
- - config/locales/devise.sr.yml
1135
- - config/locales/devise.zh-CN.yml
1136
- - config/locales/flash.bg.yml
1137
- - config/locales/flash.cs.yml
1138
- - config/locales/flash.de.yml
1071
+ - config/locales/en.yml
1139
1072
  - config/locales/flash.en.yml
1140
- - config/locales/flash.es.yml
1141
- - config/locales/flash.et.yml
1142
1073
  - config/locales/flash.fr.yml
1143
- - config/locales/flash.it.yml
1144
- - config/locales/flash.ja.yml
1145
- - config/locales/flash.nb.yml
1146
- - config/locales/flash.nl.yml
1147
- - config/locales/flash.pl.yml
1148
- - config/locales/flash.pt-BR.yml
1149
- - config/locales/flash.pt.yml
1150
- - config/locales/flash.ru.yml
1151
- - config/locales/flash.sk.yml
1152
- - config/locales/flash.sr.yml
1153
- - config/locales/flash.zh-CN.yml
1074
+ - config/locales/fr.yml
1154
1075
  - config/locales/inputs.en.yml
1076
+ - config/locales/inputs.fr.yml
1077
+ - config/locales/mongoid.en.yml
1078
+ - config/locales/mongoid.fr.yml
1155
1079
  - config/locales/simple_form.en.yml
1080
+ - config/locales/simple_form.fr.yml
1081
+ - config/old-locales/admin_ui.bg.yml
1082
+ - config/old-locales/admin_ui.cs.yml
1083
+ - config/old-locales/admin_ui.de.yml
1084
+ - config/old-locales/admin_ui.es.yml
1085
+ - config/old-locales/admin_ui.et.yml
1086
+ - config/old-locales/admin_ui.fr.yml
1087
+ - config/old-locales/admin_ui.it.yml
1088
+ - config/old-locales/admin_ui.ja.yml
1089
+ - config/old-locales/admin_ui.nb.yml
1090
+ - config/old-locales/admin_ui.nl.yml
1091
+ - config/old-locales/admin_ui.pl.yml
1092
+ - config/old-locales/admin_ui.pt-BR.yml
1093
+ - config/old-locales/admin_ui.pt.yml
1094
+ - config/old-locales/admin_ui.ru.yml
1095
+ - config/old-locales/admin_ui.sk.yml
1096
+ - config/old-locales/admin_ui.sr.yml
1097
+ - config/old-locales/admin_ui.zh-CN.yml
1098
+ - config/old-locales/carrierwave.bg.yml
1099
+ - config/old-locales/carrierwave.cs.yml
1100
+ - config/old-locales/carrierwave.de.yml
1101
+ - config/old-locales/carrierwave.es.yml
1102
+ - config/old-locales/carrierwave.et.yml
1103
+ - config/old-locales/carrierwave.fr.yml
1104
+ - config/old-locales/carrierwave.it.yml
1105
+ - config/old-locales/carrierwave.ja.yml
1106
+ - config/old-locales/carrierwave.nb.yml
1107
+ - config/old-locales/carrierwave.nl.yml
1108
+ - config/old-locales/carrierwave.pl.yml
1109
+ - config/old-locales/carrierwave.pt-BR.yml
1110
+ - config/old-locales/carrierwave.pt.yml
1111
+ - config/old-locales/carrierwave.ru.yml
1112
+ - config/old-locales/carrierwave.sk.yml
1113
+ - config/old-locales/carrierwave.sr.yml
1114
+ - config/old-locales/carrierwave.zh-CN.yml
1115
+ - config/old-locales/default.bg.yml
1116
+ - config/old-locales/default.cs.yml
1117
+ - config/old-locales/default.de.yml
1118
+ - config/old-locales/default.es.yml
1119
+ - config/old-locales/default.et.yml
1120
+ - config/old-locales/default.fr.yml
1121
+ - config/old-locales/default.it.yml
1122
+ - config/old-locales/default.ja.yml
1123
+ - config/old-locales/default.nb.yml
1124
+ - config/old-locales/default.nl.yml
1125
+ - config/old-locales/default.pl.yml
1126
+ - config/old-locales/default.pt-BR.yml
1127
+ - config/old-locales/default.pt.yml
1128
+ - config/old-locales/default.ru.yml
1129
+ - config/old-locales/default.sk.yml
1130
+ - config/old-locales/default.sr.yml
1131
+ - config/old-locales/default.zh-CN.yml
1132
+ - config/old-locales/devise.bg.yml
1133
+ - config/old-locales/devise.cs.yml
1134
+ - config/old-locales/devise.de.yml
1135
+ - config/old-locales/devise.es.yml
1136
+ - config/old-locales/devise.et.yml
1137
+ - config/old-locales/devise.fr.yml
1138
+ - config/old-locales/devise.it.yml
1139
+ - config/old-locales/devise.ja.yml
1140
+ - config/old-locales/devise.nb.yml
1141
+ - config/old-locales/devise.nl.yml
1142
+ - config/old-locales/devise.pl.yml
1143
+ - config/old-locales/devise.pt-BR.yml
1144
+ - config/old-locales/devise.pt.yml
1145
+ - config/old-locales/devise.ru.yml
1146
+ - config/old-locales/devise.sk.yml
1147
+ - config/old-locales/devise.sr.yml
1148
+ - config/old-locales/devise.zh-CN.yml
1149
+ - config/old-locales/flash.bg.yml
1150
+ - config/old-locales/flash.cs.yml
1151
+ - config/old-locales/flash.de.yml
1152
+ - config/old-locales/flash.es.yml
1153
+ - config/old-locales/flash.et.yml
1154
+ - config/old-locales/flash.fr.yml
1155
+ - config/old-locales/flash.it.yml
1156
+ - config/old-locales/flash.ja.yml
1157
+ - config/old-locales/flash.nb.yml
1158
+ - config/old-locales/flash.nl.yml
1159
+ - config/old-locales/flash.pl.yml
1160
+ - config/old-locales/flash.pt-BR.yml
1161
+ - config/old-locales/flash.pt.yml
1162
+ - config/old-locales/flash.ru.yml
1163
+ - config/old-locales/flash.sk.yml
1164
+ - config/old-locales/flash.sr.yml
1165
+ - config/old-locales/flash.zh-CN.yml
1156
1166
  - config/routes.rb
1157
1167
  - features/api/accounts.feature
1158
1168
  - features/api/authentication.feature
@@ -1338,6 +1348,7 @@ files:
1338
1348
  - spec/fixtures/assets/5k_2.png
1339
1349
  - spec/fixtures/assets/application.js
1340
1350
  - spec/fixtures/assets/main.css
1351
+ - spec/fixtures/assets/ruby_logo.svg
1341
1352
  - spec/fixtures/assets/specs.pdf
1342
1353
  - spec/fixtures/assets/wrong.txt
1343
1354
  - spec/fixtures/images/logo1.jpg
@@ -1362,6 +1373,7 @@ files:
1362
1373
  - spec/models/locomotive/concerns/site/access_points_spec.rb
1363
1374
  - spec/models/locomotive/concerns/site/cache_spec.rb
1364
1375
  - spec/models/locomotive/concerns/site/locales_spec.rb
1376
+ - spec/models/locomotive/concerns/site/url_redirections_spec.rb
1365
1377
  - spec/models/locomotive/content_asset_spec.rb
1366
1378
  - spec/models/locomotive/content_entry_spec.rb
1367
1379
  - spec/models/locomotive/content_type_spec.rb
@@ -1560,6 +1572,7 @@ test_files:
1560
1572
  - spec/fixtures/assets/5k_2.png
1561
1573
  - spec/fixtures/assets/application.js
1562
1574
  - spec/fixtures/assets/main.css
1575
+ - spec/fixtures/assets/ruby_logo.svg
1563
1576
  - spec/fixtures/assets/specs.pdf
1564
1577
  - spec/fixtures/assets/wrong.txt
1565
1578
  - spec/fixtures/images/logo1.jpg
@@ -1584,6 +1597,7 @@ test_files:
1584
1597
  - spec/models/locomotive/concerns/site/access_points_spec.rb
1585
1598
  - spec/models/locomotive/concerns/site/cache_spec.rb
1586
1599
  - spec/models/locomotive/concerns/site/locales_spec.rb
1600
+ - spec/models/locomotive/concerns/site/url_redirections_spec.rb
1587
1601
  - spec/models/locomotive/content_asset_spec.rb
1588
1602
  - spec/models/locomotive/content_entry_spec.rb
1589
1603
  - spec/models/locomotive/content_type_spec.rb