panda-cms 0.8.0 → 0.10.0
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.
- checksums.yaml +4 -4
- data/README.md +83 -4
- data/app/components/panda/cms/code_component.rb +117 -39
- data/app/components/panda/cms/grid_component.rb +26 -6
- data/app/components/panda/cms/menu_component.rb +66 -34
- data/app/components/panda/cms/page_menu_component.rb +94 -13
- data/app/components/panda/cms/rich_text_component.rb +198 -140
- data/app/components/panda/cms/text_component.rb +77 -44
- data/app/controllers/panda/cms/admin/base_controller.rb +19 -3
- data/app/controllers/panda/cms/admin/dashboard_controller.rb +3 -3
- data/app/controllers/panda/cms/admin/files_controller.rb +7 -0
- data/app/controllers/panda/cms/admin/menus_controller.rb +47 -3
- data/app/controllers/panda/cms/admin/pages_controller.rb +6 -1
- data/app/controllers/panda/cms/pages_controller.rb +2 -2
- data/app/helpers/panda/cms/application_helper.rb +15 -1
- data/app/helpers/panda/cms/asset_helper.rb +14 -3
- data/app/javascript/panda/cms/application_panda_cms.js +1 -1
- data/app/javascript/panda/cms/controllers/code_editor_controller.js +95 -0
- data/app/javascript/panda/cms/controllers/file_gallery_controller.js +128 -0
- data/app/javascript/panda/cms/controllers/index.js +48 -13
- data/app/javascript/panda/cms/controllers/inline_code_editor_controller.js +96 -0
- data/app/javascript/panda/cms/controllers/menu_form_controller.js +40 -0
- data/app/javascript/panda/cms/controllers/nested_form_controller.js +35 -0
- data/app/javascript/panda/cms/controllers/tree_controller.js +214 -0
- data/app/javascript/panda/cms/stimulus-loading.js +5 -7
- data/app/models/panda/cms/block_content.rb +9 -0
- data/app/models/panda/cms/page.rb +41 -0
- data/app/models/panda/cms/post.rb +1 -0
- data/app/views/panda/cms/admin/dashboard/show.html.erb +5 -5
- data/app/views/panda/cms/admin/files/_file_details.html.erb +45 -0
- data/app/views/panda/cms/admin/files/index.html.erb +11 -118
- data/app/views/panda/cms/admin/forms/index.html.erb +2 -2
- data/app/views/panda/cms/admin/forms/new.html.erb +1 -2
- data/app/views/panda/cms/admin/forms/show.html.erb +15 -30
- data/app/views/panda/cms/admin/menus/_menu_item_fields.html.erb +11 -0
- data/app/views/panda/cms/admin/menus/edit.html.erb +64 -0
- data/app/views/panda/cms/admin/menus/index.html.erb +3 -2
- data/app/views/panda/cms/admin/menus/new.html.erb +40 -0
- data/app/views/panda/cms/admin/pages/edit.html.erb +15 -9
- data/app/views/panda/cms/admin/pages/index.html.erb +49 -11
- data/app/views/panda/cms/admin/pages/new.html.erb +3 -11
- data/app/views/panda/cms/admin/posts/_form.html.erb +4 -14
- data/app/views/panda/cms/admin/posts/edit.html.erb +2 -2
- data/app/views/panda/cms/admin/posts/index.html.erb +3 -3
- data/app/views/panda/cms/admin/posts/new.html.erb +1 -1
- data/app/views/panda/cms/admin/settings/bulk_editor/new.html.erb +1 -1
- data/app/views/panda/cms/admin/settings/index.html.erb +3 -3
- data/config/importmap.rb +4 -6
- data/config/initializers/panda/cms/healthcheck_log_silencer.rb.disabled +31 -0
- data/config/initializers/panda/cms.rb +52 -10
- data/config/routes.rb +4 -2
- data/db/migrate/20240305000000_convert_html_content_to_editor_js.rb +9 -2
- data/db/migrate/20240315125421_add_nested_sets_to_panda_cms_pages.rb +6 -1
- data/db/migrate/20250809231125_migrate_users_to_panda_core.rb +23 -21
- data/db/migrate/20251104150640_add_cached_last_updated_at_to_panda_cms_pages.rb +22 -0
- data/db/migrate/20251104172242_add_page_type_to_panda_cms_pages.rb +6 -0
- data/db/migrate/20251104172638_set_page_types_for_existing_pages.rb +27 -0
- data/db/migrate/20251105000001_add_pending_review_status_to_pages_and_posts.panda_cms.rb +21 -0
- data/lib/generators/panda/cms/install_generator.rb +2 -5
- data/lib/panda/cms/asset_loader.rb +36 -16
- data/lib/panda/cms/debug.rb +29 -0
- data/lib/panda/cms/engine.rb +107 -48
- data/lib/panda/cms/features.rb +52 -0
- data/lib/panda-cms/version.rb +1 -1
- data/lib/panda-cms.rb +5 -6
- data/lib/tasks/assets.rake +5 -52
- data/lib/tasks/panda_cms_tasks.rake +16 -0
- metadata +22 -29
- data/app/components/panda/cms/admin/container_component.html.erb +0 -13
- data/app/components/panda/cms/admin/flash_message_component.html.erb +0 -31
- data/app/components/panda/cms/admin/panel_component.html.erb +0 -7
- data/app/components/panda/cms/admin/slideover_component.html.erb +0 -9
- data/app/components/panda/cms/admin/slideover_component.rb +0 -15
- data/app/components/panda/cms/admin/statistics_component.html.erb +0 -4
- data/app/components/panda/cms/admin/statistics_component.rb +0 -16
- data/app/components/panda/cms/admin/tab_bar_component.html.erb +0 -35
- data/app/components/panda/cms/admin/tab_bar_component.rb +0 -15
- data/app/components/panda/cms/admin/table_component.html.erb +0 -29
- data/app/components/panda/cms/admin/user_activity_component.html.erb +0 -7
- data/app/components/panda/cms/admin/user_activity_component.rb +0 -20
- data/app/components/panda/cms/admin/user_display_component.html.erb +0 -17
- data/app/components/panda/cms/admin/user_display_component.rb +0 -21
- data/app/components/panda/cms/grid_component.html.erb +0 -6
- data/app/components/panda/cms/menu_component.html.erb +0 -6
- data/app/components/panda/cms/page_menu_component.html.erb +0 -21
- data/app/components/panda/cms/rich_text_component.html.erb +0 -90
- data/app/views/layouts/panda/cms/application.html.erb +0 -42
- data/app/views/panda/cms/admin/shared/_breadcrumbs.html.erb +0 -28
- data/app/views/panda/cms/admin/shared/_flash.html.erb +0 -5
- data/app/views/panda/cms/admin/shared/_sidebar.html.erb +0 -41
- data/app/views/panda/cms/shared/_footer.html.erb +0 -2
- data/app/views/panda/cms/shared/_header.html.erb +0 -25
- data/config/initializers/panda/cms/healthcheck_log_silencer.rb +0 -13
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<nav class="flex flex-col flex-1">
|
|
2
|
-
<ul role="list" class="flex flex-col flex-1">
|
|
3
|
-
<a class="block p-0 mt-4 mb-4 ml-2 text-xl font-medium text-white"><%= Panda::CMS.config.title %></a>
|
|
4
|
-
<% [
|
|
5
|
-
{ path: admin_cms_dashboard_path, text: "Dashboard", icon: "fa-house", matcher: :exact },
|
|
6
|
-
{ path: admin_cms_pages_path, text: "Pages", icon: "fa-page", matcher: :starts_with },
|
|
7
|
-
{ path: admin_cms_posts_path, text: "Posts", icon: "fa-notebook", matcher: :starts_with },
|
|
8
|
-
{ path: admin_cms_forms_path, text: "Forms", icon: "fa-cabinet-filing", matcher: :starts_with },
|
|
9
|
-
{ path: admin_cms_menus_path, text: "Menus", icon: "fa-list-dropdown", matcher: :starts_with },
|
|
10
|
-
{ path: admin_cms_settings_path, text: "Settings", icon: "fa-cog", matcher: :starts_with },
|
|
11
|
-
].each do |link| %>
|
|
12
|
-
<li>
|
|
13
|
-
<%= link_to link[:path], class: "#{active_link?(link[:path], match: link[:matcher]) ? selected_nav_highlight_colour_classes(request) : nav_highlight_colour_classes(request)}" do %>
|
|
14
|
-
<span class="text-center"><i class="fa-regular <%= link[:icon] %> text-xl fa-fw"></i></span>
|
|
15
|
-
<span class="mt-1"><%= link[:text] %></span>
|
|
16
|
-
<% end %>
|
|
17
|
-
</li>
|
|
18
|
-
<% end %>
|
|
19
|
-
<li>
|
|
20
|
-
<%= button_to panda_core.admin_logout_path, method: :delete, id: "logout-link", data: { turbo: false }, class: nav_highlight_colour_classes(request) + " w-full" do %>
|
|
21
|
-
<span class="text-center"><i class="text-xl fa-regular fa-door-open fa-fw"></i></span>
|
|
22
|
-
<span class="mt-1">Logout</span>
|
|
23
|
-
<% end %>
|
|
24
|
-
</li>
|
|
25
|
-
<li class="mt-auto">
|
|
26
|
-
<%= link_to panda_core.edit_admin_my_profile_path, class: nav_highlight_colour_classes(request) + " w-full", title: "Edit my Profile" do %>
|
|
27
|
-
<% if !current_user.image_url.to_s.empty? %>
|
|
28
|
-
<span class="text-center"><img src="<%= current_user.image_url %>" class="w-auto h-7 rounded-full"></span>
|
|
29
|
-
<% else %>
|
|
30
|
-
<span class="text-center"><i class="text-xl fa-regular fa-circle-user fa-fw"></i></span>
|
|
31
|
-
<% end %>
|
|
32
|
-
<span class="mt-0.5"><%= current_user.firstname %> <%= current_user.lastname %></span>
|
|
33
|
-
<% end %>
|
|
34
|
-
</li>
|
|
35
|
-
<li class="">
|
|
36
|
-
<img src="/panda-cms-assets/panda-nav.png" class="inline py-2 mr-1 ml-0.5 w-auto h-14">
|
|
37
|
-
<span class="text-xs text-white">v<%= Panda::CMS::VERSION %> | <span class="font-semibold">License:</span> Perpetual</span>
|
|
38
|
-
<a class="absolute right-0 mt-4 mr-5 text-lg text-white lg:hidden" href="#" data-action="click->panda-cms-menu#toggle touch->panda-cms-menu#toggle"><i class="mr-2 text-white fa-sharp fa-solid fa-bars"></i> Menu</a>
|
|
39
|
-
</li>
|
|
40
|
-
</ul>
|
|
41
|
-
</nav>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html
|
|
3
|
-
data-theme="<%= Panda::CMS::Current&.user&.current_theme || "default" %>"
|
|
4
|
-
class="<%= html_class ||= "" %>">
|
|
5
|
-
<head>
|
|
6
|
-
<title><%= title_tag %></title>
|
|
7
|
-
<%= csrf_meta_tags %>
|
|
8
|
-
<%= csp_meta_tag %>
|
|
9
|
-
<script src="https://kit.fontawesome.com/7835d81e75.js" defer="true" crossorigin="anonymous"></script>
|
|
10
|
-
<%= stylesheet_link_tag "panda.cms", "data-turbo-track": "reload", media: "all" %>
|
|
11
|
-
|
|
12
|
-
<% if Panda::CMS::AssetLoader.use_github_assets? || Rails.env.test? %>
|
|
13
|
-
<!-- Using compiled Panda CMS assets -->
|
|
14
|
-
<%= panda_cms_complete_assets %>
|
|
15
|
-
<% else %>
|
|
16
|
-
<!-- Using development importmap assets -->
|
|
17
|
-
<script async src="https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js" defer="true" crossorigin="anonymous"></script>
|
|
18
|
-
<%= render "panda/cms/shared/importmap" %>
|
|
19
|
-
<% end %>
|
|
20
|
-
|
|
21
|
-
<%= render "panda/cms/shared/favicons" %>
|
|
22
|
-
<%= yield :head %>
|
|
23
|
-
</head>
|
|
24
|
-
<body class="overflow-hidden h-full" data-environment="<%= Rails.env %>">
|
|
25
|
-
<%= render "panda/cms/admin/shared/flash" %>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "silencer/rails/logger"
|
|
4
|
-
|
|
5
|
-
# Don't log requests to the healthcheck endpoint
|
|
6
|
-
Rails.application.configure do
|
|
7
|
-
config.middleware.swap(
|
|
8
|
-
Rails::Rack::Logger,
|
|
9
|
-
Silencer::Logger,
|
|
10
|
-
config.log_tags,
|
|
11
|
-
silence: ["/up"]
|
|
12
|
-
)
|
|
13
|
-
end
|