pages_core 3.12.6 → 3.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/pages_core/admin-dist.js +1 -1
  4. data/app/assets/builds/pages_core/admin-dist.js.map +2 -2
  5. data/app/controllers/admin/pages_controller.rb +1 -1
  6. data/app/controllers/admin/users_controller.rb +1 -1
  7. data/app/controllers/concerns/pages_core/error_reporting.rb +9 -19
  8. data/app/controllers/concerns/pages_core/static_cache_controller.rb +13 -2
  9. data/app/controllers/pages_core/attachments_controller.rb +1 -1
  10. data/app/controllers/pages_core/frontend/pages_controller.rb +1 -1
  11. data/app/controllers/pages_core/frontend_controller.rb +1 -10
  12. data/app/controllers/sessions_controller.rb +1 -1
  13. data/app/formatters/pages_core/image_embedder.rb +3 -3
  14. data/app/helpers/admin/pages_helper.rb +2 -2
  15. data/app/helpers/pages_core/admin/admin_helper.rb +1 -1
  16. data/app/helpers/pages_core/admin/content_tabs_helper.rb +3 -3
  17. data/app/helpers/pages_core/admin/form_builder.rb +1 -1
  18. data/app/helpers/pages_core/admin/image_uploads_helper.rb +6 -6
  19. data/app/helpers/pages_core/admin/labelled_field_helper.rb +1 -1
  20. data/app/helpers/pages_core/admin/locales_helper.rb +1 -1
  21. data/app/helpers/pages_core/application_helper.rb +3 -3
  22. data/app/helpers/pages_core/head_tags_helper.rb +8 -9
  23. data/app/helpers/pages_core/images_helper.rb +7 -7
  24. data/app/helpers/pages_core/open_graph_tags_helper.rb +2 -2
  25. data/app/helpers/pages_core/page_path_helper.rb +2 -2
  26. data/app/javascript/components/ImageGrid.jsx +1 -1
  27. data/app/jobs/pages_core/autopublish_job.rb +2 -0
  28. data/app/models/concerns/pages_core/has_roles.rb +2 -2
  29. data/app/models/concerns/pages_core/page_model/dated_page.rb +1 -1
  30. data/app/models/concerns/pages_core/page_model/searchable.rb +1 -1
  31. data/app/models/concerns/pages_core/page_model/templateable.rb +22 -0
  32. data/app/models/concerns/pages_core/searchable_document.rb +3 -3
  33. data/app/models/page.rb +1 -1
  34. data/app/models/page_builder.rb +9 -9
  35. data/app/models/page_exporter.rb +1 -1
  36. data/app/models/page_image.rb +1 -1
  37. data/app/models/page_path.rb +3 -3
  38. data/app/models/search_document.rb +3 -3
  39. data/app/models/tag.rb +1 -1
  40. data/app/services/pages_core/create_user_service.rb +2 -2
  41. data/app/services/pages_core/destroy_invite_service.rb +2 -2
  42. data/app/services/pages_core/invite_service.rb +2 -2
  43. data/app/views/admin/pages/_edit_content.html.erb +1 -1
  44. data/app/views/admin/pages/_form.html.erb +12 -0
  45. data/db/migrate/20111219033112_create_pages_tables.rb +0 -14
  46. data/lib/pages_core/cache_sweeper.rb +3 -3
  47. data/lib/pages_core/extensions/string_extensions.rb +1 -1
  48. data/lib/pages_core/templates/configuration.rb +1 -1
  49. data/lib/pages_core/templates/template_configuration.rb +1 -1
  50. data/lib/pages_core.rb +1 -2
  51. data/lib/rails/generators/pages_core/install/install_generator.rb +0 -15
  52. data/lib/rails/generators/pages_core/rspec/templates/page_templates_spec.rb +1 -1
  53. metadata +4 -49
  54. data/lib/rails/generators/pages_core/install/templates/active_job_initializer.rb +0 -3
  55. data/lib/rails/generators/pages_core/install/templates/delayed_job +0 -7
  56. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +0 -18
@@ -15,12 +15,12 @@ class SearchDocument < ApplicationRecord
15
15
  pg_search_scope :full_text_search_scope, lambda { |query, dictionary|
16
16
  { against: %i[name description content tags],
17
17
  using: { tsearch: { prefix: true,
18
- dictionary: dictionary,
18
+ dictionary:,
19
19
  tsvector_column: "tsv" },
20
20
  trigram: { only: %i[name] } },
21
21
  ignoring: :accents,
22
22
  order_within_rank: "search_documents.record_updated_at DESC",
23
- query: query }
23
+ query: }
24
24
  }
25
25
 
26
26
  class << self
@@ -31,7 +31,7 @@ class SearchDocument < ApplicationRecord
31
31
 
32
32
  def search(query, locale: nil)
33
33
  locale ||= I18n.locale
34
- where(locale: locale)
34
+ where(locale:)
35
35
  .includes(:searchable)
36
36
  .full_text_search_scope(query, search_configuration(locale))
37
37
  end
data/app/models/tag.rb CHANGED
@@ -57,7 +57,7 @@ class Tag < ApplicationRecord
57
57
  end
58
58
 
59
59
  def on(taggable)
60
- taggings.create(taggable: taggable)
60
+ taggings.create(taggable:)
61
61
  end
62
62
 
63
63
  def ==(other)
@@ -11,7 +11,7 @@ module PagesCore
11
11
 
12
12
  class << self
13
13
  def call(attrs, invite: nil)
14
- new(attrs, invite: invite).call
14
+ new(attrs, invite:).call
15
15
  end
16
16
  end
17
17
 
@@ -19,7 +19,7 @@ module PagesCore
19
19
  User.transaction do
20
20
  user = User.create(attributes.merge(invite_attributes))
21
21
  if user.valid?
22
- PagesCore::PubSub.publish(:create_user, user: user, invite: invite)
22
+ PagesCore::PubSub.publish(:create_user, user:, invite:)
23
23
  invite&.destroy
24
24
  end
25
25
  user
@@ -10,14 +10,14 @@ module PagesCore
10
10
 
11
11
  class << self
12
12
  def call(invite:)
13
- new(invite: invite).call
13
+ new(invite:).call
14
14
  end
15
15
  end
16
16
 
17
17
  def call
18
18
  Invite.transaction do
19
19
  invite.destroy
20
- PagesCore::PubSub.publish(:destroy_invite, invite: invite)
20
+ PagesCore::PubSub.publish(:destroy_invite, invite:)
21
21
  invite
22
22
  end
23
23
  end
@@ -15,7 +15,7 @@ module PagesCore
15
15
 
16
16
  class << self
17
17
  def call(attrs, user:, host:, protocol: "http")
18
- new(attrs, user: user, host: host, protocol: protocol).call
18
+ new(attrs, user:, host:, protocol:).call
19
19
  end
20
20
  end
21
21
 
@@ -36,7 +36,7 @@ module PagesCore
36
36
  AdminMailer.invite(
37
37
  invite,
38
38
  admin_invite_with_token_url(invite, invite.token,
39
- host: host, protocol: protocol)
39
+ host:, protocol:)
40
40
  ).deliver_later
41
41
  end
42
42
  end
@@ -1,4 +1,4 @@
1
- <% @page.template_config.enabled_blocks do |block_name, block_options| %>
1
+ <% @page.enabled_blocks do |block_name, block_options| %>
2
2
  <%= page_block_field(f, block_name, block_options) %>
3
3
  <% end %>
4
4
 
@@ -2,6 +2,18 @@
2
2
  <%= render partial: "edit_content", locals: { f: f } %>
3
3
  <% end %>
4
4
 
5
+ <% if @page.unconfigured_blocks.any? %>
6
+ <%= content_tab "Unconfigured content" do %>
7
+ <p>
8
+ This page has additional content fields not enabled by the
9
+ selected template.
10
+ </p>
11
+ <% @page.unconfigured_blocks do |block_name, block_options| %>
12
+ <%= page_block_field(f, block_name, block_options) %>
13
+ <% end %>
14
+ <% end %>
15
+ <% end %>
16
+
5
17
  <% if @page.template_config.value(:images) || @page.template_config.value(:image) %>
6
18
  <%= content_tab "Images" do %>
7
19
  <%= render partial: "edit_images", locals: { f: f } %>
@@ -21,20 +21,6 @@ class CreatePagesTables < ActiveRecord::Migration[5.0]
21
21
  t.index :slug
22
22
  end
23
23
 
24
- create_table :delayed_jobs do |t|
25
- t.integer :priority, default: 0
26
- t.integer :attempts, default: 0
27
- t.text :handler
28
- t.text :last_error
29
- t.datetime :run_at
30
- t.datetime :locked_at
31
- t.datetime :failed_at
32
- t.string :locked_by
33
- t.datetime :created_at, null: false
34
- t.datetime :updated_at, null: false
35
- t.string :queue
36
- end
37
-
38
24
  create_table :images do |t|
39
25
  t.string :filename, null: false
40
26
  t.string :content_type, null: false
@@ -5,15 +5,15 @@ module PagesCore
5
5
  class << self
6
6
  attr_accessor :enabled
7
7
 
8
- def disable(&_block)
8
+ def disable(&)
9
9
  old_value = enabled
10
10
  self.enabled = false
11
11
  yield if block_given?
12
12
  self.enabled = old_value
13
13
  end
14
14
 
15
- def once(&block)
16
- disable(&block)
15
+ def once(&)
16
+ disable(&)
17
17
  PagesCore::StaticCache.handler.sweep!
18
18
  end
19
19
  end
@@ -4,7 +4,7 @@ module PagesCore
4
4
  module Extensions
5
5
  module StringExtensions
6
6
  def to_html_with(append, options = {})
7
- to_html(options.merge(append: append))
7
+ to_html(options.merge(append:))
8
8
  end
9
9
 
10
10
  def to_html(options = {})
@@ -149,7 +149,7 @@ module PagesCore
149
149
  def template_config(setting, value, options)
150
150
  value = true if value == :enabled
151
151
  value = false if value == :disabled
152
- { setting => { value: value, options: options } }
152
+ { setting => { value:, options: } }
153
153
  end
154
154
 
155
155
  def template_path(name)
@@ -106,7 +106,7 @@ module PagesCore
106
106
  end
107
107
 
108
108
  class << self
109
- def configure(options = {}, &_block)
109
+ def configure(options = {}, &)
110
110
  case options[:reset]
111
111
  when :defaults
112
112
  load_default_configuration
data/lib/pages_core.rb CHANGED
@@ -21,7 +21,6 @@ require "acts_as_list"
21
21
  require "alba"
22
22
  require "bcrypt"
23
23
  require "country_select"
24
- require "delayed_job_active_record"
25
24
  require "dis"
26
25
  require "dynamic_image"
27
26
  require "healthcheck"
@@ -71,7 +70,7 @@ module PagesCore
71
70
  Pathname.new(File.dirname(__FILE__)).join("..").expand_path
72
71
  end
73
72
 
74
- def configure(_options = {}, &_block)
73
+ def configure(_options = {}, &)
75
74
  yield configuration if block_given?
76
75
  end
77
76
 
@@ -22,11 +22,6 @@ module PagesCore
22
22
  nil
23
23
  end
24
24
 
25
- def create_active_job_initializer
26
- template("active_job_initializer.rb",
27
- File.join("config/initializers/active_job.rb"))
28
- end
29
-
30
25
  def create_application_controller
31
26
  template("application_controller.rb",
32
27
  File.join("app/controllers/application_controller.rb"))
@@ -57,16 +52,6 @@ module PagesCore
57
52
  File.join("app/views/pages/templates/index.html.erb"))
58
53
  end
59
54
 
60
- def create_delayed_job_script
61
- template "delayed_job", File.join("bin/delayed_job")
62
- File.chmod(0o755, Rails.root.join("bin/delayed_job"))
63
- end
64
-
65
- def create_delayed_job_initializer
66
- template("delayed_job_initializer.rb",
67
- File.join("config/initializers/delayed_job.rb"))
68
- end
69
-
70
55
  def create_initializer_file
71
56
  read_configuration!
72
57
  template("pages_initializer.rb",
@@ -7,7 +7,7 @@ RSpec.describe "Page templates", type: :system do
7
7
 
8
8
  let(:page_model) do
9
9
  create(:page,
10
- template: template,
10
+ template:,
11
11
  headline: "My headline",
12
12
  body: "My body",
13
13
  excerpt: "My excerpt")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pages_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.6
4
+ version: 3.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-15 00:00:00.000000000 Z
11
+ date: 2024-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -332,48 +332,6 @@ dependencies:
332
332
  - - ">="
333
333
  - !ruby/object:Gem::Version
334
334
  version: 0.5.3
335
- - !ruby/object:Gem::Dependency
336
- name: daemons
337
- requirement: !ruby/object:Gem::Requirement
338
- requirements:
339
- - - "~>"
340
- - !ruby/object:Gem::Version
341
- version: 1.2.0
342
- type: :runtime
343
- prerelease: false
344
- version_requirements: !ruby/object:Gem::Requirement
345
- requirements:
346
- - - "~>"
347
- - !ruby/object:Gem::Version
348
- version: 1.2.0
349
- - !ruby/object:Gem::Dependency
350
- name: delayed_job
351
- requirement: !ruby/object:Gem::Requirement
352
- requirements:
353
- - - "~>"
354
- - !ruby/object:Gem::Version
355
- version: 4.1.2
356
- type: :runtime
357
- prerelease: false
358
- version_requirements: !ruby/object:Gem::Requirement
359
- requirements:
360
- - - "~>"
361
- - !ruby/object:Gem::Version
362
- version: 4.1.2
363
- - !ruby/object:Gem::Dependency
364
- name: delayed_job_active_record
365
- requirement: !ruby/object:Gem::Requirement
366
- requirements:
367
- - - "~>"
368
- - !ruby/object:Gem::Version
369
- version: 4.1.1
370
- type: :runtime
371
- prerelease: false
372
- version_requirements: !ruby/object:Gem::Requirement
373
- requirements:
374
- - - "~>"
375
- - !ruby/object:Gem::Version
376
- version: 4.1.1
377
335
  description: Pages Core
378
336
  email:
379
337
  - inge@anyone.no
@@ -700,12 +658,9 @@ files:
700
658
  - lib/rails/generators/pages_core/frontend/templates/stylesheets/global/grid.css
701
659
  - lib/rails/generators/pages_core/frontend/templates/stylesheets/global/typography.css
702
660
  - lib/rails/generators/pages_core/install/install_generator.rb
703
- - lib/rails/generators/pages_core/install/templates/active_job_initializer.rb
704
661
  - lib/rails/generators/pages_core/install/templates/application_controller.rb
705
662
  - lib/rails/generators/pages_core/install/templates/application_helper.rb
706
663
  - lib/rails/generators/pages_core/install/templates/default_page_template.html.erb
707
- - lib/rails/generators/pages_core/install/templates/delayed_job
708
- - lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb
709
664
  - lib/rails/generators/pages_core/install/templates/frontend_controller.rb
710
665
  - lib/rails/generators/pages_core/install/templates/frontend_helper.rb
711
666
  - lib/rails/generators/pages_core/install/templates/gitignore.erb
@@ -736,14 +691,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
736
691
  requirements:
737
692
  - - ">="
738
693
  - !ruby/object:Gem::Version
739
- version: 3.0.0
694
+ version: 3.1.0
740
695
  required_rubygems_version: !ruby/object:Gem::Requirement
741
696
  requirements:
742
697
  - - ">="
743
698
  - !ruby/object:Gem::Version
744
699
  version: '0'
745
700
  requirements: []
746
- rubygems_version: 3.4.10
701
+ rubygems_version: 3.5.3
747
702
  signing_key:
748
703
  specification_version: 4
749
704
  summary: Pages Core
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ActiveJob::Base.queue_adapter = :delayed_job
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "config",
5
- "environment"))
6
- require "delayed/command"
7
- Delayed::Command.new(ARGV).daemonize
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Delayed::Worker.backend = :active_record
4
-
5
- if Object.const_defined?("Postmark")
6
- class InvalidRecipientsPlugin < Delayed::Plugin
7
- callbacks do |lifecycle|
8
- lifecycle.around(:invoke_job) do |job, *args, &block|
9
- # Forward the call to the next callback in the callback chain
10
- block.call(job, *args)
11
- rescue Postmark::InactiveRecipientError => e
12
- Rails.logger.error "#{e.class}: #{e.message}"
13
- end
14
- end
15
- end
16
-
17
- Delayed::Worker.plugins << InvalidRecipientsPlugin
18
- end