alchemy_cms 7.4.5 → 8.0.0.a
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.
Potentially problematic release.
This version of alchemy_cms might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +92 -0
- data/Gemfile +13 -6
- data/README.md +13 -5
- data/alchemy_cms.gemspec +14 -5
- data/app/assets/builds/alchemy/admin/page-select.css +1 -1
- data/app/assets/builds/alchemy/admin/print.css +1 -1
- data/app/assets/builds/alchemy/admin.css +2 -2
- data/app/assets/builds/alchemy/custom-properties.css +1 -1
- data/app/assets/builds/alchemy/welcome.css +1 -1
- data/app/assets/builds/tinymce/skins/content/alchemy/content.min.css +1 -1
- data/app/assets/builds/tinymce/skins/ui/alchemy/content.min.css +1 -0
- data/app/assets/builds/tinymce/skins/ui/alchemy/skin.min.css +1 -1
- data/app/assets/config/alchemy_manifest.js +0 -2
- data/app/assets/images/alchemy/icons-sprite.svg +1 -0
- data/app/components/alchemy/admin/resource/applied_filter.rb +29 -0
- data/app/components/alchemy/admin/resource/checkbox_filter.rb +36 -0
- data/app/components/alchemy/admin/resource/datepicker_filter.rb +42 -0
- data/app/components/alchemy/admin/resource/select_filter.rb +43 -0
- data/app/components/alchemy/admin/toolbar_button.rb +5 -2
- data/app/components/alchemy/ingredients/number_view.rb +18 -0
- data/app/controllers/alchemy/admin/attachments_controller.rb +8 -15
- data/app/controllers/alchemy/admin/clipboard_controller.rb +2 -6
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -1
- data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +15 -15
- data/app/controllers/alchemy/admin/picture_descriptions_controller.rb +5 -1
- data/app/controllers/alchemy/admin/pictures_controller.rb +10 -5
- data/app/controllers/alchemy/admin/resources_controller.rb +16 -106
- data/app/controllers/alchemy/attachments_controller.rb +43 -14
- data/app/controllers/alchemy/messages_controller.rb +1 -1
- data/app/controllers/alchemy/pages_controller.rb +7 -2
- data/app/controllers/concerns/alchemy/admin/picture_descriptions_form_helper.rb +16 -0
- data/app/controllers/concerns/alchemy/admin/resource_filter.rb +92 -0
- data/app/decorators/alchemy/element_editor.rb +5 -48
- data/app/decorators/alchemy/ingredient_editor.rb +3 -53
- data/app/helpers/alchemy/admin/base_helper.rb +14 -84
- data/app/helpers/alchemy/admin/elements_helper.rb +4 -4
- data/app/helpers/alchemy/admin/pages_helper.rb +1 -1
- data/app/helpers/alchemy/base_helper.rb +0 -30
- data/app/helpers/alchemy/elements_block_helper.rb +0 -14
- data/app/helpers/alchemy/pages_helper.rb +1 -1
- data/{lib → app/helpers}/alchemy/resources_helper.rb +5 -45
- data/app/javascript/alchemy_admin/components/action.js +4 -0
- data/app/javascript/alchemy_admin/components/alchemy_html_element.js +3 -3
- data/app/javascript/alchemy_admin/components/datepicker.js +10 -2
- data/app/javascript/alchemy_admin/components/element_editor/delete_element_button.js +7 -7
- data/app/javascript/alchemy_admin/components/element_editor.js +1 -1
- data/app/javascript/alchemy_admin/components/growl.js +1 -0
- data/app/javascript/alchemy_admin/components/index.js +1 -0
- data/app/javascript/alchemy_admin/components/remote_select.js +4 -1
- data/app/javascript/alchemy_admin/components/tags_autocomplete.js +5 -1
- data/app/javascript/alchemy_admin/components/tinymce.js +4 -2
- data/app/javascript/alchemy_admin/components/update_check.js +42 -0
- data/app/javascript/alchemy_admin/components/uploader/file_upload.js +15 -8
- data/app/javascript/alchemy_admin/components/uploader/progress.js +12 -6
- data/app/javascript/alchemy_admin/components/uploader.js +4 -2
- data/app/javascript/alchemy_admin/confirm_dialog.js +27 -57
- data/app/javascript/alchemy_admin/dirty.js +3 -2
- data/app/javascript/alchemy_admin/i18n.js +15 -16
- data/app/javascript/alchemy_admin/initializer.js +1 -49
- data/app/javascript/alchemy_admin/utils/ajax.js +51 -44
- data/app/javascript/alchemy_admin.js +3 -8
- data/app/models/alchemy/admin/filters/base.rb +38 -0
- data/app/models/alchemy/admin/filters/checkbox.rb +24 -0
- data/app/models/alchemy/admin/filters/datepicker.rb +53 -0
- data/app/models/alchemy/admin/filters/select.rb +70 -0
- data/app/models/alchemy/admin/resource_name.rb +27 -0
- data/app/models/alchemy/attachment.rb +51 -34
- data/app/models/alchemy/base_record.rb +2 -0
- data/app/models/alchemy/element/definitions.rb +1 -1
- data/app/models/alchemy/element/element_ingredients.rb +6 -6
- data/app/models/alchemy/element/presenters.rb +3 -12
- data/app/models/alchemy/element.rb +9 -27
- data/app/models/alchemy/element_definition.rb +160 -0
- data/app/models/alchemy/ingredient.rb +10 -43
- data/app/models/alchemy/ingredient_definition.rb +134 -0
- data/app/models/alchemy/ingredient_validator.rb +7 -3
- data/app/models/alchemy/ingredients/number.rb +19 -0
- data/app/models/alchemy/language.rb +0 -14
- data/app/models/alchemy/message.rb +3 -7
- data/app/models/alchemy/node.rb +1 -1
- data/app/models/alchemy/page/{page_layouts.rb → definitions.rb} +12 -19
- data/app/models/alchemy/page/fixed_attributes.rb +1 -1
- data/app/models/alchemy/page/page_elements.rb +13 -14
- data/app/models/alchemy/page/page_natures.rb +7 -7
- data/app/models/alchemy/page/page_scopes.rb +1 -1
- data/app/models/alchemy/page.rb +11 -33
- data/app/models/alchemy/page_definition.rb +115 -0
- data/app/models/alchemy/picture.rb +69 -79
- data/app/models/alchemy/picture_variant.rb +115 -5
- data/{lib → app/models}/alchemy/resource.rb +4 -18
- data/{lib → app/models}/alchemy/searchable_resource.rb +15 -0
- data/app/models/alchemy/site/layout.rb +5 -5
- data/app/models/alchemy/site.rb +0 -15
- data/app/models/alchemy/storage_adapter/active_storage/attachment_url.rb +41 -0
- data/app/models/alchemy/storage_adapter/active_storage/picture_url.rb +55 -0
- data/app/models/alchemy/storage_adapter/active_storage/preprocessor.rb +40 -0
- data/app/models/alchemy/storage_adapter/active_storage.rb +173 -0
- data/app/models/alchemy/{attachment/url.rb → storage_adapter/dragonfly/attachment_url.rb} +12 -12
- data/app/models/alchemy/{picture/url.rb → storage_adapter/dragonfly/picture_url.rb} +28 -12
- data/app/models/alchemy/{picture → storage_adapter/dragonfly}/preprocessor.rb +4 -4
- data/app/models/alchemy/storage_adapter/dragonfly.rb +183 -0
- data/app/models/alchemy/storage_adapter.rb +74 -0
- data/app/models/concerns/alchemy/picture_thumbnails.rb +19 -6
- data/app/serializers/alchemy/element_serializer.rb +0 -1
- data/app/services/alchemy/dragonfly_to_image_processing.rb +100 -0
- data/app/stylesheets/alchemy/_defaults.scss +3 -0
- data/app/stylesheets/alchemy/_extends.scss +69 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/_mixins.scss +36 -49
- data/app/stylesheets/alchemy/_variables.scss +5 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/archive.scss +20 -37
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/base.scss +16 -14
- data/app/stylesheets/alchemy/admin/buttons.scss +160 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/clipboard.scss +2 -2
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/dashboard.scss +13 -16
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/dialogs.scss +23 -16
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/elements.scss +150 -105
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/errors.scss +5 -5
- data/app/stylesheets/alchemy/admin/filters.scss +58 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/flatpickr.scss +53 -60
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/form_fields.scss +21 -7
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/forms.scss +31 -19
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/frame.scss +20 -16
- data/app/stylesheets/alchemy/admin/hints.scss +5 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/icons.scss +10 -1
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/image_library.scss +10 -8
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/images.scss +1 -1
- data/app/stylesheets/alchemy/admin/labels.scss +5 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/lists.scss +3 -3
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/navigation.scss +61 -55
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/nodes.scss +21 -18
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/notices.scss +18 -18
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/page-select.scss +2 -2
- data/app/stylesheets/alchemy/admin/pagination.scss +144 -0
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/preview_window.scss +8 -6
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/print.scss +1 -1
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/resource_info.scss +8 -5
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/search.scss +9 -6
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/selects.scss +49 -37
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/shoelace.scss +5 -6
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/sitemap.scss +38 -33
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/tables.scss +6 -4
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/tags.scss +6 -4
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/toolbar.scss +12 -6
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/typography.scss +2 -2
- data/app/{assets/stylesheets → stylesheets}/alchemy/admin/upload.scss +7 -5
- data/app/stylesheets/alchemy/admin.scss +44 -0
- data/app/stylesheets/alchemy/custom-properties.css +244 -0
- data/app/stylesheets/alchemy/welcome.scss +75 -0
- data/app/{assets/stylesheets → stylesheets}/tinymce/skins/content/alchemy/content.scss +8 -9
- data/app/stylesheets/tinymce/skins/ui/alchemy/content.scss +1 -0
- data/app/{assets/stylesheets → stylesheets}/tinymce/skins/ui/alchemy/skin.scss +133 -136
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +2 -2
- data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +1 -1
- data/app/views/alchemy/admin/{elements/_clipboard_button.html.erb → clipboard/_button.html.erb} +3 -5
- data/app/views/alchemy/admin/clipboard/_update_nested_element_button.turbo_stream.erb +11 -0
- data/app/views/alchemy/admin/clipboard/clear.turbo_stream.erb +4 -0
- data/app/views/alchemy/admin/clipboard/index.html.erb +15 -13
- data/app/views/alchemy/admin/clipboard/insert.turbo_stream.erb +18 -0
- data/app/views/alchemy/admin/clipboard/remove.turbo_stream.erb +9 -0
- data/app/views/alchemy/admin/dashboard/info.html.erb +17 -31
- data/app/views/alchemy/admin/elements/_element.html.erb +4 -8
- data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_header.html.erb +1 -0
- data/app/views/alchemy/admin/elements/_toolbar.html.erb +4 -6
- data/app/views/alchemy/admin/elements/create.turbo_stream.erb +2 -1
- data/app/views/alchemy/admin/elements/index.html.erb +2 -2
- data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +3 -16
- data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +0 -9
- data/app/views/alchemy/admin/languages/_form.html.erb +1 -1
- data/app/views/alchemy/admin/languages/_table.html.erb +1 -1
- data/app/views/alchemy/admin/languages/index.html.erb +5 -2
- data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -12
- data/app/views/alchemy/admin/pages/_form.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_page.html.erb +2 -3
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +1 -15
- data/app/views/alchemy/admin/pages/index.html.erb +1 -1
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +9 -12
- data/app/views/alchemy/admin/partials/_search_form.html.erb +4 -9
- data/app/views/alchemy/admin/picture_descriptions/_form.html.erb +5 -7
- data/app/views/alchemy/admin/picture_descriptions/edit.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/_archive.html.erb +4 -7
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +2 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_form.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/_picture_description_field.html.erb +21 -13
- data/app/views/alchemy/admin/pictures/index.html.erb +2 -7
- data/app/views/alchemy/admin/resources/_applied_filters.html.erb +8 -0
- data/app/views/alchemy/admin/resources/_filter_bar.html.erb +11 -21
- data/app/views/alchemy/admin/resources/_pagination.html.erb +6 -0
- data/app/views/alchemy/admin/resources/_per_page_select.html.erb +4 -2
- data/app/views/alchemy/admin/resources/_resource_table.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_table_header.html.erb +1 -15
- data/app/views/alchemy/admin/sites/index.html.erb +5 -1
- data/app/views/alchemy/admin/styleguide/index.html.erb +8 -0
- data/app/views/alchemy/admin/tags/index.html.erb +1 -1
- data/app/views/alchemy/admin/tinymce/_setup.html.erb +7 -7
- data/app/{javascript/alchemy_admin/locales/en.js → views/alchemy/admin/translations/_en.js} +5 -2
- data/app/views/alchemy/admin/uploader/_button.html.erb +1 -1
- data/app/views/alchemy/admin/uploader/_setup.html.erb +4 -4
- data/app/views/alchemy/base/500.turbo_stream.erb +3 -0
- data/app/views/alchemy/base/redirect.js.erb +1 -1
- data/app/views/alchemy/ingredients/_number_editor.html.erb +24 -0
- data/app/views/alchemy/no_index.html.erb +31 -0
- data/app/views/alchemy/welcome.html.erb +12 -10
- data/app/views/kaminari/alchemy/_first_page.html.erb +5 -3
- data/app/views/kaminari/alchemy/_last_page.html.erb +5 -3
- data/app/views/kaminari/alchemy/_next_page.html.erb +5 -3
- data/app/views/kaminari/alchemy/_paginator.html.erb +18 -13
- data/app/views/kaminari/alchemy/_prev_page.html.erb +5 -3
- data/app/views/layouts/alchemy/admin.html.erb +5 -9
- data/bun.lockb +0 -0
- data/bundles/remixicon.mjs +153 -0
- data/config/alchemy/config.yml +3 -2
- data/config/initializers/dragonfly.rb +0 -1
- data/config/initializers/mime_types.rb +1 -0
- data/config/locales/alchemy.en.yml +32 -14
- data/config/routes.rb +0 -2
- data/db/migrate/20250626160259_add_unique_index_to_picture_descriptions.rb +7 -0
- data/eslint.config.js +2 -1
- data/lib/alchemy/admin/preview_url.rb +4 -5
- data/lib/alchemy/cache_digests/template_tracker.rb +6 -9
- data/lib/alchemy/config_missing.rb +14 -0
- data/lib/alchemy/configuration/base_option.rb +24 -0
- data/lib/alchemy/configuration/boolean_option.rb +16 -0
- data/lib/alchemy/configuration/class_option.rb +15 -0
- data/lib/alchemy/configuration/class_set_option.rb +46 -0
- data/lib/alchemy/configuration/integer_list_option.rb +13 -0
- data/lib/alchemy/configuration/integer_option.rb +12 -0
- data/lib/alchemy/configuration/list_option.rb +22 -0
- data/lib/alchemy/configuration/regexp_option.rb +11 -0
- data/lib/alchemy/configuration/string_list_option.rb +13 -0
- data/lib/alchemy/configuration/string_option.rb +11 -0
- data/lib/alchemy/configuration.rb +115 -0
- data/lib/alchemy/configuration_methods.rb +3 -1
- data/lib/alchemy/configurations/default_language.rb +12 -0
- data/lib/alchemy/configurations/default_site.rb +10 -0
- data/lib/alchemy/configurations/format_matchers.rb +11 -0
- data/lib/alchemy/configurations/mailer.rb +16 -0
- data/lib/alchemy/configurations/main.rb +216 -0
- data/lib/alchemy/configurations/preview.rb +32 -0
- data/lib/alchemy/configurations/sitemap.rb +10 -0
- data/lib/alchemy/configurations/uploader.rb +34 -0
- data/lib/alchemy/engine.rb +65 -17
- data/lib/alchemy/hints.rb +3 -7
- data/lib/alchemy/on_page_layout.rb +2 -2
- data/lib/alchemy/propshaft/tinymce_asset.rb +15 -0
- data/lib/alchemy/seeder.rb +2 -2
- data/lib/alchemy/tasks/usage.rb +4 -4
- data/lib/alchemy/test_support/config_stubbing.rb +1 -7
- data/lib/alchemy/test_support/factories/attachment_factory.rb +13 -2
- data/lib/alchemy/test_support/factories/language_factory.rb +1 -1
- data/lib/alchemy/test_support/factories/page_factory.rb +2 -3
- data/lib/alchemy/test_support/factories/picture_factory.rb +30 -2
- data/lib/alchemy/test_support/factories/site_factory.rb +2 -2
- data/lib/alchemy/test_support/having_crop_action_examples.rb +2 -2
- data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +80 -26
- data/lib/alchemy/test_support/shared_ingredient_examples.rb +5 -5
- data/lib/alchemy/upgrader/.keep +0 -0
- data/lib/alchemy/upgrader/eight_zero.rb +14 -0
- data/lib/alchemy/upgrader.rb +33 -20
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy.rb +192 -170
- data/lib/alchemy_cms.rb +1 -7
- data/lib/generators/alchemy/ingredient/ingredient_generator.rb +0 -3
- data/lib/generators/alchemy/install/files/_article.html.erb +6 -4
- data/lib/generators/alchemy/install/files/alchemy.en.yml +22 -3
- data/lib/generators/alchemy/install/files/application.html.erb +5 -0
- data/lib/generators/alchemy/install/install_generator.rb +5 -14
- data/lib/generators/alchemy/install/templates/alchemy.rb.tt +196 -0
- data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +0 -1
- data/lib/generators/alchemy/install/templates/elements.yml.tt +3 -1
- data/lib/generators/alchemy/install/templates/menus.yml.tt +1 -1
- data/lib/generators/alchemy/install/templates/page_layouts.yml.tt +2 -2
- data/lib/generators/alchemy/page_layouts/page_layouts_generator.rb +2 -2
- data/lib/tasks/alchemy/assets.rake +14 -0
- data/lib/tasks/alchemy/upgrade.rake +12 -47
- data/vendor/javascript/tinymce.min.js +1 -1
- data/vitest.config.js +21 -0
- metadata +184 -180
- data/app/assets/builds/alchemy/admin/page-select.css.map +0 -1
- data/app/assets/builds/alchemy/admin/print.css.map +0 -1
- data/app/assets/builds/alchemy/admin.css.map +0 -1
- data/app/assets/builds/alchemy/custom-properties.css.map +0 -1
- data/app/assets/builds/alchemy/welcome.css.map +0 -1
- data/app/assets/builds/tinymce/skins/content/alchemy/content.min.css.map +0 -1
- data/app/assets/builds/tinymce/skins/ui/alchemy/skin.min.css.map +0 -1
- data/app/assets/javascripts/alchemy/admin.js +0 -10
- data/app/assets/stylesheets/alchemy/_defaults.scss +0 -3
- data/app/assets/stylesheets/alchemy/_deprecated_variables.scss +0 -45
- data/app/assets/stylesheets/alchemy/_deprecation.scss +0 -17
- data/app/assets/stylesheets/alchemy/_extends.scss +0 -62
- data/app/assets/stylesheets/alchemy/_variables.scss +0 -201
- data/app/assets/stylesheets/alchemy/admin/buttons.scss +0 -124
- data/app/assets/stylesheets/alchemy/admin/hints.scss +0 -5
- data/app/assets/stylesheets/alchemy/admin/labels.scss +0 -3
- data/app/assets/stylesheets/alchemy/admin/pagination.scss +0 -92
- data/app/assets/stylesheets/alchemy/admin.scss +0 -42
- data/app/assets/stylesheets/alchemy/custom-properties.css +0 -98
- data/app/assets/stylesheets/alchemy/welcome.scss +0 -57
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.css +0 -711
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.css +0 -705
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.inline.min.css +0 -7
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.min.css +0 -7
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.css +0 -29
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/content.mobile.min.css +0 -7
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.css +0 -677
- data/app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.min.css +0 -7
- data/app/controllers/alchemy/elements_controller.rb +0 -32
- data/app/models/alchemy/element/dom_id.rb +0 -31
- data/app/models/alchemy/picture/calculations.rb +0 -49
- data/app/models/alchemy/picture/transformations.rb +0 -115
- data/app/views/alchemy/admin/attachments/destroy.js.erb +0 -1
- data/app/views/alchemy/admin/clipboard/clear.js.erb +0 -3
- data/app/views/alchemy/admin/clipboard/insert.js.erb +0 -29
- data/app/views/alchemy/admin/clipboard/remove.js.erb +0 -10
- data/app/views/alchemy/admin/resources/_filter.html.erb +0 -12
- data/app/views/alchemy/admin/resources/_resource.html.erb +0 -34
- data/app/views/alchemy/admin/resources/_table.html.erb +0 -29
- data/app/views/alchemy/elements/show.html.erb +0 -1
- data/app/views/alchemy/elements/show.js.erb +0 -1
- data/app/views/alchemy/ingredients/_audio_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_boolean_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_datetime_view.html.erb +0 -3
- data/app/views/alchemy/ingredients/_file_view.html.erb +0 -4
- data/app/views/alchemy/ingredients/_headline_view.html.erb +0 -4
- data/app/views/alchemy/ingredients/_html_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_link_view.html.erb +0 -4
- data/app/views/alchemy/ingredients/_node_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_page_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_picture_view.html.erb +0 -4
- data/app/views/alchemy/ingredients/_richtext_view.html.erb +0 -3
- data/app/views/alchemy/ingredients/_select_view.html.erb +0 -1
- data/app/views/alchemy/ingredients/_text_view.html.erb +0 -4
- data/app/views/alchemy/ingredients/_video_view.html.erb +0 -3
- data/babel.config.js +0 -12
- data/config/initializers/assets.rb +0 -4
- data/lib/alchemy/config.rb +0 -114
- data/lib/alchemy/element_definition.rb +0 -73
- data/lib/alchemy/page_layout.rb +0 -73
- data/lib/alchemy/resource_filter.rb +0 -40
- data/lib/alchemy/upgrader/seven_point_four.rb +0 -26
- data/lib/alchemy/upgrader/seven_point_three.rb +0 -52
- data/lib/generators/alchemy/ingredient/templates/view.html.erb +0 -1
- data/lib/generators/alchemy/install/files/alchemy_admin.js +0 -1
- data/lib/generators/alchemy/install/files/all.js +0 -11
- data/lib/generators/alchemy/install/files/article.css +0 -25
- data/vendor/assets/images/remixicon.symbol.svg +0 -11
- /data/app/{assets/stylesheets → stylesheets}/alchemy/_fonts.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/attachment-select.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/attachments.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/flash.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/list_filter.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/node-select.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/alchemy/admin/spinner.scss +0 -0
- /data/app/{assets/stylesheets → stylesheets}/tinymce/skins/skintool.json +0 -0
- /data/app/{assets/stylesheets → stylesheets}/tinymce/skins/ui/alchemy/fonts/tinymce-mobile.woff +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 708aeccfd9ff6e2b377839f142bae8f4cc2bbb7580c526ca385e265b5b7d8b82
|
4
|
+
data.tar.gz: 4a1c029aaf995d1d5e644c5be255fef48a1b084241ece80c804fe2d93a4c3c6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52e23716317e088a6c9c79db087ffc2bd40928f29f09b7620461996308aa3b257341ae0e4696c45a5a2c3b7bce1738687e00b7ebbc61180f30efa60124ba3e9e
|
7
|
+
data.tar.gz: ad540d4a2c64082a63d901edc66e0daa26a0d489a986b1dd588e756a4338e96d989182efb155b84e973224ba633d322c33ef869a912677fbae3b6081b32d26c4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,97 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 8.0.0.a (2025-07-10)
|
4
|
+
|
5
|
+
- Resources Admin: Fix editing with filters [#3311](https://github.com/AlchemyCMS/alchemy_cms/pull/3311) ([mamhoff](https://github.com/mamhoff))
|
6
|
+
- Fix XMLHttpRequest AggregateError in Vitest test suite [#3310](https://github.com/AlchemyCMS/alchemy_cms/pull/3310) ([tvdeyen](https://github.com/tvdeyen))
|
7
|
+
- Update net-smtp requirement from ~> 0.4.0 to ~> 0.5.1 [#3309](https://github.com/AlchemyCMS/alchemy_cms/pull/3309) ([dependabot](https://github.com/apps/dependabot))
|
8
|
+
- Update execjs requirement from ~> 2.9.1 to ~> 2.10.0 [#3308](https://github.com/AlchemyCMS/alchemy_cms/pull/3308) ([dependabot](https://github.com/apps/dependabot))
|
9
|
+
- Update rspec-rails requirement from ~> 7.1 to ~> 8.0 [#3307](https://github.com/AlchemyCMS/alchemy_cms/pull/3307) ([dependabot](https://github.com/apps/dependabot))
|
10
|
+
- Update rails_live_reload requirement from ~> 0.4.0 to ~> 0.5.0 [#3306](https://github.com/AlchemyCMS/alchemy_cms/pull/3306) ([dependabot](https://github.com/apps/dependabot))
|
11
|
+
- Convert JS test suite from Jest to Vitest [#3300](https://github.com/AlchemyCMS/alchemy_cms/pull/3300) ([tvdeyen](https://github.com/tvdeyen))
|
12
|
+
- refactor(uploader): Do not use arguments in constructor [#3299](https://github.com/AlchemyCMS/alchemy_cms/pull/3299) ([tvdeyen](https://github.com/tvdeyen))
|
13
|
+
- Fix yaml syntax in dependabot config file [#3298](https://github.com/AlchemyCMS/alchemy_cms/pull/3298) ([tvdeyen](https://github.com/tvdeyen))
|
14
|
+
- Do not generate CSS source maps [#3297](https://github.com/AlchemyCMS/alchemy_cms/pull/3297) ([tvdeyen](https://github.com/tvdeyen))
|
15
|
+
- Update bundled Tinymce to v7.9.1 [#3296](https://github.com/AlchemyCMS/alchemy_cms/pull/3296) ([tvdeyen](https://github.com/tvdeyen))
|
16
|
+
- fix(dependabot): Use bun [#3295](https://github.com/AlchemyCMS/alchemy_cms/pull/3295) ([tvdeyen](https://github.com/tvdeyen))
|
17
|
+
- Fix multi language picture descriptions [#3290](https://github.com/AlchemyCMS/alchemy_cms/pull/3290) ([tvdeyen](https://github.com/tvdeyen))
|
18
|
+
- Add robot icon to SVG sprite [#3289](https://github.com/AlchemyCMS/alchemy_cms/pull/3289) ([tvdeyen](https://github.com/tvdeyen))
|
19
|
+
- Tweak small button appearance [#3288](https://github.com/AlchemyCMS/alchemy_cms/pull/3288) ([tvdeyen](https://github.com/tvdeyen))
|
20
|
+
- Add server error turbo_stream template [#3287](https://github.com/AlchemyCMS/alchemy_cms/pull/3287) ([tvdeyen](https://github.com/tvdeyen))
|
21
|
+
- fix(PictureThumbnails): Do not fail if size is nil [#3286](https://github.com/AlchemyCMS/alchemy_cms/pull/3286) ([tvdeyen](https://github.com/tvdeyen))
|
22
|
+
- Remove non visual custom elements after connect [#3285](https://github.com/AlchemyCMS/alchemy_cms/pull/3285) ([tvdeyen](https://github.com/tvdeyen))
|
23
|
+
- Add Active Storage adapter [#3283](https://github.com/AlchemyCMS/alchemy_cms/pull/3283) ([tvdeyen](https://github.com/tvdeyen))
|
24
|
+
- Remove admin attachments download action [#3282](https://github.com/AlchemyCMS/alchemy_cms/pull/3282) ([tvdeyen](https://github.com/tvdeyen))
|
25
|
+
- Use mime type for attachment extension [#3281](https://github.com/AlchemyCMS/alchemy_cms/pull/3281) ([tvdeyen](https://github.com/tvdeyen))
|
26
|
+
- Merge Transformations module into PictureVariant [#3280](https://github.com/AlchemyCMS/alchemy_cms/pull/3280) ([tvdeyen](https://github.com/tvdeyen))
|
27
|
+
- Use image_file_extension in picture validation [#3279](https://github.com/AlchemyCMS/alchemy_cms/pull/3279) ([tvdeyen](https://github.com/tvdeyen))
|
28
|
+
- Extract Dragonfly integration into adapter [#3278](https://github.com/AlchemyCMS/alchemy_cms/pull/3278) ([tvdeyen](https://github.com/tvdeyen))
|
29
|
+
- Use image_file_extension for picture variant rendering [#3277](https://github.com/AlchemyCMS/alchemy_cms/pull/3277) ([tvdeyen](https://github.com/tvdeyen))
|
30
|
+
- Use Alchemy.config accessors instead of hash key [#3275](https://github.com/AlchemyCMS/alchemy_cms/pull/3275) ([tvdeyen](https://github.com/tvdeyen))
|
31
|
+
- Move `can_be_cropped_to?` into `picture_thumbnails` [#3274](https://github.com/AlchemyCMS/alchemy_cms/pull/3274) ([tvdeyen](https://github.com/tvdeyen))
|
32
|
+
- Pass picture to Picture.url_class [#3273](https://github.com/AlchemyCMS/alchemy_cms/pull/3273) ([tvdeyen](https://github.com/tvdeyen))
|
33
|
+
- Use image_file extension as render format [#3272](https://github.com/AlchemyCMS/alchemy_cms/pull/3272) ([tvdeyen](https://github.com/tvdeyen))
|
34
|
+
- Move file fixtures into default Rails folder [#3271](https://github.com/AlchemyCMS/alchemy_cms/pull/3271) ([tvdeyen](https://github.com/tvdeyen))
|
35
|
+
- Fix formatting of alchemy config template [#3269](https://github.com/AlchemyCMS/alchemy_cms/pull/3269) ([tvdeyen](https://github.com/tvdeyen))
|
36
|
+
- Copy new config initializer during upgrade [#3268](https://github.com/AlchemyCMS/alchemy_cms/pull/3268) ([tvdeyen](https://github.com/tvdeyen))
|
37
|
+
- Drop Rails 7.0 support [#3267](https://github.com/AlchemyCMS/alchemy_cms/pull/3267) ([tvdeyen](https://github.com/tvdeyen))
|
38
|
+
- Add IngredientDefinition model [#3266](https://github.com/AlchemyCMS/alchemy_cms/pull/3266) ([tvdeyen](https://github.com/tvdeyen))
|
39
|
+
- Convert ElementDefinition into ActiveModel [#3264](https://github.com/AlchemyCMS/alchemy_cms/pull/3264) ([tvdeyen](https://github.com/tvdeyen))
|
40
|
+
- Convert PageLayout into ActiveModel [#3263](https://github.com/AlchemyCMS/alchemy_cms/pull/3263) ([tvdeyen](https://github.com/tvdeyen))
|
41
|
+
- New welcome screen [#3260](https://github.com/AlchemyCMS/alchemy_cms/pull/3260) ([tvdeyen](https://github.com/tvdeyen))
|
42
|
+
- New pagination UX [#3259](https://github.com/AlchemyCMS/alchemy_cms/pull/3259) ([tvdeyen](https://github.com/tvdeyen))
|
43
|
+
- Use Turbo Confirms [#3258](https://github.com/AlchemyCMS/alchemy_cms/pull/3258) ([tvdeyen](https://github.com/tvdeyen))
|
44
|
+
- Fix Icons [#3256](https://github.com/AlchemyCMS/alchemy_cms/pull/3256) ([tvdeyen](https://github.com/tvdeyen))
|
45
|
+
- Use Turbo Frame and Streams for clipboard [#3255](https://github.com/AlchemyCMS/alchemy_cms/pull/3255) ([tvdeyen](https://github.com/tvdeyen))
|
46
|
+
- Remove ingredient view partials [#3254](https://github.com/AlchemyCMS/alchemy_cms/pull/3254) ([tvdeyen](https://github.com/tvdeyen))
|
47
|
+
- fix(alchemy-select): Remove clear button of select2 [#3252](https://github.com/AlchemyCMS/alchemy_cms/pull/3252) ([tvdeyen](https://github.com/tvdeyen))
|
48
|
+
- Fix thumbnail bg pattern [#3249](https://github.com/AlchemyCMS/alchemy_cms/pull/3249) ([tvdeyen](https://github.com/tvdeyen))
|
49
|
+
- Remove dragonfly_svg plugin [#3247](https://github.com/AlchemyCMS/alchemy_cms/pull/3247) ([tvdeyen](https://github.com/tvdeyen))
|
50
|
+
- Add alchemy-update-check element [#3246](https://github.com/AlchemyCMS/alchemy_cms/pull/3246) ([tvdeyen](https://github.com/tvdeyen))
|
51
|
+
- Lazy load page layouts for select [#3244](https://github.com/AlchemyCMS/alchemy_cms/pull/3244) ([tvdeyen](https://github.com/tvdeyen))
|
52
|
+
- New filters: Translate `include_blank` per filter [#3243](https://github.com/AlchemyCMS/alchemy_cms/pull/3243) ([mamhoff](https://github.com/mamhoff))
|
53
|
+
- Use custom properties instead of Sass variables [#3242](https://github.com/AlchemyCMS/alchemy_cms/pull/3242) ([tvdeyen](https://github.com/tvdeyen))
|
54
|
+
- Only enhance `assets:precompile` task if Propshaft is present [#3241](https://github.com/AlchemyCMS/alchemy_cms/pull/3241) ([mamhoff](https://github.com/mamhoff))
|
55
|
+
- Fix assign dialogs search [#3240](https://github.com/AlchemyCMS/alchemy_cms/pull/3240) ([tvdeyen](https://github.com/tvdeyen))
|
56
|
+
- Use fetch() over XHR for ajax [#3239](https://github.com/AlchemyCMS/alchemy_cms/pull/3239) ([tvdeyen](https://github.com/tvdeyen))
|
57
|
+
- Fix redirect to recent pictures after upload [#3238](https://github.com/AlchemyCMS/alchemy_cms/pull/3238) ([tvdeyen](https://github.com/tvdeyen))
|
58
|
+
- Respect default resource filter set in controller [#3237](https://github.com/AlchemyCMS/alchemy_cms/pull/3237) ([tvdeyen](https://github.com/tvdeyen))
|
59
|
+
- Filter Bar: Submit form on any "change" event in #filter_bar [#3236](https://github.com/AlchemyCMS/alchemy_cms/pull/3236) ([mamhoff](https://github.com/mamhoff))
|
60
|
+
- fix(<alchemy-tinymce>): Do not expect an element editor [#3235](https://github.com/AlchemyCMS/alchemy_cms/pull/3235) ([tvdeyen](https://github.com/tvdeyen))
|
61
|
+
- Load JS translations into DOM [#3233](https://github.com/AlchemyCMS/alchemy_cms/pull/3233) ([tvdeyen](https://github.com/tvdeyen))
|
62
|
+
- Allow filtering with a time/date picker [#3231](https://github.com/AlchemyCMS/alchemy_cms/pull/3231) ([mamhoff](https://github.com/mamhoff))
|
63
|
+
- Remove require of alchemy/admin/all file [#3230](https://github.com/AlchemyCMS/alchemy_cms/pull/3230) ([tvdeyen](https://github.com/tvdeyen))
|
64
|
+
- Load Alchemy's config.yml before app initializers [#3229](https://github.com/AlchemyCMS/alchemy_cms/pull/3229) ([mamhoff](https://github.com/mamhoff))
|
65
|
+
- Compile icon sprite [#3227](https://github.com/AlchemyCMS/alchemy_cms/pull/3227) ([tvdeyen](https://github.com/tvdeyen))
|
66
|
+
- Hide body while custom elements load [#3226](https://github.com/AlchemyCMS/alchemy_cms/pull/3226) ([tvdeyen](https://github.com/tvdeyen))
|
67
|
+
- Custom format validations [#3225](https://github.com/AlchemyCMS/alchemy_cms/pull/3225) ([tvdeyen](https://github.com/tvdeyen))
|
68
|
+
- Add Number ingredient [#3224](https://github.com/AlchemyCMS/alchemy_cms/pull/3224) ([tvdeyen](https://github.com/tvdeyen))
|
69
|
+
- Stop testing Ruby 3.1 [#3223](https://github.com/AlchemyCMS/alchemy_cms/pull/3223) ([mamhoff](https://github.com/mamhoff))
|
70
|
+
- Skip PushJavaScript Job for PRs without changed bun lock [#3221](https://github.com/AlchemyCMS/alchemy_cms/pull/3221) ([mamhoff](https://github.com/mamhoff))
|
71
|
+
- Move resource name methods into Module [#3220](https://github.com/AlchemyCMS/alchemy_cms/pull/3220) ([mamhoff](https://github.com/mamhoff))
|
72
|
+
- Use Alchemy.config in specs [#3218](https://github.com/AlchemyCMS/alchemy_cms/pull/3218) ([mamhoff](https://github.com/mamhoff))
|
73
|
+
- Use Alchemy.user_class_name to configure model_stamper [#3217](https://github.com/AlchemyCMS/alchemy_cms/pull/3217) ([mamhoff](https://github.com/mamhoff))
|
74
|
+
- Stop testing Rails 7.0 [#3216](https://github.com/AlchemyCMS/alchemy_cms/pull/3216) ([mamhoff](https://github.com/mamhoff))
|
75
|
+
- Ransack filters [#3215](https://github.com/AlchemyCMS/alchemy_cms/pull/3215) ([mamhoff](https://github.com/mamhoff))
|
76
|
+
- Use `Alchemy.config.show_page_searchable_checkbox` [#3214](https://github.com/AlchemyCMS/alchemy_cms/pull/3214) ([tvdeyen](https://github.com/tvdeyen))
|
77
|
+
- Allow is_safe_redirect_path to recognize customized admin path [#3212](https://github.com/AlchemyCMS/alchemy_cms/pull/3212) ([rabbitbike](https://github.com/rabbitbike))
|
78
|
+
- Resource "Download CSV" link: Use all filter params [#3209](https://github.com/AlchemyCMS/alchemy_cms/pull/3209) ([mamhoff](https://github.com/mamhoff))
|
79
|
+
- Use editable resource attributes for resource_params [#3208](https://github.com/AlchemyCMS/alchemy_cms/pull/3208) ([tvdeyen](https://github.com/tvdeyen))
|
80
|
+
- Fix link dialog for links with url scheme mailto [#3204](https://github.com/AlchemyCMS/alchemy_cms/pull/3204) ([tvdeyen](https://github.com/tvdeyen))
|
81
|
+
- Fix hidden element style [#3203](https://github.com/AlchemyCMS/alchemy_cms/pull/3203) ([tvdeyen](https://github.com/tvdeyen))
|
82
|
+
- CI: Use own script to check changes files [#3198](https://github.com/AlchemyCMS/alchemy_cms/pull/3198) ([tvdeyen](https://github.com/tvdeyen))
|
83
|
+
- Only set elementEditor dirty if present during assignment [#3195](https://github.com/AlchemyCMS/alchemy_cms/pull/3195) ([tvdeyen](https://github.com/tvdeyen))
|
84
|
+
- Prevent content overflowing in tinymce editor fullscreen mode [#3194](https://github.com/AlchemyCMS/alchemy_cms/pull/3194) ([rabbitbike](https://github.com/rabbitbike))
|
85
|
+
- Fix image cropper [#3192](https://github.com/AlchemyCMS/alchemy_cms/pull/3192) ([tvdeyen](https://github.com/tvdeyen))
|
86
|
+
- Deprecate `Alchemy.enable_searchable` for `Alchemy.config.show_page_searchable_checkbox` [#3188](https://github.com/AlchemyCMS/alchemy_cms/pull/3188) ([mamhoff](https://github.com/mamhoff))
|
87
|
+
- Add Alchemy.config and DSL for type-safe configuration [#3178](https://github.com/AlchemyCMS/alchemy_cms/pull/3178) ([mamhoff](https://github.com/mamhoff))
|
88
|
+
|
89
|
+
## 7.4.6 (2025-27-06)
|
90
|
+
|
91
|
+
- [7.4-stable] Fix multi language picture descriptions [#3293](https://github.com/AlchemyCMS/alchemy_cms/pull/3293) ([alchemycms-bot](https://github.com/alchemycms-bot))
|
92
|
+
- [7.4-stable] Add server error turbo_stream template [#3292](https://github.com/AlchemyCMS/alchemy_cms/pull/3292) ([alchemycms-bot](https://github.com/alchemycms-bot))
|
93
|
+
- [7.4-stable] Remove non visual custom elements after connect [#3291](https://github.com/AlchemyCMS/alchemy_cms/pull/3291) ([alchemycms-bot](https://github.com/alchemycms-bot))
|
94
|
+
|
3
95
|
## 7.4.5 (2025-06-04)
|
4
96
|
|
5
97
|
- [7.4] Fix attachment overlay list overflow [#3261](https://github.com/AlchemyCMS/alchemy_cms/pull/3261) ([tvdeyen](https://github.com/tvdeyen))
|
data/Gemfile
CHANGED
@@ -15,17 +15,22 @@ if ENV["DB"] == "mysql" || ENV["DB"] == "mariadb"
|
|
15
15
|
end
|
16
16
|
gem "pg", "~> 1.0" if ENV["DB"] == "postgresql"
|
17
17
|
|
18
|
-
gem "alchemy_i18n",
|
18
|
+
gem "alchemy_i18n", github: "AlchemyCMS/alchemy_i18n", branch: "main"
|
19
|
+
|
20
|
+
if ENV["ALCHEMY_STORAGE_ADAPTER"] == "active_storage"
|
21
|
+
gem "ruby-vips"
|
22
|
+
end
|
19
23
|
|
20
24
|
group :development, :test do
|
21
|
-
gem "execjs", "~> 2.
|
25
|
+
gem "execjs", "~> 2.10.0"
|
22
26
|
gem "rubocop", require: false
|
23
27
|
gem "standard", "~> 1.25", require: false
|
24
28
|
|
29
|
+
# Still need Sprockets for tests
|
30
|
+
gem "sprockets", "~> 4.2", ">= 4.2.1", require: false
|
31
|
+
|
25
32
|
if ENV["GITHUB_ACTIONS"]
|
26
33
|
gem "simplecov-cobertura", "~> 2.1"
|
27
|
-
# Necessary because GH Actions gem cache does not have this "Bundled with Ruby" gem installed
|
28
|
-
gem "rexml", "~> 3.2.4"
|
29
34
|
|
30
35
|
# https://github.com/hotwired/turbo-rails/issues/512
|
31
36
|
if rails_version == "7.1"
|
@@ -59,13 +64,15 @@ end
|
|
59
64
|
# Necessary until https://github.com/mikel/mail/pull/1439
|
60
65
|
# got merged and released.
|
61
66
|
if Gem.ruby_version >= Gem::Version.new("3.1.0")
|
62
|
-
gem "net-smtp", "~> 0.
|
67
|
+
gem "net-smtp", "~> 0.5.1", require: false
|
63
68
|
end
|
64
69
|
|
65
70
|
gem "web-console", "~> 4.2", group: :development
|
66
71
|
|
67
|
-
gem "rails_live_reload", "~> 0.
|
72
|
+
gem "rails_live_reload", "~> 0.5.0"
|
68
73
|
|
69
74
|
gem "dartsass-rails", "~> 0.5.0"
|
70
75
|
|
76
|
+
gem "propshaft", "~> 1.0"
|
77
|
+
|
71
78
|
gem "gem-release", "~> 2.2"
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
[](#backers)
|
12
12
|
[](#sponsors)
|
13
|
+
[](https://www.codetriage.com/alchemycms/alchemy_cms)
|
13
14
|
|
14
15
|
<img src="./app/assets/images/alchemy/alchemy-logo.svg" width=300>
|
15
16
|
|
@@ -17,7 +18,7 @@ Alchemy is an open source CMS engine written in Ruby on Rails.
|
|
17
18
|
|
18
19
|
Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [guidelines](https://guides.alchemy-cms.com).
|
19
20
|
|
20
|
-
**CAUTION: This main branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (7.
|
21
|
+
**CAUTION: This main branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (7.3-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/7.3-stable).**
|
21
22
|
|
22
23
|
## 🏆 Main sponsor
|
23
24
|
|
@@ -43,14 +44,14 @@ Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [gu
|
|
43
44
|
|
44
45
|
## 🎮 Demo
|
45
46
|
|
46
|
-
Visit the existing demo at https://alchemy-
|
47
|
+
Visit the existing demo at https://demo.alchemy-cms.com/
|
47
48
|
|
48
49
|
- Login: `demo`
|
49
50
|
- Password: `demo123`
|
50
51
|
|
51
52
|
## 🚂 Rails Version
|
52
53
|
|
53
|
-
**This version of AlchemyCMS runs with Rails 7.0
|
54
|
+
**This version of AlchemyCMS runs with >= Rails 7.0**
|
54
55
|
|
55
56
|
* For a Rails 6.1 compatible version use the [`7.0-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/7.0-stable).
|
56
57
|
* For a Rails 6.0 compatible version use the [`6.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/6.1-stable).
|
@@ -66,7 +67,9 @@ Visit the existing demo at https://alchemy-demo.fly.dev/
|
|
66
67
|
|
67
68
|
## 💎 Ruby Version
|
68
69
|
|
69
|
-
Alchemy runs with Ruby >=
|
70
|
+
Alchemy runs with Ruby >= 3.1.0.
|
71
|
+
|
72
|
+
For a Ruby 3.0 compatible version use the [`7.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/7.2-stable).
|
70
73
|
|
71
74
|
For a Ruby 2.4 compatible version use the [`5.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/5.2-stable).
|
72
75
|
|
@@ -243,7 +246,7 @@ $ bin/rake alchemy:upgrade
|
|
243
246
|
Alchemy will print out useful information after running the automated tasks that help a smooth upgrade path.
|
244
247
|
So please **take your time and read them**.
|
245
248
|
|
246
|
-
Always be sure to keep an eye on the
|
249
|
+
Always be sure to keep an eye on the output of your Rails app when starting. There will probably be useful information about deprecations.
|
247
250
|
|
248
251
|
Also, `git diff` is your friend.
|
249
252
|
|
@@ -411,7 +414,12 @@ $ bundle exec rake release
|
|
411
414
|
## ✍️ Authors
|
412
415
|
|
413
416
|
* Thomas von Deyen: <https://github.com/tvdeyen>
|
417
|
+
* Martin Meyerhoff: <https://github.com/mamhoff>
|
418
|
+
* Sascha Karnatz: <https://github.com/sascha-karnatz>
|
414
419
|
* Robin Böning: <https://github.com/robinboening>
|
420
|
+
|
421
|
+
### Alumni
|
422
|
+
|
415
423
|
* Marc Schettke: <https://github.com/masche842>
|
416
424
|
* Hendrik Mans: <https://github.com/hmans>
|
417
425
|
* Carsten Fregin: <https://github.com/cfregin>
|
data/alchemy_cms.gemspec
CHANGED
@@ -19,6 +19,10 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/|bun\.lockdb|package\.json|^\.}) }
|
20
20
|
gem.require_paths = ["lib"]
|
21
21
|
|
22
|
+
gem.metadata["homepage_uri"] = gem.homepage
|
23
|
+
gem.metadata["source_code_uri"] = "https://github.com/AlchemyCMS/alchemy_cms"
|
24
|
+
gem.metadata["changelog_uri"] = "https://github.com/AlchemyCMS/alchemy_cms/blob/main/CHANGELOG.md"
|
25
|
+
|
22
26
|
%w[
|
23
27
|
actionmailer
|
24
28
|
actionpack
|
@@ -26,10 +30,11 @@ Gem::Specification.new do |gem|
|
|
26
30
|
activejob
|
27
31
|
activemodel
|
28
32
|
activerecord
|
33
|
+
activestorage
|
29
34
|
activesupport
|
30
35
|
railties
|
31
36
|
].each do |rails_gem|
|
32
|
-
gem.add_runtime_dependency rails_gem, [">= 7.
|
37
|
+
gem.add_runtime_dependency rails_gem, [">= 7.1", "< 8.1"]
|
33
38
|
end
|
34
39
|
|
35
40
|
gem.add_runtime_dependency "active_model_serializers", ["~> 0.10.14"]
|
@@ -38,14 +43,13 @@ Gem::Specification.new do |gem|
|
|
38
43
|
gem.add_runtime_dependency "cancancan", [">= 2.1", "< 4.0"]
|
39
44
|
gem.add_runtime_dependency "csv", ["~> 3.3"]
|
40
45
|
gem.add_runtime_dependency "dragonfly", ["~> 1.4"]
|
41
|
-
gem.add_runtime_dependency "dragonfly_svg", ["~> 0.0.4"]
|
42
46
|
gem.add_runtime_dependency "gutentag", ["~> 2.2", ">= 2.2.1"]
|
43
|
-
gem.add_runtime_dependency "
|
47
|
+
gem.add_runtime_dependency "image_processing", ["~> 1.14"]
|
48
|
+
gem.add_runtime_dependency "importmap-rails", ["~> 2.0"]
|
44
49
|
gem.add_runtime_dependency "kaminari", ["~> 1.1"]
|
45
50
|
gem.add_runtime_dependency "originator", ["~> 3.1"]
|
46
51
|
gem.add_runtime_dependency "ransack", [">= 1.8", "< 5.0"]
|
47
52
|
gem.add_runtime_dependency "simple_form", [">= 4.0", "< 6"]
|
48
|
-
gem.add_runtime_dependency "sprockets-rails", [">= 3.5", "< 4"]
|
49
53
|
gem.add_runtime_dependency "turbo-rails", [">= 1.4", "< 2.1"]
|
50
54
|
gem.add_runtime_dependency "view_component", ["~> 3.0"]
|
51
55
|
|
@@ -56,7 +60,12 @@ Gem::Specification.new do |gem|
|
|
56
60
|
gem.add_development_dependency "puma", ["~> 6.0"]
|
57
61
|
gem.add_development_dependency "rails-controller-testing", ["~> 1.0"]
|
58
62
|
gem.add_development_dependency "rspec-activemodel-mocks", ["~> 1.0"]
|
59
|
-
|
63
|
+
case ENV.fetch("RAILS_VERSION", "8.0")
|
64
|
+
when "7.1"
|
65
|
+
gem.add_development_dependency "rspec-rails", ["~> 7.1"]
|
66
|
+
else
|
67
|
+
gem.add_development_dependency "rspec-rails", ["~> 8.0"]
|
68
|
+
end
|
60
69
|
gem.add_development_dependency "simplecov", ["~> 0.20"]
|
61
70
|
gem.add_development_dependency "selenium-webdriver", ["~> 4.10"]
|
62
71
|
gem.add_development_dependency "webmock", ["~> 3.3"]
|
@@ -1 +1 @@
|
|
1
|
-
.page-select--page,.page-select--page-name,.page-select--page-urlname{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.page-select--page{--size-1: var(--spacing-0, 2px);--size-2: var(--spacing-1, 4px);--size-3: var(--spacing-2, 8px);--small-font-size: var(--font-size_small, 10px);--grey: var(--color-grey_light, hsl(0deg, 0%, 94%));--color: var(--color
|
1
|
+
.page-select--page,.page-select--page-name,.page-select--page-urlname{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.page-select--page{--size-1: var(--spacing-0, 2px);--size-2: var(--spacing-1, 4px);--size-3: var(--spacing-2, 8px);--small-font-size: var(--font-size_small, 10px);--grey: var(--color-grey_light, hsl(0deg, 0%, 94%));--color: var(--text-color, hsla(224deg, 23%, 26%, 0.8));--highlight-color: var(--grey);display:flex;flex-direction:column;color:var(--color)}.page-select--page alchemy-icon{margin-right:var(--size-2)}.page-select--page alchemy-icon .icon{fill:currentColor}.select2-highlighted .page-select--page{color:var(--highlight-color)}.page-select--top,.page-select--bottom{display:flex;flex-direction:row;align-items:center}.page-select--bottom{font-size:var(--small-font-size);padding-left:var(--size-1)}.page-select--page-urlname{color:var(--text-color-muted, hsla(224, 23%, 26%, 0.5));padding-right:var(--size-2)}.select2-highlighted .page-select--page-urlname{color:var(--highlight-color)}.page-select--language-code{--bg-color: var(--grey);--highlight-bg-color: var(--color-white, hsl(0deg, 0%, 100%));--border-radius: var(--border-radius_medium, 3px);display:inline-block;background-color:var(--bg-color);margin-left:auto;border-radius:var(--border-radius);padding:var(--size-1) var(--size-2);text-transform:uppercase}.select2-highlighted .page-select--language-code{color:var(--color);background-color:var(--highlight-bg-color)}.page-select--site-name{margin-left:auto;padding:var(--size-2) 0 var(--size-2) var(--size-3);font-size:var(--small-font-size)}
|
@@ -1 +1 @@
|
|
1
|
-
div#main_menu,div#top_menu,div#corner,div#flash_notices,div.pagination span,div.pagination a{display:none}div#archive_all{padding:0}span.icon.true:before{content:"x"}div.pagination{text-align:right}div.pagination em.current{border:none;text-shadow:none}div.pagination em:before{content:"Page "}
|
1
|
+
div#main_menu,div#top_menu,div#corner,div#flash_notices,div.pagination span,div.pagination a{display:none}div#archive_all{padding:0}span.icon.true:before{content:"x"}div.pagination{text-align:right}div.pagination em.current{border:none;text-shadow:none}div.pagination em:before{content:"Page "}
|