locomotivecms 4.0.0.alpha2 → 4.0.0.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/Rakefile +14 -6
  4. data/app/api/locomotive/api/forms/site_form.rb +8 -2
  5. data/app/api/locomotive/api/helpers/locales_helper.rb +4 -0
  6. data/app/api/locomotive/api/resources/content_entry_resource.rb +1 -1
  7. data/app/assets/javascripts/locomotive/editor.js +2859 -2561
  8. data/app/assets/javascripts/locomotive/views/content_entries/index_view.js.coffee +4 -1
  9. data/app/assets/javascripts/locomotive/views/current_site/edit_view.js.coffee +6 -0
  10. data/app/assets/javascripts/locomotive/views/shared/bulk_delete_view.js.coffee +27 -0
  11. data/app/assets/javascripts/locomotive/views/translations/index_view.js.coffee +6 -0
  12. data/app/assets/stylesheets/locomotive/application.scss +1 -0
  13. data/app/assets/stylesheets/locomotive/editor.css +119 -113
  14. data/app/assets/stylesheets/locomotive/new/_checkbox.scss +38 -0
  15. data/app/assets/stylesheets/locomotive/old/_activity_feed.scss +10 -0
  16. data/app/assets/stylesheets/locomotive/old/_list.scss +28 -0
  17. data/app/assets/stylesheets/locomotive/old/_main.scss +21 -4
  18. data/app/assets/stylesheets/locomotive/old/_search_bars.scss +2 -5
  19. data/app/assets/stylesheets/locomotive/old/_translations.scss +2 -2
  20. data/app/controllers/locomotive/content_entries_controller.rb +5 -5
  21. data/app/controllers/locomotive/current_site_controller.rb +8 -1
  22. data/app/controllers/locomotive/custom_fields/select_options_controller.rb +1 -1
  23. data/app/controllers/locomotive/editable_elements_controller.rb +1 -1
  24. data/app/controllers/locomotive/page_content_controller.rb +2 -2
  25. data/app/controllers/locomotive/pages_controller.rb +1 -1
  26. data/app/controllers/locomotive/search_for_resources_controller.rb +1 -1
  27. data/app/controllers/locomotive/translations_controller.rb +7 -1
  28. data/app/helpers/locomotive/base_helper.rb +6 -5
  29. data/app/helpers/locomotive/dashboard_helper.rb +18 -6
  30. data/app/helpers/locomotive/page_content_helper.rb +28 -5
  31. data/app/helpers/locomotive/pages_helper.rb +4 -0
  32. data/app/helpers/locomotive/shared/pages_helper.rb +8 -4
  33. data/app/models/locomotive/activity.rb +1 -0
  34. data/app/models/locomotive/concerns/content_entry/file_size.rb +5 -1
  35. data/app/models/locomotive/concerns/content_type/public_submission_title_template.rb +1 -1
  36. data/app/models/locomotive/concerns/page/sections.rb +11 -0
  37. data/app/models/locomotive/concerns/site/url_redirections.rb +11 -1
  38. data/app/policies/locomotive/membership_policy.rb +3 -7
  39. data/app/services/locomotive/content_entry_service.rb +21 -10
  40. data/app/services/locomotive/custom_field_service.rb +28 -4
  41. data/app/services/locomotive/editable_element_service.rb +2 -2
  42. data/app/services/locomotive/editor_service.rb +47 -31
  43. data/app/services/locomotive/page_service.rb +2 -2
  44. data/app/services/locomotive/translation_service.rb +7 -0
  45. data/app/views/locomotive/accounts/new.html.slim +1 -1
  46. data/app/views/locomotive/content_assets/_list.html.slim +5 -0
  47. data/app/views/locomotive/content_assets/_search_form.html.slim +1 -1
  48. data/app/views/locomotive/content_entries/_list.html.slim +3 -3
  49. data/app/views/locomotive/content_entries/edit.html.slim +2 -1
  50. data/app/views/locomotive/content_entries/index.html.slim +53 -40
  51. data/app/views/locomotive/content_entries/new.html.slim +1 -1
  52. data/app/views/locomotive/current_site/edit.html.slim +1 -1
  53. data/app/views/locomotive/current_site/form/_url_redirections.html.slim +4 -0
  54. data/app/views/locomotive/current_site_metafields/index.html.slim +1 -1
  55. data/app/views/locomotive/dashboard/_activity.html.slim +3 -0
  56. data/app/views/locomotive/layouts/application.html.slim +3 -2
  57. data/app/views/locomotive/layouts/editor.html.slim +2 -0
  58. data/app/views/locomotive/memberships/edit.html.slim +1 -1
  59. data/app/views/locomotive/memberships/new.html.slim +1 -1
  60. data/app/views/locomotive/page_content/edit.html.erb +1 -0
  61. data/app/views/locomotive/page_content/edit.json.jbuilder +3 -1
  62. data/app/views/locomotive/pages/_header.html.slim +1 -1
  63. data/app/views/locomotive/pages/form/_main.html.slim +1 -1
  64. data/app/views/locomotive/pages/new.html.slim +1 -1
  65. data/app/views/locomotive/public_submission_accounts/edit.html.slim +1 -1
  66. data/app/views/locomotive/translations/_form.html.slim +0 -3
  67. data/app/views/locomotive/translations/edit.html.slim +1 -1
  68. data/app/views/locomotive/translations/index.html.slim +34 -15
  69. data/config/locales/devise.fr.yml +3 -3
  70. data/config/locales/editor.en.yml +39 -13
  71. data/config/locales/editor.fr.yml +39 -13
  72. data/config/locales/en.yml +4 -0
  73. data/config/locales/flash.en.yml +4 -0
  74. data/config/locales/flash.fr.yml +4 -0
  75. data/config/locales/fr.yml +14 -0
  76. data/config/locales/mongoid.fr.yml +0 -2
  77. data/config/locales/simple_form.en.yml +4 -0
  78. data/config/locales/simple_form.fr.yml +6 -1
  79. data/config/routes.rb +7 -4
  80. data/config/webpack/development.js +26 -0
  81. data/config/webpack/production.js +7 -0
  82. data/config/webpack/test.js +6 -0
  83. data/lib/locomotive/engine.rb +1 -0
  84. data/lib/locomotive/steam/middlewares/page_editing.rb +20 -1
  85. data/lib/locomotive/steam/services/api_entry_submission_service.rb +6 -6
  86. data/lib/locomotive/version.rb +1 -1
  87. metadata +9 -32
@@ -23,6 +23,8 @@ fr:
23
23
  notice: "Les éléments ont été ordonnés avec succès."
24
24
  destroy:
25
25
  notice: "L'élément a été supprimé avec succès."
26
+ bulk_destroy:
27
+ notice: "Les éléments ont été supprimés avec succès."
26
28
  content_types:
27
29
  update:
28
30
  notice: "Le modèle a été mis à jour avec succès."
@@ -75,6 +77,8 @@ fr:
75
77
  alert: "La traduction n'a pas été mise à jour."
76
78
  destroy:
77
79
  notice: "La traduction a été supprimée avec succès."
80
+ bulk_destroy:
81
+ notice: "Les traductions ont été supprimées avec succès."
78
82
  custom_fields:
79
83
  select_options:
80
84
  update:
@@ -18,10 +18,20 @@ fr:
18
18
  zh-CN: Chinois
19
19
  cs: Tchèque
20
20
  bg: Bulgare
21
+ hr: Croate
21
22
  sk: Slovaque
23
+ sl: Slovène
22
24
  sr: Serbe
23
25
  sv: Suédois
24
26
  el: Grec
27
+ ca: Catalan
28
+ uk: Ukrainien
29
+ fa-IR: Perse
30
+ ja-JP: Japonais
31
+ pl-PL: Polonais
32
+ sv-FI: Suédois/Finnois
33
+ fi-FI: 'Finnois '
34
+ da: Danois
25
35
  messages:
26
36
  confirm: Êtes-vous sûr ?
27
37
  unsaved_content_warning: "Vous avez des modifications non sauvegardées dans cette page. Si vous la quittez, ces modifications seront perdues."
@@ -86,6 +96,8 @@ fr:
86
96
  updated: 'a mis à jour la page %{page} '
87
97
  destroyed: 'a supprimé la page %{page} '
88
98
  sorted: 'a trié les pages'
99
+ page_content:
100
+ updated: 'a modifié le contenu de la page %{page}'
89
101
  editable_element:
90
102
  updated_bulk: 'a modifié le contenu de %{pages} '
91
103
  content_entry:
@@ -94,6 +106,7 @@ fr:
94
106
  updated: 'a mis à jour %{entry} de %{content_type}'
95
107
  destroyed: 'a supprimé %{entry} de %{content_type}'
96
108
  sorted: 'a trié %{content_type}'
109
+ destroyed_bulk: 'a supprimé %{entry} de %{content_type}'
97
110
  content_asset:
98
111
  created_bulk: 'a mis à jour %{count} média(s)'
99
112
  destroyed: 'a supprimé le média %{name}'
@@ -313,6 +326,7 @@ fr:
313
326
  title: '%{type}'
314
327
  download: télécharger les élements
315
328
  new: nouvel élément
329
+ bulk_destroy: supprimer les éléments
316
330
  edit_notification_settings: Modifier les paramètres de notifications
317
331
  search_placeholder: "Entrez vos critères de recherche ici"
318
332
  group_by:
@@ -22,8 +22,6 @@ fr:
22
22
  domain_taken: "%{value} a été déjà pris"
23
23
  invalid_domain: "%{value} n'est pas valide"
24
24
  needs_admin_account: "Au moin un compte admin est requis"
25
- protected_page: "Vous ne pouvez pas supprimer les pages index et 404"
26
- extname_changed: "Le nouveau fichier n'a pas l'extension originale"
27
25
  array_too_short: "est trop petit (le nombre minimum d'éléments est %{count})"
28
26
  site:
29
27
  default_locale_removed: La langue précédente ne peut être supprimée immédiatement.
@@ -50,6 +50,8 @@ en:
50
50
  cache_enabled: Cache
51
51
  private_access: "Enable password-protection"
52
52
  password: "Site-Wide Password"
53
+ url_redirections_expert_mode: "Expert mode"
54
+ url_redirections_plain_text: "Url redirections"
53
55
  new:
54
56
  locales: First language
55
57
  membership:
@@ -101,6 +103,8 @@ en:
101
103
  cache_enabled: "When enabled, your pages will be cached as long as the content doesn't change. Disabling cache per page is allowed."
102
104
  redirect_to_first_domain: "When enabled, requests made to any domains listed above will be redirected to the first domain."
103
105
  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
+ 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>"
107
+ url_redirections_plain_text: "One line per redirection and source and target separated by a space."
104
108
  url_redirections: "Redirect (301) legacy urls to pages you created in the back-office. The origin and the destination URLs are separated by a <u>space</u>."
105
109
  private_access: You can hide your site behind a password.
106
110
  password: The password public visitors will have to enter to see the content of your site.
@@ -46,6 +46,8 @@ fr:
46
46
  cache_enabled: Cache
47
47
  private_access: "Activer la protection par mot de passe"
48
48
  password: "Mot de passe du site"
49
+ url_redirections_expert_mode: "Mode expert"
50
+ url_redirections_plain_text: "URLs de redirection"
49
51
  new:
50
52
  locales: Langue principale
51
53
  membership:
@@ -91,10 +93,13 @@ fr:
91
93
  meta_description: "La META DESCRIPTION est utilisée à l'intérieur du tag HEAD de chaque page. Elle est requise pour un meilleur SEO."
92
94
  robots_txt: "Contenu de la page <span class='code'>/robots.txt</span>. Veuillez lire ce <a href='http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1'>document</a> pour plus d'informations."
93
95
  domains: "Ajoutez vos domaines en-dessous. La documentation est <a href=\"https://locomotive-v3.readme.io/docs/domains\">ici</a> pour plus d'informations."
96
+ asset_host: "Hôte spécifique au site destiné à servir les assets. (Exemple : \"localhost\", \"asset.dev\", \"https://asset-host.com/)."
94
97
  memberships: "Vous pouvez inviter d'autres comptes à venir éditer votre site."
95
98
  cache_enabled: "Si cette option est activée. vos pages seront cachés tant que le contenu ne sera pas modifié. Le cache peut être désactivé par page."
96
99
  redirect_to_first_domain: "Si cette option est activée, les requêtes destinées à n'importe quels domains listés ci-dessus seront redirigées vers le premier domaine."
97
- redirect_to_https: "Si cette option est activée, les requêtes non sécurisées seront redirigées vers le protocole https. Un certificat SSL doit être installé en amont."
100
+ redirect_to_https: "Si activé, les requêtes non sécurisées seront redirigées vers la version https du site. Cela nécessite l'installation d'un certificate SSL sur votre serveur web. Il est fourni pour les utilisateurs de LocomotiveCMS.com."
101
+ url_redirections_expert_mode: "Lorsque le mode expert est activé, une zone de texte vous laisse le soin de gérer vos redirections. <strong>Important : Sauvegarder votre site avant de quitter le mode expert</strong>."
102
+ url_redirections_plain_text: "Une seule ligne par redirection et source/cible séparées par un espace."
98
103
  url_redirections: "Redirige (301) des anciennes URLs vers des pages que vous avez créés ici. L'origine et la destination des URLs sont séparées par un <u>espace</u>."
99
104
  private_access: Vous pouvez rendre votre site accessible uniquement par un mot de passe.
100
105
  password: Le mot de passe que les visiteurs devront entrer afin de voir le contenu de votre site.
@@ -52,7 +52,9 @@ Locomotive::Engine.routes.draw do
52
52
 
53
53
  resources :memberships
54
54
 
55
- resources :translations
55
+ resources :translations do
56
+ delete :bulk_destroy, on: :collection
57
+ end
56
58
 
57
59
  resources :search_for_resources, only: [:index]
58
60
 
@@ -65,9 +67,10 @@ Locomotive::Engine.routes.draw do
65
67
  end
66
68
 
67
69
  resources :content_entries, path: 'content_types/:slug/entries' do
68
- get :show_in_form, on: :collection
69
- put :sort, on: :collection
70
- get :export, on: :collection
70
+ get :show_in_form, on: :collection
71
+ put :sort, on: :collection
72
+ get :export, on: :collection
73
+ delete :bulk_destroy, on: :collection
71
74
  end
72
75
 
73
76
  namespace :custom_fields, path: 'content_types/:slug/fields/:name' do
@@ -0,0 +1,26 @@
1
+ const path = require('path');
2
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3
+
4
+ module.exports = {
5
+ entry: './app/javascript/src/locomotive/editor.es6',
6
+ output: {
7
+ path: path.resolve(__dirname, '..', '..', 'app', 'assets'),
8
+ filename: 'javascripts/locomotive/editor.js'
9
+ },
10
+ module: {
11
+ rules: [
12
+ {
13
+ test: /\.(js|jsx|es6)$/,
14
+ exclude: /(node_modules|bower_components)/,
15
+ loader: 'babel-loader'
16
+ },
17
+ {
18
+ test: /\.scss$/,
19
+ use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader']
20
+ }
21
+ ]
22
+ },
23
+ plugins: [
24
+ new MiniCssExtractPlugin({ filename: 'stylesheets/locomotive/editor.css' })
25
+ ]
26
+ };
@@ -0,0 +1,7 @@
1
+ const config = require('./development.js');
2
+
3
+ config.target = 'node'
4
+ config.mode = 'production';
5
+ config.optimization = { minimize: true };
6
+
7
+ module.exports = config;
@@ -0,0 +1,6 @@
1
+ const config = require('./development.js');
2
+
3
+ config.target = 'node'
4
+ config.mode = 'development';
5
+
6
+ module.exports = config;
@@ -83,5 +83,6 @@ module Locomotive
83
83
  initializer 'steam' do |app|
84
84
  require 'locomotive/steam_adaptor'
85
85
  end
86
+
86
87
  end
87
88
  end
@@ -28,7 +28,7 @@ module Locomotive
28
28
  <link href='https://fonts.googleapis.com/css?family=Noto+Sans' rel='stylesheet' type='text/css'>
29
29
 
30
30
  <!-- [Locomotive] fix absolute links to inner pages in preview mode-->
31
- <script>
31
+ <script type="text/javascript">
32
32
  window.document.addEventListener('click', function(event) {
33
33
  var qs = document.querySelectorAll('a');
34
34
  if (qs) {
@@ -47,6 +47,25 @@ module Locomotive
47
47
  </script>
48
48
  )
49
49
  response.first.gsub!('</head>', %(#{html}</head>))
50
+
51
+ # new way of letting the parent window know about the status of the preview
52
+ response.first.gsub!('</body>', %(
53
+ <script type="text/javascript">
54
+ if (window.parent) {
55
+ console.log(window.parent);
56
+ var event = new CustomEvent('LocomotivePreviewReady', {
57
+ detail: {
58
+ locale: "#{locale}",
59
+ pageId: "#{page._id}",
60
+ contentEntryId: "#{content_entry_id(env)}",
61
+ mountedOn: "#{mounted_on}"
62
+ }
63
+ });
64
+ window.parent.document.dispatchEvent(event);
65
+ }
66
+ </script>
67
+ </body>
68
+ ))
50
69
  end
51
70
 
52
71
  [status, headers, response]
@@ -21,7 +21,11 @@ module Locomotive
21
21
 
22
22
  def create_entry(attributes)
23
23
  ::Mongoid::Fields::I18n.with_locale(locale) do
24
- entry = engine_service.public_create(attributes, { ip_address: ip_address })
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
28
+ })
25
29
 
26
30
  entity = entry.to_steam(@content_type)
27
31
  Locomotive::Steam::Decorators::I18nDecorator.new(entity, locale)
@@ -32,16 +36,12 @@ module Locomotive
32
36
  self.request.env['locomotive.site']
33
37
  end
34
38
 
35
- def ip_address
36
- self.request.ip
37
- end
38
-
39
39
  def locale
40
40
  self.service.locale
41
41
  end
42
42
 
43
43
  def engine_service
44
- Locomotive::ContentEntryService.new(@content_type, nil)
44
+ Locomotive::ContentEntryService.new(@content_type, nil, locale)
45
45
  end
46
46
 
47
47
  end
@@ -1,3 +1,3 @@
1
1
  module Locomotive
2
- VERSION = '4.0.0.alpha2'
2
+ VERSION = '4.0.0.alpha3'
3
3
  end
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.alpha2
4
+ version: 4.0.0.alpha3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-10 00:00:00.000000000 Z
11
+ date: 2019-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -128,34 +128,6 @@ 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.beta2
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.beta2
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.beta2
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.beta2
159
131
  - !ruby/object:Gem::Dependency
160
132
  name: slim
161
133
  requirement: !ruby/object:Gem::Requirement
@@ -428,14 +400,14 @@ dependencies:
428
400
  requirements:
429
401
  - - "~>"
430
402
  - !ruby/object:Gem::Version
431
- version: 1.1.4
403
+ version: 1.2.0
432
404
  type: :runtime
433
405
  prerelease: false
434
406
  version_requirements: !ruby/object:Gem::Requirement
435
407
  requirements:
436
408
  - - "~>"
437
409
  - !ruby/object:Gem::Version
438
- version: 1.1.4
410
+ version: 1.2.0
439
411
  - !ruby/object:Gem::Dependency
440
412
  name: rack-cache
441
413
  requirement: !ruby/object:Gem::Requirement
@@ -721,6 +693,7 @@ files:
721
693
  - app/assets/javascripts/locomotive/views/pages/new_view.js.coffee
722
694
  - app/assets/javascripts/locomotive/views/public_submission_accounts/edit_view.js.coffee
723
695
  - app/assets/javascripts/locomotive/views/registrations/new_view.js.coffee
696
+ - app/assets/javascripts/locomotive/views/shared/bulk_delete_view.js.coffee
724
697
  - app/assets/javascripts/locomotive/views/shared/drawer_view.js.coffee
725
698
  - app/assets/javascripts/locomotive/views/shared/form_view.js.coffee
726
699
  - app/assets/javascripts/locomotive/views/shared/header_view.js.coffee
@@ -737,6 +710,7 @@ files:
737
710
  - app/assets/stylesheets/locomotive/live_editing_iframe.scss
738
711
  - app/assets/stylesheets/locomotive/new/_actionbar.scss
739
712
  - app/assets/stylesheets/locomotive/new/_brand.scss
713
+ - app/assets/stylesheets/locomotive/new/_checkbox.scss
740
714
  - app/assets/stylesheets/locomotive/new/_content.scss
741
715
  - app/assets/stylesheets/locomotive/new/_drawer.scss
742
716
  - app/assets/stylesheets/locomotive/new/_files.scss
@@ -1232,6 +1206,9 @@ files:
1232
1206
  - config/locales/uk.yml
1233
1207
  - config/locales/zh-CN.yml
1234
1208
  - config/routes.rb
1209
+ - config/webpack/development.js
1210
+ - config/webpack/production.js
1211
+ - config/webpack/test.js
1235
1212
  - lib/generators/locomotive/install/install_generator.rb
1236
1213
  - lib/generators/locomotive/install/templates/README
1237
1214
  - lib/generators/locomotive/install/templates/carrierwave.rb