зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-09-07 12:05:51 +03:00
feat: Add ActiveAdmin 4 and Propshaft support
- Switch to ActiveAdmin 4 beta with Tailwind CSS - Replace Sprockets with Propshaft for Rails 8 - Migrate from jQuery to vanilla JavaScript - Implement proper module initialization without setTimeout hacks - Add esbuild for JavaScript bundling with clean import aliases - Configure Tailwind CSS build process with ActiveAdmin plugin - Update engine configuration for both Propshaft and Sprockets - Add comprehensive documentation for AA4 gem updates - Maintain backward compatibility with legacy AA versions 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Этот коммит содержится в:
16
spec/dummy/app/assets/builds/active_admin.css
Обычный файл
16
spec/dummy/app/assets/builds/active_admin.css
Обычный файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
1
spec/dummy/app/assets/builds/active_admin.css.map
Обычный файл
1
spec/dummy/app/assets/builds/active_admin.css.map
Обычный файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
17142
spec/dummy/app/assets/builds/active_admin.js
Обычный файл
17142
spec/dummy/app/assets/builds/active_admin.js
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
7
spec/dummy/app/assets/builds/active_admin.js.map
Обычный файл
7
spec/dummy/app/assets/builds/active_admin.js.map
Обычный файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -1,3 +1,7 @@
|
||||
//= link_tree ../images
|
||||
//= link_directory ../stylesheets .css
|
||||
//= link_directory ../javascripts .js
|
||||
//= link active_admin.css
|
||||
//= link active_admin.js
|
||||
//= link activeadmin_quill_editor.js
|
||||
//= link application.css
|
||||
// OFF link active_storage_db_manifest.js
|
||||
|
||||
1
spec/dummy/app/assets/javascripts/activeadmin_quill_editor.js
Символическая ссылка
1
spec/dummy/app/assets/javascripts/activeadmin_quill_editor.js
Символическая ссылка
@@ -0,0 +1 @@
|
||||
../../../../../vendor/assets/javascripts/activeadmin_quill_editor.js
|
||||
2
spec/dummy/app/assets/javascripts/application.js
Обычный файл
2
spec/dummy/app/assets/javascripts/application.js
Обычный файл
@@ -0,0 +1,2 @@
|
||||
//= require_tree ../builds
|
||||
//= require activeadmin_quill_editor
|
||||
73
spec/dummy/app/assets/stylesheets/active_admin.css
Обычный файл
73
spec/dummy/app/assets/stylesheets/active_admin.css
Обычный файл
@@ -0,0 +1,73 @@
|
||||
@import "tailwindcss/base";
|
||||
@import "tailwindcss/components";
|
||||
@import "tailwindcss/utilities";
|
||||
|
||||
/* Import Quill styles */
|
||||
@import "../../../node_modules/quill/dist/quill.snow.css";
|
||||
@import "../../../node_modules/quill/dist/quill.bubble.css";
|
||||
|
||||
/* Custom Quill integration styles for ActiveAdmin */
|
||||
@layer components {
|
||||
.quill-editor {
|
||||
@apply border border-gray-300 rounded-md;
|
||||
}
|
||||
|
||||
.ql-toolbar {
|
||||
@apply border-b-0 rounded-t-md;
|
||||
}
|
||||
|
||||
.ql-container {
|
||||
@apply rounded-b-md;
|
||||
}
|
||||
|
||||
.ql-editor {
|
||||
@apply min-h-[200px];
|
||||
}
|
||||
|
||||
/* Dark mode support */
|
||||
.dark .quill-editor {
|
||||
@apply border-gray-600;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar {
|
||||
@apply bg-gray-800 border-gray-600;
|
||||
}
|
||||
|
||||
.dark .ql-container {
|
||||
@apply bg-gray-900 border-gray-600;
|
||||
}
|
||||
|
||||
.dark .ql-editor {
|
||||
@apply text-gray-100;
|
||||
}
|
||||
|
||||
/* Fix toolbar button styles */
|
||||
.ql-toolbar button:hover {
|
||||
@apply bg-gray-100 dark:bg-gray-700;
|
||||
}
|
||||
|
||||
/* Ensure icons are visible in dark mode */
|
||||
.dark .ql-toolbar button svg {
|
||||
@apply text-gray-300;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar button:hover svg {
|
||||
@apply text-white;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar .ql-stroke {
|
||||
stroke: #9ca3af !important;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar .ql-fill {
|
||||
fill: #9ca3af !important;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar button:hover .ql-stroke {
|
||||
stroke: white !important;
|
||||
}
|
||||
|
||||
.dark .ql-toolbar button:hover .ql-fill {
|
||||
fill: white !important;
|
||||
}
|
||||
}
|
||||
26
spec/dummy/app/javascript/active_admin.js
Обычный файл
26
spec/dummy/app/javascript/active_admin.js
Обычный файл
@@ -0,0 +1,26 @@
|
||||
// Import ActiveAdmin - this already includes all features and Rails UJS
|
||||
// DO NOT import Rails separately as it's already included and started in ActiveAdmin
|
||||
import '@activeadmin/activeadmin';
|
||||
|
||||
// Import Quill from NPM and make it globally available
|
||||
import Quill from 'quill';
|
||||
window.Quill = Quill;
|
||||
|
||||
// Import the image uploader plugin if available (optional)
|
||||
try {
|
||||
const ImageUploader = require('quill-image-uploader');
|
||||
window.ImageUploader = ImageUploader.default || ImageUploader;
|
||||
} catch(e) {
|
||||
// Image uploader is optional (silent failure)
|
||||
}
|
||||
|
||||
// Import the Quill Editor initialization module
|
||||
import QuillEditorModule from 'activeadmin_quill_editor';
|
||||
|
||||
// Now that Quill is available, initialize the editors
|
||||
// This ensures proper initialization order without setTimeout hacks
|
||||
if (window.QuillEditor && window.QuillEditor.init) {
|
||||
window.QuillEditor.init();
|
||||
} else if (QuillEditorModule && QuillEditorModule.init) {
|
||||
QuillEditorModule.init();
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
<%= csp_meta_tag %>
|
||||
|
||||
<%= stylesheet_link_tag 'application', media: 'all' %>
|
||||
<%= javascript_include_tag 'application', 'data-turbo-track': 'reload', defer: true %>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
Ссылка в новой задаче
Block a user