alchemy_cms 5.3.4 → 6.0.0.b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +6 -14
- data/.gitignore +1 -1
- data/.hound.yml +1 -1
- data/.rubocop.yml +46 -4
- data/CHANGELOG.md +80 -69
- data/Gemfile +4 -2
- data/README.md +5 -2
- data/Rakefile +0 -18
- data/alchemy_cms.gemspec +78 -65
- data/app/assets/javascripts/alchemy/admin.js +2 -2
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -30
- data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -1
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +2 -7
- data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -25
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -0
- data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +3 -1
- data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +40 -29
- data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +24 -0
- data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +119 -0
- data/app/assets/javascripts/alchemy/page_select.js +8 -13
- data/app/assets/javascripts/alchemy/templates/index.js +0 -1
- data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
- data/app/assets/javascripts/alchemy/templates/page.hbs +7 -17
- data/app/assets/stylesheets/alchemy/admin.scss +1 -1
- data/app/assets/stylesheets/alchemy/archive.scss +4 -8
- data/app/assets/stylesheets/alchemy/buttons.scss +0 -4
- data/app/assets/stylesheets/alchemy/elements.scss +73 -61
- data/app/assets/stylesheets/alchemy/images.scss +8 -0
- data/app/assets/stylesheets/alchemy/node-select.scss +4 -3
- data/app/assets/stylesheets/alchemy/page-select.scss +5 -29
- data/app/assets/stylesheets/alchemy/sitemap.scss +7 -9
- data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +3 -3
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +7 -7
- data/app/controllers/alchemy/admin/attachments_controller.rb +6 -2
- data/app/controllers/alchemy/admin/base_controller.rb +8 -16
- data/app/controllers/alchemy/admin/elements_controller.rb +58 -34
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +30 -0
- data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -14
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +8 -79
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +33 -0
- data/app/controllers/alchemy/admin/ingredients_controller.rb +30 -0
- data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +19 -23
- data/app/controllers/alchemy/admin/pictures_controller.rb +35 -9
- data/app/controllers/alchemy/api/elements_controller.rb +10 -5
- data/app/controllers/alchemy/api/pages_controller.rb +3 -15
- data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +13 -3
- data/app/controllers/concerns/alchemy/admin/crop_action.rb +26 -0
- data/app/decorators/alchemy/element_editor.rb +23 -1
- data/app/decorators/alchemy/ingredient_editor.rb +154 -0
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
- data/app/helpers/alchemy/admin/essences_helper.rb +1 -1
- data/app/helpers/alchemy/admin/ingredients_helper.rb +42 -0
- data/app/helpers/alchemy/elements_block_helper.rb +22 -7
- data/app/helpers/alchemy/elements_helper.rb +14 -7
- data/app/helpers/alchemy/pages_helper.rb +3 -11
- data/app/jobs/alchemy/base_job.rb +11 -0
- data/app/jobs/alchemy/publish_page_job.rb +11 -0
- data/app/models/alchemy/attachment.rb +1 -1
- data/app/models/alchemy/content/factory.rb +23 -27
- data/app/models/alchemy/content.rb +1 -6
- data/app/models/alchemy/element/definitions.rb +29 -27
- data/app/models/alchemy/element/element_contents.rb +131 -122
- data/app/models/alchemy/element/element_essences.rb +100 -98
- data/app/models/alchemy/element/element_ingredients.rb +176 -0
- data/app/models/alchemy/element/presenters.rb +89 -87
- data/app/models/alchemy/element.rb +40 -73
- data/app/models/alchemy/elements_repository.rb +126 -0
- data/app/models/alchemy/essence_audio.rb +12 -0
- data/app/models/alchemy/essence_headline.rb +40 -0
- data/app/models/alchemy/essence_picture.rb +4 -116
- data/app/models/alchemy/essence_richtext.rb +12 -0
- data/app/models/alchemy/essence_video.rb +12 -0
- data/app/models/alchemy/image_cropper_settings.rb +87 -0
- data/app/models/alchemy/ingredient.rb +219 -0
- data/app/models/alchemy/ingredient_validator.rb +97 -0
- data/app/models/alchemy/ingredients/audio.rb +29 -0
- data/app/models/alchemy/ingredients/boolean.rb +21 -0
- data/app/models/alchemy/ingredients/datetime.rb +20 -0
- data/app/models/alchemy/ingredients/file.rb +30 -0
- data/app/models/alchemy/ingredients/headline.rb +42 -0
- data/app/models/alchemy/ingredients/html.rb +19 -0
- data/app/models/alchemy/ingredients/link.rb +16 -0
- data/app/models/alchemy/ingredients/node.rb +23 -0
- data/app/models/alchemy/ingredients/page.rb +23 -0
- data/app/models/alchemy/ingredients/picture.rb +41 -0
- data/app/models/alchemy/ingredients/richtext.rb +57 -0
- data/app/models/alchemy/ingredients/select.rb +10 -0
- data/app/models/alchemy/ingredients/text.rb +17 -0
- data/app/models/alchemy/ingredients/video.rb +33 -0
- data/app/models/alchemy/language.rb +0 -11
- data/app/models/alchemy/node.rb +1 -1
- data/app/models/alchemy/page/fixed_attributes.rb +53 -51
- data/app/models/alchemy/page/page_elements.rb +186 -205
- data/app/models/alchemy/page/page_naming.rb +66 -64
- data/app/models/alchemy/page/page_natures.rb +139 -142
- data/app/models/alchemy/page/page_scopes.rb +113 -102
- data/app/models/alchemy/page/publisher.rb +50 -0
- data/app/models/alchemy/page/url_path.rb +1 -1
- data/app/models/alchemy/page.rb +69 -36
- data/app/models/alchemy/page_version.rb +58 -0
- data/app/models/alchemy/picture/calculations.rb +2 -8
- data/app/models/alchemy/picture/preprocessor.rb +2 -0
- data/app/models/alchemy/picture/transformations.rb +21 -93
- data/app/models/alchemy/picture.rb +4 -2
- data/app/models/concerns/alchemy/picture_thumbnails.rb +181 -0
- data/app/models/concerns/alchemy/touch_elements.rb +2 -2
- data/app/presenters/alchemy/picture_view.rb +88 -0
- data/app/serializers/alchemy/element_serializer.rb +5 -0
- data/app/serializers/alchemy/page_serializer.rb +1 -7
- data/app/serializers/alchemy/page_tree_serializer.rb +6 -5
- data/app/services/alchemy/delete_elements.rb +44 -0
- data/app/services/alchemy/duplicate_element.rb +56 -0
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -2
- data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -3
- data/app/views/alchemy/admin/attachments/assign.js.erb +11 -0
- data/app/views/alchemy/admin/crop.html.erb +36 -0
- data/app/views/alchemy/admin/elements/_element.html.erb +14 -10
- data/app/views/alchemy/admin/elements/{_element_footer.html.erb → _footer.html.erb} +0 -0
- data/app/views/alchemy/admin/elements/{_new_element_form.html.erb → _form.html.erb} +1 -1
- data/app/views/alchemy/admin/elements/{_element_header.html.erb → _header.html.erb} +1 -1
- data/app/views/alchemy/admin/elements/{_element_toolbar.html.erb → _toolbar.html.erb} +5 -6
- data/app/views/alchemy/admin/elements/{trash.js.erb → destroy.js.erb} +1 -3
- data/app/views/alchemy/admin/elements/new.html.erb +3 -3
- data/app/views/alchemy/admin/elements/order.js.erb +0 -17
- data/app/views/alchemy/admin/elements/update.js.erb +3 -2
- data/app/views/alchemy/admin/essence_audios/edit.html.erb +7 -0
- data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -1
- data/app/views/alchemy/admin/essence_videos/edit.html.erb +11 -0
- data/app/views/alchemy/admin/ingredients/_audio_fields.html.erb +4 -0
- data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +18 -0
- data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +25 -0
- data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +8 -0
- data/app/views/alchemy/admin/ingredients/edit.html.erb +4 -0
- data/app/views/alchemy/admin/layoutpages/edit.html.erb +0 -5
- data/app/views/alchemy/admin/nodes/_node.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_anchor_link.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_external_link.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_file_link.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_form.html.erb +0 -25
- data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_new_page_form.html.erb +5 -16
- data/app/views/alchemy/admin/pages/_page.html.erb +133 -111
- data/app/views/alchemy/admin/pages/_sitemap.html.erb +16 -10
- data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +5 -2
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +12 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +37 -25
- data/app/views/alchemy/admin/pages/fold.js.erb +2 -0
- data/app/views/alchemy/admin/pages/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/sort.html.erb +19 -0
- data/app/views/alchemy/admin/pages/update.js.erb +0 -7
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -4
- data/app/views/alchemy/admin/partials/_routes.html.erb +8 -19
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +4 -8
- data/app/views/alchemy/admin/pictures/_infos.html.erb +0 -1
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +4 -4
- data/app/views/alchemy/admin/pictures/assign.js.erb +10 -0
- data/app/views/alchemy/admin/resources/_form.html.erb +1 -0
- data/app/views/alchemy/essences/_essence_audio_editor.html.erb +4 -0
- data/app/views/alchemy/essences/_essence_audio_view.html.erb +15 -0
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +15 -6
- data/app/views/alchemy/essences/_essence_headline_editor.html.erb +36 -0
- data/app/views/alchemy/essences/_essence_headline_view.html.erb +10 -0
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +8 -4
- data/app/views/alchemy/essences/_essence_page_editor.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +27 -12
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +12 -4
- data/app/views/alchemy/essences/_essence_video_editor.html.erb +4 -0
- data/app/views/alchemy/essences/_essence_video_view.html.erb +18 -0
- data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +21 -16
- data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +2 -2
- data/app/views/alchemy/ingredients/_audio_editor.html.erb +5 -0
- data/app/views/alchemy/ingredients/_audio_view.html.erb +14 -0
- data/app/views/alchemy/ingredients/_boolean_editor.html.erb +11 -0
- data/app/views/alchemy/ingredients/_boolean_view.html.erb +1 -0
- data/app/views/alchemy/ingredients/_datetime_editor.html.erb +17 -0
- data/app/views/alchemy/ingredients/_datetime_view.html.erb +9 -0
- data/app/views/alchemy/ingredients/_file_editor.html.erb +50 -0
- data/app/views/alchemy/ingredients/_file_view.html.erb +17 -0
- data/app/views/alchemy/ingredients/_headline_editor.html.erb +30 -0
- data/app/views/alchemy/ingredients/_headline_view.html.erb +9 -0
- data/app/views/alchemy/ingredients/_html_editor.html.erb +8 -0
- data/app/views/alchemy/ingredients/_html_view.html.erb +1 -0
- data/app/views/alchemy/ingredients/_link_editor.html.erb +24 -0
- data/app/views/alchemy/ingredients/_link_view.html.erb +9 -0
- data/app/views/alchemy/ingredients/_node_editor.html.erb +25 -0
- data/app/views/alchemy/ingredients/_node_view.html.erb +1 -0
- data/app/views/alchemy/ingredients/_page_editor.html.erb +24 -0
- data/app/views/alchemy/ingredients/_page_view.html.erb +4 -0
- data/app/views/alchemy/ingredients/_picture_editor.html.erb +59 -0
- data/app/views/alchemy/ingredients/_picture_view.html.erb +5 -0
- data/app/views/alchemy/ingredients/_richtext_editor.html.erb +12 -0
- data/app/views/alchemy/ingredients/_richtext_view.html.erb +3 -0
- data/app/views/alchemy/ingredients/_select_editor.html.erb +29 -0
- data/app/views/alchemy/ingredients/_select_view.html.erb +1 -0
- data/app/views/alchemy/ingredients/_text_editor.html.erb +19 -0
- data/app/views/alchemy/ingredients/_text_view.html.erb +16 -0
- data/app/views/alchemy/ingredients/_video_editor.html.erb +5 -0
- data/app/views/alchemy/ingredients/_video_view.html.erb +17 -0
- data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +20 -0
- data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +57 -0
- data/config/brakeman.ignore +66 -159
- data/config/initializers/dragonfly.rb +2 -0
- data/config/locales/alchemy.en.yml +26 -15
- data/config/routes.rb +19 -26
- data/db/migrate/20201207131309_create_page_versions.rb +19 -0
- data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +76 -0
- data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +10 -0
- data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +7 -0
- data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +12 -0
- data/db/migrate/20210506135919_create_essence_audios.rb +19 -0
- data/db/migrate/20210506140258_create_essence_videos.rb +23 -0
- data/db/migrate/20210508091432_create_alchemy_ingredients.rb +22 -0
- data/lib/alchemy/admin/preview_url.rb +2 -0
- data/lib/alchemy/deprecation.rb +1 -1
- data/lib/alchemy/dragonfly/processors/auto_orient.rb +18 -0
- data/lib/alchemy/elements_finder.rb +14 -60
- data/lib/alchemy/engine.rb +1 -8
- data/lib/alchemy/essence.rb +1 -2
- data/lib/alchemy/hints.rb +8 -4
- data/lib/alchemy/page_layout.rb +0 -13
- data/lib/alchemy/permissions.rb +31 -29
- data/lib/alchemy/resource.rb +13 -3
- data/lib/alchemy/tasks/tidy.rb +29 -0
- data/lib/alchemy/test_support/essence_shared_examples.rb +0 -1
- data/lib/alchemy/test_support/factories/element_factory.rb +8 -8
- data/lib/alchemy/test_support/factories/essence_audio_factory.rb +7 -0
- data/lib/alchemy/test_support/factories/essence_video_factory.rb +7 -0
- data/lib/alchemy/test_support/factories/ingredient_factory.rb +25 -0
- data/lib/alchemy/test_support/factories/page_factory.rb +20 -1
- data/lib/alchemy/test_support/factories/page_version_factory.rb +23 -0
- data/lib/alchemy/test_support/having_crop_action_examples.rb +170 -0
- data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +646 -0
- data/lib/alchemy/test_support/shared_ingredient_editor_examples.rb +21 -0
- data/lib/alchemy/test_support/shared_ingredient_examples.rb +57 -0
- data/lib/alchemy/test_support.rb +2 -11
- data/lib/alchemy/tinymce.rb +17 -0
- data/lib/alchemy/upgrader/five_point_zero.rb +0 -32
- data/lib/alchemy/upgrader/six_point_zero.rb +21 -0
- data/lib/alchemy/upgrader/tasks/add_page_versions.rb +33 -0
- data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +51 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +0 -1
- data/lib/generators/alchemy/elements/elements_generator.rb +1 -0
- data/lib/generators/alchemy/elements/templates/view.html.erb +9 -0
- data/lib/generators/alchemy/elements/templates/view.html.haml +9 -0
- data/lib/generators/alchemy/elements/templates/view.html.slim +9 -0
- data/lib/generators/alchemy/ingredient/ingredient_generator.rb +38 -0
- data/lib/generators/alchemy/ingredient/templates/editor.html.erb +14 -0
- data/lib/generators/alchemy/ingredient/templates/model.rb.tt +13 -0
- data/lib/generators/alchemy/ingredient/templates/view.html.erb +1 -0
- data/lib/generators/alchemy/install/install_generator.rb +1 -2
- data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +1 -1
- data/lib/generators/alchemy/menus/templates/node.html.erb +1 -1
- data/lib/generators/alchemy/menus/templates/node.html.haml +1 -1
- data/lib/generators/alchemy/menus/templates/node.html.slim +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
- data/lib/tasks/alchemy/tidy.rake +12 -0
- data/lib/tasks/alchemy/upgrade.rake +21 -15
- data/package/admin.js +8 -4
- data/package/src/file_editors.js +28 -0
- data/package/src/image_cropper.js +103 -0
- data/package/src/image_loader.js +58 -0
- data/package/src/node_tree.js +8 -8
- data/package/src/picture_editors.js +169 -0
- data/package/src/utils/__tests__/ajax.spec.js +16 -52
- data/package/src/utils/ajax.js +0 -12
- data/package.json +3 -2
- data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +3 -18
- data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +434 -0
- data/vendor/assets/stylesheets/jquery.Jcrop.min.scss +2 -28
- metadata +291 -53
- data/.rspec +0 -1
- data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +0 -44
- data/app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee +0 -30
- data/app/assets/javascripts/alchemy/templates/page_folder.hbs +0 -3
- data/app/assets/stylesheets/alchemy/trash.scss +0 -8
- data/app/controllers/alchemy/admin/trash_controller.rb +0 -44
- data/app/views/alchemy/admin/essence_files/assign.js.erb +0 -3
- data/app/views/alchemy/admin/essence_pictures/assign.js.erb +0 -4
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +0 -48
- data/app/views/alchemy/admin/trash/clear.js.erb +0 -4
- data/app/views/alchemy/admin/trash/index.html.erb +0 -31
- data/lib/alchemy/error_tracking/airbrake_handler.rb +0 -13
- data/lib/alchemy/error_tracking.rb +0 -14
- data/lib/alchemy/test_support/factories.rb +0 -20
- data/package/src/page_publication_fields.js +0 -27
- data/package/src/page_sorter.js +0 -62
- data/package/src/sitemap.js +0 -148
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f491f19d3f42a56aa03e0a82724e1473413c926f9bb9a823f909726415bb844
|
4
|
+
data.tar.gz: 42c4841d037f5d351305b4e2c97fdc9298a4b886d51b666436c712f1c9c7ce80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbb3af41e4d5a9715507f87d38d87f0dea4ceb9c62750721587ce14a7e7aa32f89b7e044fac5b14ab68781539f80b16297cce668b0bef76eb96b099c157b751c
|
7
|
+
data.tar.gz: fdd0443e75620528d6434eeb13fb675db04f3a91911b92f66122df83c963a737509a99d968ddd48189195340ea00e06310919d3ba201906291088c66ee5ec455
|
data/.github/workflows/ci.yml
CHANGED
@@ -9,12 +9,11 @@ jobs:
|
|
9
9
|
fail-fast: false
|
10
10
|
matrix:
|
11
11
|
rails:
|
12
|
-
- '5.2'
|
13
12
|
- '6.0'
|
14
13
|
ruby:
|
15
|
-
- '2.
|
16
|
-
- '2.
|
17
|
-
- '
|
14
|
+
- '2.6.6'
|
15
|
+
- '2.7.2'
|
16
|
+
- '3.0.0'
|
18
17
|
database:
|
19
18
|
- mysql
|
20
19
|
- postgresql
|
@@ -46,9 +45,10 @@ jobs:
|
|
46
45
|
steps:
|
47
46
|
- uses: actions/checkout@v2.3.4
|
48
47
|
- name: Set up Ruby
|
49
|
-
uses:
|
48
|
+
uses: ruby/setup-ruby@v1
|
50
49
|
with:
|
51
50
|
ruby-version: ${{ matrix.ruby }}
|
51
|
+
bundler-cache: true
|
52
52
|
- name: Restore apt cache
|
53
53
|
id: apt-cache
|
54
54
|
uses: actions/cache@v2.1.3
|
@@ -74,18 +74,10 @@ jobs:
|
|
74
74
|
- name: Install bundler
|
75
75
|
run: |
|
76
76
|
gem install bundler
|
77
|
-
- name: Restore Ruby Gems cache
|
78
|
-
id: cache
|
79
|
-
uses: actions/cache@v2.1.3
|
80
|
-
with:
|
81
|
-
path: vendor/bundle
|
82
|
-
key: ${{ runner.os }}-bundle-${{ matrix.ruby }}-${{ matrix.rails }}-${{ matrix.database }}-${{ hashFiles('**/Gemfile') }}
|
83
|
-
restore-keys: |
|
84
|
-
${{ runner.os }}-bundle-
|
85
77
|
- name: Install bundle
|
86
78
|
timeout-minutes: 10
|
87
79
|
run: |
|
88
|
-
bundle install --jobs 4 --retry 3
|
80
|
+
bundle install --jobs 4 --retry 3
|
89
81
|
- name: Restore node modules cache
|
90
82
|
id: yarn-cache
|
91
83
|
uses: actions/cache@v2.1.3
|
data/.gitignore
CHANGED
@@ -10,7 +10,6 @@ tmp
|
|
10
10
|
log
|
11
11
|
.sass-cache
|
12
12
|
spec/dummy/.browserslistrc
|
13
|
-
spec/dummy/app/assets/stylesheets/alchemy/
|
14
13
|
spec/dummy/app/javascript/
|
15
14
|
spec/dummy/babel.config.js
|
16
15
|
spec/dummy/bin/webpack
|
@@ -34,6 +33,7 @@ spec/dummy/uploads/
|
|
34
33
|
.ruby-gemset
|
35
34
|
.ruby-version
|
36
35
|
.env
|
36
|
+
.rspec
|
37
37
|
node_modules
|
38
38
|
yarn-error.log
|
39
39
|
yarn-debug.log*
|
data/.hound.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Relaxed.Ruby.Style
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.5
|
5
5
|
Exclude:
|
6
6
|
- 'bin/rspec'
|
7
7
|
- 'vendor/**/*'
|
@@ -100,9 +100,6 @@ Layout/MultilineMethodCallBraceLayout:
|
|
100
100
|
Layout/MultilineMethodCallIndentation:
|
101
101
|
Enabled: false
|
102
102
|
|
103
|
-
Layout/MultilineOperationIndentation:
|
104
|
-
EnforcedStyle: indented
|
105
|
-
|
106
103
|
Layout/SpaceBeforeBlockBraces:
|
107
104
|
Enabled: false
|
108
105
|
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
|
@@ -309,3 +306,48 @@ Naming/PredicateName:
|
|
309
306
|
|
310
307
|
Naming/VariableNumber:
|
311
308
|
Enabled: false
|
309
|
+
|
310
|
+
Lint/DuplicateBranch: # (new in 1.3)
|
311
|
+
Enabled: false
|
312
|
+
|
313
|
+
Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
|
314
|
+
Enabled: false
|
315
|
+
|
316
|
+
Lint/EmptyBlock: # (new in 1.1)
|
317
|
+
Enabled: false
|
318
|
+
|
319
|
+
Lint/EmptyClass: # (new in 1.3)
|
320
|
+
Enabled: false
|
321
|
+
|
322
|
+
Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
|
323
|
+
Enabled: false
|
324
|
+
|
325
|
+
Lint/ToEnumArguments: # (new in 1.1)
|
326
|
+
Enabled: false
|
327
|
+
|
328
|
+
Lint/UnexpectedBlockArity: # (new in 1.5)
|
329
|
+
Enabled: false
|
330
|
+
|
331
|
+
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
|
332
|
+
Enabled: false
|
333
|
+
|
334
|
+
Style/ArgumentsForwarding: # (new in 1.1)
|
335
|
+
Enabled: false
|
336
|
+
|
337
|
+
Style/CollectionCompact: # (new in 1.2)
|
338
|
+
Enabled: false
|
339
|
+
|
340
|
+
Style/DocumentDynamicEvalDefinition: # (new in 1.1)
|
341
|
+
Enabled: false
|
342
|
+
|
343
|
+
Style/NegatedIfElseCondition: # (new in 1.2)
|
344
|
+
Enabled: false
|
345
|
+
|
346
|
+
Style/NilLambda: # (new in 1.3)
|
347
|
+
Enabled: false
|
348
|
+
|
349
|
+
Style/RedundantArgument: # (new in 1.4)
|
350
|
+
Enabled: false
|
351
|
+
|
352
|
+
Style/SwapValues: # (new in 1.1)
|
353
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,79 +1,90 @@
|
|
1
|
-
##
|
1
|
+
## 6.0.0.b1 (2021-07-05)
|
2
2
|
|
3
|
-
|
4
|
-
- Show site and language name on page select in Link dialog [#2280](https://github.com/AlchemyCMS/alchemy_cms/pull/2280) ([dbwinger](https://github.com/dbwinger))
|
5
|
-
|
6
|
-
## 5.3.3 (2022-03-24)
|
7
|
-
|
8
|
-
- fix admin sitemap feature specs ([tvdeyen](https://github.com/tvdeyen))
|
9
|
-
- fix: Add support for ajax.get query params ([tvdeyen](https://github.com/tvdeyen))
|
10
|
-
- fix(Sitemap): Use response data ([tvdeyen](https://github.com/tvdeyen))
|
11
|
-
- Revert "Ajax: Send method override" ([tvdeyen](https://github.com/tvdeyen))
|
12
|
-
|
13
|
-
## 5.3.2 (2022-03-24)
|
14
|
-
|
15
|
-
- ImageLoader: Add error handling ([tvdeyen](https://github.com/tvdeyen))
|
16
|
-
- Fix new Sitemap ([tvdeyen](https://github.com/tvdeyen))
|
17
|
-
|
18
|
-
## 5.3.1 (2022-03-11)
|
19
|
-
|
20
|
-
- Allow all pages in API again ([tvdeyen](https://github.com/tvdeyen))
|
21
|
-
- New sortable page tree ([tvdeyen](https://github.com/tvdeyen))
|
22
|
-
- Send language_id to Api::PagesController#index so Pages can be restricted to the language of the page. ([dbwinger](https://github.com/dbwinger))
|
23
|
-
- Eager load in PageTree serializer ([tvdeyen](https://github.com/tvdeyen))
|
24
|
-
|
25
|
-
## 5.3.0 (2022-03-09)
|
26
|
-
|
27
|
-
- Allow parent page change ([tvdeyen](https://github.com/tvdeyen))
|
28
|
-
- Precompile packs during test setup ([tvdeyen](https://github.com/tvdeyen))
|
29
|
-
- Rework Sitemap JS ([tvdeyen](https://github.com/tvdeyen))
|
30
|
-
- Fix rendering errors in page configure overlay ([tvdeyen](https://github.com/tvdeyen))
|
31
|
-
|
32
|
-
## 5.2.7 (2022-03-01)
|
33
|
-
|
34
|
-
- Fix copying page with descendants to a different language ([dbwinger](https://github.com/dbwinger))
|
35
|
-
- Handle copying/pasting global pages ([dbwinger](https://github.com/dbwinger))
|
36
|
-
|
37
|
-
## 5.2.6 (2022-02-28)
|
38
|
-
|
39
|
-
- Add crop_resize Dragonfly processor ([tvdeyen](https://github.com/tvdeyen))
|
40
|
-
|
41
|
-
## 5.2.5 (2021-11-24)
|
42
|
-
|
43
|
-
- Adjust tinymce skin assets urls again ([tvdeyen](https://github.com/tvdeyen))
|
44
|
-
|
45
|
-
## 5.2.4 (2021-11-17)
|
46
|
-
|
47
|
-
- Set stampable user_class_name without root identifier ([tvdeyen](https://github.com/tvdeyen))
|
48
|
-
- Use relative path for tinymce font-face ([tvdeyen](https://github.com/tvdeyen))
|
49
|
-
|
50
|
-
## 5.2.3 (2021-10-26)
|
3
|
+
### Features
|
51
4
|
|
52
|
-
-
|
5
|
+
- Import essence video and audio from extension [#2089](https://github.com/AlchemyCMS/alchemy_cms/pull/2089) ([tvdeyen](https://github.com/tvdeyen))
|
6
|
+
- Introduce ingredients as new content structure [#2061](https://github.com/AlchemyCMS/alchemy_cms/pull/2061) ([tvdeyen](https://github.com/tvdeyen))
|
7
|
+
- Alchemy essence headline [#2060](https://github.com/AlchemyCMS/alchemy_cms/pull/2060) ([mamhoff](https://github.com/mamhoff))
|
8
|
+
- Add Page Versions [#2022](https://github.com/AlchemyCMS/alchemy_cms/pull/2022) ([tvdeyen](https://github.com/tvdeyen))
|
53
9
|
|
54
|
-
|
10
|
+
### Changes
|
55
11
|
|
56
|
-
-
|
57
|
-
-
|
58
|
-
- generate picture thumbnails only for pictures with convertible format [#
|
59
|
-
-
|
60
|
-
-
|
12
|
+
- Link dialog changes can be submitted by enter [#2144](https://github.com/AlchemyCMS/alchemy_cms/pull/2144) ([tvdeyen](https://github.com/tvdeyen))
|
13
|
+
- Extract Thumbnails and CropAction concerns [#2141](https://github.com/AlchemyCMS/alchemy_cms/pull/2141) ([tvdeyen](https://github.com/tvdeyen))
|
14
|
+
- generate picture thumbnails only for pictures with convertible format [#2129](https://github.com/AlchemyCMS/alchemy_cms/pull/2129) ([afdev82](https://github.com/afdev82))
|
15
|
+
- Only crop image if cropping is enabled [#2143](https://github.com/AlchemyCMS/alchemy_cms/pull/2143) ([tvdeyen](https://github.com/tvdeyen))
|
16
|
+
- expose translations in global Alchemy js object, #2113 [#2114](https://github.com/AlchemyCMS/alchemy_cms/pull/2114) ([afdev82](https://github.com/afdev82))
|
17
|
+
- Only return pages for current site in API [#2111](https://github.com/AlchemyCMS/alchemy_cms/pull/2111) ([tvdeyen](https://github.com/tvdeyen))
|
18
|
+
- Add crop_resize Dragonfly processor [#2109](https://github.com/AlchemyCMS/alchemy_cms/pull/2109) ([tvdeyen](https://github.com/tvdeyen))
|
19
|
+
- Auto-orient images based on their EXIF data [#2107](https://github.com/AlchemyCMS/alchemy_cms/pull/2107) ([tvdeyen](https://github.com/tvdeyen))
|
20
|
+
- Allow flatten as argument for Dragonfly encode [#2106](https://github.com/AlchemyCMS/alchemy_cms/pull/2106) ([tvdeyen](https://github.com/tvdeyen))
|
21
|
+
- Deprecate image format methods [#2103](https://github.com/AlchemyCMS/alchemy_cms/pull/2103) ([tvdeyen](https://github.com/tvdeyen))
|
22
|
+
- Do not attempt to generate thumbs for svg files (fixes upload of svg files) [#2090](https://github.com/AlchemyCMS/alchemy_cms/pull/2090) ([oneiros](https://github.com/oneiros))
|
23
|
+
- Trigger publish targets after page published [#2088](https://github.com/AlchemyCMS/alchemy_cms/pull/2088) ([tvdeyen](https://github.com/tvdeyen))
|
24
|
+
- Add collection option for resource relations [#2084](https://github.com/AlchemyCMS/alchemy_cms/pull/2084) ([robinboening](https://github.com/robinboening))
|
25
|
+
- Remove deprecated helper method page_active? [#2074](https://github.com/AlchemyCMS/alchemy_cms/pull/2074) ([robinboening](https://github.com/robinboening))
|
26
|
+
- Handle json requests in error handler [#2071](https://github.com/AlchemyCMS/alchemy_cms/pull/2071) ([tvdeyen](https://github.com/tvdeyen))
|
27
|
+
- Background page publishing [#2067](https://github.com/AlchemyCMS/alchemy_cms/pull/2067) ([tvdeyen](https://github.com/tvdeyen))
|
28
|
+
- Faster element duplication [#2066](https://github.com/AlchemyCMS/alchemy_cms/pull/2066) ([mamhoff](https://github.com/mamhoff))
|
29
|
+
- Parse params in ajax.get as query string [#2070](https://github.com/AlchemyCMS/alchemy_cms/pull/2070) ([tvdeyen](https://github.com/tvdeyen))
|
30
|
+
- Assign, crop and remove files and pictures client side [#2069](https://github.com/AlchemyCMS/alchemy_cms/pull/2069) ([tvdeyen](https://github.com/tvdeyen))
|
31
|
+
- Allow copying contents when they're not in the elements.yml [#2068](https://github.com/AlchemyCMS/alchemy_cms/pull/2068) ([mamhoff](https://github.com/mamhoff))
|
32
|
+
- Delete nested elements quickly [#2065](https://github.com/AlchemyCMS/alchemy_cms/pull/2065) ([mamhoff](https://github.com/mamhoff))
|
33
|
+
- Quickly delete elements when deleting a page version [#2064](https://github.com/AlchemyCMS/alchemy_cms/pull/2064) ([mamhoff](https://github.com/mamhoff))
|
34
|
+
- Fast element deletion [#2063](https://github.com/AlchemyCMS/alchemy_cms/pull/2063) ([mamhoff](https://github.com/mamhoff))
|
35
|
+
- Touch Elements only after update [#2062](https://github.com/AlchemyCMS/alchemy_cms/pull/2062) ([mamhoff](https://github.com/mamhoff))
|
36
|
+
- Convert "Visit page" button to "Link to new tab" [#2058](https://github.com/AlchemyCMS/alchemy_cms/pull/2058) ([mamhoff](https://github.com/mamhoff))
|
37
|
+
- Allow creating an EssenceRichtext without a content [#2057](https://github.com/AlchemyCMS/alchemy_cms/pull/2057) ([mamhoff](https://github.com/mamhoff))
|
38
|
+
- Allow instantiating a content on an unpersisted valid element [#2056](https://github.com/AlchemyCMS/alchemy_cms/pull/2056) ([mamhoff](https://github.com/mamhoff))
|
39
|
+
- Sanitized richtext body [#2055](https://github.com/AlchemyCMS/alchemy_cms/pull/2055) ([mamhoff](https://github.com/mamhoff))
|
40
|
+
- Only require the Rails gems we actually need [#2054](https://github.com/AlchemyCMS/alchemy_cms/pull/2054) ([tvdeyen](https://github.com/tvdeyen))
|
41
|
+
- Create new contents on demand [#2049](https://github.com/AlchemyCMS/alchemy_cms/pull/2049) ([tvdeyen](https://github.com/tvdeyen))
|
42
|
+
- Add Elements repository [#2039](https://github.com/AlchemyCMS/alchemy_cms/pull/2039) ([tvdeyen](https://github.com/tvdeyen))
|
43
|
+
- Render site layout with block [#2038](https://github.com/AlchemyCMS/alchemy_cms/pull/2038) ([henvo](https://github.com/henvo))
|
44
|
+
- Add namespace for Tree related routes [#2037](https://github.com/AlchemyCMS/alchemy_cms/pull/2037) ([dhiraj14](https://github.com/dhiraj14))
|
45
|
+
- Tidy Rake task to remove duplicate legacy URLs [#2036](https://github.com/AlchemyCMS/alchemy_cms/pull/2036) ([pelargir](https://github.com/pelargir))
|
46
|
+
- Change Factory loading mechanism to FactoryBots supported mechanism [#2029](https://github.com/AlchemyCMS/alchemy_cms/pull/2029) ([mamhoff](https://github.com/mamhoff))
|
47
|
+
- Add rake task to remove trashed elements [#2025](https://github.com/AlchemyCMS/alchemy_cms/pull/2025) ([tvdeyen](https://github.com/tvdeyen))
|
48
|
+
- Do not include unpublished pages in breadcrumb [#2020](https://github.com/AlchemyCMS/alchemy_cms/pull/2020) ([tvdeyen](https://github.com/tvdeyen))
|
49
|
+
- Respect Language public status for page public status [#2017](https://github.com/AlchemyCMS/alchemy_cms/pull/2017) ([tvdeyen](https://github.com/tvdeyen))
|
50
|
+
- Use at least Ruby 2.5 [#2014](https://github.com/AlchemyCMS/alchemy_cms/pull/2014) ([tvdeyen](https://github.com/tvdeyen))
|
51
|
+
- Drop Rails 5.2 support [#2013](https://github.com/AlchemyCMS/alchemy_cms/pull/2013) ([tvdeyen](https://github.com/tvdeyen))
|
52
|
+
- Remove page layout change of persisted pages [#1991](https://github.com/AlchemyCMS/alchemy_cms/pull/1991) ([tvdeyen](https://github.com/tvdeyen))
|
53
|
+
- Remove element trash [#1987](https://github.com/AlchemyCMS/alchemy_cms/pull/1987) ([tvdeyen](https://github.com/tvdeyen))
|
54
|
+
- Remove elements fallbacks [#1983](https://github.com/AlchemyCMS/alchemy_cms/pull/1983) ([tvdeyen](https://github.com/tvdeyen))
|
61
55
|
|
62
|
-
|
56
|
+
### Misc
|
63
57
|
|
58
|
+
- Fixes i18n Jest specs [#2120](https://github.com/AlchemyCMS/alchemy_cms/pull/2120) ([tvdeyen](https://github.com/tvdeyen))
|
59
|
+
- Allow to update element without tags [#2150](https://github.com/AlchemyCMS/alchemy_cms/pull/2150) ([tvdeyen](https://github.com/tvdeyen))
|
60
|
+
- fix: call paging on jquery tabs only after initializing them [#2146](https://github.com/AlchemyCMS/alchemy_cms/pull/2146) ([robinboening](https://github.com/robinboening))
|
61
|
+
- Image cropper destroy [#2139](https://github.com/AlchemyCMS/alchemy_cms/pull/2139) ([tvdeyen](https://github.com/tvdeyen))
|
62
|
+
- Fix URL for dragonfly configuration reference [#2128](https://github.com/AlchemyCMS/alchemy_cms/pull/2128) ([afdev82](https://github.com/afdev82))
|
63
|
+
- Link dialog UI fixes [#2112](https://github.com/AlchemyCMS/alchemy_cms/pull/2112) ([tvdeyen](https://github.com/tvdeyen))
|
64
|
+
- [js] Upgrade babel-jest to version 27.0.1 [#2110](https://github.com/AlchemyCMS/alchemy_cms/pull/2110) ([depfu](https://github.com/apps/depfu))
|
65
|
+
- Fix node select height [#2102](https://github.com/AlchemyCMS/alchemy_cms/pull/2102) ([tvdeyen](https://github.com/tvdeyen))
|
66
|
+
- [ruby - main] Upgrade execjs to version 2.8.1 [#2100](https://github.com/AlchemyCMS/alchemy_cms/pull/2100) ([depfu](https://github.com/apps/depfu))
|
67
|
+
- Fix Essence Picture View (#2083) [#2099](https://github.com/AlchemyCMS/alchemy_cms/pull/2099) ([afdev82](https://github.com/afdev82))
|
68
|
+
- Pass crop parameter in default EssencePicture#picture_url_options [#2098](https://github.com/AlchemyCMS/alchemy_cms/pull/2098) ([mamhoff](https://github.com/mamhoff))
|
69
|
+
- [main] Fix execjs to 2.7.0 for developers and CI [#2095](https://github.com/AlchemyCMS/alchemy_cms/pull/2095) ([mamhoff](https://github.com/mamhoff))
|
64
70
|
- Fix alchemy:generate:thumbnails task [#2092](https://github.com/AlchemyCMS/alchemy_cms/pull/2092) ([afdev82](https://github.com/afdev82))
|
65
|
-
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
-
|
71
|
+
- Use symbols in polymorphic routes for resources [#2087](https://github.com/AlchemyCMS/alchemy_cms/pull/2087) ([tvdeyen](https://github.com/tvdeyen))
|
72
|
+
- Fix the height of node select [#2081](https://github.com/AlchemyCMS/alchemy_cms/pull/2081) ([tvdeyen](https://github.com/tvdeyen))
|
73
|
+
- Preview url fixes [#2079](https://github.com/AlchemyCMS/alchemy_cms/pull/2079) ([tvdeyen](https://github.com/tvdeyen))
|
74
|
+
- Use count over select.count in UrlPath class [#2078](https://github.com/AlchemyCMS/alchemy_cms/pull/2078) ([tvdeyen](https://github.com/tvdeyen))
|
75
|
+
- Use the fast DuplicateElement service in Page.copy [#2077](https://github.com/AlchemyCMS/alchemy_cms/pull/2077) ([tvdeyen](https://github.com/tvdeyen))
|
76
|
+
- Fix page versioning issues [#2076](https://github.com/AlchemyCMS/alchemy_cms/pull/2076) ([tvdeyen](https://github.com/tvdeyen))
|
77
|
+
- Fix add nested element with multiple nestable elements [#2052](https://github.com/AlchemyCMS/alchemy_cms/pull/2052) ([tvdeyen](https://github.com/tvdeyen))
|
78
|
+
- Destroy public version if public checkbox is unset [#2050](https://github.com/AlchemyCMS/alchemy_cms/pull/2050) ([tvdeyen](https://github.com/tvdeyen))
|
79
|
+
- Fixes paste element and create element with autogenerated nested elements [#2046](https://github.com/AlchemyCMS/alchemy_cms/pull/2046) ([tvdeyen](https://github.com/tvdeyen))
|
80
|
+
- Fix page re-publishing for page with nested elements [#2043](https://github.com/AlchemyCMS/alchemy_cms/pull/2043) ([tvdeyen](https://github.com/tvdeyen))
|
81
|
+
- Update rubocop config and stick version [#2042](https://github.com/AlchemyCMS/alchemy_cms/pull/2042) ([tvdeyen](https://github.com/tvdeyen))
|
82
|
+
- Fix factory loading [#2041](https://github.com/AlchemyCMS/alchemy_cms/pull/2041) ([tvdeyen](https://github.com/tvdeyen))
|
83
|
+
- Fix element re-ordering [#2028](https://github.com/AlchemyCMS/alchemy_cms/pull/2028) ([tvdeyen](https://github.com/tvdeyen))
|
84
|
+
- Fix typo in element destroy confirm notice [#2026](https://github.com/AlchemyCMS/alchemy_cms/pull/2026) ([tvdeyen](https://github.com/tvdeyen))
|
85
|
+
- Fix constants reloading in page and element concerns [#2024](https://github.com/AlchemyCMS/alchemy_cms/pull/2024) ([tvdeyen](https://github.com/tvdeyen))
|
86
|
+
- Fix delete element confirm dialog [#2023](https://github.com/AlchemyCMS/alchemy_cms/pull/2023) ([tvdeyen](https://github.com/tvdeyen))
|
87
|
+
- Build for Ruby 3 [#1990](https://github.com/AlchemyCMS/alchemy_cms/pull/1990) ([tvdeyen](https://github.com/tvdeyen))
|
77
88
|
|
78
89
|
## 5.2.0.b1 (2021-02-11)
|
79
90
|
|
data/Gemfile
CHANGED
@@ -16,9 +16,11 @@ group :development, :test do
|
|
16
16
|
# execjs 2.8 removes deprecation warnings but also breaks a number of dependent projects.
|
17
17
|
# in our case the culprit is `handlebars-assets`. The changes between 2.7.0 and 2.8.0 are
|
18
18
|
# minimal, but breaking.
|
19
|
-
gem "execjs", "= 2.
|
19
|
+
gem "execjs", "= 2.8.1"
|
20
20
|
|
21
21
|
if ENV["GITHUB_ACTIONS"]
|
22
|
+
# Necessary because GH Actions gem cache does not have this "Bundled with Ruby" gem installed
|
23
|
+
gem "rexml", "~> 3.2.4"
|
22
24
|
gem "sassc", "~> 2.4.0" # https://github.com/sass/sassc-ruby/issues/146
|
23
25
|
else
|
24
26
|
gem "launchy"
|
@@ -27,7 +29,7 @@ group :development, :test do
|
|
27
29
|
gem "yard"
|
28
30
|
gem "redcarpet"
|
29
31
|
gem "pry-byebug"
|
30
|
-
gem "rubocop", "
|
32
|
+
gem "rubocop", "1.5.2", require: false
|
31
33
|
gem "listen"
|
32
34
|
gem "localeapp", "~> 3.0", require: false
|
33
35
|
gem "dotenv", "~> 2.2"
|
data/README.md
CHANGED
@@ -51,8 +51,9 @@ or visit the existing demo at https://alchemy-demo.herokuapp.com
|
|
51
51
|
|
52
52
|
## 🚂 Rails Version
|
53
53
|
|
54
|
-
**This version of AlchemyCMS runs with Rails
|
54
|
+
**This version of AlchemyCMS runs with Rails 6.0**
|
55
55
|
|
56
|
+
* For a Rails 5.2 compatible version use the [`5.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/5.2-stable).
|
56
57
|
* For a Rails 5.0 or 5.1 compatible version use the [`4.5-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/4.5-stable).
|
57
58
|
* For a Rails 4.2 compatible version use the [`3.6-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.6-stable).
|
58
59
|
* For a Rails 4.0/4.1 compatible version use the [`3.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.1-stable).
|
@@ -64,7 +65,9 @@ or visit the existing demo at https://alchemy-demo.herokuapp.com
|
|
64
65
|
|
65
66
|
## 💎 Ruby Version
|
66
67
|
|
67
|
-
Alchemy runs with Ruby >= 2.
|
68
|
+
Alchemy runs with Ruby >= 2.5.0.
|
69
|
+
|
70
|
+
For a Ruby 2.4 compatible version use the [`5.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/5.2-stable).
|
68
71
|
|
69
72
|
For a Ruby 2.2 compatible version use the [`4.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/4.1-stable).
|
70
73
|
|
data/Rakefile
CHANGED
@@ -41,16 +41,12 @@ namespace :alchemy do
|
|
41
41
|
task :prepare do
|
42
42
|
system(
|
43
43
|
<<~BASH
|
44
|
-
yarn install && \
|
45
|
-
yarn link && \
|
46
44
|
cd spec/dummy && \
|
47
45
|
export RAILS_ENV=test && \
|
48
46
|
bin/rake db:create && \
|
49
47
|
bin/rake db:environment:set && \
|
50
48
|
bin/rake db:migrate:reset && \
|
51
49
|
bin/rails g alchemy:install --skip --skip-demo-files --auto-accept && \
|
52
|
-
yarn link @alchemy_cms/admin && \
|
53
|
-
RAILS_ENV=test bin/webpack && \
|
54
50
|
cd -
|
55
51
|
BASH
|
56
52
|
) || fail
|
@@ -76,18 +72,4 @@ namespace :alchemy do
|
|
76
72
|
File.delete(backup)
|
77
73
|
end
|
78
74
|
end
|
79
|
-
|
80
|
-
desc "Release a new Ruby gem and npm package in one command"
|
81
|
-
task :release do
|
82
|
-
require "json"
|
83
|
-
require_relative "lib/alchemy/version"
|
84
|
-
package = File.read("package.json")
|
85
|
-
unless JSON.parse(package)["version"] == Alchemy.version
|
86
|
-
abort "Ruby gem and npm package versions are out of sync! Please fix."
|
87
|
-
end
|
88
|
-
# Release the Ruby gem with bundler
|
89
|
-
Rake::Task["release"].invoke
|
90
|
-
# Publish npm package via CLI
|
91
|
-
system "npm publish"
|
92
|
-
end
|
93
75
|
end
|
data/alchemy_cms.gemspec
CHANGED
@@ -1,80 +1,93 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
5
|
+
require "alchemy/version"
|
5
6
|
|
6
7
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name
|
8
|
-
gem.version
|
9
|
-
gem.platform
|
10
|
-
gem.authors
|
11
|
-
gem.email
|
12
|
-
gem.homepage
|
13
|
-
gem.summary
|
14
|
-
gem.description
|
15
|
-
gem.requirements <<
|
16
|
-
gem.required_ruby_version =
|
17
|
-
gem.license
|
18
|
-
gem.files
|
19
|
-
gem.require_paths
|
8
|
+
gem.name = "alchemy_cms"
|
9
|
+
gem.version = Alchemy::VERSION
|
10
|
+
gem.platform = Gem::Platform::RUBY
|
11
|
+
gem.authors = ["Thomas von Deyen", "Robin Boening", "Marc Schettke", "Hendrik Mans", "Carsten Fregin", "Martin Meyerhoff"]
|
12
|
+
gem.email = ["hello@alchemy-cms.com"]
|
13
|
+
gem.homepage = "https://alchemy-cms.com"
|
14
|
+
gem.summary = "A powerful, userfriendly and flexible CMS for Rails"
|
15
|
+
gem.description = "Alchemy is a powerful, userfriendly and flexible Rails CMS."
|
16
|
+
gem.requirements << "ImageMagick (libmagick), v6.6 or greater."
|
17
|
+
gem.required_ruby_version = ">= 2.5.0"
|
18
|
+
gem.license = "BSD New"
|
19
|
+
gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
|
20
|
+
gem.require_paths = ["lib"]
|
21
|
+
|
22
|
+
%w[
|
23
|
+
actionmailer
|
24
|
+
actionpack
|
25
|
+
actionview
|
26
|
+
activejob
|
27
|
+
activemodel
|
28
|
+
activerecord
|
29
|
+
activesupport
|
30
|
+
railties
|
31
|
+
].each do |rails_gem|
|
32
|
+
gem.add_runtime_dependency rails_gem, [">= 6.0", "< 6.1"]
|
33
|
+
end
|
20
34
|
|
21
|
-
gem.add_runtime_dependency
|
22
|
-
gem.add_runtime_dependency
|
23
|
-
gem.add_runtime_dependency
|
24
|
-
gem.add_runtime_dependency
|
25
|
-
gem.add_runtime_dependency
|
26
|
-
gem.add_runtime_dependency
|
27
|
-
gem.add_runtime_dependency
|
28
|
-
gem.add_runtime_dependency
|
29
|
-
gem.add_runtime_dependency
|
30
|
-
gem.add_runtime_dependency
|
31
|
-
gem.add_runtime_dependency
|
32
|
-
gem.add_runtime_dependency
|
33
|
-
gem.add_runtime_dependency
|
34
|
-
gem.add_runtime_dependency
|
35
|
-
gem.add_runtime_dependency
|
36
|
-
gem.add_runtime_dependency
|
37
|
-
gem.add_runtime_dependency
|
38
|
-
gem.add_runtime_dependency
|
39
|
-
gem.add_runtime_dependency
|
40
|
-
gem.add_runtime_dependency
|
41
|
-
gem.add_runtime_dependency
|
42
|
-
gem.add_runtime_dependency
|
43
|
-
gem.add_runtime_dependency 'webpacker', ['>= 4.0', '< 6']
|
35
|
+
gem.add_runtime_dependency "active_model_serializers", ["~> 0.10.0"]
|
36
|
+
gem.add_runtime_dependency "acts_as_list", [">= 0.3", "< 2"]
|
37
|
+
gem.add_runtime_dependency "awesome_nested_set", ["~> 3.1"]
|
38
|
+
gem.add_runtime_dependency "cancancan", [">= 2.1", "< 4.0"]
|
39
|
+
gem.add_runtime_dependency "coffee-rails", [">= 4.0", "< 6.0"]
|
40
|
+
gem.add_runtime_dependency "dragonfly", ["~> 1.4"]
|
41
|
+
gem.add_runtime_dependency "dragonfly_svg", ["~> 0.0.4"]
|
42
|
+
gem.add_runtime_dependency "gutentag", ["~> 2.2", ">= 2.2.1"]
|
43
|
+
gem.add_runtime_dependency "handlebars_assets", ["~> 0.23"]
|
44
|
+
gem.add_runtime_dependency "jquery-rails", ["~> 4.0", ">= 4.0.4"]
|
45
|
+
gem.add_runtime_dependency "jquery-ui-rails", ["~> 6.0"]
|
46
|
+
gem.add_runtime_dependency "kaminari", ["~> 1.1"]
|
47
|
+
gem.add_runtime_dependency "originator", ["~> 3.1"]
|
48
|
+
gem.add_runtime_dependency "non-stupid-digest-assets", ["~> 1.0.8"]
|
49
|
+
gem.add_runtime_dependency "ransack", [">= 1.8", "< 2.4.2"] # 2.4.2 dropped Ruby 2.5 support in a patch level release
|
50
|
+
gem.add_runtime_dependency "request_store", ["~> 1.2"]
|
51
|
+
gem.add_runtime_dependency "responders", [">= 2.0", "< 4.0"]
|
52
|
+
gem.add_runtime_dependency "sassc-rails", ["~> 2.1"]
|
53
|
+
gem.add_runtime_dependency "simple_form", [">= 4.0", "< 6"]
|
54
|
+
gem.add_runtime_dependency "sprockets", [">= 3.0", "< 5"]
|
55
|
+
gem.add_runtime_dependency "turbolinks", [">= 2.5"]
|
56
|
+
gem.add_runtime_dependency "webpacker", [">= 4.0", "< 6"]
|
44
57
|
|
45
|
-
gem.add_development_dependency
|
46
|
-
gem.add_development_dependency
|
47
|
-
gem.add_development_dependency
|
48
|
-
gem.add_development_dependency
|
49
|
-
gem.add_development_dependency
|
50
|
-
gem.add_development_dependency
|
51
|
-
gem.add_development_dependency
|
52
|
-
gem.add_development_dependency
|
53
|
-
gem.add_development_dependency
|
54
|
-
gem.add_development_dependency
|
55
|
-
gem.add_development_dependency
|
56
|
-
gem.add_development_dependency
|
58
|
+
gem.add_development_dependency "capybara", ["~> 3.0"]
|
59
|
+
gem.add_development_dependency "capybara-screenshot", ["~> 1.0"]
|
60
|
+
gem.add_development_dependency "factory_bot_rails", ["~> 6.0"]
|
61
|
+
gem.add_development_dependency "puma", ["~> 5.0"]
|
62
|
+
gem.add_development_dependency "rails-controller-testing", ["~> 1.0"]
|
63
|
+
gem.add_development_dependency "rspec-activemodel-mocks", ["~> 1.0"]
|
64
|
+
gem.add_development_dependency "rspec-rails", [">= 4.0.0.beta2"]
|
65
|
+
gem.add_development_dependency "simplecov", ["~> 0.20"]
|
66
|
+
gem.add_development_dependency "webdrivers", ["~> 4.0"]
|
67
|
+
gem.add_development_dependency "webmock", ["~> 3.3"]
|
68
|
+
gem.add_development_dependency "shoulda-matchers", ["~> 4.0"]
|
69
|
+
gem.add_development_dependency "timecop", ["~> 0.9"]
|
57
70
|
|
58
|
-
gem.post_install_message =
|
59
|
-
-------------------------------------------------------------
|
60
|
-
|
61
|
-
-------------------------------------------------------------
|
71
|
+
gem.post_install_message = <<~MSG
|
72
|
+
-------------------------------------------------------------
|
73
|
+
Thank you for installing Alchemy CMS
|
74
|
+
-------------------------------------------------------------
|
62
75
|
|
63
|
-
- Complete the installation in an existing Rails application:
|
76
|
+
- Complete the installation in an existing Rails application:
|
64
77
|
|
65
|
-
|
78
|
+
$ bin/rake alchemy:install
|
66
79
|
|
67
|
-
- Complete the upgrade of an existing Alchemy installation:
|
80
|
+
- Complete the upgrade of an existing Alchemy installation:
|
68
81
|
|
69
|
-
|
82
|
+
$ bin/rake alchemy:upgrade
|
70
83
|
|
71
|
-
and follow the onscreen instructions.
|
84
|
+
and follow the onscreen instructions.
|
72
85
|
|
73
|
-
Need help? Try:
|
86
|
+
Need help? Try:
|
74
87
|
|
75
|
-
* https://stackoverflow.com/questions/tagged/alchemy-cms
|
76
|
-
* https://slackin.alchemy-cms.com
|
77
|
-
-------------------------------------------------------------
|
88
|
+
* https://stackoverflow.com/questions/tagged/alchemy-cms
|
89
|
+
* https://slackin.alchemy-cms.com
|
90
|
+
-------------------------------------------------------------
|
78
91
|
|
79
|
-
MSG
|
92
|
+
MSG
|
80
93
|
end
|
@@ -31,17 +31,17 @@
|
|
31
31
|
//= require alchemy/alchemy.growler
|
32
32
|
//= require alchemy/alchemy.gui
|
33
33
|
//= require alchemy/alchemy.hotkeys
|
34
|
-
//= require alchemy/alchemy.image_cropper
|
35
34
|
//= require alchemy/alchemy.image_overlay
|
36
35
|
//= require alchemy/alchemy.string_extension
|
37
36
|
//= require alchemy/alchemy.link_dialog
|
38
37
|
//= require alchemy/alchemy.list_filter
|
39
38
|
//= require alchemy/alchemy.initializer
|
39
|
+
//= require alchemy/alchemy.page_sorter
|
40
40
|
//= require alchemy/alchemy.uploader
|
41
41
|
//= require alchemy/alchemy.preview_window
|
42
|
+
//= require alchemy/alchemy.sitemap
|
42
43
|
//= require alchemy/alchemy.spinner
|
43
44
|
//= require alchemy/alchemy.tinymce
|
44
45
|
//= require alchemy/alchemy.tooltips
|
45
|
-
//= require alchemy/alchemy.trash_window
|
46
46
|
//= require alchemy/page_select
|
47
47
|
//= require alchemy/node_select
|
@@ -42,36 +42,6 @@ $.extend Alchemy,
|
|
42
42
|
$overlay.hide()
|
43
43
|
return
|
44
44
|
|
45
|
-
# Shows spinner while loading images and
|
46
|
-
# fades the image after its been loaded
|
47
|
-
ImageLoader: (scope = document, options = {fill: '#fff'}) ->
|
48
|
-
$('img', scope).each ->
|
49
|
-
if !this.complete
|
50
|
-
image = $(this).hide()
|
51
|
-
$parent = image.parent()
|
52
|
-
spinner = new Alchemy.Spinner('small', options)
|
53
|
-
spinner.spin $parent[0]
|
54
|
-
image.on 'load', ->
|
55
|
-
spinner.stop()
|
56
|
-
image.fadeIn 400
|
57
|
-
image.on 'error', (evt) ->
|
58
|
-
message = "Could not load #{this.src}"
|
59
|
-
spinner.stop()
|
60
|
-
console.error(message, evt)
|
61
|
-
$parent.html('<span class="icon fas fa-exclamation-triangle" title="' + message + '" />')
|
62
|
-
return
|
63
|
-
|
64
|
-
# Removes the picture from essence picture thumbnail
|
65
|
-
removePicture: (selector) ->
|
66
|
-
$form_field = $(selector)
|
67
|
-
$element = $form_field.closest(".element-editor")
|
68
|
-
$content = $form_field.closest(".content_editor")
|
69
|
-
if $form_field[0]
|
70
|
-
$form_field.val ""
|
71
|
-
$content.find(".thumbnail_background").html('<i class="icon far fa-image fa-fw"/>')
|
72
|
-
Alchemy.setElementDirty $element
|
73
|
-
false
|
74
|
-
|
75
45
|
# Initializes all select tag with .alchemy_selectbox class as select2 instance
|
76
46
|
# Pass a jQuery scope to only init a subset of selectboxes.
|
77
47
|
SelectBox: (scope) ->
|