spina 2.12.0 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +17 -17
  3. data/app/assets/builds/spina/tailwind.css +79 -47
  4. data/app/components/spina/application_component.rb +1 -1
  5. data/app/components/spina/forms/group_component.rb +2 -3
  6. data/app/components/spina/forms/label_component.rb +2 -3
  7. data/app/components/spina/forms/password_field_component.rb +1 -1
  8. data/app/components/spina/forms/switch_component.rb +2 -3
  9. data/app/components/spina/forms/text_field_component.rb +8 -9
  10. data/app/components/spina/forms/trix_toolbar_component.rb +1 -3
  11. data/app/components/spina/hooks/hook_component.rb +3 -5
  12. data/app/components/spina/hooks/partial_component.rb +4 -5
  13. data/app/components/spina/main_navigation/link_component.rb +1 -3
  14. data/app/components/spina/main_navigation/sub_nav_component.rb +6 -7
  15. data/app/components/spina/media_picker/image_component.rb +1 -3
  16. data/app/components/spina/media_picker/modal_component.rb +4 -6
  17. data/app/components/spina/pages/actions_component.rb +1 -3
  18. data/app/components/spina/pages/list_component.rb +3 -4
  19. data/app/components/spina/pages/location_component.rb +10 -11
  20. data/app/components/spina/pages/new_page_button_component.rb +4 -5
  21. data/app/components/spina/pages/page_component.rb +8 -9
  22. data/app/components/spina/pages/page_select_component.rb +3 -4
  23. data/app/components/spina/pages/tab_button_component.rb +1 -3
  24. data/app/components/spina/pages/translations_component.rb +9 -11
  25. data/app/components/spina/user_interface/dropdown_button_component.rb +4 -4
  26. data/app/components/spina/user_interface/dropdown_component.rb +8 -9
  27. data/app/components/spina/user_interface/flash_message_component.rb +3 -5
  28. data/app/components/spina/user_interface/header_component.rb +2 -2
  29. data/app/components/spina/user_interface/modal_component.rb +1 -3
  30. data/app/components/spina/user_interface/tab_link_component.rb +1 -3
  31. data/app/components/spina/user_interface/translations_component.rb +8 -10
  32. data/app/controllers/concerns/spina/api/paginable.rb +36 -37
  33. data/app/controllers/concerns/spina/current_spina_account.rb +1 -1
  34. data/app/controllers/concerns/spina/current_theme.rb +6 -7
  35. data/app/controllers/concerns/spina/frontend.rb +58 -44
  36. data/app/controllers/spina/admin/accounts_controller.rb +9 -10
  37. data/app/controllers/spina/admin/admin_controller.rb +18 -18
  38. data/app/controllers/spina/admin/attachments_controller.rb +15 -10
  39. data/app/controllers/spina/admin/embeds_controller.rb +17 -19
  40. data/app/controllers/spina/admin/images_controller.rb +24 -25
  41. data/app/controllers/spina/admin/layout_controller.rb +19 -20
  42. data/app/controllers/spina/admin/media_folders_controller.rb +4 -5
  43. data/app/controllers/spina/admin/media_picker_controller.rb +2 -4
  44. data/app/controllers/spina/admin/move_pages_controller.rb +8 -10
  45. data/app/controllers/spina/admin/navigation_items_controller.rb +13 -14
  46. data/app/controllers/spina/admin/navigations_controller.rb +26 -26
  47. data/app/controllers/spina/admin/page_translations_controller.rb +1 -3
  48. data/app/controllers/spina/admin/pages_controller.rb +34 -34
  49. data/app/controllers/spina/admin/parent_pages_controller.rb +1 -3
  50. data/app/controllers/spina/admin/password_resets_controller.rb +8 -9
  51. data/app/controllers/spina/admin/resources_controller.rb +14 -15
  52. data/app/controllers/spina/admin/sessions_controller.rb +2 -2
  53. data/app/controllers/spina/admin/settings_controller.rb +28 -29
  54. data/app/controllers/spina/admin/theme_controller.rb +10 -11
  55. data/app/controllers/spina/admin/users_controller.rb +28 -29
  56. data/app/controllers/spina/api/api_controller.rb +17 -17
  57. data/app/controllers/spina/api/images_controller.rb +1 -3
  58. data/app/controllers/spina/api/navigations_controller.rb +2 -4
  59. data/app/controllers/spina/api/pages_controller.rb +8 -9
  60. data/app/controllers/spina/api/resources_controller.rb +2 -4
  61. data/app/controllers/spina/application_controller.rb +4 -3
  62. data/app/controllers/spina/pages_controller.rb +4 -5
  63. data/app/controllers/spina/sitemaps_controller.rb +0 -2
  64. data/app/helpers/spina/admin/icons_helper.rb +151 -153
  65. data/app/helpers/spina/admin/images_helper.rb +0 -2
  66. data/app/helpers/spina/admin/pages_helper.rb +3 -5
  67. data/app/helpers/spina/attachments_helper.rb +1 -3
  68. data/app/helpers/spina/images_helper.rb +5 -7
  69. data/app/helpers/spina/pages_helper.rb +0 -2
  70. data/app/helpers/spina/spina_helper.rb +1 -3
  71. data/app/jobs/spina/replace_signed_id_job.rb +10 -11
  72. data/app/jobs/spina/resource_pages_update_job.rb +1 -1
  73. data/app/mailers/spina/application_mailer.rb +2 -2
  74. data/app/mailers/spina/user_mailer.rb +4 -6
  75. data/app/models/concerns/spina/gravatar.rb +11 -12
  76. data/app/models/concerns/spina/partable.rb +4 -6
  77. data/app/models/concerns/spina/translated_content.rb +5 -5
  78. data/app/models/spina/account.rb +9 -10
  79. data/app/models/spina/application_record.rb +2 -3
  80. data/app/models/spina/attachment.rb +3 -4
  81. data/app/models/spina/current.rb +1 -1
  82. data/app/models/spina/embeds/base.rb +2 -2
  83. data/app/models/spina/embeds/button.rb +4 -4
  84. data/app/models/spina/embeds/vimeo.rb +17 -18
  85. data/app/models/spina/embeds/youtube.rb +18 -19
  86. data/app/models/spina/image.rb +4 -4
  87. data/app/models/spina/media_folder.rb +1 -1
  88. data/app/models/spina/navigation.rb +1 -2
  89. data/app/models/spina/navigation_item.rb +2 -2
  90. data/app/models/spina/page.rb +32 -38
  91. data/app/models/spina/parts/attachment.rb +1 -2
  92. data/app/models/spina/parts/base.rb +5 -4
  93. data/app/models/spina/parts/image.rb +3 -4
  94. data/app/models/spina/parts/image_collection.rb +2 -3
  95. data/app/models/spina/parts/image_variant.rb +3 -4
  96. data/app/models/spina/parts/repeater_content.rb +2 -2
  97. data/app/models/spina/resource.rb +3 -4
  98. data/app/models/spina/rewrite_rule.rb +1 -1
  99. data/app/models/spina/setting.rb +0 -2
  100. data/app/models/spina/user.rb +3 -4
  101. data/app/presenters/spina/content_presenter.rb +11 -12
  102. data/app/presenters/spina/menu_presenter.rb +55 -55
  103. data/app/presenters/spina/rich_text_presenter.rb +28 -29
  104. data/app/serializers/spina/api/base_serializer.rb +1 -1
  105. data/app/serializers/spina/api/image_serializer.rb +6 -6
  106. data/app/serializers/spina/api/navigation_serializer.rb +4 -7
  107. data/app/serializers/spina/api/page_serializer.rb +9 -12
  108. data/app/serializers/spina/api/resource_serializer.rb +5 -5
  109. data/app/views/layouts/spina/admin/application.html.erb +1 -0
  110. data/app/views/spina/admin/parts/attachments/_attachment.html.erb +3 -0
  111. data/app/views/spina/admin/parts/attachments/_form.html.erb +22 -1
  112. data/app/views/spina/admin/parts/repeaters/_fields.html.erb +2 -2
  113. data/app/views/spina/admin/parts/repeaters/_form.html.erb +4 -4
  114. data/app/views/spina/admin/shared/_navigation.html.erb +3 -1
  115. data/app/views/spina/admin/shared/_version.html.erb +18 -0
  116. data/app/views/spina/sitemaps/show.xml.builder +1 -1
  117. data/config/initializers/importmap.rb +3 -3
  118. data/config/initializers/yaml_column_permitted_classes.rb +3 -3
  119. data/config/locales/de.yml +1 -0
  120. data/config/locales/en.yml +3 -0
  121. data/config/locales/nl.yml +4 -1
  122. data/config/routes.rb +10 -17
  123. data/db/migrate/1_create_spina_tables.rb +57 -57
  124. data/db/migrate/3_create_spina_navigations.rb +1 -1
  125. data/db/seeds.rb +0 -1
  126. data/lib/generators/spina/embed_generator.rb +5 -6
  127. data/lib/generators/spina/install_generator.rb +48 -41
  128. data/lib/generators/spina/tailwind_config_generator.rb +3 -4
  129. data/lib/generators/spina/templates/app/models/spina/embeds/embed.rb.tt +20 -18
  130. data/lib/generators/spina/templates/config/initializers/spina.rb +11 -11
  131. data/lib/generators/spina/templates/config/initializers/themes/default.rb +17 -17
  132. data/lib/generators/spina/templates/config/initializers/themes/demo.rb +22 -22
  133. data/lib/spina/admin_sectionable.rb +5 -8
  134. data/lib/spina/attr_json_monkeypatch.rb +4 -7
  135. data/lib/spina/attr_json_spina_parts_model.rb +1 -3
  136. data/lib/spina/authentication/basic.rb +9 -10
  137. data/lib/spina/authentication/sessions.rb +10 -11
  138. data/lib/spina/embeddable.rb +14 -17
  139. data/lib/spina/embeds/trix_conversion.rb +25 -26
  140. data/lib/spina/embeds.rb +1 -3
  141. data/lib/spina/engine.rb +18 -19
  142. data/lib/spina/part.rb +1 -6
  143. data/lib/spina/plugin.rb +9 -13
  144. data/lib/spina/railtie.rb +5 -7
  145. data/lib/spina/theme.rb +13 -17
  146. data/lib/spina/theme_reloader.rb +12 -13
  147. data/lib/spina/version.rb +1 -1
  148. data/lib/spina.rb +39 -40
  149. data/lib/tasks/install.rake +8 -14
  150. data/lib/tasks/tailwind.rake +10 -8
  151. metadata +18 -2
@@ -1,20 +1,19 @@
1
1
  class Spina::ThemeReloader
2
2
  delegate :execute_if_updated, :execute, :updated?, to: :updater
3
-
3
+
4
4
  def reload!
5
5
  theme_paths.each { |path| load path }
6
6
  end
7
-
7
+
8
8
  private
9
-
10
- def updater
11
- @updater ||= Rails.application.config.file_watcher.new(theme_paths) do
12
- reload!
13
- end
9
+
10
+ def updater
11
+ @updater ||= Rails.application.config.file_watcher.new(theme_paths) do
12
+ reload!
14
13
  end
15
-
16
- def theme_paths
17
- Rails.root.glob("config/initializers/themes/*.rb")
18
- end
19
-
20
- end
14
+ end
15
+
16
+ def theme_paths
17
+ Rails.root.glob("config/initializers/themes/*.rb")
18
+ end
19
+ end
data/lib/spina/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spina
2
- VERSION = "2.12.0"
2
+ VERSION = "2.13.0"
3
3
  end
data/lib/spina.rb CHANGED
@@ -1,16 +1,16 @@
1
- require 'spina/engine'
2
- require 'spina/admin_sectionable'
3
- require 'spina/railtie'
4
- require 'spina/theme_reloader'
5
- require 'spina/plugin'
6
- require 'spina/theme'
7
- require 'spina/attr_json_spina_parts_model'
8
- require 'spina/attr_json_monkeypatch'
9
- require 'spina/authentication/sessions'
10
- require 'spina/authentication/basic'
11
- require 'spina/embeddable'
12
- require 'spina/embeds'
13
- require 'spina/embeds/trix_conversion'
1
+ require "spina/engine"
2
+ require "spina/admin_sectionable"
3
+ require "spina/railtie"
4
+ require "spina/theme_reloader"
5
+ require "spina/plugin"
6
+ require "spina/theme"
7
+ require "spina/attr_json_spina_parts_model"
8
+ require "spina/attr_json_monkeypatch"
9
+ require "spina/authentication/sessions"
10
+ require "spina/authentication/basic"
11
+ require "spina/embeddable"
12
+ require "spina/embeds"
13
+ require "spina/embeds/trix_conversion"
14
14
 
15
15
  module Spina
16
16
  include ActiveSupport::Configurable
@@ -20,30 +20,30 @@ module Spina
20
20
  THEMES = []
21
21
 
22
22
  config_accessor :api_key,
23
- :api_path,
24
- :authentication,
25
- :backend_path,
26
- :importmap,
27
- :frontend_parent_controller,
28
- :disable_frontend_routes,
29
- :disable_decorator_load,
30
- :disable_current_account,
31
- :locales,
32
- :embedded_image_size,
33
- :mailer_defaults,
34
- :thumbnail_image_size,
35
- :resource_pages_limit_value,
36
- :party_pooper,
37
- :tailwind_content,
38
- :tailwind_plugins,
39
- :queues,
40
- :transliterations
23
+ :api_path,
24
+ :authentication,
25
+ :backend_path,
26
+ :importmap,
27
+ :frontend_parent_controller,
28
+ :disable_frontend_routes,
29
+ :disable_decorator_load,
30
+ :disable_current_account,
31
+ :locales,
32
+ :embedded_image_size,
33
+ :mailer_defaults,
34
+ :thumbnail_image_size,
35
+ :resource_pages_limit_value,
36
+ :party_pooper,
37
+ :tailwind_content,
38
+ :tailwind_plugins,
39
+ :queues,
40
+ :transliterations
41
41
 
42
42
  # Defaults
43
43
  self.api_key = nil
44
44
  self.api_path = "api"
45
45
  self.authentication = "Spina::Authentication::Sessions"
46
- self.backend_path = 'admin'
46
+ self.backend_path = "admin"
47
47
  self.disable_frontend_routes = false
48
48
  self.disable_decorator_load = false
49
49
  self.disable_current_account = false
@@ -54,7 +54,7 @@ module Spina
54
54
  self.locales = [I18n.default_locale]
55
55
  self.resource_pages_limit_value = 25
56
56
  self.party_pooper = false
57
- self.transliterations = %i(latin)
57
+ self.transliterations = %i[latin]
58
58
 
59
59
  # Queues for background jobs
60
60
  # - config.queues.page_updates
@@ -70,10 +70,10 @@ module Spina
70
70
  # Make sure to add your own glob patterns if you're extending
71
71
  # Spina's UI.
72
72
  self.tailwind_content = ["#{Spina::Engine.root}/app/views/**/*.*",
73
- "#{Spina::Engine.root}/app/components/**/*.*",
74
- "#{Spina::Engine.root}/app/helpers/**/*.*",
75
- "#{Spina::Engine.root}/app/assets/javascripts/**/*.js",
76
- "#{Spina::Engine.root}/app/**/application.tailwind.css"]
73
+ "#{Spina::Engine.root}/app/components/**/*.*",
74
+ "#{Spina::Engine.root}/app/helpers/**/*.*",
75
+ "#{Spina::Engine.root}/app/assets/javascripts/**/*.js",
76
+ "#{Spina::Engine.root}/app/**/application.tailwind.css"]
77
77
 
78
78
  self.tailwind_plugins = %w[@tailwindcss/forms @tailwindcss/aspect-ratio @tailwindcss/typography]
79
79
 
@@ -84,7 +84,7 @@ module Spina
84
84
  alias_method :config_original, :config
85
85
 
86
86
  def config
87
- config_obj = self.config_original
87
+ config_obj = config_original
88
88
 
89
89
  def config_obj.tailwind_purge_content
90
90
  ActiveSupport::Deprecation.warn("config.tailwind_purge_content has been renamed to config.tailwind_content")
@@ -93,7 +93,7 @@ module Spina
93
93
 
94
94
  def config_obj.tailwind_purge_content=(paths)
95
95
  ActiveSupport::Deprecation.warn("config.tailwind_purge_content has been renamed to config.tailwind_content")
96
- tailwind_content = paths
96
+ self.tailwind_content = paths
97
97
  end
98
98
 
99
99
  def config_obj.embedded_image_size=(image_size)
@@ -110,6 +110,5 @@ module Spina
110
110
  def mounted_at
111
111
  Spina::Engine.routes.find_script_name({})
112
112
  end
113
-
114
113
  end
115
114
  end
@@ -1,28 +1,25 @@
1
1
  namespace :spina do
2
-
3
2
  desc "Install Spina"
4
3
  task install: :environment do
5
- begin
6
- ActiveRecord::Base.connection
7
- rescue ActiveRecord::NoDatabaseError
8
- puts "ERROR: database does not exist, run \"rails db:create\" first"
9
- else
10
- Rails::Command.invoke :generate, ["spina:install"]
11
- end
4
+ ActiveRecord::Base.connection
5
+ rescue ActiveRecord::NoDatabaseError
6
+ puts "ERROR: database does not exist, run \"rails db:create\" first"
7
+ else
8
+ Rails::Command.invoke :generate, ["spina:install"]
12
9
  end
13
-
10
+
14
11
  desc "First deploy"
15
12
  task first_deploy: :environment do
16
13
  # First deploy will run the same steps as the install generator, but skips copying files
17
14
  Rails::Command.invoke :generate, ["spina:install", "--first-deploy"]
18
15
  end
19
-
16
+
20
17
  desc "Silent First deploy"
21
18
  task silent_first_deploy: :environment do
22
19
  # Silent First deploy will run the same steps as First Deploy but without prompts
23
20
  Rails::Command.invoke :generate, ["spina:install", "--first-deploy", "--silent"]
24
21
  end
25
-
22
+
26
23
  desc "Generate all pages based on the theme config"
27
24
  task bootstrap: :environment do
28
25
  Spina::Account.first.save
@@ -32,14 +29,11 @@ namespace :spina do
32
29
  task update_translations: :environment do
33
30
  Spina.locales.each do |locale|
34
31
  Mobility.with_locale(locale) do
35
-
36
32
  Spina::Page.all.order(:id).each do |page|
37
33
  page.title = page.title(fallback: I18n.fallbacks[locale])
38
34
  page.save
39
35
  end
40
-
41
36
  end
42
37
  end
43
38
  end
44
-
45
39
  end
@@ -1,22 +1,24 @@
1
- require 'tailwindcss-rails'
2
-
3
- SPINA_TAILWIND_COMPILE_COMMAND = "#{Tailwindcss::Engine.root.join("exe/tailwindcss")} -i #{Spina::Engine.root.join("app/assets/stylesheets/spina/application.tailwind.css")} -o #{Rails.root.join("app/assets/builds", "spina/tailwind.css")} -c #{Rails.root.join("app/assets/config/spina/tailwind.config.js")}"
1
+ require "tailwindcss-rails"
4
2
 
5
3
  namespace :spina do
6
- namespace :tailwind do
4
+ namespace :tailwind do
5
+ def spina_tailwind_compile_command
6
+ "#{Tailwindcss::Engine.root.join("exe/tailwindcss")} -i #{Spina::Engine.root.join("app/assets/stylesheets/spina/application.tailwind.css")} -o #{Rails.root.join("app/assets/builds", "spina/tailwind.css")} -c #{Rails.root.join("app/assets/config/spina/tailwind.config.js")}"
7
+ end
8
+
7
9
  desc "Build your Tailwind CSS"
8
10
  task build: :environment do
9
11
  Rails::Generators.invoke("spina:tailwind_config", ["--force"])
10
- system SPINA_TAILWIND_COMPILE_COMMAND
12
+ system spina_tailwind_compile_command
11
13
  end
12
-
14
+
13
15
  task watch: :environment do
14
16
  Rails::Generators.invoke("spina:tailwind_config", ["--force"])
15
- system "#{SPINA_TAILWIND_COMPILE_COMMAND} -w"
17
+ system "#{spina_tailwind_compile_command} -w"
16
18
  end
17
19
  end
18
20
  end
19
21
 
20
22
  if Rake::Task.task_defined?("assets:precompile")
21
23
  Rake::Task["assets:precompile"].enhance(["spina:tailwind:build"])
22
- end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spina
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bram Jetten
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-26 00:00:00.000000000 Z
11
+ date: 2022-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -282,6 +282,20 @@ dependencies:
282
282
  - - ">="
283
283
  - !ruby/object:Gem::Version
284
284
  version: 2.0.0
285
+ - !ruby/object:Gem::Dependency
286
+ name: standard
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ type: :runtime
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '0'
285
299
  description: CMS
286
300
  email:
287
301
  - bram@denkgroot.com
@@ -1407,6 +1421,7 @@ files:
1407
1421
  - app/views/spina/admin/pages/new.html.erb
1408
1422
  - app/views/spina/admin/pages/sort_one.turbo_stream.erb
1409
1423
  - app/views/spina/admin/parent_pages/index.html.erb
1424
+ - app/views/spina/admin/parts/attachments/_attachment.html.erb
1410
1425
  - app/views/spina/admin/parts/attachments/_form.html.erb
1411
1426
  - app/views/spina/admin/parts/image_collections/_fields.html.erb
1412
1427
  - app/views/spina/admin/parts/image_collections/_form.html.erb
@@ -1427,6 +1442,7 @@ files:
1427
1442
  - app/views/spina/admin/settings/edit.html.erb
1428
1443
  - app/views/spina/admin/shared/_flash.html.erb
1429
1444
  - app/views/spina/admin/shared/_navigation.html.erb
1445
+ - app/views/spina/admin/shared/_version.html.erb
1430
1446
  - app/views/spina/admin/theme/edit.html.erb
1431
1447
  - app/views/spina/admin/users/_form.html.erb
1432
1448
  - app/views/spina/admin/users/_user.html.erb