panda-cms 0.10.2 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +77 -0
  3. data/app/assets/tailwind/panda/cms/_application.css +1 -0
  4. data/app/components/panda/cms/admin/popular_pages_component.rb +62 -0
  5. data/app/components/panda/cms/code_component.rb +2 -2
  6. data/app/components/panda/cms/menu_component.rb +9 -2
  7. data/app/components/panda/cms/rich_text_component.rb +1 -1
  8. data/app/components/panda/cms/text_component.rb +1 -1
  9. data/app/javascript/panda/cms/controllers/editor_form_controller.js +3 -3
  10. data/app/javascript/panda/cms/controllers/editor_iframe_controller.js +4 -4
  11. data/app/jobs/panda/cms/record_visit_job.rb +2 -1
  12. data/app/models/panda/cms/visit.rb +16 -1
  13. data/app/services/panda/social/instagram_feed_service.rb +54 -54
  14. data/app/views/panda/cms/admin/dashboard/show.html.erb +10 -3
  15. data/app/views/panda/cms/admin/forms/new.html.erb +1 -1
  16. data/app/views/panda/cms/admin/menus/edit.html.erb +1 -1
  17. data/app/views/panda/cms/admin/menus/new.html.erb +1 -1
  18. data/app/views/panda/cms/admin/pages/edit.html.erb +77 -3
  19. data/app/views/panda/cms/admin/posts/_form.html.erb +6 -6
  20. data/app/views/panda/cms/shared/_favicons.html.erb +7 -7
  21. data/config/importmap.rb +0 -1
  22. data/config/initializers/groupdate.rb +5 -0
  23. data/config/locales/en.yml +1 -2
  24. data/db/migrate/20240315125421_add_nested_sets_to_panda_cms_pages.rb +0 -10
  25. data/db/migrate/20240316230706_add_nested_to_panda_cms_menu_items.rb +0 -6
  26. data/db/migrate/20240317230622_create_panda_cms_visits.rb +1 -1
  27. data/db/migrate/20240805121123_create_panda_cms_posts.rb +1 -1
  28. data/db/migrate/20240806112735_fix_panda_cms_visits_column_names.rb +1 -1
  29. data/db/migrate/20240923234535_add_depth_to_panda_cms_menus.rb +0 -6
  30. data/db/migrate/20250106223303_add_author_id_to_panda_cms_posts.rb +1 -3
  31. data/db/migrate/20251117234530_add_index_to_visited_at_on_panda_cms_visits.rb +7 -0
  32. data/db/migrate/20251118015100_backfill_visited_at_for_existing_visits.rb +17 -0
  33. data/db/seeds.rb +5 -0
  34. data/lib/panda/cms/asset_loader.rb +18 -4
  35. data/lib/panda/cms/engine/autoload_config.rb +18 -0
  36. data/lib/panda/cms/engine/route_config.rb +1 -2
  37. data/lib/panda/cms/engine.rb +4 -23
  38. data/lib/{panda-cms → panda/cms}/version.rb +1 -1
  39. data/lib/panda/cms.rb +3 -1
  40. data/lib/panda-cms.rb +8 -1
  41. data/lib/tasks/ci.rake +0 -0
  42. metadata +13 -46
  43. data/app/assets/builds/panda.cms.css +0 -2754
  44. data/app/assets/stylesheets/panda/cms/application.tailwind.css +0 -162
  45. data/app/assets/stylesheets/panda/cms/editor.css +0 -120
  46. data/app/assets/tailwind/application.css +0 -178
  47. data/app/assets/tailwind/tailwind.config.js +0 -15
  48. data/config/initializers/panda/cms/healthcheck_log_silencer.rb.disabled +0 -31
  49. data/db/migrate/20240317010532_create_panda_cms_users.rb +0 -14
  50. data/db/migrate/20240324205703_create_active_storage_tables.active_storage.rb +0 -61
  51. data/db/migrate/20240408084718_default_panda_cms_users_admin_to_false.rb +0 -7
  52. data/db/migrate/20240701225422_add_service_name_to_active_storage_blobs.active_storage.rb +0 -24
  53. data/db/migrate/20240701225423_create_active_storage_variant_records.active_storage.rb +0 -30
  54. data/db/migrate/20240701225424_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +0 -10
  55. data/db/migrate/20241119214548_convert_post_content_to_editor_js.rb +0 -37
  56. data/db/migrate/20250809231125_migrate_users_to_panda_core.rb +0 -113
  57. data/lib/generators/panda/cms/install_generator.rb +0 -28
  58. data/public/panda-cms-assets/editor-js/core/editorjs.min.js +0 -83
  59. data/public/panda-cms-assets/editor-js/plugins/embed.min.js +0 -2
  60. data/public/panda-cms-assets/editor-js/plugins/header.min.js +0 -9
  61. data/public/panda-cms-assets/editor-js/plugins/nested-list.min.js +0 -2
  62. data/public/panda-cms-assets/editor-js/plugins/paragraph.min.js +0 -9
  63. data/public/panda-cms-assets/editor-js/plugins/quote.min.js +0 -2
  64. data/public/panda-cms-assets/editor-js/plugins/simple-image.min.js +0 -2
  65. data/public/panda-cms-assets/editor-js/plugins/table.min.js +0 -2
  66. data/public/panda-cms-assets/favicons/android-chrome-192x192.png +0 -0
  67. data/public/panda-cms-assets/favicons/android-chrome-512x512.png +0 -0
  68. data/public/panda-cms-assets/favicons/apple-touch-icon.png +0 -0
  69. data/public/panda-cms-assets/favicons/browserconfig.xml +0 -9
  70. data/public/panda-cms-assets/favicons/favicon-16x16.png +0 -0
  71. data/public/panda-cms-assets/favicons/favicon-32x32.png +0 -0
  72. data/public/panda-cms-assets/favicons/favicon.ico +0 -0
  73. data/public/panda-cms-assets/favicons/mstile-150x150.png +0 -0
  74. data/public/panda-cms-assets/favicons/safari-pinned-tab.svg +0 -61
  75. data/public/panda-cms-assets/favicons/site.webmanifest +0 -14
  76. data/public/panda-cms-assets/manifest.json +0 -20
  77. data/public/panda-cms-assets/panda-cms-0.7.4.css +0 -26
  78. data/public/panda-cms-assets/panda-cms-0.7.4.js +0 -150
  79. data/public/panda-cms-assets/panda-logo-screenprint.png +0 -0
  80. data/public/panda-cms-assets/panda-nav.png +0 -0
  81. data/public/panda-cms-assets/rich_text_editor.css +0 -568
  82. /data/db/migrate/{20251105000001_add_pending_review_status_to_pages_and_posts.panda_cms.rb → 20251105000001_add_pending_review_status_to_pages_and_posts.rb} +0 -0
@@ -11,16 +11,10 @@ class AddNestedToPandaCMSMenuItems < ActiveRecord::Migration[7.1]
11
11
  add_index :panda_cms_menu_items, :lft
12
12
  add_index :panda_cms_menu_items, :rgt
13
13
 
14
- Panda::CMS::MenuItem.reset_column_information
15
- Panda::CMS::MenuItem.rebuild!
16
-
17
14
  # Update pages whilst we're at it
18
15
  add_column :panda_cms_pages, :depth, :integer
19
16
  add_column :panda_cms_pages, :children_count, :integer, null: false, default: 0
20
17
  add_index :panda_cms_pages, :lft
21
18
  add_index :panda_cms_pages, :rgt
22
-
23
- Panda::CMS::Page.reset_column_information
24
- Panda::CMS::Page.rebuild!
25
19
  end
26
20
  end
@@ -8,7 +8,7 @@ class CreatePandaCMSVisits < ActiveRecord::Migration[7.1]
8
8
 
9
9
  t.references :panda_cms_page, null: true, foreign_key: true, type: :uuid
10
10
  t.references :panda_cms_redirect, null: true, foreign_key: true, type: :uuid
11
- t.references :panda_cms_user, null: true, foreign_key: true, type: :uuid
11
+ t.references :panda_core_user, null: true, foreign_key: true, type: :uuid
12
12
  t.timestamps
13
13
  end
14
14
  end
@@ -17,7 +17,7 @@ class CreatePandaCMSPosts < ActiveRecord::Migration[7.1]
17
17
  t.text :content
18
18
  t.datetime :published_at
19
19
  t.references :post_tag, type: :uuid, null: false, foreign_key: {to_table: :panda_cms_post_tags}
20
- t.references :user, type: :uuid, null: false, foreign_key: {to_table: :panda_cms_users}
20
+ t.references :user, type: :uuid, null: false, foreign_key: {to_table: :panda_core_users}
21
21
  t.timestamps
22
22
  t.index :slug, unique: true
23
23
  end
@@ -5,7 +5,7 @@ class FixPandaCMSVisitsColumnNames < ActiveRecord::Migration[7.1]
5
5
  change_table :panda_cms_visits do |t|
6
6
  t.rename :panda_cms_page_id, :page_id
7
7
  t.rename :panda_cms_redirect_id, :redirect_id
8
- t.rename :panda_cms_user_id, :user_id
8
+ t.rename :panda_core_user_id, :user_id
9
9
  t.string :referrer, null: true
10
10
  t.datetime :visited_at
11
11
  t.string :url, null: true
@@ -3,11 +3,5 @@
3
3
  class AddDepthToPandaCMSMenus < ActiveRecord::Migration[7.2]
4
4
  def change
5
5
  add_column :panda_cms_menus, :depth, :integer, null: true, default: nil
6
-
7
- homepage = Panda::CMS::Page.find_by(path: "/")
8
- return unless homepage
9
-
10
- main_menu = Panda::CMS::Menu.find_by(start_page_id: homepage.id, kind: :auto)
11
- main_menu&.update(depth: 2)
12
6
  end
13
7
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  class AddAuthorIdToPandaCMSPosts < ActiveRecord::Migration[8.0]
4
4
  def change
5
- unless column_exists?(:panda_cms_posts, :author_id)
6
- add_reference :panda_cms_posts, :author, type: :uuid, foreign_key: {to_table: :panda_core_users}
7
- end
5
+ add_reference :panda_cms_posts, :author, type: :uuid, foreign_key: {to_table: :panda_core_users}
8
6
  end
9
7
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddIndexToVisitedAtOnPandaCMSVisits < ActiveRecord::Migration[7.1]
4
+ def change
5
+ add_index :panda_cms_visits, :visited_at
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ class BackfillVisitedAtForExistingVisits < ActiveRecord::Migration[7.1]
4
+ def up
5
+ # Backfill visited_at from created_at for all existing visits where visited_at is NULL
6
+ # This ensures historical visit data shows up in dashboard statistics
7
+ execute <<-SQL
8
+ UPDATE panda_cms_visits
9
+ SET visited_at = created_at
10
+ WHERE visited_at IS NULL
11
+ SQL
12
+ end
13
+
14
+ def down
15
+ # No need to reverse - visited_at values are still valid
16
+ end
17
+ end
data/db/seeds.rb CHANGED
@@ -5,3 +5,8 @@ generator.create_templates
5
5
  generator.create_pages
6
6
  generator.create_menus
7
7
  Panda::CMS::Template.generate_missing_blocks
8
+
9
+ if (homepage = Panda::CMS::Page.find_by(path: "/"))
10
+ main_menu = Panda::CMS::Menu.find_by(start_page_id: homepage.id, kind: :auto)
11
+ main_menu&.update(depth: 2)
12
+ end
@@ -35,9 +35,22 @@ module Panda
35
35
 
36
36
  # Check if GitHub-hosted assets should be used
37
37
  def use_github_assets?
38
- # Panda CMS uses importmaps for JavaScript (no compilation needed)
39
- # Only use GitHub assets in production or when explicitly enabled
40
- false # Always use importmaps like panda-core
38
+ # In test, never use GitHub assets
39
+ return false if Rails.env.test? || in_test_environment?
40
+
41
+ # In production, prefer local assets over GitHub
42
+ # CMS uses importmap for JS and gets CSS from panda-core
43
+ # Only use GitHub as fallback if explicitly enabled
44
+ if Rails.env.production?
45
+ # Check if compiled assets exist locally (though CMS doesn't bundle)
46
+ return false if compiled_assets_available?
47
+
48
+ # Only use GitHub as fallback if explicitly enabled
49
+ return ENV["PANDA_CMS_USE_GITHUB_ASSETS"] == "true"
50
+ end
51
+
52
+ # In development, use GitHub assets only when explicitly enabled or development assets unavailable
53
+ ENV["PANDA_CMS_USE_GITHUB_ASSETS"] == "true" || !development_assets_available?
41
54
  end
42
55
 
43
56
  # Download assets from GitHub to local cache
@@ -154,7 +167,8 @@ module Panda
154
167
  if (Rails.env.test? || in_test_environment?) && compiled_assets_available?
155
168
  "/panda-cms-assets/"
156
169
  else
157
- "https://github.com/tastybamboo/panda-cms/releases/download/#{version}/"
170
+ # Use raw.githubusercontent.com instead of releases
171
+ "https://raw.githubusercontent.com/tastybamboo/panda-cms/main/public/panda-cms-assets/"
158
172
  end
159
173
  end
160
174
 
@@ -12,6 +12,24 @@ module Panda
12
12
  config.autoload_paths += %W[
13
13
  #{root}/app/services
14
14
  ]
15
+
16
+ # Exclude preview paths from production eager loading
17
+ # Preview classes should only be loaded in development/test environments
18
+ initializer "panda_cms.exclude_previews_from_production", before: :set_autoload_paths do |app|
19
+ if Rails.env.production?
20
+ # Prevent eager loading of preview files in production
21
+ preview_paths = [
22
+ root.join("spec/components/previews").to_s
23
+ ]
24
+
25
+ preview_paths.each do |preview_path|
26
+ if Dir.exist?(preview_path)
27
+ app.config.eager_load_paths.delete(preview_path)
28
+ ActiveSupport::Dependencies.autoload_paths.delete(preview_path)
29
+ end
30
+ end
31
+ end
32
+ end
15
33
  end
16
34
  end
17
35
  end
@@ -19,8 +19,7 @@ module Panda
19
19
  # Catch-all route for CMS pages, but exclude admin paths and assets
20
20
  admin_path = Panda::Core.config.admin_path.delete_prefix("/")
21
21
  constraints = ->(request) {
22
- !request.path.start_with?("/#{admin_path}") &&
23
- !request.path.start_with?("/panda-cms-assets/")
22
+ !request.path.start_with?("/#{admin_path}", "/panda-cms-assets/")
24
23
  }
25
24
  get "/*path", to: "panda/cms/pages#show", as: :panda_cms_page, constraints: constraints
26
25
 
@@ -9,7 +9,6 @@ require "panda/cms/railtie"
9
9
 
10
10
  require "invisible_captcha"
11
11
 
12
- # Load engine configuration modules
13
12
  require_relative "engine/autoload_config"
14
13
  require_relative "engine/asset_config"
15
14
  require_relative "engine/route_config"
@@ -22,11 +21,9 @@ module Panda
22
21
  class Engine < ::Rails::Engine
23
22
  isolate_namespace Panda::CMS
24
23
 
25
- # Include shared configuration modules from panda-core
26
24
  include Panda::Core::Shared::InflectionsConfig
27
25
  include Panda::Core::Shared::GeneratorConfig
28
26
 
29
- # Include CMS-specific configuration modules
30
27
  include AutoloadConfig
31
28
  include AssetConfig
32
29
  include RouteConfig
@@ -34,46 +31,30 @@ module Panda
34
31
  include HelperConfig
35
32
  include BacktraceConfig
36
33
 
37
- # Session configuration is left to the consuming application
38
- # The CMS engine does not impose session store requirements
39
-
40
- # Custom error handling
41
- # config.exceptions_app = Panda::CMS::ExceptionsApp.new(exceptions_app: routes)
42
-
43
- # Authentication is now handled by Panda::Core::Engine
44
-
45
- # Load the engine's importmap
46
- # This keeps the engine's JavaScript separate from the app's importmap
47
34
  initializer "panda_cms.importmap", before: "importmap" do |app|
48
35
  Panda::CMS.importmap = Importmap::Map.new.tap do |map|
49
36
  map.draw(Panda::CMS::Engine.root.join("config/importmap.rb"))
50
37
  end
51
38
  end
52
39
 
53
- # Static asset middleware for serving public files
54
- # JavaScript serving is handled by Panda::Core::ModuleRegistry::JavaScriptMiddleware
55
- initializer "panda.cms.static_assets" do |app|
56
- # Serve public assets (CSS, images, etc.)
57
- # JavaScript is served by ModuleRegistry's JavaScriptMiddleware in panda-core
58
- app.config.middleware.use Rack::Static,
40
+ initializer "panda.cms.static_assets", after: :load_config_initializers do |app|
41
+ app.config.middleware.insert_before Rack::Sendfile, Rack::Static,
59
42
  urls: ["/panda-cms-assets"],
60
43
  root: Panda::CMS::Engine.root.join("public")
61
44
  end
62
45
  end
63
46
 
64
47
  class MissingBlockError < StandardError; end
65
-
66
48
  class BlockError < StandardError; end
67
49
  end
68
50
  end
69
51
 
70
- # Register CMS module with ModuleRegistry for JavaScript serving
71
52
  Panda::Core::ModuleRegistry.register(
72
53
  gem_name: "panda-cms",
73
54
  engine: "Panda::CMS::Engine",
74
55
  paths: {
75
56
  views: "app/views/panda/cms/**/*.erb",
76
- components: "app/components/panda/cms/**/*.rb"
77
- # JavaScript paths are auto-discovered from config/importmap.rb
57
+ components: "app/components/panda/cms/**/*.rb",
58
+ stylesheets: "app/assets/tailwind/panda/cms/**/*.css"
78
59
  }
79
60
  )
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Panda
4
4
  module CMS
5
- VERSION = "0.10.2"
5
+ VERSION = "0.10.3"
6
6
  end
7
7
  end
data/lib/panda/cms.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "panda/cms/engine"
3
+ require "panda/cms/version"
4
4
 
5
5
  module Panda
6
6
  module CMS
@@ -8,3 +8,5 @@ module Panda
8
8
  mattr_accessor :importmap
9
9
  end
10
10
  end
11
+
12
+ require "panda/cms/engine"
data/lib/panda-cms.rb CHANGED
@@ -78,6 +78,9 @@ module Panda
78
78
  Panda::Core.config.admin_path
79
79
  end
80
80
  end
81
+
82
+ # Store the engine's importmap separately from the app's
83
+ mattr_accessor :importmap
81
84
  end
82
85
  end
83
86
 
@@ -95,13 +98,17 @@ Panda::CMS.loader.push_dir(File.expand_path("panda/cms", __dir__), namespace: Pa
95
98
  Panda::CMS.loader.ignore(__dir__.to_s)
96
99
  Panda::CMS.loader.ignore(File.expand_path("panda", __dir__))
97
100
 
101
+ # Ignore version.rb since it's manually required and defines VERSION constant
102
+ # rather than a Version class that zeitwerk would expect
103
+ Panda::CMS.loader.ignore(File.expand_path("panda/cms/version.rb", __dir__))
104
+
98
105
  # Configure Zeitwerk inflections
99
106
  Panda::CMS.loader.inflector.inflect(
100
107
  "cms" => "CMS"
101
108
  )
102
109
 
103
110
  # Manually require files from panda-cms directory
104
- require_relative "panda-cms/version"
111
+ require_relative "panda/cms/version"
105
112
  require_relative "panda/cms/debug"
106
113
  require_relative "panda/cms/exceptions_app"
107
114
  require_relative "panda/cms/engine"
data/lib/tasks/ci.rake ADDED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panda-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Otaina Limited
@@ -98,16 +98,16 @@ dependencies:
98
98
  name: http
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 5.1.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 5.1.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: importmap-rails
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -256,12 +256,9 @@ extra_rdoc_files: []
256
256
  files:
257
257
  - README.md
258
258
  - Rakefile
259
- - app/assets/builds/panda.cms.css
260
259
  - app/assets/config/panda_cms_manifest.js
261
- - app/assets/stylesheets/panda/cms/application.tailwind.css
262
- - app/assets/stylesheets/panda/cms/editor.css
263
- - app/assets/tailwind/application.css
264
- - app/assets/tailwind/tailwind.config.js
260
+ - app/assets/tailwind/panda/cms/_application.css
261
+ - app/components/panda/cms/admin/popular_pages_component.rb
265
262
  - app/components/panda/cms/code_component.rb
266
263
  - app/components/panda/cms/grid_component.rb
267
264
  - app/components/panda/cms/menu_component.rb
@@ -368,9 +365,9 @@ files:
368
365
  - app/views/shared/_header.html.erb
369
366
  - config/brakeman.ignore
370
367
  - config/importmap.rb
368
+ - config/initializers/groupdate.rb
371
369
  - config/initializers/panda/cms.rb
372
370
  - config/initializers/panda/cms/form_errors.rb
373
- - config/initializers/panda/cms/healthcheck_log_silencer.rb.disabled
374
371
  - config/initializers/zeitwork.rb
375
372
  - config/locales/en.yml
376
373
  - config/puma/test.rb
@@ -392,16 +389,10 @@ files:
392
389
  - db/migrate/20240316212822_add_kind_to_panda_cms_menus.rb
393
390
  - db/migrate/20240316221425_add_start_page_to_panda_cms_menus.rb
394
391
  - db/migrate/20240316230706_add_nested_to_panda_cms_menu_items.rb
395
- - db/migrate/20240317010532_create_panda_cms_users.rb
396
392
  - db/migrate/20240317161534_add_max_uses_to_panda_cms_template.rb
397
393
  - db/migrate/20240317163053_reset_counter_cache_on_panda_cms_template.rb
398
394
  - db/migrate/20240317214827_create_panda_cms_redirects.rb
399
395
  - db/migrate/20240317230622_create_panda_cms_visits.rb
400
- - db/migrate/20240324205703_create_active_storage_tables.active_storage.rb
401
- - db/migrate/20240408084718_default_panda_cms_users_admin_to_false.rb
402
- - db/migrate/20240701225422_add_service_name_to_active_storage_blobs.active_storage.rb
403
- - db/migrate/20240701225423_create_active_storage_variant_records.active_storage.rb
404
- - db/migrate/20240701225424_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb
405
396
  - db/migrate/20240804235210_create_panda_cms_forms.rb
406
397
  - db/migrate/20240805013612_create_panda_cms_form_submissions.rb
407
398
  - db/migrate/20240805121123_create_panda_cms_posts.rb
@@ -411,7 +402,6 @@ files:
411
402
  - db/migrate/20240820081917_change_form_submissions_to_submission_count.rb
412
403
  - db/migrate/20240923234535_add_depth_to_panda_cms_menus.rb
413
404
  - db/migrate/20241031205109_add_cached_content_to_panda_cms_block_contents.rb
414
- - db/migrate/20241119214548_convert_post_content_to_editor_js.rb
415
405
  - db/migrate/20241120000419_remove_post_tag_references.rb
416
406
  - db/migrate/20241120110943_add_editor_js_to_posts.rb
417
407
  - db/migrate/20241120113859_add_cached_content_to_panda_cms_posts.rb
@@ -419,21 +409,20 @@ files:
419
409
  - db/migrate/20250106223303_add_author_id_to_panda_cms_posts.rb
420
410
  - db/migrate/20250120235542_remove_paper_trail.rb
421
411
  - db/migrate/20250126234001_create_panda_social_instagram_posts.rb
422
- - db/migrate/20250809231125_migrate_users_to_panda_core.rb
423
412
  - db/migrate/20250811111000_make_post_user_references_nullable.rb
424
413
  - db/migrate/20251104150640_add_cached_last_updated_at_to_panda_cms_pages.rb
425
414
  - db/migrate/20251104172242_add_page_type_to_panda_cms_pages.rb
426
415
  - db/migrate/20251104172638_set_page_types_for_existing_pages.rb
427
- - db/migrate/20251105000001_add_pending_review_status_to_pages_and_posts.panda_cms.rb
416
+ - db/migrate/20251105000001_add_pending_review_status_to_pages_and_posts.rb
428
417
  - db/migrate/20251109131150_add_seo_fields_to_pages.rb
429
418
  - db/migrate/20251109131205_add_seo_fields_to_posts.rb
430
419
  - db/migrate/20251110114258_add_spam_tracking_to_form_submissions.rb
431
420
  - db/migrate/20251110122812_add_performance_indexes_to_pages_and_redirects.rb
421
+ - db/migrate/20251117234530_add_index_to_visited_at_on_panda_cms_visits.rb
422
+ - db/migrate/20251118015100_backfill_visited_at_for_existing_visits.rb
432
423
  - db/migrate/migrate
433
424
  - db/seeds.rb
434
- - lib/generators/panda/cms/install_generator.rb
435
425
  - lib/panda-cms.rb
436
- - lib/panda-cms/version.rb
437
426
  - lib/panda/cms.rb
438
427
  - lib/panda/cms/asset_loader.rb
439
428
  - lib/panda/cms/bulk_editor.rb
@@ -451,6 +440,8 @@ files:
451
440
  - lib/panda/cms/features.rb
452
441
  - lib/panda/cms/railtie.rb
453
442
  - lib/panda/cms/slug.rb
443
+ - lib/panda/cms/version.rb
444
+ - lib/tasks/ci.rake
454
445
  - lib/tasks/panda/cms/install.rake
455
446
  - lib/tasks/panda/cms/migrations.rake
456
447
  - lib/tasks/panda/social/instagram.rake
@@ -462,30 +453,6 @@ files:
462
453
  - lib/templates/erb/scaffold/new.html.erb.tt
463
454
  - lib/templates/erb/scaffold/partial.html.erb.tt
464
455
  - lib/templates/erb/scaffold/show.html.erb.tt
465
- - public/panda-cms-assets/editor-js/core/editorjs.min.js
466
- - public/panda-cms-assets/editor-js/plugins/embed.min.js
467
- - public/panda-cms-assets/editor-js/plugins/header.min.js
468
- - public/panda-cms-assets/editor-js/plugins/nested-list.min.js
469
- - public/panda-cms-assets/editor-js/plugins/paragraph.min.js
470
- - public/panda-cms-assets/editor-js/plugins/quote.min.js
471
- - public/panda-cms-assets/editor-js/plugins/simple-image.min.js
472
- - public/panda-cms-assets/editor-js/plugins/table.min.js
473
- - public/panda-cms-assets/favicons/android-chrome-192x192.png
474
- - public/panda-cms-assets/favicons/android-chrome-512x512.png
475
- - public/panda-cms-assets/favicons/apple-touch-icon.png
476
- - public/panda-cms-assets/favicons/browserconfig.xml
477
- - public/panda-cms-assets/favicons/favicon-16x16.png
478
- - public/panda-cms-assets/favicons/favicon-32x32.png
479
- - public/panda-cms-assets/favicons/favicon.ico
480
- - public/panda-cms-assets/favicons/mstile-150x150.png
481
- - public/panda-cms-assets/favicons/safari-pinned-tab.svg
482
- - public/panda-cms-assets/favicons/site.webmanifest
483
- - public/panda-cms-assets/manifest.json
484
- - public/panda-cms-assets/panda-cms-0.7.4.css
485
- - public/panda-cms-assets/panda-cms-0.7.4.js
486
- - public/panda-cms-assets/panda-logo-screenprint.png
487
- - public/panda-cms-assets/panda-nav.png
488
- - public/panda-cms-assets/rich_text_editor.css
489
456
  homepage: https://pandacms.io
490
457
  licenses:
491
458
  - BSD-3-Clause