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.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +0 -3
  3. data/.gitignore +1 -6
  4. data/CHANGELOG.md +22 -8
  5. data/Gemfile +1 -0
  6. data/Rakefile +13 -8
  7. data/alchemy_cms.gemspec +1 -3
  8. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +1 -1
  9. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +18 -32
  10. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -2
  11. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +2 -2
  12. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +27 -29
  13. data/app/assets/stylesheets/alchemy/elements.scss +16 -35
  14. data/app/assets/stylesheets/alchemy/forms.scss +0 -4
  15. data/app/assets/stylesheets/alchemy/node-select.scss +2 -2
  16. data/app/controllers/alchemy/admin/attachments_controller.rb +0 -1
  17. data/app/controllers/alchemy/admin/elements_controller.rb +7 -32
  18. data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
  19. data/app/controllers/alchemy/admin/pictures_controller.rb +1 -1
  20. data/app/controllers/alchemy/admin/resources_controller.rb +1 -18
  21. data/app/controllers/alchemy/api/elements_controller.rb +0 -2
  22. data/app/controllers/alchemy/api/pages_controller.rb +6 -4
  23. data/app/controllers/alchemy/messages_controller.rb +9 -9
  24. data/app/controllers/alchemy/pages_controller.rb +19 -28
  25. data/app/decorators/alchemy/element_editor.rb +10 -30
  26. data/app/helpers/alchemy/admin/elements_helper.rb +0 -2
  27. data/app/helpers/alchemy/elements_block_helper.rb +5 -42
  28. data/app/helpers/alchemy/elements_helper.rb +3 -11
  29. data/app/helpers/alchemy/pages_helper.rb +0 -4
  30. data/app/models/alchemy/attachment.rb +6 -3
  31. data/app/models/alchemy/base_record.rb +2 -0
  32. data/app/models/alchemy/eager_loading.rb +0 -1
  33. data/app/models/alchemy/element/element_ingredients.rb +1 -8
  34. data/app/models/alchemy/element/presenters.rb +9 -25
  35. data/app/models/alchemy/element.rb +2 -16
  36. data/app/models/alchemy/ingredient.rb +17 -6
  37. data/app/models/alchemy/ingredients/audio.rb +2 -0
  38. data/app/models/alchemy/ingredients/datetime.rb +3 -1
  39. data/app/models/alchemy/ingredients/file.rb +7 -0
  40. data/app/models/alchemy/ingredients/headline.rb +6 -0
  41. data/app/models/alchemy/ingredients/link.rb +2 -0
  42. data/app/models/alchemy/ingredients/node.rb +2 -0
  43. data/app/models/alchemy/ingredients/page.rb +2 -0
  44. data/app/models/alchemy/ingredients/picture.rb +11 -0
  45. data/app/models/alchemy/ingredients/richtext.rb +6 -0
  46. data/app/models/alchemy/ingredients/select.rb +1 -0
  47. data/app/models/alchemy/ingredients/text.rb +8 -0
  48. data/app/models/alchemy/ingredients/video.rb +2 -0
  49. data/app/models/alchemy/node.rb +9 -6
  50. data/app/models/alchemy/page/page_elements.rb +5 -26
  51. data/app/models/alchemy/page/page_layouts.rb +0 -14
  52. data/app/models/alchemy/page/page_natures.rb +0 -10
  53. data/app/models/alchemy/page.rb +0 -8
  54. data/app/models/alchemy/picture/transformations.rb +0 -30
  55. data/app/models/alchemy/picture/url.rb +1 -1
  56. data/app/models/alchemy/picture.rb +12 -10
  57. data/app/models/alchemy/picture_thumb/create.rb +7 -18
  58. data/app/models/alchemy/picture_thumb/file_store.rb +33 -0
  59. data/app/models/alchemy/picture_thumb.rb +10 -10
  60. data/app/models/concerns/alchemy/picture_thumbnails.rb +2 -2
  61. data/app/serializers/alchemy/element_serializer.rb +1 -6
  62. data/app/services/alchemy/delete_elements.rb +1 -7
  63. data/app/services/alchemy/duplicate_element.rb +1 -6
  64. data/app/views/alchemy/admin/elements/_element.html.erb +5 -22
  65. data/app/views/alchemy/admin/elements/create.js.erb +1 -1
  66. data/app/views/alchemy/admin/elements/fold.js.erb +2 -2
  67. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  68. data/app/views/alchemy/admin/elements/update.js.erb +1 -2
  69. data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
  70. data/app/views/alchemy/admin/pages/_file_link.html.erb +2 -2
  71. data/app/views/alchemy/admin/pages/_internal_link.html.erb +2 -2
  72. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +3 -6
  73. data/app/views/alchemy/admin/pages/edit.html.erb +1 -1
  74. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -3
  75. data/app/views/alchemy/admin/pictures/_infos.html.erb +4 -6
  76. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
  77. data/app/views/alchemy/ingredients/_headline_editor.html.erb +1 -1
  78. data/app/views/alchemy/ingredients/_html_editor.html.erb +1 -1
  79. data/app/views/alchemy/ingredients/_node_editor.html.erb +1 -1
  80. data/app/views/alchemy/ingredients/_picture_editor.html.erb +4 -4
  81. data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -2
  82. data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
  83. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +3 -3
  84. data/app/views/alchemy/pages/_meta_data.html.erb +0 -1
  85. data/app/views/layouts/alchemy/admin.html.erb +5 -1
  86. data/config/alchemy/config.yml +6 -6
  87. data/config/brakeman.ignore +56 -57
  88. data/config/locales/alchemy.en.yml +98 -112
  89. data/config/routes.rb +1 -16
  90. data/db/migrate/20230121212637_alchemy_six_point_one.rb +248 -0
  91. data/lib/alchemy/cache_digests/template_tracker.rb +6 -7
  92. data/lib/alchemy/config.rb +2 -2
  93. data/lib/alchemy/deprecation.rb +1 -1
  94. data/lib/alchemy/errors.rb +0 -11
  95. data/lib/alchemy/hints.rb +10 -10
  96. data/lib/alchemy/install/tasks.rb +7 -1
  97. data/lib/alchemy/permissions.rb +0 -13
  98. data/lib/alchemy/routing_constraints.rb +3 -3
  99. data/lib/alchemy/searchable_resource.rb +38 -0
  100. data/lib/alchemy/tasks/tidy.rb +0 -38
  101. data/lib/alchemy/test_support/capybara_helpers.rb +69 -0
  102. data/lib/alchemy/test_support/factories/element_factory.rb +0 -6
  103. data/lib/alchemy/test_support/factories/ingredient_factory.rb +1 -1
  104. data/lib/alchemy/test_support/factories/page_factory.rb +4 -2
  105. data/lib/alchemy/test_support/shared_dom_ids_examples.rb +1 -1
  106. data/lib/alchemy/test_support/shared_ingredient_examples.rb +1 -1
  107. data/lib/alchemy/tinymce.rb +1 -18
  108. data/lib/alchemy/upgrader/seven_point_zero.rb +45 -0
  109. data/lib/alchemy/upgrader/tasks/.keep +0 -0
  110. data/lib/alchemy/upgrader.rb +8 -3
  111. data/lib/alchemy/version.rb +1 -1
  112. data/lib/alchemy.rb +0 -19
  113. data/lib/alchemy_cms.rb +2 -3
  114. data/lib/generators/alchemy/elements/elements_generator.rb +0 -1
  115. data/lib/generators/alchemy/elements/templates/view.html.erb +1 -10
  116. data/lib/generators/alchemy/elements/templates/view.html.haml +1 -9
  117. data/lib/generators/alchemy/elements/templates/view.html.slim +1 -9
  118. data/lib/generators/alchemy/install/files/alchemy.en.yml +7 -8
  119. data/lib/generators/alchemy/install/files/application.html.erb +1 -1
  120. data/lib/generators/alchemy/install/install_generator.rb +18 -22
  121. data/lib/generators/alchemy/install/templates/elements.yml.tt +12 -12
  122. data/lib/non_stupid_digest_assets.rb +55 -0
  123. data/lib/tasks/alchemy/thumbnails.rake +2 -21
  124. data/lib/tasks/alchemy/tidy.rake +1 -12
  125. data/lib/tasks/alchemy/upgrade.rake +10 -47
  126. data/package/dist/admin.js +16 -0
  127. data/package/dist/admin.js.map +7 -0
  128. data/package.json +5 -3
  129. metadata +15 -154
  130. data/app/controllers/alchemy/admin/contents_controller.rb +0 -21
  131. data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -30
  132. data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -31
  133. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +0 -43
  134. data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -34
  135. data/app/controllers/alchemy/api/contents_controller.rb +0 -52
  136. data/app/decorators/alchemy/content_editor.rb +0 -119
  137. data/app/helpers/alchemy/admin/contents_helper.rb +0 -42
  138. data/app/helpers/alchemy/admin/essences_helper.rb +0 -31
  139. data/app/models/alchemy/content/factory.rb +0 -143
  140. data/app/models/alchemy/content.rb +0 -247
  141. data/app/models/alchemy/element/element_contents.rb +0 -200
  142. data/app/models/alchemy/element/element_essences.rb +0 -133
  143. data/app/models/alchemy/essence_audio.rb +0 -13
  144. data/app/models/alchemy/essence_boolean.rb +0 -20
  145. data/app/models/alchemy/essence_date.rb +0 -25
  146. data/app/models/alchemy/essence_file.rb +0 -49
  147. data/app/models/alchemy/essence_headline.rb +0 -41
  148. data/app/models/alchemy/essence_html.rb +0 -23
  149. data/app/models/alchemy/essence_link.rb +0 -21
  150. data/app/models/alchemy/essence_node.rb +0 -19
  151. data/app/models/alchemy/essence_page.rb +0 -17
  152. data/app/models/alchemy/essence_picture.rb +0 -67
  153. data/app/models/alchemy/essence_picture_view.rb +0 -90
  154. data/app/models/alchemy/essence_richtext.rb +0 -44
  155. data/app/models/alchemy/essence_select.rb +0 -19
  156. data/app/models/alchemy/essence_text.rb +0 -23
  157. data/app/models/alchemy/essence_video.rb +0 -13
  158. data/app/serializers/alchemy/content_serializer.rb +0 -17
  159. data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -10
  160. data/app/serializers/alchemy/essence_date_serializer.rb +0 -10
  161. data/app/serializers/alchemy/essence_file_serializer.rb +0 -13
  162. data/app/serializers/alchemy/essence_html_serializer.rb +0 -10
  163. data/app/serializers/alchemy/essence_link_serializer.rb +0 -13
  164. data/app/serializers/alchemy/essence_picture_serializer.rb +0 -28
  165. data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -11
  166. data/app/serializers/alchemy/essence_select_serializer.rb +0 -10
  167. data/app/serializers/alchemy/essence_text_serializer.rb +0 -22
  168. data/app/views/alchemy/admin/contents/create.js.erb +0 -21
  169. data/app/views/alchemy/admin/essence_audios/edit.html.erb +0 -7
  170. data/app/views/alchemy/admin/essence_files/edit.html.erb +0 -21
  171. data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +0 -5
  172. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +0 -30
  173. data/app/views/alchemy/admin/essence_pictures/save_link.js.erb +0 -3
  174. data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -8
  175. data/app/views/alchemy/admin/essence_videos/edit.html.erb +0 -12
  176. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -4
  177. data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -15
  178. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +0 -11
  179. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +0 -2
  180. data/app/views/alchemy/essences/_essence_date_editor.html.erb +0 -16
  181. data/app/views/alchemy/essences/_essence_date_view.html.erb +0 -10
  182. data/app/views/alchemy/essences/_essence_file_editor.html.erb +0 -54
  183. data/app/views/alchemy/essences/_essence_file_view.html.erb +0 -18
  184. data/app/views/alchemy/essences/_essence_headline_editor.html.erb +0 -36
  185. data/app/views/alchemy/essences/_essence_headline_view.html.erb +0 -10
  186. data/app/views/alchemy/essences/_essence_html_editor.html.erb +0 -10
  187. data/app/views/alchemy/essences/_essence_html_view.html.erb +0 -2
  188. data/app/views/alchemy/essences/_essence_link_editor.html.erb +0 -30
  189. data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -10
  190. data/app/views/alchemy/essences/_essence_node_editor.html.erb +0 -27
  191. data/app/views/alchemy/essences/_essence_node_view.html.erb +0 -1
  192. data/app/views/alchemy/essences/_essence_page_editor.html.erb +0 -26
  193. data/app/views/alchemy/essences/_essence_page_view.html.erb +0 -5
  194. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +0 -59
  195. data/app/views/alchemy/essences/_essence_picture_view.html.erb +0 -6
  196. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -14
  197. data/app/views/alchemy/essences/_essence_richtext_view.html.erb +0 -4
  198. data/app/views/alchemy/essences/_essence_select_editor.html.erb +0 -28
  199. data/app/views/alchemy/essences/_essence_select_view.html.erb +0 -2
  200. data/app/views/alchemy/essences/_essence_text_editor.html.erb +0 -29
  201. data/app/views/alchemy/essences/_essence_text_view.html.erb +0 -17
  202. data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -4
  203. data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -19
  204. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +0 -59
  205. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +0 -20
  206. data/app/views/alchemy/pages/show.rss.builder +0 -21
  207. data/db/migrate/20200226213334_alchemy_four_point_four.rb +0 -313
  208. data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +0 -11
  209. data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +0 -28
  210. data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +0 -8
  211. data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +0 -27
  212. data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +0 -6
  213. data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +0 -24
  214. data/db/migrate/20200617110713_create_alchemy_picture_thumbs.rb +0 -22
  215. data/db/migrate/20200907111332_remove_tri_state_booleans.rb +0 -33
  216. data/db/migrate/20201207131309_create_page_versions.rb +0 -19
  217. data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +0 -76
  218. data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +0 -10
  219. data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +0 -7
  220. data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +0 -12
  221. data/db/migrate/20210506135919_create_essence_audios.rb +0 -19
  222. data/db/migrate/20210506140258_create_essence_videos.rb +0 -23
  223. data/db/migrate/20210508091432_create_alchemy_ingredients.rb +0 -22
  224. data/db/migrate/20220514072456_restrict_on_delete_page_id_foreign_key_from_alchemy_nodes.rb +0 -13
  225. data/db/migrate/20220622130905_add_playsinline_to_alchemy_essence_videos.rb +0 -9
  226. data/lib/alchemy/essence.rb +0 -250
  227. data/lib/alchemy/test_support/essence_shared_examples.rb +0 -271
  228. data/lib/alchemy/test_support/factories/content_factory.rb +0 -20
  229. data/lib/alchemy/test_support/factories/essence_audio_factory.rb +0 -7
  230. data/lib/alchemy/test_support/factories/essence_file_factory.rb +0 -7
  231. data/lib/alchemy/test_support/factories/essence_page_factory.rb +0 -7
  232. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +0 -11
  233. data/lib/alchemy/test_support/factories/essence_text_factory.rb +0 -7
  234. data/lib/alchemy/test_support/factories/essence_video_factory.rb +0 -7
  235. data/lib/alchemy/upgrader/five_point_zero.rb +0 -41
  236. data/lib/alchemy/upgrader/six_point_zero.rb +0 -21
  237. data/lib/alchemy/upgrader/tasks/add_page_versions.rb +0 -33
  238. data/lib/alchemy/upgrader/tasks/element_views_updater.rb +0 -34
  239. data/lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb +0 -29
  240. data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +0 -74
  241. data/lib/generators/alchemy/essence/essence_generator.rb +0 -49
  242. data/lib/generators/alchemy/essence/templates/editor.html.erb +0 -17
  243. 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: f2f303fbee5eb7ba00c41042f4a2c435e345621eae81768d8c66f86dad04d23d
4
- data.tar.gz: e2ad0dfb05e0412676eb203c0ac7829d4945c8e8db879c8393748bb40089ce19
3
+ metadata.gz: 6b458227c38affbfe51743916b5d726410371bc82d1aecdaec6f587df2fef882
4
+ data.tar.gz: 14626367bd1b8cb8f891518514915273ebb95f320e9a91e5815108a2109854f3
5
5
  SHA512:
6
- metadata.gz: 1ec82e1628873bcfb3f1e16826087289ab1dcefe4bb98598ad320bce329c3f1481dc0df28fdbd0570a3fb79f6325de4a9eee510dd4dc6a981f3cc82565bd908b
7
- data.tar.gz: 10c17180fbff27a83a2c6f052c200a9723858dea973f547206c9ca094e46b18bdc7130f5914e006acd058296b6783b4adafa47bc2bad87fca29ca6774673a973
6
+ metadata.gz: '068c0aac56cf25bc3bb88a2c1114db7028f5a1177e71e8763d2f7cd0124cfecbf984aa3b62c75267077af051f5032c18ec779d354a61a6c082b6b96d4d0bc706'
7
+ data.tar.gz: 6cd013283061060f7d97c0222c474d67e1748b8865c03872cdd00f2c6583d6f3c3c6918d69dff069bd60392e2c0814c0cf1a00cb79ad75f7be49ec6f1032be41
@@ -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/.browserslistrc
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
- ## 6.1.2 (2023-02-27)
4
-
5
- - [6.1] Fix thumbnail writing for multi-concurrent and multi-db setups [#2434](https://github.com/AlchemyCMS/alchemy_cms/pull/2434) ([tvdeyen](https://github.com/tvdeyen))
6
-
7
- ## 6.1.1 (2023-01-23)
8
-
9
- - Re-introduce deleted methods [#2422](https://github.com/AlchemyCMS/alchemy_cms/pull/2422) ([tvdeyen](https://github.com/tvdeyen))
10
- - Add searchable field to page (Alchemy 6.1) [#2420](https://github.com/AlchemyCMS/alchemy_cms/pull/2420) ([kulturbande](https://github.com/kulturbande))
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
- yarn link @alchemy_cms/admin && \
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.open(new_file, "w") do |fo|
68
- fo.puts changes
69
- File.foreach(original_file) do |li|
70
- fo.puts li
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
- fo.puts ""
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 "non-stupid-digest-assets", ["~> 1.0.8"]
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-content .dirty').removeClass('dirty')
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
- @expandContentGroups()
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-content-group]', (e) =>
41
- @onToggleContentGroup(e)
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 content groups that are stored in sessionStorage as expanded
49
- expandContentGroups: ->
50
- if $expanded_content_groups = sessionStorage.getItem('Alchemy.expanded_content_groups')
51
- for header_id in JSON.parse($expanded_content_groups) then do (header_id) =>
52
- $('#' + header_id).closest('.content-group').addClass('expanded');
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 content fields in the group
183
- onToggleContentGroup: (event) ->
184
- $group_div = $(event.currentTarget).closest('.content-group');
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
- $expanded_content_groups = JSON.parse(sessionStorage.getItem('Alchemy.expanded_content_groups') || '[]');
188
- # Add or remove depending on whether this content group is expanded
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 $expanded_content_groups.indexOf(event.currentTarget.id) == -1
191
- $expanded_content_groups.push(event.currentTarget.id);
188
+ if $expanded_ingredient_groups.indexOf(event.currentTarget.id) == -1
189
+ $expanded_ingredient_groups.push(event.currentTarget.id);
192
190
  else
193
- $expanded_content_groups = $expanded_content_groups.filter (value) ->
191
+ $expanded_ingredient_groups = $expanded_ingredient_groups.filter (value) ->
194
192
  value != event.currentTarget.id
195
193
 
196
- sessionStorage.setItem('Alchemy.expanded_content_groups', JSON.stringify($expanded_content_groups))
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-content .element-content-editors, > .element-content .element-ingredient-editors').children()
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(".essence_file, .essence_video, .essence_audio, .ingredient-editor.file, .ingredient-editor.audio, .ingredient-editor.video").selector)
54
- Alchemy.pictureEditors(@element_area.find(".essence_picture, .ingredient-editor.picture").selector)
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(".essence_file, .essence_video, .essence_audio, .ingredient-editor.file, .ingredient-editor.audio, .ingredient-editor.video").selector)
27
- Alchemy.pictureEditors($el.find(".essence_picture, .ingredient-editor.picture").selector)
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 Essence that has links enabled (e.g. EssencePicture)
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
- @$page_urlname = $('#page_urlname', @dialog_body)
28
+ @$internal_link = $('#internal_link', @dialog_body)
29
29
  @$element_anchor = $('#element_anchor', @dialog_body)
30
30
  @$anchor_link = $('#anchor_link', @dialog_body)
31
- @$external_url = $('#external_url', @dialog_body)
32
- @$public_filename = $('#public_filename', @dialog_body)
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
- @initAnchorLinks()
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
- switch @link_type
48
- # get stored url for link type
49
- when 'external'
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
- @$page_urlname.select2
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 Essence.
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 Essence (e.g. EssencePicture).
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 EssencePicture or EssenceText.
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 EssenceRichtext.
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
- @$external_url.val(@$link.attr('href'))
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
- @$public_filename.select2('val', @$link[0].pathname + @$link[0].search)
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
- # activate the tab jquery ui 1.10 style o.O
209
- @$overlay_tabs.tabs('option', 'active', $('#overlay_tabs > div').index(tab))
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
- @$page_urlname.val(url[0])
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 Essence.
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-content {
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-content {
305
+ .element-body {
307
306
  margin: 2 * $default-padding;
308
307
  }
309
308
 
@@ -414,7 +413,7 @@
414
413
  }
415
414
  }
416
415
 
417
- .content-group {
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
- .content-group-header {
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
- .content-group-contents {
436
+ .ingredient-group-ingredients {
438
437
  display: none;
439
438
  }
440
439
 
441
440
  &.expanded {
442
- .content-group-contents {
441
+ .ingredient-group-ingredients {
443
442
  display: block;
444
443
  }
445
444
 
446
- .content-group-expand {
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
- .linkable_essence_tools {
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-essence {
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-essence {
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-essence {
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
- .essence_picture_css_class {
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
- .essence_html textarea {
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-contents {
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;
@@ -249,10 +249,6 @@ form {
249
249
  }
250
250
  }
251
251
 
252
- textarea#essence_picture_caption {
253
- height: 61px;
254
- }
255
-
256
252
  // styles for link overlay selects
257
253
  .window_form {
258
254
  td.checkbox {
@@ -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::EssencePage. Reducing the padding here from 0.6em
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
- .essence_node {
40
+ .ingredient-editor.node {
41
41
  .select2-container.alchemy_selectbox .select2-choice {
42
42
  padding: 0.4em 0.75em;
43
43
  }