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.
- checksums.yaml +4 -4
- data/Rakefile +17 -17
- data/app/assets/builds/spina/tailwind.css +79 -47
- data/app/components/spina/application_component.rb +1 -1
- data/app/components/spina/forms/group_component.rb +2 -3
- data/app/components/spina/forms/label_component.rb +2 -3
- data/app/components/spina/forms/password_field_component.rb +1 -1
- data/app/components/spina/forms/switch_component.rb +2 -3
- data/app/components/spina/forms/text_field_component.rb +8 -9
- data/app/components/spina/forms/trix_toolbar_component.rb +1 -3
- data/app/components/spina/hooks/hook_component.rb +3 -5
- data/app/components/spina/hooks/partial_component.rb +4 -5
- data/app/components/spina/main_navigation/link_component.rb +1 -3
- data/app/components/spina/main_navigation/sub_nav_component.rb +6 -7
- data/app/components/spina/media_picker/image_component.rb +1 -3
- data/app/components/spina/media_picker/modal_component.rb +4 -6
- data/app/components/spina/pages/actions_component.rb +1 -3
- data/app/components/spina/pages/list_component.rb +3 -4
- data/app/components/spina/pages/location_component.rb +10 -11
- data/app/components/spina/pages/new_page_button_component.rb +4 -5
- data/app/components/spina/pages/page_component.rb +8 -9
- data/app/components/spina/pages/page_select_component.rb +3 -4
- data/app/components/spina/pages/tab_button_component.rb +1 -3
- data/app/components/spina/pages/translations_component.rb +9 -11
- data/app/components/spina/user_interface/dropdown_button_component.rb +4 -4
- data/app/components/spina/user_interface/dropdown_component.rb +8 -9
- data/app/components/spina/user_interface/flash_message_component.rb +3 -5
- data/app/components/spina/user_interface/header_component.rb +2 -2
- data/app/components/spina/user_interface/modal_component.rb +1 -3
- data/app/components/spina/user_interface/tab_link_component.rb +1 -3
- data/app/components/spina/user_interface/translations_component.rb +8 -10
- data/app/controllers/concerns/spina/api/paginable.rb +36 -37
- data/app/controllers/concerns/spina/current_spina_account.rb +1 -1
- data/app/controllers/concerns/spina/current_theme.rb +6 -7
- data/app/controllers/concerns/spina/frontend.rb +58 -44
- data/app/controllers/spina/admin/accounts_controller.rb +9 -10
- data/app/controllers/spina/admin/admin_controller.rb +18 -18
- data/app/controllers/spina/admin/attachments_controller.rb +15 -10
- data/app/controllers/spina/admin/embeds_controller.rb +17 -19
- data/app/controllers/spina/admin/images_controller.rb +24 -25
- data/app/controllers/spina/admin/layout_controller.rb +19 -20
- data/app/controllers/spina/admin/media_folders_controller.rb +4 -5
- data/app/controllers/spina/admin/media_picker_controller.rb +2 -4
- data/app/controllers/spina/admin/move_pages_controller.rb +8 -10
- data/app/controllers/spina/admin/navigation_items_controller.rb +13 -14
- data/app/controllers/spina/admin/navigations_controller.rb +26 -26
- data/app/controllers/spina/admin/page_translations_controller.rb +1 -3
- data/app/controllers/spina/admin/pages_controller.rb +34 -34
- data/app/controllers/spina/admin/parent_pages_controller.rb +1 -3
- data/app/controllers/spina/admin/password_resets_controller.rb +8 -9
- data/app/controllers/spina/admin/resources_controller.rb +14 -15
- data/app/controllers/spina/admin/sessions_controller.rb +2 -2
- data/app/controllers/spina/admin/settings_controller.rb +28 -29
- data/app/controllers/spina/admin/theme_controller.rb +10 -11
- data/app/controllers/spina/admin/users_controller.rb +28 -29
- data/app/controllers/spina/api/api_controller.rb +17 -17
- data/app/controllers/spina/api/images_controller.rb +1 -3
- data/app/controllers/spina/api/navigations_controller.rb +2 -4
- data/app/controllers/spina/api/pages_controller.rb +8 -9
- data/app/controllers/spina/api/resources_controller.rb +2 -4
- data/app/controllers/spina/application_controller.rb +4 -3
- data/app/controllers/spina/pages_controller.rb +4 -5
- data/app/controllers/spina/sitemaps_controller.rb +0 -2
- data/app/helpers/spina/admin/icons_helper.rb +151 -153
- data/app/helpers/spina/admin/images_helper.rb +0 -2
- data/app/helpers/spina/admin/pages_helper.rb +3 -5
- data/app/helpers/spina/attachments_helper.rb +1 -3
- data/app/helpers/spina/images_helper.rb +5 -7
- data/app/helpers/spina/pages_helper.rb +0 -2
- data/app/helpers/spina/spina_helper.rb +1 -3
- data/app/jobs/spina/replace_signed_id_job.rb +10 -11
- data/app/jobs/spina/resource_pages_update_job.rb +1 -1
- data/app/mailers/spina/application_mailer.rb +2 -2
- data/app/mailers/spina/user_mailer.rb +4 -6
- data/app/models/concerns/spina/gravatar.rb +11 -12
- data/app/models/concerns/spina/partable.rb +4 -6
- data/app/models/concerns/spina/translated_content.rb +5 -5
- data/app/models/spina/account.rb +9 -10
- data/app/models/spina/application_record.rb +2 -3
- data/app/models/spina/attachment.rb +3 -4
- data/app/models/spina/current.rb +1 -1
- data/app/models/spina/embeds/base.rb +2 -2
- data/app/models/spina/embeds/button.rb +4 -4
- data/app/models/spina/embeds/vimeo.rb +17 -18
- data/app/models/spina/embeds/youtube.rb +18 -19
- data/app/models/spina/image.rb +4 -4
- data/app/models/spina/media_folder.rb +1 -1
- data/app/models/spina/navigation.rb +1 -2
- data/app/models/spina/navigation_item.rb +2 -2
- data/app/models/spina/page.rb +32 -38
- data/app/models/spina/parts/attachment.rb +1 -2
- data/app/models/spina/parts/base.rb +5 -4
- data/app/models/spina/parts/image.rb +3 -4
- data/app/models/spina/parts/image_collection.rb +2 -3
- data/app/models/spina/parts/image_variant.rb +3 -4
- data/app/models/spina/parts/repeater_content.rb +2 -2
- data/app/models/spina/resource.rb +3 -4
- data/app/models/spina/rewrite_rule.rb +1 -1
- data/app/models/spina/setting.rb +0 -2
- data/app/models/spina/user.rb +3 -4
- data/app/presenters/spina/content_presenter.rb +11 -12
- data/app/presenters/spina/menu_presenter.rb +55 -55
- data/app/presenters/spina/rich_text_presenter.rb +28 -29
- data/app/serializers/spina/api/base_serializer.rb +1 -1
- data/app/serializers/spina/api/image_serializer.rb +6 -6
- data/app/serializers/spina/api/navigation_serializer.rb +4 -7
- data/app/serializers/spina/api/page_serializer.rb +9 -12
- data/app/serializers/spina/api/resource_serializer.rb +5 -5
- data/app/views/layouts/spina/admin/application.html.erb +1 -0
- data/app/views/spina/admin/parts/attachments/_attachment.html.erb +3 -0
- data/app/views/spina/admin/parts/attachments/_form.html.erb +22 -1
- data/app/views/spina/admin/parts/repeaters/_fields.html.erb +2 -2
- data/app/views/spina/admin/parts/repeaters/_form.html.erb +4 -4
- data/app/views/spina/admin/shared/_navigation.html.erb +3 -1
- data/app/views/spina/admin/shared/_version.html.erb +18 -0
- data/app/views/spina/sitemaps/show.xml.builder +1 -1
- data/config/initializers/importmap.rb +3 -3
- data/config/initializers/yaml_column_permitted_classes.rb +3 -3
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +3 -0
- data/config/locales/nl.yml +4 -1
- data/config/routes.rb +10 -17
- data/db/migrate/1_create_spina_tables.rb +57 -57
- data/db/migrate/3_create_spina_navigations.rb +1 -1
- data/db/seeds.rb +0 -1
- data/lib/generators/spina/embed_generator.rb +5 -6
- data/lib/generators/spina/install_generator.rb +48 -41
- data/lib/generators/spina/tailwind_config_generator.rb +3 -4
- data/lib/generators/spina/templates/app/models/spina/embeds/embed.rb.tt +20 -18
- data/lib/generators/spina/templates/config/initializers/spina.rb +11 -11
- data/lib/generators/spina/templates/config/initializers/themes/default.rb +17 -17
- data/lib/generators/spina/templates/config/initializers/themes/demo.rb +22 -22
- data/lib/spina/admin_sectionable.rb +5 -8
- data/lib/spina/attr_json_monkeypatch.rb +4 -7
- data/lib/spina/attr_json_spina_parts_model.rb +1 -3
- data/lib/spina/authentication/basic.rb +9 -10
- data/lib/spina/authentication/sessions.rb +10 -11
- data/lib/spina/embeddable.rb +14 -17
- data/lib/spina/embeds/trix_conversion.rb +25 -26
- data/lib/spina/embeds.rb +1 -3
- data/lib/spina/engine.rb +18 -19
- data/lib/spina/part.rb +1 -6
- data/lib/spina/plugin.rb +9 -13
- data/lib/spina/railtie.rb +5 -7
- data/lib/spina/theme.rb +13 -17
- data/lib/spina/theme_reloader.rb +12 -13
- data/lib/spina/version.rb +1 -1
- data/lib/spina.rb +39 -40
- data/lib/tasks/install.rake +8 -14
- data/lib/tasks/tailwind.rake +10 -8
- metadata +18 -2
data/lib/spina/theme_reloader.rb
CHANGED
@@ -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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
9
|
+
|
10
|
+
def updater
|
11
|
+
@updater ||= Rails.application.config.file_watcher.new(theme_paths) do
|
12
|
+
reload!
|
14
13
|
end
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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
data/lib/spina.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
13
|
-
require
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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 =
|
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
|
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
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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 =
|
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
|
data/lib/tasks/install.rake
CHANGED
@@ -1,28 +1,25 @@
|
|
1
1
|
namespace :spina do
|
2
|
-
|
3
2
|
desc "Install Spina"
|
4
3
|
task install: :environment do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
data/lib/tasks/tailwind.rake
CHANGED
@@ -1,22 +1,24 @@
|
|
1
|
-
require
|
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
|
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 "#{
|
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.
|
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-
|
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
|