alchemy_cms 6.1.10 → 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 +19 -44
- data/Gemfile +1 -1
- data/Rakefile +14 -9
- data/alchemy_cms.gemspec +2 -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 +8 -4
- data/app/controllers/alchemy/messages_controller.rb +9 -9
- data/app/controllers/alchemy/pages_controller.rb +23 -18
- 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 -18
- 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 -10
- data/app/models/alchemy/picture/transformations.rb +0 -30
- data/app/models/alchemy/picture/url.rb +1 -1
- data/app/models/alchemy/picture.rb +14 -13
- 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 -6
- 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/_table.html.erb +0 -6
- 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/admin/resources/_per_page_select.html.erb +1 -1
- 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 +99 -113
- 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/permissions.rb +4 -17
- data/lib/alchemy/routing_constraints.rb +3 -3
- data/lib/alchemy/searchable_resource.rb +38 -0
- data/lib/alchemy/seeder.rb +2 -8
- 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/having_picture_thumbnails_examples.rb +0 -20
- 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 +1 -2
- 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 -34
- data/lib/generators/alchemy/install/templates/elements.yml.tt +12 -12
- data/lib/non_stupid_digest_assets.rb +1 -1
- 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 +18 -147
- 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/tasks/usage.rb +0 -34
- 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 -73
- 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
- data/lib/generators/alchemy/install/files/babel.config.js +0 -64
- data/lib/tasks/alchemy/usage.rake +0 -44
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,52 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
- [6.1-stable] Fix combining search filters and pagination [#2983](https://github.com/AlchemyCMS/alchemy_cms/pull/2983) ([tvdeyen](https://github.com/tvdeyen))
|
|
6
|
-
- [6.1-stable] Merge pull request #2556 from mamhoff/fix-nan-ratio-error [#2581](https://github.com/AlchemyCMS/alchemy_cms/pull/2581) ([alchemycms-bot](https://github.com/alchemycms-bot))
|
|
7
|
-
|
|
8
|
-
## 6.1.9 (2023-08-29)
|
|
9
|
-
|
|
10
|
-
- [6.1-stable] Merge pull request #2571 from tvdeyen/fix-non-stupid-digest-assets [#2573](https://github.com/AlchemyCMS/alchemy_cms/pull/2573) ([github-actions](https://github.com/apps/github-actions))
|
|
11
|
-
- [6.1] Show if element is using contents or ingredients [#2568](https://github.com/AlchemyCMS/alchemy_cms/pull/2568) ([tvdeyen](https://github.com/tvdeyen))
|
|
12
|
-
|
|
13
|
-
## 6.1.8 (2023-07-31)
|
|
14
|
-
|
|
15
|
-
- [v6.1] Use selenium-webdriver instead of webdrivers gem [#2531](https://github.com/AlchemyCMS/alchemy_cms/pull/2531) ([mamhoff](https://github.com/mamhoff))
|
|
16
|
-
- [v6.1] Bugfix: Init PagePublicationFields on Pages Table [#2530](https://github.com/AlchemyCMS/alchemy_cms/pull/2530) ([mamhoff](https://github.com/mamhoff))
|
|
17
|
-
|
|
18
|
-
## 6.1.7 (2023-07-07)
|
|
19
|
-
|
|
20
|
-
- [6.1] Add task(s) to visualize element and page usage [#2514](https://github.com/AlchemyCMS/alchemy_cms/pull/2514) ([tvdeyen](https://github.com/tvdeyen))
|
|
21
|
-
|
|
22
|
-
## 6.1.6 (2023-06-30)
|
|
23
|
-
|
|
24
|
-
- [6.1] Allow to create element with warning in definition [#2508](https://github.com/AlchemyCMS/alchemy_cms/pull/2508) ([tvdeyen](https://github.com/tvdeyen))
|
|
25
|
-
- [6.1] Allow authors to link to all pages again [#2505](https://github.com/AlchemyCMS/alchemy_cms/pull/2505) ([tvdeyen](https://github.com/tvdeyen))
|
|
26
|
-
- install generator: Add option to force patched babel config [#2495](https://github.com/AlchemyCMS/alchemy_cms/pull/2495) ([tvdeyen](https://github.com/tvdeyen))
|
|
27
|
-
- Remove memory leak in ingredients migrator [#2493](https://github.com/AlchemyCMS/alchemy_cms/pull/2493) ([tvdeyen](https://github.com/tvdeyen))
|
|
28
|
-
|
|
29
|
-
## 6.1.5 (2023-05-26)
|
|
30
|
-
|
|
31
|
-
- [6.1] Fix page seeder [#2482](https://github.com/AlchemyCMS/alchemy_cms/pull/2482) ([tvdeyen](https://github.com/tvdeyen))
|
|
32
|
-
|
|
33
|
-
## 6.1.4 (2023-05-18)
|
|
34
|
-
|
|
35
|
-
- [6.1] Revert "Preload related objects in Alchemy::PagesController" [#2473](https://github.com/AlchemyCMS/alchemy_cms/pull/2473) ([tvdeyen](https://github.com/tvdeyen))
|
|
36
|
-
|
|
37
|
-
## 6.1.3 (2023-03-29)
|
|
3
|
+
## 7.0.0 (unreleased)
|
|
38
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))
|
|
39
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))
|
|
40
16
|
- Integrate non_stupid_digest_assets gem [#2430](https://github.com/AlchemyCMS/alchemy_cms/pull/2430) ([afdev82](https://github.com/afdev82))
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
- Add searchable field to page (Alchemy 6.1) [#2420](https://github.com/AlchemyCMS/alchemy_cms/pull/2420) ([kulturbande](https://github.com/kulturbande))
|
|
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))
|
|
50
25
|
|
|
51
26
|
## 6.1.0 (2023-01-19)
|
|
52
27
|
|
data/Gemfile
CHANGED
|
@@ -19,7 +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 "
|
|
22
|
+
gem "jsbundling-rails", "~> 1.1"
|
|
23
23
|
|
|
24
24
|
if ENV["GITHUB_ACTIONS"]
|
|
25
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 && \
|
|
51
|
-
bin/rails
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
bin/rails javascript:install:esbuild && \
|
|
53
|
+
bin/rails g alchemy:install --skip --skip-demo-files --auto-accept --skip-db-create && \
|
|
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,14 +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 "ransack", [">= 1.8", "<
|
|
48
|
+
gem.add_runtime_dependency "ransack", [">= 1.8", "< 5.0"]
|
|
49
49
|
gem.add_runtime_dependency "request_store", ["~> 1.2"]
|
|
50
50
|
gem.add_runtime_dependency "responders", [">= 2.0", "< 4.0"]
|
|
51
51
|
gem.add_runtime_dependency "sassc-rails", ["~> 2.1"]
|
|
52
52
|
gem.add_runtime_dependency "simple_form", [">= 4.0", "< 6"]
|
|
53
53
|
gem.add_runtime_dependency "sprockets", [">= 3.0", "< 5"]
|
|
54
54
|
gem.add_runtime_dependency "turbolinks", [">= 2.5"]
|
|
55
|
-
gem.add_runtime_dependency "webpacker", [">= 4.0", "< 6"]
|
|
56
55
|
|
|
57
56
|
gem.add_development_dependency "capybara", ["~> 3.0"]
|
|
58
57
|
gem.add_development_dependency "capybara-screenshot", ["~> 1.0"]
|
|
@@ -62,7 +61,7 @@ Gem::Specification.new do |gem|
|
|
|
62
61
|
gem.add_development_dependency "rspec-activemodel-mocks", ["~> 1.0"]
|
|
63
62
|
gem.add_development_dependency "rspec-rails", [">= 4.0.0.beta2"]
|
|
64
63
|
gem.add_development_dependency "simplecov", ["~> 0.20"]
|
|
65
|
-
gem.add_development_dependency "
|
|
64
|
+
gem.add_development_dependency "webdrivers", ["~> 5.0"]
|
|
66
65
|
gem.add_development_dependency "webmock", ["~> 3.3"]
|
|
67
66
|
gem.add_development_dependency "shoulda-matchers", ["~> 5.0"]
|
|
68
67
|
gem.add_development_dependency "timecop", ["~> 0.9"]
|
|
@@ -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]")
|