alchemy_cms 4.4.4 → 5.0.0.beta2
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/.github/workflows/ci.yml +56 -18
- data/.github/workflows/stale.yml +1 -1
- data/.gitignore +20 -2
- data/.hound.yml +2 -1
- data/.prettierrc +6 -0
- data/.rubocop.yml +33 -20
- data/CHANGELOG.md +121 -0
- data/Gemfile +24 -22
- data/README.md +31 -19
- data/Rakefile +10 -8
- data/alchemy_cms.gemspec +7 -5
- data/app/assets/javascripts/alchemy/admin.js +1 -2
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +2 -1
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -2
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +5 -5
- data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +17 -17
- data/app/assets/javascripts/alchemy/node_select.js +39 -0
- data/app/assets/javascripts/alchemy/templates/index.js +2 -0
- data/app/assets/javascripts/alchemy/templates/node.hbs +16 -0
- data/app/assets/javascripts/alchemy/templates/node_folder.hbs +3 -0
- data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
- data/app/assets/stylesheets/alchemy/_mixins.scss +2 -3
- data/app/assets/stylesheets/alchemy/_variables.scss +2 -2
- data/app/assets/stylesheets/alchemy/admin.scss +3 -2
- data/app/assets/stylesheets/alchemy/base.scss +0 -1
- data/app/assets/stylesheets/alchemy/elements.scss +1 -1
- data/app/assets/stylesheets/alchemy/forms.scss +5 -0
- data/app/assets/stylesheets/alchemy/lists.scss +0 -8
- data/app/assets/stylesheets/alchemy/node-select.scss +43 -0
- data/app/assets/stylesheets/alchemy/nodes.scss +6 -1
- data/app/assets/stylesheets/alchemy/sitemap.scss +63 -21
- data/app/assets/stylesheets/alchemy/tables.scss +1 -24
- data/app/controllers/alchemy/admin/attachments_controller.rb +8 -7
- data/app/controllers/alchemy/admin/base_controller.rb +13 -33
- data/app/controllers/alchemy/admin/clipboard_controller.rb +5 -4
- data/app/controllers/alchemy/admin/contents_controller.rb +1 -2
- data/app/controllers/alchemy/admin/dashboard_controller.rb +10 -9
- data/app/controllers/alchemy/admin/elements_controller.rb +20 -20
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +12 -14
- data/app/controllers/alchemy/admin/languages_controller.rb +35 -2
- data/app/controllers/alchemy/admin/layoutpages_controller.rb +5 -2
- data/app/controllers/alchemy/admin/nodes_controller.rb +5 -14
- data/app/controllers/alchemy/admin/pages_controller.rb +50 -63
- data/app/controllers/alchemy/admin/pictures_controller.rb +16 -16
- data/app/controllers/alchemy/admin/resources_controller.rb +21 -13
- data/app/controllers/alchemy/admin/sites_controller.rb +18 -0
- data/app/controllers/alchemy/admin/styleguide_controller.rb +1 -0
- data/app/controllers/alchemy/admin/tags_controller.rb +5 -3
- data/app/controllers/alchemy/admin/trash_controller.rb +6 -6
- data/app/controllers/alchemy/api/base_controller.rb +2 -2
- data/app/controllers/alchemy/api/contents_controller.rb +4 -4
- data/app/controllers/alchemy/api/elements_controller.rb +8 -8
- data/app/controllers/alchemy/api/nodes_controller.rb +65 -0
- data/app/controllers/alchemy/api/pages_controller.rb +15 -22
- data/app/controllers/alchemy/attachments_controller.rb +5 -5
- data/app/controllers/alchemy/base_controller.rb +10 -9
- data/app/controllers/alchemy/messages_controller.rb +16 -23
- data/app/controllers/alchemy/pages_controller.rb +13 -11
- data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +3 -2
- data/app/controllers/concerns/alchemy/admin/current_language.rb +23 -0
- data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +5 -5
- data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +4 -4
- data/app/controllers/concerns/alchemy/page_redirects.rb +2 -9
- data/app/controllers/concerns/alchemy/site_redirects.rb +2 -2
- data/app/decorators/alchemy/content_editor.rb +55 -0
- data/app/decorators/alchemy/element_editor.rb +39 -0
- data/app/helpers/alchemy/admin/attachments_helper.rb +6 -6
- data/app/helpers/alchemy/admin/base_helper.rb +36 -35
- data/app/helpers/alchemy/admin/contents_helper.rb +3 -3
- data/app/helpers/alchemy/admin/elements_helper.rb +3 -88
- data/app/helpers/alchemy/admin/essences_helper.rb +8 -117
- data/app/helpers/alchemy/admin/form_helper.rb +1 -1
- data/app/helpers/alchemy/admin/navigation_helper.rb +24 -23
- data/app/helpers/alchemy/admin/pages_helper.rb +12 -12
- data/app/helpers/alchemy/admin/pictures_helper.rb +4 -6
- data/app/helpers/alchemy/admin/tags_helper.rb +8 -7
- data/app/helpers/alchemy/base_helper.rb +13 -8
- data/app/helpers/alchemy/elements_block_helper.rb +2 -31
- data/app/helpers/alchemy/elements_helper.rb +12 -58
- data/app/helpers/alchemy/pages_helper.rb +24 -174
- data/app/helpers/alchemy/url_helper.rb +2 -1
- data/app/mailers/alchemy/base_mailer.rb +1 -1
- data/app/mailers/alchemy/messages_mailer.rb +1 -1
- data/app/models/alchemy/attachment.rb +20 -18
- data/app/models/alchemy/base_record.rb +2 -5
- data/app/models/alchemy/content.rb +33 -52
- data/app/models/alchemy/content/factory.rb +24 -31
- data/app/models/alchemy/element.rb +45 -53
- data/app/models/alchemy/element/definitions.rb +4 -4
- data/app/models/alchemy/element/element_contents.rb +9 -6
- data/app/models/alchemy/element/element_essences.rb +4 -3
- data/app/models/alchemy/element/presenters.rb +3 -2
- data/app/models/alchemy/element_to_page.rb +1 -1
- data/app/models/alchemy/essence_boolean.rb +1 -3
- data/app/models/alchemy/essence_date.rb +2 -3
- data/app/models/alchemy/essence_file.rb +4 -4
- data/app/models/alchemy/essence_html.rb +1 -3
- data/app/models/alchemy/essence_link.rb +1 -3
- data/app/models/alchemy/essence_node.rb +18 -0
- data/app/models/alchemy/essence_page.rb +3 -16
- data/app/models/alchemy/essence_picture.rb +17 -16
- data/app/models/alchemy/essence_picture_view.rb +7 -6
- data/app/models/alchemy/essence_richtext.rb +1 -3
- data/app/models/alchemy/essence_select.rb +1 -3
- data/app/models/alchemy/essence_text.rb +0 -2
- data/app/models/alchemy/folded_page.rb +1 -0
- data/app/models/alchemy/language.rb +21 -35
- data/app/models/alchemy/language/code.rb +4 -4
- data/app/models/alchemy/legacy_page_url.rb +1 -1
- data/app/models/alchemy/message.rb +3 -3
- data/app/models/alchemy/node.rb +55 -9
- data/app/models/alchemy/page.rb +53 -123
- data/app/models/alchemy/page/fixed_attributes.rb +3 -2
- data/app/models/alchemy/page/page_elements.rb +35 -44
- data/app/models/alchemy/page/page_naming.rb +20 -70
- data/app/models/alchemy/page/page_natures.rb +7 -34
- data/app/models/alchemy/page/page_scopes.rb +23 -29
- data/app/models/alchemy/page/url_path.rb +64 -0
- data/app/models/alchemy/picture.rb +40 -30
- data/app/models/alchemy/picture/preprocessor.rb +26 -0
- data/app/models/alchemy/picture/transformations.rb +9 -7
- data/app/models/alchemy/picture/url.rb +5 -5
- data/app/models/alchemy/site.rb +6 -36
- data/app/models/alchemy/site/layout.rb +2 -2
- data/app/models/concerns/alchemy/touch_elements.rb +24 -0
- data/app/serializers/alchemy/content_serializer.rb +0 -3
- data/app/serializers/alchemy/essence_boolean_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_date_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_file_serializer.rb +4 -2
- data/app/serializers/alchemy/essence_html_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_link_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_picture_serializer.rb +5 -4
- data/app/serializers/alchemy/essence_richtext_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_select_serializer.rb +3 -3
- data/app/serializers/alchemy/essence_text_serializer.rb +5 -4
- data/app/serializers/alchemy/node_serializer.rb +14 -0
- data/app/serializers/alchemy/page_serializer.rb +2 -1
- data/app/serializers/alchemy/page_tree_serializer.rb +11 -14
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -2
- data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +1 -2
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +4 -4
- data/app/views/alchemy/admin/contents/create.js.erb +1 -3
- data/app/views/alchemy/admin/elements/_element.html.erb +9 -18
- data/app/views/alchemy/admin/elements/create.js.erb +1 -1
- data/app/views/alchemy/admin/elements/fold.js.erb +1 -1
- data/app/views/alchemy/admin/elements/index.html.erb +3 -3
- data/app/views/alchemy/admin/essence_files/assign.js.erb +1 -6
- data/app/views/alchemy/admin/essence_files/edit.html.erb +1 -1
- data/app/views/alchemy/admin/essence_pictures/assign.js.erb +1 -7
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +1 -1
- data/app/views/alchemy/admin/essence_pictures/edit.html.erb +7 -7
- data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -1
- data/app/views/alchemy/admin/languages/_form.html.erb +5 -5
- data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
- data/app/views/alchemy/admin/languages/edit.html.erb +1 -0
- data/app/views/alchemy/admin/languages/index.html.erb +23 -4
- data/app/views/alchemy/admin/languages/new.html.erb +1 -0
- data/app/views/alchemy/admin/layoutpages/index.html.erb +6 -2
- data/app/views/alchemy/admin/nodes/_form.html.erb +23 -15
- data/app/views/alchemy/admin/nodes/_node.html.erb +5 -19
- data/app/views/alchemy/admin/nodes/index.html.erb +3 -18
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +0 -8
- data/app/views/alchemy/admin/pages/_form.html.erb +1 -2
- data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -0
- data/app/views/alchemy/admin/pages/_page.html.erb +14 -25
- data/app/views/alchemy/admin/pages/_page_infos.html.erb +0 -4
- data/app/views/alchemy/admin/pages/_sitemap.html.erb +6 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pages/info.html.erb +0 -9
- data/app/views/alchemy/admin/pages/unlock.js.erb +13 -6
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +0 -2
- data/app/views/alchemy/admin/partials/_routes.html.erb +8 -0
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -5
- data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -2
- data/app/views/alchemy/admin/pictures/index.html.erb +18 -3
- data/app/views/alchemy/admin/resources/_resource.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_table.html.erb +2 -2
- data/app/views/alchemy/admin/sites/_form.html.erb +8 -0
- data/app/views/alchemy/admin/sites/edit.html.erb +1 -0
- data/app/views/alchemy/admin/sites/index.html.erb +21 -9
- data/app/views/alchemy/admin/sites/new.html.erb +1 -0
- data/app/views/alchemy/admin/tags/index.html.erb +2 -2
- data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +10 -12
- data/app/views/alchemy/essences/_essence_date_editor.html.erb +11 -8
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -17
- data/app/views/alchemy/essences/_essence_html_editor.html.erb +8 -5
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +18 -15
- data/app/views/alchemy/essences/_essence_node_editor.html.erb +27 -0
- data/app/views/alchemy/essences/_essence_node_view.html.erb +1 -0
- data/app/views/alchemy/essences/_essence_page_editor.html.erb +14 -11
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +22 -20
- data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +10 -7
- data/app/views/alchemy/essences/_essence_select_editor.html.erb +12 -16
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +18 -17
- data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +6 -11
- data/app/views/alchemy/pages/show.rss.builder +3 -2
- data/app/views/layouts/alchemy/admin.html.erb +1 -0
- data/babel.config.js +12 -0
- data/bin/rails +5 -4
- data/config/alchemy/config.yml +23 -22
- data/config/brakeman.ignore +1 -1
- data/config/initializers/assets.rb +2 -1
- data/config/initializers/dragonfly.rb +2 -1
- data/config/initializers/mime_types.rb +1 -0
- data/config/initializers/mini_profiler.rb +3 -2
- data/config/initializers/simple_form.rb +6 -6
- data/config/locales/alchemy.en.yml +37 -14
- data/config/routes.rb +32 -28
- data/config/spring.rb +3 -2
- data/db/migrate/20200226213334_alchemy_four_point_four.rb +313 -0
- data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +11 -0
- data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +28 -0
- data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +8 -0
- data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +27 -0
- data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +6 -0
- data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +24 -0
- data/lib/alchemy/admin/locale.rb +3 -1
- data/lib/alchemy/admin/preview_url.rb +85 -0
- data/lib/alchemy/auth_accessors.rb +8 -7
- data/lib/alchemy/cache_digests/template_tracker.rb +5 -4
- data/lib/alchemy/config.rb +26 -2
- data/lib/alchemy/configuration_methods.rb +3 -1
- data/lib/alchemy/controller_actions.rb +6 -5
- data/lib/alchemy/deprecation.rb +2 -1
- data/lib/alchemy/elements_finder.rb +5 -5
- data/lib/alchemy/engine.rb +23 -8
- data/lib/alchemy/errors.rb +0 -7
- data/lib/alchemy/essence.rb +17 -16
- data/lib/alchemy/filetypes.rb +5 -5
- data/lib/alchemy/forms/builder.rb +4 -4
- data/lib/alchemy/hints.rb +1 -1
- data/lib/alchemy/i18n.rb +2 -1
- data/lib/alchemy/modules.rb +12 -12
- data/lib/alchemy/name_conversions.rb +5 -5
- data/lib/alchemy/on_page_layout/callbacks_runner.rb +1 -0
- data/lib/alchemy/page_layout.rb +15 -12
- data/lib/alchemy/paths.rb +1 -1
- data/lib/alchemy/permissions.rb +7 -6
- data/lib/alchemy/resource.rb +23 -13
- data/lib/alchemy/resources_helper.rb +12 -18
- data/lib/alchemy/routing_constraints.rb +1 -1
- data/lib/alchemy/seeder.rb +42 -14
- data/lib/alchemy/shell.rb +13 -10
- data/lib/alchemy/taggable.rb +1 -0
- data/lib/alchemy/tasks/tidy.rb +4 -3
- data/lib/alchemy/test_support/config_stubbing.rb +1 -0
- data/lib/alchemy/test_support/essence_shared_examples.rb +72 -72
- data/lib/alchemy/test_support/factories.rb +1 -1
- data/lib/alchemy/test_support/factories/attachment_factory.rb +5 -5
- data/lib/alchemy/test_support/factories/content_factory.rb +6 -6
- data/lib/alchemy/test_support/factories/dummy_user_factory.rb +7 -7
- data/lib/alchemy/test_support/factories/element_factory.rb +9 -9
- data/lib/alchemy/test_support/factories/essence_file_factory.rb +3 -3
- data/lib/alchemy/test_support/factories/essence_page_factory.rb +3 -3
- data/lib/alchemy/test_support/factories/essence_picture_factory.rb +4 -4
- data/lib/alchemy/test_support/factories/essence_text_factory.rb +3 -3
- data/lib/alchemy/test_support/factories/language_factory.rb +21 -14
- data/lib/alchemy/test_support/factories/node_factory.rb +8 -8
- data/lib/alchemy/test_support/factories/page_factory.rb +15 -27
- data/lib/alchemy/test_support/factories/picture_factory.rb +5 -5
- data/lib/alchemy/test_support/factories/site_factory.rb +7 -6
- data/lib/alchemy/test_support/integration_helpers.rb +1 -0
- data/lib/alchemy/test_support/shared_contexts.rb +5 -4
- data/lib/alchemy/test_support/shared_uploader_examples.rb +4 -3
- data/lib/alchemy/tinymce.rb +15 -13
- data/lib/alchemy/upgrader.rb +8 -7
- data/lib/alchemy/upgrader/five_point_zero.rb +41 -0
- data/lib/alchemy/upgrader/tasks/element_views_updater.rb +4 -4
- data/lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb +29 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +52 -50
- data/lib/{rails/generators → generators}/alchemy/base.rb +5 -4
- data/lib/{rails/generators → generators}/alchemy/elements/elements_generator.rb +13 -9
- data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.haml +0 -0
- data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.slim +0 -0
- data/lib/{rails/generators → generators}/alchemy/essence/essence_generator.rb +15 -13
- data/lib/generators/alchemy/essence/templates/editor.html.erb +17 -0
- data/lib/{rails/generators → generators}/alchemy/essence/templates/view.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/_article.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/_standard.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/alchemy.en.yml +0 -0
- data/lib/generators/alchemy/install/files/alchemy_admin.js +1 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/all.css +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/all.js +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/application.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/files/article.scss +0 -0
- data/lib/generators/alchemy/install/install_generator.rb +110 -0
- data/lib/{rails/generators → generators}/alchemy/install/templates/dragonfly.rb.tt +0 -0
- data/lib/{rails/generators → generators}/alchemy/install/templates/elements.yml.tt +0 -0
- data/lib/generators/alchemy/install/templates/menus.yml.tt +8 -0
- data/lib/{rails/generators → generators}/alchemy/install/templates/page_layouts.yml.tt +0 -0
- data/lib/{rails/generators → generators}/alchemy/menus/menus_generator.rb +5 -5
- data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.erb +1 -4
- data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.haml +1 -4
- data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.slim +1 -4
- data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.erb +1 -1
- data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.haml +2 -2
- data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.slim +2 -2
- data/lib/{rails/generators → generators}/alchemy/module/module_generator.rb +3 -2
- data/lib/{rails/generators → generators}/alchemy/module/templates/ability.rb.tt +0 -0
- data/lib/{rails/generators → generators}/alchemy/module/templates/controller.rb.tt +0 -0
- data/lib/{rails/generators → generators}/alchemy/module/templates/module_config.rb.tt +0 -0
- data/lib/{rails/generators → generators}/alchemy/page_layouts/page_layouts_generator.rb +5 -4
- data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.haml +0 -0
- data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.slim +0 -0
- data/lib/{rails/generators → generators}/alchemy/site_layouts/site_layouts_generator.rb +4 -2
- data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.erb +0 -0
- data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.haml +0 -0
- data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.slim +0 -0
- data/lib/{rails/generators → generators}/alchemy/views/views_generator.rb +7 -6
- data/lib/kaminari/scoped_pagination_url_helper.rb +1 -0
- data/lib/tasks/alchemy/db.rake +3 -19
- data/lib/tasks/alchemy/install.rake +3 -2
- data/lib/tasks/alchemy/tidy.rake +9 -8
- data/lib/tasks/alchemy/upgrade.rake +28 -105
- data/package.json +45 -0
- data/package/admin.js +14 -0
- data/package/src/__tests__/i18n.spec.js +70 -0
- data/package/src/i18n.js +48 -0
- data/package/src/node_tree.js +72 -0
- data/package/src/translations.js +32 -0
- data/package/src/utils/__tests__/ajax.spec.js +124 -0
- data/package/src/utils/__tests__/events.spec.js +38 -0
- data/package/src/utils/ajax.js +48 -0
- data/package/src/utils/events.js +16 -0
- data/vendor/assets/fonts/fa-regular-400.eot +0 -0
- data/vendor/assets/fonts/fa-regular-400.svg +798 -358
- data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
- data/vendor/assets/fonts/fa-solid-900.eot +0 -0
- data/vendor/assets/fonts/fa-solid-900.svg +4933 -1408
- data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
- data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +1 -2
- data/vendor/assets/stylesheets/fontawesome/_core.scss +5 -0
- data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/_icons.scss +651 -2
- data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -1
- data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +3 -2
- data/vendor/assets/stylesheets/fontawesome/_stacked.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/_variables.scss +662 -9
- data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +2 -2
- data/vendor/assets/stylesheets/fontawesome/regular.scss +23 -0
- data/vendor/assets/stylesheets/fontawesome/solid.scss +24 -0
- metadata +131 -83
- data/app/assets/javascripts/alchemy/alchemy.i18n.js.coffee +0 -32
- data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +0 -29
- data/app/helpers/alchemy/essences_helper.rb +0 -119
- data/app/models/concerns/alchemy/content_touching.rb +0 -23
- data/app/serializers/alchemy/legacy_element_serializer.rb +0 -15
- data/app/views/alchemy/admin/contents/_missing.html.erb +0 -17
- data/app/views/alchemy/admin/pages/_menu_fields.html.erb +0 -33
- data/app/views/alchemy/admin/pages/configure_external.html.erb +0 -32
- data/app/views/alchemy/elements/_editor_not_found.html.erb +0 -4
- data/app/views/alchemy/navigation/_image_link.html.erb +0 -14
- data/app/views/alchemy/navigation/_link.html.erb +0 -19
- data/app/views/alchemy/navigation/_renderer.html.erb +0 -29
- data/db/migrate/20180226123013_alchemy_four_point_zero.rb +0 -363
- data/db/migrate/20180227224537_migrate_tags_to_gutentag.rb +0 -41
- data/db/migrate/20180519204655_add_fixed_to_alchemy_elements.rb +0 -6
- data/db/migrate/20191016073858_create_alchemy_essence_pages.rb +0 -8
- data/db/migrate/20191029212236_create_alchemy_nodes.rb +0 -24
- data/db/migrate/20200226081535_add_site_id_to_alchemy_nodes.rb +0 -15
- data/lib/alchemy/ssl_protection.rb +0 -32
- data/lib/alchemy/tasks/helpers.rb +0 -81
- data/lib/alchemy/test_support/controller_requests.rb +0 -93
- data/lib/alchemy/upgrader/four_point_four.rb +0 -52
- data/lib/alchemy/upgrader/four_point_one.rb +0 -42
- data/lib/alchemy/upgrader/four_point_two.rb +0 -85
- data/lib/alchemy/upgrader/tasks/cells_migration.rb +0 -43
- data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +0 -148
- data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +0 -28
- data/lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb +0 -27
- data/lib/alchemy/upgrader/tasks/picture_gallery_migration.rb +0 -65
- data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +0 -210
- data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +0 -15
- data/lib/rails/generators/alchemy/install/install_generator.rb +0 -60
- data/lib/tasks/alchemy/convert.rake +0 -95
- data/vendor/assets/stylesheets/fontawesome/fa-regular.scss +0 -22
- data/vendor/assets/stylesheets/fontawesome/fa-solid.scss +0 -23
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class MigrateTagsToGutentag < ActiveRecord::Migration[5.0]
|
|
4
|
-
def up
|
|
5
|
-
return if table_exists?(:gutentag_tags)
|
|
6
|
-
|
|
7
|
-
remove_index :taggings, :taggable_id
|
|
8
|
-
remove_column :taggings, :tagger_id, :integer
|
|
9
|
-
remove_index :taggings, :taggable_type
|
|
10
|
-
remove_column :taggings, :tagger_type, :string
|
|
11
|
-
remove_index :taggings, column: [:taggable_id, :taggable_type, :context], name: 'index_taggings_on_taggable_id_and_taggable_type_and_context'
|
|
12
|
-
remove_column :taggings, :context, :string, limit: 128
|
|
13
|
-
if index_exists? :taggings, [:tag_id, :taggable_id, :taggable_type], unique: true, name: 'taggings_idx'
|
|
14
|
-
rename_index :taggings, 'taggings_idx', 'unique_taggings'
|
|
15
|
-
else
|
|
16
|
-
add_index :taggings, [:taggable_type, :taggable_id, :tag_id], unique: true, name: 'unique_taggings'
|
|
17
|
-
end
|
|
18
|
-
if index_exists? :taggings, [:taggable_id, :taggable_type], name: 'taggings_idy'
|
|
19
|
-
rename_index :taggings, 'taggings_idy', 'index_gutentag_taggings_on_taggable_id_and_taggable_type'
|
|
20
|
-
else
|
|
21
|
-
add_index :taggings, [:taggable_type, :taggable_id]
|
|
22
|
-
end
|
|
23
|
-
add_column :taggings, :updated_at, :datetime, precision: 6
|
|
24
|
-
change_column_null :taggings, :tag_id, false
|
|
25
|
-
change_column_null :taggings, :taggable_id, false
|
|
26
|
-
change_column_null :taggings, :taggable_type, false
|
|
27
|
-
change_column_null :taggings, :created_at, false, Time.current
|
|
28
|
-
change_column_null :taggings, :updated_at, false, Time.current
|
|
29
|
-
rename_table :taggings, :gutentag_taggings
|
|
30
|
-
|
|
31
|
-
change_column_null :tags, :name, false
|
|
32
|
-
add_index :tags, :taggings_count
|
|
33
|
-
rename_table :tags, :gutentag_tags
|
|
34
|
-
|
|
35
|
-
%i(alchemy_attachments alchemy_elements alchemy_pages alchemy_pictures).each do |table|
|
|
36
|
-
if column_exists? table, :cached_tag_list
|
|
37
|
-
remove_column table, :cached_tag_list
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
class CreateAlchemyNodes < ActiveRecord::Migration[5.0]
|
|
2
|
-
def change
|
|
3
|
-
create_table :alchemy_nodes do |t|
|
|
4
|
-
t.string :name
|
|
5
|
-
t.string :title
|
|
6
|
-
t.string :url
|
|
7
|
-
t.boolean :nofollow, null: false, default: false
|
|
8
|
-
t.boolean :external, null: false, default: false
|
|
9
|
-
t.boolean :folded, null: false, default: false
|
|
10
|
-
|
|
11
|
-
t.integer :parent_id, index: true
|
|
12
|
-
t.integer :lft, null: false, index: true
|
|
13
|
-
t.integer :rgt, null: false, index: true
|
|
14
|
-
t.integer :depth, null: false, default: 0
|
|
15
|
-
|
|
16
|
-
t.references :page, foreign_key: { to_table: :alchemy_pages, on_delete: :cascade }
|
|
17
|
-
t.references :language, null: false, foreign_key: { to_table: :alchemy_languages }
|
|
18
|
-
t.references :creator, index: true
|
|
19
|
-
t.references :updater, index: true
|
|
20
|
-
|
|
21
|
-
t.timestamps
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class AddSiteIdToAlchemyNodes < ActiveRecord::Migration[5.0]
|
|
4
|
-
def change
|
|
5
|
-
add_column :alchemy_nodes, :site_id, :integer, index: true
|
|
6
|
-
add_index :alchemy_nodes, :site_id
|
|
7
|
-
reversible do |dir|
|
|
8
|
-
dir.up do
|
|
9
|
-
Alchemy::Node.update_all(site_id: Alchemy::Site.first&.id)
|
|
10
|
-
change_column_null :alchemy_nodes, :site_id, false
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
add_foreign_key :alchemy_nodes, :alchemy_sites, column: :site_id, on_delete: :cascade
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Alchemy
|
|
4
|
-
module SSLProtection
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
# Enforce ssl for login and all admin modules.
|
|
8
|
-
#
|
|
9
|
-
# Default is +false+
|
|
10
|
-
#
|
|
11
|
-
# === Usage
|
|
12
|
-
#
|
|
13
|
-
# # config/alchemy/config.yml
|
|
14
|
-
# ...
|
|
15
|
-
# require_ssl: true
|
|
16
|
-
# ...
|
|
17
|
-
#
|
|
18
|
-
# === Note
|
|
19
|
-
#
|
|
20
|
-
# You have to create a ssl certificate
|
|
21
|
-
# if you want to use the ssl protection.
|
|
22
|
-
#
|
|
23
|
-
def ssl_required?
|
|
24
|
-
!Rails.env.test? && Config.get(:require_ssl)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# Redirects current request to https.
|
|
28
|
-
def enforce_ssl
|
|
29
|
-
redirect_to url_for(request.params.merge(protocol: 'https'))
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
module Alchemy
|
|
2
|
-
module Tasks
|
|
3
|
-
module Helpers
|
|
4
|
-
def database_dump_command(adapter)
|
|
5
|
-
database_command(adapter, 'dump')
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def database_import_command(adapter)
|
|
9
|
-
database_command(adapter, 'import')
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def database_config
|
|
13
|
-
raise "Could not find #{database_config_file}!" if !File.exist?(database_config_file)
|
|
14
|
-
@database_config ||= begin
|
|
15
|
-
config_file = YAML.safe_load(ERB.new(File.read(database_config_file)).result, [], [], true)
|
|
16
|
-
config_file.fetch(environment)
|
|
17
|
-
rescue KeyError
|
|
18
|
-
raise "Database configuration for #{environment} not found!"
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
def database_command(adapter, action = 'import')
|
|
25
|
-
case adapter.to_s
|
|
26
|
-
when /mysql/
|
|
27
|
-
"#{mysql_command(mysql_command_for(action))} #{database_config['database']}"
|
|
28
|
-
when /postgresql/
|
|
29
|
-
"#{postgres_command(postgres_command_for(action))} #{database_config['database']}"
|
|
30
|
-
else
|
|
31
|
-
raise ArgumentError, "Alchemy only supports #{action}ing MySQL and PostgreSQL databases. #{adapter} is not supported."
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def mysql_command(cmd = 'mysql')
|
|
36
|
-
command = [cmd]
|
|
37
|
-
if database_config['username']
|
|
38
|
-
command << "--user='#{database_config['username']}'"
|
|
39
|
-
end
|
|
40
|
-
if database_config['password']
|
|
41
|
-
command << "--password='#{database_config['password']}'"
|
|
42
|
-
end
|
|
43
|
-
if (host = database_config['host']) && (host != 'localhost')
|
|
44
|
-
command << "--host='#{host}'"
|
|
45
|
-
end
|
|
46
|
-
command.join(' ')
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def postgres_command(cmd = 'psql')
|
|
50
|
-
command = []
|
|
51
|
-
if database_config['password']
|
|
52
|
-
command << "PGPASSWORD='#{database_config['password']}'"
|
|
53
|
-
end
|
|
54
|
-
command << cmd
|
|
55
|
-
if database_config['username']
|
|
56
|
-
command << "--username='#{database_config['username']}'"
|
|
57
|
-
end
|
|
58
|
-
if (host = database_config['host']) && (host != 'localhost')
|
|
59
|
-
command << "--host='#{host}'"
|
|
60
|
-
end
|
|
61
|
-
command.join(' ')
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def mysql_command_for(action)
|
|
65
|
-
action == 'import' ? 'mysql' : 'mysqldump'
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def postgres_command_for(action)
|
|
69
|
-
action == 'import' ? 'psql' : 'pg_dump --clean'
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def database_config_file
|
|
73
|
-
"./config/database.yml"
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def environment
|
|
77
|
-
ENV['RAILS_ENV'] || 'development'
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# *There is generally no need* to use this module. Instead, in
|
|
2
|
-
# a functional/controller test against a Alchemy controller, just
|
|
3
|
-
# use standard Rails functionality by including:
|
|
4
|
-
#
|
|
5
|
-
# routes { Alchemy::Engine.routes }
|
|
6
|
-
#
|
|
7
|
-
# And then use standard Rails test `get`, `post` etc methods.
|
|
8
|
-
#
|
|
9
|
-
# Use this module to easily test Alchemy actions within Alchemy components
|
|
10
|
-
# or inside your application to test routes for the mounted Alchemy engine.
|
|
11
|
-
#
|
|
12
|
-
# Inside your spec_helper.rb, include this module inside the RSpec.configure
|
|
13
|
-
# block by doing this:
|
|
14
|
-
#
|
|
15
|
-
# require 'alchemy/test_support/controller_requests'
|
|
16
|
-
# RSpec.configure do |c|
|
|
17
|
-
# c.include Alchemy::TestSupport::ControllerRequests, type: :controller
|
|
18
|
-
# end
|
|
19
|
-
#
|
|
20
|
-
# Then, in your controller tests, you can access alchemy routes like this:
|
|
21
|
-
#
|
|
22
|
-
# require 'rails_helper'
|
|
23
|
-
#
|
|
24
|
-
# describe Alchemy::Admin::PagesController do
|
|
25
|
-
# it "can see all the pages" do
|
|
26
|
-
# alchemy_get :index
|
|
27
|
-
# end
|
|
28
|
-
# end
|
|
29
|
-
#
|
|
30
|
-
# Use alchemy_get, alchemy_post, alchemy_put or alchemy_delete to make requests
|
|
31
|
-
# to the Alchemy engine, and use regular get, post, put or delete to make
|
|
32
|
-
# requests to your application.
|
|
33
|
-
#
|
|
34
|
-
# Note: Based on Spree::TestingSupport::ControllerRequests. Thanks <3
|
|
35
|
-
#
|
|
36
|
-
# @deprecated Use Rails build in test request methods instead
|
|
37
|
-
#
|
|
38
|
-
module Alchemy
|
|
39
|
-
module TestSupport
|
|
40
|
-
module ControllerRequests
|
|
41
|
-
extend ActiveSupport::Concern
|
|
42
|
-
|
|
43
|
-
# Executes a request simulating GET HTTP method
|
|
44
|
-
# @deprecated Use Rails test `get` helper instead
|
|
45
|
-
def alchemy_get(action, parameters = nil, session = nil, flash = nil)
|
|
46
|
-
process_alchemy_action(action, parameters, session, flash, "GET")
|
|
47
|
-
end
|
|
48
|
-
deprecate alchemy_get: :get, deprecator: Alchemy::Deprecation
|
|
49
|
-
|
|
50
|
-
# Executes a request simulating POST HTTP method
|
|
51
|
-
# @deprecated Use Rails test `post` helper instead
|
|
52
|
-
def alchemy_post(action, parameters = nil, session = nil, flash = nil)
|
|
53
|
-
process_alchemy_action(action, parameters, session, flash, "POST")
|
|
54
|
-
end
|
|
55
|
-
deprecate alchemy_post: :post, deprecator: Alchemy::Deprecation
|
|
56
|
-
|
|
57
|
-
# Executes a request simulating PUT HTTP method
|
|
58
|
-
# @deprecated Use Rails test `put` helper instead
|
|
59
|
-
def alchemy_put(action, parameters = nil, session = nil, flash = nil)
|
|
60
|
-
process_alchemy_action(action, parameters, session, flash, "PUT")
|
|
61
|
-
end
|
|
62
|
-
deprecate alchemy_put: :put, deprecator: Alchemy::Deprecation
|
|
63
|
-
|
|
64
|
-
# Executes a request simulating DELETE HTTP method
|
|
65
|
-
# @deprecated Use Rails test `delete` helper instead
|
|
66
|
-
def alchemy_delete(action, parameters = nil, session = nil, flash = nil)
|
|
67
|
-
process_alchemy_action(action, parameters, session, flash, "DELETE")
|
|
68
|
-
end
|
|
69
|
-
deprecate alchemy_delete: :delete, deprecator: Alchemy::Deprecation
|
|
70
|
-
|
|
71
|
-
# Executes a simulated XHR request
|
|
72
|
-
# @deprecated Use Rails test `xhr` helper instead
|
|
73
|
-
def alchemy_xhr(method, action, parameters = nil, session = nil, flash = nil)
|
|
74
|
-
process_alchemy_xhr_action(method, action, parameters, session, flash)
|
|
75
|
-
end
|
|
76
|
-
deprecate alchemy_xhr: :xhr, deprecator: Alchemy::Deprecation
|
|
77
|
-
|
|
78
|
-
private
|
|
79
|
-
|
|
80
|
-
def process_alchemy_action(action, parameters = nil, session = nil, flash = nil, method = "GET")
|
|
81
|
-
@routes = Alchemy::Engine.routes
|
|
82
|
-
parameters ||= {}
|
|
83
|
-
process(action, method, parameters, session, flash)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def process_alchemy_xhr_action(method, action, parameters = nil, session = nil, flash = nil)
|
|
87
|
-
@routes = Alchemy::Engine.routes
|
|
88
|
-
parameters ||= {}
|
|
89
|
-
xml_http_request(method, action, parameters, session, flash)
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'tasks/element_views_updater'
|
|
4
|
-
|
|
5
|
-
module Alchemy
|
|
6
|
-
class Upgrader::FourPointFour < Upgrader
|
|
7
|
-
class << self
|
|
8
|
-
def rename_element_views
|
|
9
|
-
desc "Remove '_view' suffix from element views."
|
|
10
|
-
Alchemy::Upgrader::Tasks::ElementViewsUpdater.new.rename_element_views
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def update_local_variable
|
|
14
|
-
desc 'Update element views local variable to element name.'
|
|
15
|
-
Alchemy::Upgrader::Tasks::ElementViewsUpdater.new.update_local_variable
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def alchemy_4_4_todos
|
|
19
|
-
notice = <<-NOTE.strip_heredoc
|
|
20
|
-
|
|
21
|
-
ℹ️ Element editor partials are deprecated
|
|
22
|
-
-----------------------------------------
|
|
23
|
-
|
|
24
|
-
The element editor partials are not needed anymore. They still work, but in order to
|
|
25
|
-
prepare the Alchemy 5 upgrade your should consider removing them now.
|
|
26
|
-
|
|
27
|
-
In order to update check if you have any messages in your editor partials and move them
|
|
28
|
-
to either a `warning` or `message` in your element definition.
|
|
29
|
-
|
|
30
|
-
Also check if you pass any values to EssenceSelects `select_values`. Move static values
|
|
31
|
-
to the `settings` of your content definition and either use EssencePage for referencing
|
|
32
|
-
pages or create a custom essence for other dynamic values.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
ℹ️ The `_view` suffix of Element view partials is deprecated
|
|
36
|
-
-----------------------------------------------------------
|
|
37
|
-
|
|
38
|
-
The element view partials do not need the `_view` suffix anymore. Your files have been
|
|
39
|
-
renamed.
|
|
40
|
-
|
|
41
|
-
The local variable in your element views has been replaced by a variable named after the
|
|
42
|
-
element itself. A "article" element has a "_article.html.erb" partial and therefore
|
|
43
|
-
a `article` local variable now.
|
|
44
|
-
|
|
45
|
-
The former `element` variable is still present, though.
|
|
46
|
-
|
|
47
|
-
NOTE
|
|
48
|
-
todo notice, 'Alchemy v4.4 TODO'
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require_relative 'tasks/harden_acts_as_taggable_on_migrations'
|
|
2
|
-
|
|
3
|
-
module Alchemy
|
|
4
|
-
class Upgrader::FourPointOne < Upgrader
|
|
5
|
-
class << self
|
|
6
|
-
def harden_acts_as_taggable_on_migrations
|
|
7
|
-
desc 'Harden `acts_as_taggable_on_migrations`'
|
|
8
|
-
`bundle exec rake railties:install:migrations FROM=acts_as_taggable_on_engine`
|
|
9
|
-
Alchemy::Upgrader::Tasks::HardenActsAsTaggableOnMigrations.new.patch_migrations
|
|
10
|
-
`bundle exec rake db:migrate`
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def alchemy_4_1_todos
|
|
14
|
-
notice = <<-NOTE.strip_heredoc
|
|
15
|
-
ℹ️ Changed tagging provider to Gutentag
|
|
16
|
-
---------------------------------------
|
|
17
|
-
|
|
18
|
-
The automatic updater that just ran updated all existing `acts_as_taggable_on_migrations`,
|
|
19
|
-
so that they don't blow up if the `acts_as_taggable_on` gem is no longer available.
|
|
20
|
-
|
|
21
|
-
All your existing tags have been migrated to `Gutentag::Tag`s.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
⚠️ Removed Rails and non-English translations
|
|
25
|
-
---------------------------------------------
|
|
26
|
-
|
|
27
|
-
Removed the Rails translations from our translation files and moved all non-english translation
|
|
28
|
-
files into the newly introduced `alchemy_i18n` gem.
|
|
29
|
-
|
|
30
|
-
If you need more translations than the default English one you can either put `alchemy_i18n`
|
|
31
|
-
in to your apps `Gemfile` or - recommended - copy only the translation files you need into your
|
|
32
|
-
apps `config/locales` folder.
|
|
33
|
-
|
|
34
|
-
For the Rails translations either put the `rails-i18n` gem into your apps Gemfile or - recommended -
|
|
35
|
-
copy only the translation files you need into your apps config/locales folder.
|
|
36
|
-
|
|
37
|
-
NOTE
|
|
38
|
-
todo notice, 'Alchemy v4.1 TODO'
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
require_relative 'tasks/picture_gallery_upgrader'
|
|
2
|
-
require_relative 'tasks/picture_gallery_migration'
|
|
3
|
-
require_relative 'tasks/cells_upgrader'
|
|
4
|
-
require_relative 'tasks/cells_migration'
|
|
5
|
-
require_relative 'tasks/element_partial_name_variable_updater'
|
|
6
|
-
|
|
7
|
-
module Alchemy
|
|
8
|
-
class Upgrader::FourPointTwo < Upgrader
|
|
9
|
-
class << self
|
|
10
|
-
def convert_picture_galleries
|
|
11
|
-
desc 'Convert `picture_gallery` element definitions to `nestable_elements`.'
|
|
12
|
-
Alchemy::Upgrader::Tasks::PictureGalleryUpgrader.new.convert_picture_galleries
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def migrate_picture_galleries
|
|
16
|
-
desc 'Migrate existing gallery elements to `nestable_elements`.'
|
|
17
|
-
Alchemy::Upgrader::Tasks::PictureGalleryMigration.new.migrate_picture_galleries
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def convert_cells
|
|
21
|
-
desc 'Convert cells config to fixed nestable elements.'
|
|
22
|
-
Alchemy::Upgrader::Tasks::CellsUpgrader.new.convert_cells
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def migrate_cells
|
|
26
|
-
desc 'Migrate existing cells to fixed nestable elements.'
|
|
27
|
-
Alchemy::Upgrader::Tasks::CellsMigration.new.migrate_cells
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def update_element_views_variable_name
|
|
31
|
-
desc 'Update element views to use element partial name variable.'
|
|
32
|
-
Alchemy::Upgrader::Tasks::ElementPartialNameVariableUpdater.new.update_element_views
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def alchemy_4_2_todos
|
|
36
|
-
notice = <<-NOTE.strip_heredoc
|
|
37
|
-
⚠️ Element's "picture_gallery" feature removed
|
|
38
|
-
----------------------------------------------
|
|
39
|
-
|
|
40
|
-
The `picture_gallery` feature of elements was removed and has been replaced by nestable elements.
|
|
41
|
-
|
|
42
|
-
The automatic updater that just ran updated your `config/alchemy/elements.yml`. A backup was made.
|
|
43
|
-
Nevertheless, you should have a look into it and double check the changes.
|
|
44
|
-
|
|
45
|
-
We created nested elements for each gallery picture we found in your database.
|
|
46
|
-
|
|
47
|
-
We also updated your element view partials so they have hints about how to render the child elements.
|
|
48
|
-
|
|
49
|
-
🚨 PLEASE LOOK INTO YOUR ELEMENT VIEW PARTIALS AND FOLLOW THE INSTRUCTIONS!
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
⚠️️ Cells replaced by fixed nestable elements
|
|
53
|
-
--------------------------------------------
|
|
54
|
-
|
|
55
|
-
The Cells feature has been replaced by fixed nestable elements.
|
|
56
|
-
|
|
57
|
-
The automatic updater that just ran updated your `config/alchemy/elements.yml`.
|
|
58
|
-
Nevertheless, you should have a look into it and double check the changes.
|
|
59
|
-
|
|
60
|
-
We defined new fixed elements for each cell former defined in `cells.yml`
|
|
61
|
-
and put its `elements` into the `nestable_elements` collection of the new elements definition.
|
|
62
|
-
|
|
63
|
-
We also updated your element view partials so they render the child elements.
|
|
64
|
-
|
|
65
|
-
Please review and fix markup, if necessary.
|
|
66
|
-
|
|
67
|
-
🚨 PLEASE DOUBLE CHECK YOUR ELEMENT PARTIALS AND ADJUST ACCORDINGLY!
|
|
68
|
-
|
|
69
|
-
As always `git diff` is your friend.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
ℹ️ Element views use element partial name as local variable
|
|
73
|
-
-----------------------------------------------------------
|
|
74
|
-
|
|
75
|
-
The local `element` variable in your element views has been replaced by a variable named after the partial.
|
|
76
|
-
A "article" element has a "_article_view.html.erb" partial and therefore a `article_view` local variable now.
|
|
77
|
-
|
|
78
|
-
The former `element` variable is still present, though.
|
|
79
|
-
|
|
80
|
-
NOTE
|
|
81
|
-
todo notice, 'Alchemy v4.2 TODO'
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
end
|