alchemy_cms 6.1.2 → 7.0.0.pre.a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +0 -3
- data/.gitignore +1 -6
- data/CHANGELOG.md +22 -8
- data/Gemfile +1 -0
- data/Rakefile +13 -8
- data/alchemy_cms.gemspec +1 -3
- data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +18 -32
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -2
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +2 -2
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +27 -29
- data/app/assets/stylesheets/alchemy/elements.scss +16 -35
- data/app/assets/stylesheets/alchemy/forms.scss +0 -4
- data/app/assets/stylesheets/alchemy/node-select.scss +2 -2
- data/app/controllers/alchemy/admin/attachments_controller.rb +0 -1
- data/app/controllers/alchemy/admin/elements_controller.rb +7 -32
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pictures_controller.rb +1 -1
- data/app/controllers/alchemy/admin/resources_controller.rb +1 -18
- data/app/controllers/alchemy/api/elements_controller.rb +0 -2
- data/app/controllers/alchemy/api/pages_controller.rb +6 -4
- data/app/controllers/alchemy/messages_controller.rb +9 -9
- data/app/controllers/alchemy/pages_controller.rb +19 -28
- data/app/decorators/alchemy/element_editor.rb +10 -30
- data/app/helpers/alchemy/admin/elements_helper.rb +0 -2
- data/app/helpers/alchemy/elements_block_helper.rb +5 -42
- data/app/helpers/alchemy/elements_helper.rb +3 -11
- data/app/helpers/alchemy/pages_helper.rb +0 -4
- data/app/models/alchemy/attachment.rb +6 -3
- data/app/models/alchemy/base_record.rb +2 -0
- data/app/models/alchemy/eager_loading.rb +0 -1
- data/app/models/alchemy/element/element_ingredients.rb +1 -8
- data/app/models/alchemy/element/presenters.rb +9 -25
- data/app/models/alchemy/element.rb +2 -16
- data/app/models/alchemy/ingredient.rb +17 -6
- data/app/models/alchemy/ingredients/audio.rb +2 -0
- data/app/models/alchemy/ingredients/datetime.rb +3 -1
- data/app/models/alchemy/ingredients/file.rb +7 -0
- data/app/models/alchemy/ingredients/headline.rb +6 -0
- data/app/models/alchemy/ingredients/link.rb +2 -0
- data/app/models/alchemy/ingredients/node.rb +2 -0
- data/app/models/alchemy/ingredients/page.rb +2 -0
- data/app/models/alchemy/ingredients/picture.rb +11 -0
- data/app/models/alchemy/ingredients/richtext.rb +6 -0
- data/app/models/alchemy/ingredients/select.rb +1 -0
- data/app/models/alchemy/ingredients/text.rb +8 -0
- data/app/models/alchemy/ingredients/video.rb +2 -0
- data/app/models/alchemy/node.rb +9 -6
- data/app/models/alchemy/page/page_elements.rb +5 -26
- data/app/models/alchemy/page/page_layouts.rb +0 -14
- data/app/models/alchemy/page/page_natures.rb +0 -10
- data/app/models/alchemy/page.rb +0 -8
- data/app/models/alchemy/picture/transformations.rb +0 -30
- data/app/models/alchemy/picture/url.rb +1 -1
- data/app/models/alchemy/picture.rb +12 -10
- data/app/models/alchemy/picture_thumb/create.rb +7 -18
- data/app/models/alchemy/picture_thumb/file_store.rb +33 -0
- data/app/models/alchemy/picture_thumb.rb +10 -10
- data/app/models/concerns/alchemy/picture_thumbnails.rb +2 -2
- data/app/serializers/alchemy/element_serializer.rb +1 -6
- data/app/services/alchemy/delete_elements.rb +1 -7
- data/app/services/alchemy/duplicate_element.rb +1 -6
- data/app/views/alchemy/admin/elements/_element.html.erb +5 -22
- data/app/views/alchemy/admin/elements/create.js.erb +1 -1
- data/app/views/alchemy/admin/elements/fold.js.erb +2 -2
- data/app/views/alchemy/admin/elements/order.js.erb +1 -1
- data/app/views/alchemy/admin/elements/update.js.erb +1 -2
- data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_file_link.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_internal_link.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +3 -6
- data/app/views/alchemy/admin/pages/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -3
- data/app/views/alchemy/admin/pictures/_infos.html.erb +4 -6
- data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_headline_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_html_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_node_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_picture_editor.html.erb +4 -4
- data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -2
- data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +3 -3
- data/app/views/alchemy/pages/_meta_data.html.erb +0 -1
- data/app/views/layouts/alchemy/admin.html.erb +5 -1
- data/config/alchemy/config.yml +6 -6
- data/config/brakeman.ignore +56 -57
- data/config/locales/alchemy.en.yml +98 -112
- data/config/routes.rb +1 -16
- data/db/migrate/20230121212637_alchemy_six_point_one.rb +248 -0
- data/lib/alchemy/cache_digests/template_tracker.rb +6 -7
- data/lib/alchemy/config.rb +2 -2
- data/lib/alchemy/deprecation.rb +1 -1
- data/lib/alchemy/errors.rb +0 -11
- data/lib/alchemy/hints.rb +10 -10
- data/lib/alchemy/install/tasks.rb +7 -1
- data/lib/alchemy/permissions.rb +0 -13
- data/lib/alchemy/routing_constraints.rb +3 -3
- data/lib/alchemy/searchable_resource.rb +38 -0
- data/lib/alchemy/tasks/tidy.rb +0 -38
- data/lib/alchemy/test_support/capybara_helpers.rb +69 -0
- data/lib/alchemy/test_support/factories/element_factory.rb +0 -6
- data/lib/alchemy/test_support/factories/ingredient_factory.rb +1 -1
- data/lib/alchemy/test_support/factories/page_factory.rb +4 -2
- data/lib/alchemy/test_support/shared_dom_ids_examples.rb +1 -1
- data/lib/alchemy/test_support/shared_ingredient_examples.rb +1 -1
- data/lib/alchemy/tinymce.rb +1 -18
- data/lib/alchemy/upgrader/seven_point_zero.rb +45 -0
- data/lib/alchemy/upgrader/tasks/.keep +0 -0
- data/lib/alchemy/upgrader.rb +8 -3
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy.rb +0 -19
- data/lib/alchemy_cms.rb +2 -3
- data/lib/generators/alchemy/elements/elements_generator.rb +0 -1
- data/lib/generators/alchemy/elements/templates/view.html.erb +1 -10
- data/lib/generators/alchemy/elements/templates/view.html.haml +1 -9
- data/lib/generators/alchemy/elements/templates/view.html.slim +1 -9
- data/lib/generators/alchemy/install/files/alchemy.en.yml +7 -8
- data/lib/generators/alchemy/install/files/application.html.erb +1 -1
- data/lib/generators/alchemy/install/install_generator.rb +18 -22
- data/lib/generators/alchemy/install/templates/elements.yml.tt +12 -12
- data/lib/non_stupid_digest_assets.rb +55 -0
- data/lib/tasks/alchemy/thumbnails.rake +2 -21
- data/lib/tasks/alchemy/tidy.rake +1 -12
- data/lib/tasks/alchemy/upgrade.rake +10 -47
- data/package/dist/admin.js +16 -0
- data/package/dist/admin.js.map +7 -0
- data/package.json +5 -3
- metadata +15 -154
- data/app/controllers/alchemy/admin/contents_controller.rb +0 -21
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -30
- data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -31
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +0 -43
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -34
- data/app/controllers/alchemy/api/contents_controller.rb +0 -52
- data/app/decorators/alchemy/content_editor.rb +0 -119
- data/app/helpers/alchemy/admin/contents_helper.rb +0 -42
- data/app/helpers/alchemy/admin/essences_helper.rb +0 -31
- data/app/models/alchemy/content/factory.rb +0 -143
- data/app/models/alchemy/content.rb +0 -247
- data/app/models/alchemy/element/element_contents.rb +0 -200
- data/app/models/alchemy/element/element_essences.rb +0 -133
- data/app/models/alchemy/essence_audio.rb +0 -13
- data/app/models/alchemy/essence_boolean.rb +0 -20
- data/app/models/alchemy/essence_date.rb +0 -25
- data/app/models/alchemy/essence_file.rb +0 -49
- data/app/models/alchemy/essence_headline.rb +0 -41
- data/app/models/alchemy/essence_html.rb +0 -23
- data/app/models/alchemy/essence_link.rb +0 -21
- data/app/models/alchemy/essence_node.rb +0 -19
- data/app/models/alchemy/essence_page.rb +0 -17
- data/app/models/alchemy/essence_picture.rb +0 -67
- data/app/models/alchemy/essence_picture_view.rb +0 -90
- data/app/models/alchemy/essence_richtext.rb +0 -44
- data/app/models/alchemy/essence_select.rb +0 -19
- data/app/models/alchemy/essence_text.rb +0 -23
- data/app/models/alchemy/essence_video.rb +0 -13
- data/app/serializers/alchemy/content_serializer.rb +0 -17
- data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -10
- data/app/serializers/alchemy/essence_date_serializer.rb +0 -10
- data/app/serializers/alchemy/essence_file_serializer.rb +0 -13
- data/app/serializers/alchemy/essence_html_serializer.rb +0 -10
- data/app/serializers/alchemy/essence_link_serializer.rb +0 -13
- data/app/serializers/alchemy/essence_picture_serializer.rb +0 -28
- data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -11
- data/app/serializers/alchemy/essence_select_serializer.rb +0 -10
- data/app/serializers/alchemy/essence_text_serializer.rb +0 -22
- data/app/views/alchemy/admin/contents/create.js.erb +0 -21
- data/app/views/alchemy/admin/essence_audios/edit.html.erb +0 -7
- data/app/views/alchemy/admin/essence_files/edit.html.erb +0 -21
- data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +0 -5
- data/app/views/alchemy/admin/essence_pictures/edit.html.erb +0 -30
- data/app/views/alchemy/admin/essence_pictures/save_link.js.erb +0 -3
- data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -8
- data/app/views/alchemy/admin/essence_videos/edit.html.erb +0 -12
- data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -4
- data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -15
- data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +0 -11
- data/app/views/alchemy/essences/_essence_boolean_view.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_date_editor.html.erb +0 -16
- data/app/views/alchemy/essences/_essence_date_view.html.erb +0 -10
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +0 -54
- data/app/views/alchemy/essences/_essence_file_view.html.erb +0 -18
- data/app/views/alchemy/essences/_essence_headline_editor.html.erb +0 -36
- data/app/views/alchemy/essences/_essence_headline_view.html.erb +0 -10
- data/app/views/alchemy/essences/_essence_html_editor.html.erb +0 -10
- data/app/views/alchemy/essences/_essence_html_view.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +0 -30
- data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -10
- data/app/views/alchemy/essences/_essence_node_editor.html.erb +0 -27
- data/app/views/alchemy/essences/_essence_node_view.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_page_editor.html.erb +0 -26
- data/app/views/alchemy/essences/_essence_page_view.html.erb +0 -5
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +0 -59
- data/app/views/alchemy/essences/_essence_picture_view.html.erb +0 -6
- data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -14
- data/app/views/alchemy/essences/_essence_richtext_view.html.erb +0 -4
- data/app/views/alchemy/essences/_essence_select_editor.html.erb +0 -28
- data/app/views/alchemy/essences/_essence_select_view.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +0 -29
- data/app/views/alchemy/essences/_essence_text_view.html.erb +0 -17
- data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -4
- data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -19
- data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +0 -59
- data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +0 -20
- data/app/views/alchemy/pages/show.rss.builder +0 -21
- data/db/migrate/20200226213334_alchemy_four_point_four.rb +0 -313
- data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +0 -11
- data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +0 -28
- data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +0 -8
- data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +0 -27
- data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +0 -6
- data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +0 -24
- data/db/migrate/20200617110713_create_alchemy_picture_thumbs.rb +0 -22
- data/db/migrate/20200907111332_remove_tri_state_booleans.rb +0 -33
- data/db/migrate/20201207131309_create_page_versions.rb +0 -19
- data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +0 -76
- data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +0 -10
- data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +0 -7
- data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +0 -12
- data/db/migrate/20210506135919_create_essence_audios.rb +0 -19
- data/db/migrate/20210506140258_create_essence_videos.rb +0 -23
- data/db/migrate/20210508091432_create_alchemy_ingredients.rb +0 -22
- data/db/migrate/20220514072456_restrict_on_delete_page_id_foreign_key_from_alchemy_nodes.rb +0 -13
- data/db/migrate/20220622130905_add_playsinline_to_alchemy_essence_videos.rb +0 -9
- data/lib/alchemy/essence.rb +0 -250
- data/lib/alchemy/test_support/essence_shared_examples.rb +0 -271
- data/lib/alchemy/test_support/factories/content_factory.rb +0 -20
- data/lib/alchemy/test_support/factories/essence_audio_factory.rb +0 -7
- data/lib/alchemy/test_support/factories/essence_file_factory.rb +0 -7
- data/lib/alchemy/test_support/factories/essence_page_factory.rb +0 -7
- data/lib/alchemy/test_support/factories/essence_picture_factory.rb +0 -11
- data/lib/alchemy/test_support/factories/essence_text_factory.rb +0 -7
- data/lib/alchemy/test_support/factories/essence_video_factory.rb +0 -7
- data/lib/alchemy/upgrader/five_point_zero.rb +0 -41
- data/lib/alchemy/upgrader/six_point_zero.rb +0 -21
- data/lib/alchemy/upgrader/tasks/add_page_versions.rb +0 -33
- data/lib/alchemy/upgrader/tasks/element_views_updater.rb +0 -34
- data/lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb +0 -29
- data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +0 -74
- data/lib/generators/alchemy/essence/essence_generator.rb +0 -49
- data/lib/generators/alchemy/essence/templates/editor.html.erb +0 -17
- data/lib/generators/alchemy/essence/templates/view.html.erb +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6b458227c38affbfe51743916b5d726410371bc82d1aecdaec6f587df2fef882
|
|
4
|
+
data.tar.gz: 14626367bd1b8cb8f891518514915273ebb95f320e9a91e5815108a2109854f3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '068c0aac56cf25bc3bb88a2c1114db7028f5a1177e71e8763d2f7cd0124cfecbf984aa3b62c75267077af051f5032c18ec779d354a61a6c082b6b96d4d0bc706'
|
|
7
|
+
data.tar.gz: 6cd013283061060f7d97c0222c474d67e1748b8865c03872cdd00f2c6583d6f3c3c6918d69dff069bd60392e2c0814c0cf1a00cb79ad75f7be49ec6f1032be41
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -82,9 +82,6 @@ jobs:
|
|
|
82
82
|
sudo apt update -qq
|
|
83
83
|
sudo apt install -qq --fix-missing libmysqlclient-dev -o dir::cache::archives="/home/runner/apt/cache"
|
|
84
84
|
sudo chown -R runner /home/runner/apt/cache
|
|
85
|
-
- uses: actions/setup-node@v3
|
|
86
|
-
with:
|
|
87
|
-
node-version: 16
|
|
88
85
|
- name: Restore node modules cache
|
|
89
86
|
id: yarn-cache
|
|
90
87
|
uses: actions/cache@v2.1.3
|
data/.gitignore
CHANGED
|
@@ -9,14 +9,9 @@ pkg
|
|
|
9
9
|
tmp
|
|
10
10
|
log
|
|
11
11
|
.sass-cache
|
|
12
|
-
spec/dummy
|
|
12
|
+
spec/dummy/app/assets/builds/*.js*
|
|
13
13
|
spec/dummy/app/javascript/
|
|
14
|
-
spec/dummy/babel.config.js
|
|
15
|
-
spec/dummy/bin/webpack
|
|
16
|
-
spec/dummy/bin/webpack-dev-server
|
|
17
14
|
spec/dummy/config/alchemy/config.yml
|
|
18
|
-
spec/dummy/config/webpack/
|
|
19
|
-
spec/dummy/config/webpacker.yml
|
|
20
15
|
spec/dummy/db/*.sqlite3*
|
|
21
16
|
spec/dummy/package.json
|
|
22
17
|
spec/dummy/postcss.config.js
|
data/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
3
|
+
## 7.0.0 (unreleased)
|
|
4
|
+
|
|
5
|
+
- Remove deprecations [#2450](https://github.com/AlchemyCMS/alchemy_cms/pull/2450) ([tvdeyen](https://github.com/tvdeyen))
|
|
6
|
+
- Fix respond_to? overwrite in ElementEditor [#2449](https://github.com/AlchemyCMS/alchemy_cms/pull/2449) ([tvdeyen](https://github.com/tvdeyen))
|
|
7
|
+
- Fix installer: Add seeds file if not exists [#2446](https://github.com/AlchemyCMS/alchemy_cms/pull/2446) ([tvdeyen](https://github.com/tvdeyen))
|
|
8
|
+
- Make CapybaraHelpers requireable [#2445](https://github.com/AlchemyCMS/alchemy_cms/pull/2445) ([tvdeyen](https://github.com/tvdeyen))
|
|
9
|
+
- Do not install webpacker tag for fresh apps [#2444](https://github.com/AlchemyCMS/alchemy_cms/pull/2444) ([tvdeyen](https://github.com/tvdeyen))
|
|
10
|
+
- Re-add Webpacker support. [#2443](https://github.com/AlchemyCMS/alchemy_cms/pull/2443) ([tvdeyen](https://github.com/tvdeyen))
|
|
11
|
+
- Add support for more link tabs [#2442](https://github.com/AlchemyCMS/alchemy_cms/pull/2442) ([tvdeyen](https://github.com/tvdeyen))
|
|
12
|
+
- Add support for Ransack 4 [#2438](https://github.com/AlchemyCMS/alchemy_cms/pull/2438) ([tvdeyen](https://github.com/tvdeyen))
|
|
13
|
+
- Fix non_stupid_digest_assets [#2436](https://github.com/AlchemyCMS/alchemy_cms/pull/2436) ([tvdeyen](https://github.com/tvdeyen))
|
|
14
|
+
- Add PictureThumb.storage_class [#2435](https://github.com/AlchemyCMS/alchemy_cms/pull/2435) ([tvdeyen](https://github.com/tvdeyen))
|
|
15
|
+
- Fix thumbnail writing for multi-concurrent and multi-db setups [#2433](https://github.com/AlchemyCMS/alchemy_cms/pull/2433) ([tvdeyen](https://github.com/tvdeyen))
|
|
16
|
+
- Integrate non_stupid_digest_assets gem [#2430](https://github.com/AlchemyCMS/alchemy_cms/pull/2430) ([afdev82](https://github.com/afdev82))
|
|
17
|
+
- Define allowed settings in ingredients [#2425](https://github.com/AlchemyCMS/alchemy_cms/pull/2425) ([tvdeyen](https://github.com/tvdeyen))
|
|
18
|
+
- Remove webpacker [#2424](https://github.com/AlchemyCMS/alchemy_cms/pull/2424) ([tvdeyen](https://github.com/tvdeyen))
|
|
19
|
+
- Remove deprecated methods [#2421](https://github.com/AlchemyCMS/alchemy_cms/pull/2421) ([tvdeyen](https://github.com/tvdeyen))
|
|
20
|
+
- Remove 6.0 upgrade tasks [#2418](https://github.com/AlchemyCMS/alchemy_cms/pull/2418) ([tvdeyen](https://github.com/tvdeyen))
|
|
21
|
+
- Compress 6.1 migrations [#2417](https://github.com/AlchemyCMS/alchemy_cms/pull/2417) ([tvdeyen](https://github.com/tvdeyen))
|
|
22
|
+
- Remove all content/essence related code [#2416](https://github.com/AlchemyCMS/alchemy_cms/pull/2416) ([tvdeyen](https://github.com/tvdeyen))
|
|
23
|
+
- Remove RSS Feed feature [#2415](https://github.com/AlchemyCMS/alchemy_cms/pull/2415) ([tvdeyen](https://github.com/tvdeyen))
|
|
24
|
+
- Add searchable field to page [#2414](https://github.com/AlchemyCMS/alchemy_cms/pull/2414) ([kulturbande](https://github.com/kulturbande))
|
|
11
25
|
|
|
12
26
|
## 6.1.0 (2023-01-19)
|
|
13
27
|
|
data/Gemfile
CHANGED
|
@@ -19,6 +19,7 @@ group :development, :test do
|
|
|
19
19
|
# in our case the culprit is `handlebars-assets`. The changes between 2.7.0 and 2.8.0 are
|
|
20
20
|
# minimal, but breaking.
|
|
21
21
|
gem "execjs", "= 2.8.1"
|
|
22
|
+
gem "jsbundling-rails", "~> 1.1"
|
|
22
23
|
|
|
23
24
|
if ENV["GITHUB_ACTIONS"]
|
|
24
25
|
# Necessary because GH Actions gem cache does not have this "Bundled with Ruby" gem installed
|
data/Rakefile
CHANGED
|
@@ -44,13 +44,14 @@ namespace :alchemy do
|
|
|
44
44
|
yarn install && \
|
|
45
45
|
yarn link && \
|
|
46
46
|
cd spec/dummy && \
|
|
47
|
+
yarn link @alchemy_cms/admin && \
|
|
47
48
|
export RAILS_ENV=test && \
|
|
48
49
|
bin/rake db:create && \
|
|
49
50
|
bin/rake db:environment:set && \
|
|
50
51
|
bin/rake db:migrate:reset && \
|
|
52
|
+
bin/rails javascript:install:esbuild && \
|
|
51
53
|
bin/rails g alchemy:install --skip --skip-demo-files --auto-accept --skip-db-create && \
|
|
52
|
-
|
|
53
|
-
RAILS_ENV=test bin/webpack && \
|
|
54
|
+
bin/rails javascript:build && \
|
|
54
55
|
cd -
|
|
55
56
|
BASH
|
|
56
57
|
) || fail
|
|
@@ -63,13 +64,17 @@ namespace :alchemy do
|
|
|
63
64
|
original_file = "./CHANGELOG.md"
|
|
64
65
|
new_file = original_file + ".new"
|
|
65
66
|
backup = original_file + ".old"
|
|
66
|
-
changes = `git rev-list v#{ENV["PREVIOUS_VERSION"]}..HEAD | bundle exec github_fast_changelog AlchemyCMS/alchemy_cms
|
|
67
|
-
File.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
changes = `git rev-list v#{ENV["PREVIOUS_VERSION"]}..HEAD | bundle exec github_fast_changelog AlchemyCMS/alchemy_cms`.split("\n")
|
|
68
|
+
changelog = File.read(original_file)
|
|
69
|
+
File.open(new_file, "w") do |file|
|
|
70
|
+
changes.each do |change|
|
|
71
|
+
next if changelog.include?(change)
|
|
72
|
+
file.puts change
|
|
73
|
+
end
|
|
74
|
+
File.foreach(original_file) do |line|
|
|
75
|
+
file.puts line
|
|
71
76
|
end
|
|
72
|
-
|
|
77
|
+
file.puts ""
|
|
73
78
|
end
|
|
74
79
|
File.rename(original_file, backup)
|
|
75
80
|
File.rename(new_file, original_file)
|
data/alchemy_cms.gemspec
CHANGED
|
@@ -45,15 +45,13 @@ Gem::Specification.new do |gem|
|
|
|
45
45
|
gem.add_runtime_dependency "jquery-ui-rails", ["~> 6.0"]
|
|
46
46
|
gem.add_runtime_dependency "kaminari", ["~> 1.1"]
|
|
47
47
|
gem.add_runtime_dependency "originator", ["~> 3.1"]
|
|
48
|
-
gem.add_runtime_dependency "
|
|
49
|
-
gem.add_runtime_dependency "ransack", [">= 1.8", "< 4.0"]
|
|
48
|
+
gem.add_runtime_dependency "ransack", [">= 1.8", "< 5.0"]
|
|
50
49
|
gem.add_runtime_dependency "request_store", ["~> 1.2"]
|
|
51
50
|
gem.add_runtime_dependency "responders", [">= 2.0", "< 4.0"]
|
|
52
51
|
gem.add_runtime_dependency "sassc-rails", ["~> 2.1"]
|
|
53
52
|
gem.add_runtime_dependency "simple_form", [">= 4.0", "< 6"]
|
|
54
53
|
gem.add_runtime_dependency "sprockets", [">= 3.0", "< 5"]
|
|
55
54
|
gem.add_runtime_dependency "turbolinks", [">= 2.5"]
|
|
56
|
-
gem.add_runtime_dependency "webpacker", [">= 4.0", "< 6"]
|
|
57
55
|
|
|
58
56
|
gem.add_development_dependency "capybara", ["~> 3.0"]
|
|
59
57
|
gem.add_development_dependency "capybara-screenshot", ["~> 1.0"]
|
|
@@ -20,7 +20,7 @@ $.extend Alchemy,
|
|
|
20
20
|
setElementClean: (element) ->
|
|
21
21
|
$element = $(element)
|
|
22
22
|
$element.removeClass('dirty')
|
|
23
|
-
$element.find('> .element-
|
|
23
|
+
$element.find('> .element-body .dirty').removeClass('dirty')
|
|
24
24
|
window.onbeforeunload = undefined
|
|
25
25
|
|
|
26
26
|
isPageDirty: ->
|
|
@@ -15,7 +15,7 @@ Alchemy.ElementEditors =
|
|
|
15
15
|
init: ->
|
|
16
16
|
@element_area = $("#element_area")
|
|
17
17
|
@bindEvents()
|
|
18
|
-
@
|
|
18
|
+
@expandIngredientGroups()
|
|
19
19
|
return
|
|
20
20
|
|
|
21
21
|
# Binds click events on several DOM elements from element editors
|
|
@@ -29,27 +29,25 @@ Alchemy.ElementEditors =
|
|
|
29
29
|
@onDoubleClickElement(e)
|
|
30
30
|
@element_area.on "click", "[data-element-toggle]", (e) =>
|
|
31
31
|
@onClickToggle(e)
|
|
32
|
-
@element_area.on "click", '[data-create-missing-content]', (e) =>
|
|
33
|
-
@onClickMissingContent(e)
|
|
34
32
|
# Binds the custom FocusElementEditor event
|
|
35
33
|
@element_area.on "FocusElementEditor.Alchemy", '.element-editor', (e) =>
|
|
36
34
|
@onFocusElement(e)
|
|
37
35
|
# Binds the custom SaveElement event
|
|
38
36
|
@element_area.on "SaveElement.Alchemy", '.element-editor', (e, data) =>
|
|
39
37
|
@onSaveElement(e, data)
|
|
40
|
-
@element_area.on "click", '[data-toggle-
|
|
41
|
-
@
|
|
38
|
+
@element_area.on "click", '[data-toggle-ingredient-group]', (e) =>
|
|
39
|
+
@onToggleIngredientGroup(e)
|
|
42
40
|
# Listen to postMessage messages from the preview frame
|
|
43
41
|
window.addEventListener 'message', (e) =>
|
|
44
42
|
@onMessage(e.data)
|
|
45
43
|
true
|
|
46
44
|
return
|
|
47
45
|
|
|
48
|
-
# Expands
|
|
49
|
-
|
|
50
|
-
if $
|
|
51
|
-
for header_id in JSON.parse($
|
|
52
|
-
$('#' + header_id).closest('.
|
|
46
|
+
# Expands ingredient groups that are stored in sessionStorage as expanded
|
|
47
|
+
expandIngredientGroups: ->
|
|
48
|
+
if $expanded_ingredient_groups = sessionStorage.getItem('Alchemy.expanded_ingredient_groups')
|
|
49
|
+
for header_id in JSON.parse($expanded_ingredient_groups) then do (header_id) =>
|
|
50
|
+
$('#' + header_id).closest('.ingredient-group').addClass('expanded');
|
|
53
51
|
|
|
54
52
|
# Selects and scrolls to element with given id in the preview window.
|
|
55
53
|
#
|
|
@@ -179,21 +177,21 @@ Alchemy.ElementEditors =
|
|
|
179
177
|
Alchemy.Buttons.enable($element)
|
|
180
178
|
true
|
|
181
179
|
|
|
182
|
-
# Toggle visibility of the
|
|
183
|
-
|
|
184
|
-
$group_div = $(event.currentTarget).closest('.
|
|
180
|
+
# Toggle visibility of the ingredient fields in the group
|
|
181
|
+
onToggleIngredientGroup: (event) ->
|
|
182
|
+
$group_div = $(event.currentTarget).closest('.ingredient-group');
|
|
185
183
|
$group_div.toggleClass('expanded');
|
|
186
184
|
|
|
187
|
-
$
|
|
188
|
-
# Add or remove depending on whether this
|
|
185
|
+
$expanded_ingredient_groups = JSON.parse(sessionStorage.getItem('Alchemy.expanded_ingredient_groups') || '[]');
|
|
186
|
+
# Add or remove depending on whether this ingredient group is expanded
|
|
189
187
|
if $group_div.hasClass('expanded')
|
|
190
|
-
if $
|
|
191
|
-
$
|
|
188
|
+
if $expanded_ingredient_groups.indexOf(event.currentTarget.id) == -1
|
|
189
|
+
$expanded_ingredient_groups.push(event.currentTarget.id);
|
|
192
190
|
else
|
|
193
|
-
$
|
|
191
|
+
$expanded_ingredient_groups = $expanded_ingredient_groups.filter (value) ->
|
|
194
192
|
value != event.currentTarget.id
|
|
195
193
|
|
|
196
|
-
sessionStorage.setItem('Alchemy.
|
|
194
|
+
sessionStorage.setItem('Alchemy.expanded_ingredient_groups', JSON.stringify($expanded_ingredient_groups))
|
|
197
195
|
false
|
|
198
196
|
|
|
199
197
|
# Event handlers
|
|
@@ -248,22 +246,10 @@ Alchemy.ElementEditors =
|
|
|
248
246
|
e.stopPropagation()
|
|
249
247
|
false
|
|
250
248
|
|
|
251
|
-
# Handles the missing content button click events.
|
|
252
|
-
#
|
|
253
|
-
# Ensures that the links query string is converted into post body and send
|
|
254
|
-
# the request via a real ajax post to server, to allow long query strings.
|
|
255
|
-
#
|
|
256
|
-
onClickMissingContent: (e) ->
|
|
257
|
-
link = e.target
|
|
258
|
-
url = link.pathname
|
|
259
|
-
querystring = link.search.replace(/\?/, '')
|
|
260
|
-
$.post(url, querystring)
|
|
261
|
-
false
|
|
262
|
-
|
|
263
249
|
# private
|
|
264
250
|
|
|
265
251
|
_shouldUpdateTitle: (element, event) ->
|
|
266
|
-
editors = element.find('> .element-
|
|
252
|
+
editors = element.find('> .element-body .element-ingredient-editors').children()
|
|
267
253
|
if @_hasParents(element)
|
|
268
254
|
editors.length != 0
|
|
269
255
|
else if @_isParent(element) && @_isFirstChild $(event.target)
|
|
@@ -50,8 +50,8 @@ Alchemy.ElementsWindow =
|
|
|
50
50
|
$.get @url, (data) =>
|
|
51
51
|
@element_area.html data
|
|
52
52
|
Alchemy.GUI.init(@element_area)
|
|
53
|
-
Alchemy.fileEditors(@element_area.find(".
|
|
54
|
-
Alchemy.pictureEditors(@element_area.find(".
|
|
53
|
+
Alchemy.fileEditors(@element_area.find(".ingredient-editor.file, .ingredient-editor.audio, .ingredient-editor.video").selector)
|
|
54
|
+
Alchemy.pictureEditors(@element_area.find(".ingredient-editor.picture").selector)
|
|
55
55
|
if @callback
|
|
56
56
|
@callback.call()
|
|
57
57
|
.fail (xhr, status, error) =>
|
|
@@ -23,5 +23,5 @@ Alchemy.GUI =
|
|
|
23
23
|
Alchemy.ElementDirtyObserver($el)
|
|
24
24
|
Alchemy.GUI.init($el && $el.selector)
|
|
25
25
|
Alchemy.ImageLoader($el[0])
|
|
26
|
-
Alchemy.fileEditors($el.find(".
|
|
27
|
-
Alchemy.pictureEditors($el.find(".
|
|
26
|
+
Alchemy.fileEditors($el.find(".ingredient-editor.file, .ingredient-editor.audio, .ingredient-editor.video").selector)
|
|
27
|
+
Alchemy.pictureEditors($el.find(".ingredient-editor.picture").selector)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Represents the link Dialog that appears, if a user clicks the link buttons
|
|
2
|
-
# in TinyMCE or on an
|
|
2
|
+
# in TinyMCE or on an Ingredient that has links enabled (e.g. Picture)
|
|
3
3
|
#
|
|
4
4
|
class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
5
5
|
|
|
@@ -25,37 +25,29 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
25
25
|
# attach events we handle
|
|
26
26
|
@attachEvents()
|
|
27
27
|
# Store some jQuery objects for further reference
|
|
28
|
-
@$
|
|
28
|
+
@$internal_link = $('#internal_link', @dialog_body)
|
|
29
29
|
@$element_anchor = $('#element_anchor', @dialog_body)
|
|
30
30
|
@$anchor_link = $('#anchor_link', @dialog_body)
|
|
31
|
-
@$
|
|
32
|
-
@$
|
|
31
|
+
@$external_link = $('#external_link', @dialog_body)
|
|
32
|
+
@$file_link = $('#file_link', @dialog_body)
|
|
33
33
|
@$overlay_tabs = $('#overlay_tabs', @dialog_body)
|
|
34
34
|
@$page_container = $('#page_selector_container')
|
|
35
|
+
@initAnchorLinks()
|
|
35
36
|
# if we edit an existing link
|
|
36
37
|
if @link_object
|
|
37
38
|
# we select the correct tab
|
|
38
39
|
@selectTab()
|
|
39
40
|
@initPageSelect()
|
|
40
|
-
|
|
41
|
+
return
|
|
41
42
|
|
|
42
43
|
# Attaches click events to several buttons in the link dialog.
|
|
43
44
|
attachEvents: ->
|
|
44
45
|
# The ok buttons
|
|
45
46
|
$('.create-link.button', @dialog_body).click (e) =>
|
|
46
47
|
@link_type = $(e.target).data('link-type')
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
url = @$external_url.val()
|
|
51
|
-
when 'file'
|
|
52
|
-
url = @$public_filename.val()
|
|
53
|
-
when 'anchor'
|
|
54
|
-
url = @$anchor_link.val()
|
|
55
|
-
else
|
|
56
|
-
url = @$page_urlname.val()
|
|
57
|
-
if @$element_anchor.val() != ''
|
|
58
|
-
url += "##{@$element_anchor.val()}"
|
|
48
|
+
url = $("##{@link_type}_link").val()
|
|
49
|
+
if @link_type == 'internal' && @$element_anchor.val() != ''
|
|
50
|
+
url += "##{@$element_anchor.val()}"
|
|
59
51
|
# Create the link
|
|
60
52
|
@createLink
|
|
61
53
|
url: url
|
|
@@ -67,7 +59,7 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
67
59
|
initPageSelect: ->
|
|
68
60
|
pageTemplate = HandlebarsTemplates.page
|
|
69
61
|
element_anchor_placeholder = @$element_anchor.attr('placeholder')
|
|
70
|
-
@$
|
|
62
|
+
@$internal_link.select2
|
|
71
63
|
placeholder: Alchemy.t('Search page')
|
|
72
64
|
allowClear: true
|
|
73
65
|
minimumInputLength: 3
|
|
@@ -142,7 +134,7 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
142
134
|
@setLink(options.url, options.title, options.target)
|
|
143
135
|
@close()
|
|
144
136
|
|
|
145
|
-
# Sets the link either in TinyMCE or on an
|
|
137
|
+
# Sets the link either in TinyMCE or on an Ingredient.
|
|
146
138
|
setLink: (url, title, target) ->
|
|
147
139
|
Alchemy.setElementDirty(@$link_object.closest('.element-editor'))
|
|
148
140
|
if @link_object.editor
|
|
@@ -162,7 +154,7 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
162
154
|
editor.selection.collapse()
|
|
163
155
|
true
|
|
164
156
|
|
|
165
|
-
# Sets a link on an
|
|
157
|
+
# Sets a link on an Ingredient (e.g. Picture).
|
|
166
158
|
setLinkFields: (url, title, target) ->
|
|
167
159
|
@link_value_field.value = url
|
|
168
160
|
@link_value_field.dispatchEvent(new Event("change"))
|
|
@@ -176,10 +168,10 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
176
168
|
|
|
177
169
|
# Selects the correct tab for link type and fills all fields.
|
|
178
170
|
selectTab: ->
|
|
179
|
-
# Creating an temporary anchor node if we are linking an
|
|
171
|
+
# Creating an temporary anchor node if we are linking an Picture Ingredient.
|
|
180
172
|
if (@link_object.nodeType)
|
|
181
173
|
@$link = @createTempLink()
|
|
182
|
-
# Restoring the bookmarked selection inside the TinyMCE of an
|
|
174
|
+
# Restoring the bookmarked selection inside the TinyMCE of an Richtext.
|
|
183
175
|
else if (@link_object.node.nodeName == 'A')
|
|
184
176
|
@$link = $(@link_object.node)
|
|
185
177
|
@link_object.selection.moveToBookmark(@link_object.bookmark)
|
|
@@ -192,27 +184,33 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
192
184
|
if @$link.hasClass('external')
|
|
193
185
|
# Handles an external link.
|
|
194
186
|
tab = $('#overlay_tab_external_link')
|
|
195
|
-
@$
|
|
187
|
+
@$external_link.val(@$link.attr('href'))
|
|
196
188
|
else if @$link.hasClass('file')
|
|
197
189
|
# Handles a file link.
|
|
198
190
|
tab = $('#overlay_tab_file_link')
|
|
199
|
-
@$
|
|
191
|
+
@$file_link.select2('val', @$link[0].pathname + @$link[0].search)
|
|
200
192
|
else if @$link.attr('href').match(/^#/)
|
|
201
193
|
# Handles an anchor link.
|
|
202
194
|
tab = $('#overlay_tab_anchor_link')
|
|
203
195
|
@$anchor_link.select2('val', @$link.attr('href'))
|
|
204
|
-
else
|
|
196
|
+
else if @$link.hasClass('internal')
|
|
205
197
|
# Handles an internal link.
|
|
206
198
|
tab = $('#overlay_tab_internal_link')
|
|
207
199
|
@initInternalLinkTab()
|
|
208
|
-
|
|
209
|
-
|
|
200
|
+
else
|
|
201
|
+
# Emit an event to allow extensions hook into the link overlay.
|
|
202
|
+
@$overlay_tabs.trigger 'SelectLinkTab.Alchemy',
|
|
203
|
+
link: @$link
|
|
204
|
+
if tab
|
|
205
|
+
# activate the tab jquery ui 1.10 style o.O
|
|
206
|
+
@$overlay_tabs.tabs('option', 'active', $('#overlay_tabs > div').index(tab))
|
|
207
|
+
return
|
|
210
208
|
|
|
211
209
|
# Handles actions for internal link tab.
|
|
212
210
|
initInternalLinkTab: ->
|
|
213
211
|
url = @$link.attr('href').split('#')
|
|
214
212
|
# update the url field
|
|
215
|
-
@$
|
|
213
|
+
@$internal_link.val(url[0])
|
|
216
214
|
# store the anchor
|
|
217
215
|
@$element_anchor.val(url[1])
|
|
218
216
|
|
|
@@ -251,7 +249,7 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
|
|
|
251
249
|
|
|
252
250
|
# Public class methods
|
|
253
251
|
|
|
254
|
-
# Removes link from
|
|
252
|
+
# Removes link from Ingredient.
|
|
255
253
|
@removeLink = (link, parent_selector) ->
|
|
256
254
|
parent = document.querySelector(parent_selector)
|
|
257
255
|
link_value_field = parent.querySelector("[data-link-value]")
|
|
@@ -275,11 +275,10 @@
|
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
.element-
|
|
278
|
+
.element-body {
|
|
279
279
|
margin: 4px 8px;
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
-
.content_editor,
|
|
283
282
|
.ingredient-editor,
|
|
284
283
|
.picture_thumbnail {
|
|
285
284
|
width: 100%;
|
|
@@ -303,7 +302,7 @@
|
|
|
303
302
|
}
|
|
304
303
|
}
|
|
305
304
|
|
|
306
|
-
.element-
|
|
305
|
+
.element-body {
|
|
307
306
|
margin: 2 * $default-padding;
|
|
308
307
|
}
|
|
309
308
|
|
|
@@ -414,7 +413,7 @@
|
|
|
414
413
|
}
|
|
415
414
|
}
|
|
416
415
|
|
|
417
|
-
.
|
|
416
|
+
.ingredient-group {
|
|
418
417
|
width: 100%;
|
|
419
418
|
padding: $default-padding 0;
|
|
420
419
|
position: relative;
|
|
@@ -425,7 +424,7 @@
|
|
|
425
424
|
padding-bottom: 0;
|
|
426
425
|
}
|
|
427
426
|
|
|
428
|
-
.
|
|
427
|
+
.ingredient-group-header {
|
|
429
428
|
display: flex;
|
|
430
429
|
align-items: center;
|
|
431
430
|
justify-content: space-between;
|
|
@@ -434,22 +433,21 @@
|
|
|
434
433
|
padding: $default-padding 1px;
|
|
435
434
|
}
|
|
436
435
|
|
|
437
|
-
.
|
|
436
|
+
.ingredient-group-ingredients {
|
|
438
437
|
display: none;
|
|
439
438
|
}
|
|
440
439
|
|
|
441
440
|
&.expanded {
|
|
442
|
-
.
|
|
441
|
+
.ingredient-group-ingredients {
|
|
443
442
|
display: block;
|
|
444
443
|
}
|
|
445
444
|
|
|
446
|
-
.
|
|
445
|
+
.ingredient-group-expand {
|
|
447
446
|
@extend .fa-angle-up;
|
|
448
447
|
}
|
|
449
448
|
}
|
|
450
449
|
}
|
|
451
450
|
|
|
452
|
-
.element-content-editors,
|
|
453
451
|
.element-ingredient-editors {
|
|
454
452
|
display: flex;
|
|
455
453
|
flex-wrap: wrap;
|
|
@@ -467,7 +465,7 @@
|
|
|
467
465
|
min-height: 100px;
|
|
468
466
|
}
|
|
469
467
|
|
|
470
|
-
.
|
|
468
|
+
.ingredient_link_buttons {
|
|
471
469
|
display: flex;
|
|
472
470
|
position: absolute;
|
|
473
471
|
bottom: 2 * $default-margin;
|
|
@@ -495,7 +493,7 @@
|
|
|
495
493
|
background-color: $form-field-disabled-bg-color;
|
|
496
494
|
}
|
|
497
495
|
|
|
498
|
-
&.linked.link-
|
|
496
|
+
&.linked.link-ingredient {
|
|
499
497
|
@include linked-button(
|
|
500
498
|
$border-radius: 0,
|
|
501
499
|
$line-height: 30px,
|
|
@@ -507,7 +505,7 @@
|
|
|
507
505
|
}
|
|
508
506
|
}
|
|
509
507
|
|
|
510
|
-
&.linked.unlink-
|
|
508
|
+
&.linked.unlink-ingredient {
|
|
511
509
|
@include linked-button(
|
|
512
510
|
$border-radius: 0 $default-border-radius $default-border-radius 0,
|
|
513
511
|
$line-height: 30px,
|
|
@@ -519,7 +517,7 @@
|
|
|
519
517
|
}
|
|
520
518
|
}
|
|
521
519
|
|
|
522
|
-
&.unlink-
|
|
520
|
+
&.unlink-ingredient {
|
|
523
521
|
border-left-width: 0;
|
|
524
522
|
@extend .right-rounded-border;
|
|
525
523
|
}
|
|
@@ -561,7 +559,6 @@
|
|
|
561
559
|
}
|
|
562
560
|
}
|
|
563
561
|
|
|
564
|
-
.essence_picture,
|
|
565
562
|
.ingredient-editor.picture {
|
|
566
563
|
position: relative;
|
|
567
564
|
|
|
@@ -586,7 +583,7 @@
|
|
|
586
583
|
}
|
|
587
584
|
}
|
|
588
585
|
|
|
589
|
-
.
|
|
586
|
+
.picture_ingredient_css_class {
|
|
590
587
|
position: absolute;
|
|
591
588
|
z-index: 1;
|
|
592
589
|
bottom: 24px;
|
|
@@ -639,9 +636,6 @@
|
|
|
639
636
|
}
|
|
640
637
|
}
|
|
641
638
|
|
|
642
|
-
.content_editor.essence_audio,
|
|
643
|
-
.content_editor.essence_file,
|
|
644
|
-
.content_editor.essence_video,
|
|
645
639
|
.ingredient-editor.audio,
|
|
646
640
|
.ingredient-editor.file,
|
|
647
641
|
.ingredient-editor.video {
|
|
@@ -681,8 +675,7 @@
|
|
|
681
675
|
}
|
|
682
676
|
}
|
|
683
677
|
|
|
684
|
-
.file_tools
|
|
685
|
-
.essence_file_tools {
|
|
678
|
+
.file_tools {
|
|
686
679
|
display: flex;
|
|
687
680
|
align-items: center;
|
|
688
681
|
margin-left: auto;
|
|
@@ -717,7 +710,6 @@ select.long {
|
|
|
717
710
|
padding: 0;
|
|
718
711
|
}
|
|
719
712
|
|
|
720
|
-
.content_editor,
|
|
721
713
|
.ingredient-editor {
|
|
722
714
|
width: 100%;
|
|
723
715
|
padding: $default-padding 0;
|
|
@@ -828,7 +820,6 @@ select.long {
|
|
|
828
820
|
}
|
|
829
821
|
}
|
|
830
822
|
|
|
831
|
-
&.essence_select,
|
|
832
823
|
&.select {
|
|
833
824
|
label {
|
|
834
825
|
margin-bottom: 2 * $default-margin;
|
|
@@ -843,8 +834,7 @@ select.long {
|
|
|
843
834
|
}
|
|
844
835
|
}
|
|
845
836
|
|
|
846
|
-
select.ingredient-editor-select
|
|
847
|
-
select.essence_editor_select {
|
|
837
|
+
select.ingredient-editor-select {
|
|
848
838
|
border-radius: $default-border-radius;
|
|
849
839
|
background: white;
|
|
850
840
|
border: 1px solid $button-border-color;
|
|
@@ -871,13 +861,11 @@ select.long {
|
|
|
871
861
|
}
|
|
872
862
|
}
|
|
873
863
|
|
|
874
|
-
&.essence_picture,
|
|
875
864
|
&.picture {
|
|
876
865
|
width: 50%;
|
|
877
866
|
padding-left: 1px; // Compensate the box shadow
|
|
878
867
|
padding-right: $default-padding;
|
|
879
868
|
|
|
880
|
-
+ .essence_picture,
|
|
881
869
|
+ .picture {
|
|
882
870
|
padding-left: $default-padding;
|
|
883
871
|
padding-right: 1px; // Compensate the box shadow
|
|
@@ -885,10 +873,6 @@ select.long {
|
|
|
885
873
|
}
|
|
886
874
|
}
|
|
887
875
|
|
|
888
|
-
.content_rtf_text_area {
|
|
889
|
-
display: none;
|
|
890
|
-
}
|
|
891
|
-
|
|
892
876
|
div.pictures_for_element {
|
|
893
877
|
overflow: auto;
|
|
894
878
|
margin-top: 4px;
|
|
@@ -898,7 +882,7 @@ textarea.has_tinymce {
|
|
|
898
882
|
visibility: hidden;
|
|
899
883
|
}
|
|
900
884
|
|
|
901
|
-
.
|
|
885
|
+
.ingredient-editor.html textarea {
|
|
902
886
|
font-family: $mono-font-family;
|
|
903
887
|
resize: vertical;
|
|
904
888
|
font-size: $form-field-font-size;
|
|
@@ -928,8 +912,6 @@ textarea.has_tinymce {
|
|
|
928
912
|
}
|
|
929
913
|
}
|
|
930
914
|
|
|
931
|
-
.content_editor .hint-with-icon,
|
|
932
|
-
.content_editor .with-hint,
|
|
933
915
|
.ingredient-editor .hint-with-icon,
|
|
934
916
|
.ingredient-editor .with-hint,
|
|
935
917
|
.element-handle .hint-with-icon {
|
|
@@ -946,7 +928,7 @@ textarea.has_tinymce {
|
|
|
946
928
|
}
|
|
947
929
|
|
|
948
930
|
.is-fixed {
|
|
949
|
-
&.with-
|
|
931
|
+
&.with-ingredients {
|
|
950
932
|
> .element-footer {
|
|
951
933
|
border-top: 0;
|
|
952
934
|
border-bottom: 1px solid $medium-gray;
|
|
@@ -992,7 +974,6 @@ textarea.has_tinymce {
|
|
|
992
974
|
}
|
|
993
975
|
|
|
994
976
|
.ingredient-date--label,
|
|
995
|
-
.essence_date--label,
|
|
996
977
|
.edit-ingredient-anchor-link {
|
|
997
978
|
position: absolute;
|
|
998
979
|
right: 2 * $default-padding;
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// The container of the rendered node is slightly larger than other a line of
|
|
38
|
-
// text, as it would be for the Alchemy::
|
|
38
|
+
// text, as it would be for the Alchemy::Ingredients::Page. Reducing the padding here from 0.6em
|
|
39
39
|
// to 0.4em centers the content nicely.
|
|
40
|
-
.
|
|
40
|
+
.ingredient-editor.node {
|
|
41
41
|
.select2-container.alchemy_selectbox .select2-choice {
|
|
42
42
|
padding: 0.4em 0.75em;
|
|
43
43
|
}
|