alchemy_cms 6.1.5 → 7.0.0.pre.b

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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/brakeman-analysis.yml +2 -2
  3. data/.github/workflows/ci.yml +7 -10
  4. data/.github/workflows/lint.yml +17 -0
  5. data/.gitignore +1 -6
  6. data/.hound.yml +2 -3
  7. data/.rubocop.yml +4 -350
  8. data/.standard.yml +3 -0
  9. data/CHANGELOG.md +49 -19
  10. data/Gemfile +4 -2
  11. data/README.md +7 -9
  12. data/Rakefile +12 -7
  13. data/alchemy_cms.gemspec +3 -3
  14. data/app/assets/javascripts/alchemy/admin.js +0 -1
  15. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +18 -32
  17. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -2
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +2 -2
  19. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +33 -30
  20. data/app/assets/stylesheets/alchemy/elements.scss +16 -35
  21. data/app/assets/stylesheets/alchemy/forms.scss +0 -4
  22. data/app/assets/stylesheets/alchemy/node-select.scss +2 -2
  23. data/app/components/alchemy/ingredients/audio_view.rb +37 -0
  24. data/app/components/alchemy/ingredients/base_view.rb +38 -0
  25. data/app/components/alchemy/ingredients/boolean_view.rb +13 -0
  26. data/app/components/alchemy/ingredients/datetime_view.rb +22 -0
  27. data/app/components/alchemy/ingredients/file_view.rb +40 -0
  28. data/app/components/alchemy/ingredients/headline_view.rb +20 -0
  29. data/app/components/alchemy/ingredients/html_view.rb +9 -0
  30. data/app/components/alchemy/ingredients/link_view.rb +25 -0
  31. data/app/components/alchemy/ingredients/node_view.rb +11 -0
  32. data/app/components/alchemy/ingredients/page_view.rb +15 -0
  33. data/app/components/alchemy/ingredients/picture_view.rb +108 -0
  34. data/app/components/alchemy/ingredients/richtext_view.rb +22 -0
  35. data/app/components/alchemy/ingredients/select_view.rb +6 -0
  36. data/app/components/alchemy/ingredients/text_view.rb +41 -0
  37. data/app/components/alchemy/ingredients/video_view.rb +39 -0
  38. data/app/controllers/alchemy/admin/attachments_controller.rb +3 -4
  39. data/app/controllers/alchemy/admin/base_controller.rb +7 -7
  40. data/app/controllers/alchemy/admin/clipboard_controller.rb +2 -2
  41. data/app/controllers/alchemy/admin/elements_controller.rb +33 -43
  42. data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
  43. data/app/controllers/alchemy/admin/nodes_controller.rb +2 -2
  44. data/app/controllers/alchemy/admin/pages_controller.rb +11 -11
  45. data/app/controllers/alchemy/admin/pictures_controller.rb +15 -15
  46. data/app/controllers/alchemy/admin/resources_controller.rb +28 -46
  47. data/app/controllers/alchemy/admin/styleguide_controller.rb +1 -0
  48. data/app/controllers/alchemy/admin/tags_controller.rb +11 -11
  49. data/app/controllers/alchemy/api/base_controller.rb +2 -2
  50. data/app/controllers/alchemy/api/elements_controller.rb +11 -13
  51. data/app/controllers/alchemy/api/ingredients_controller.rb +1 -1
  52. data/app/controllers/alchemy/api/nodes_controller.rb +1 -1
  53. data/app/controllers/alchemy/api/pages_controller.rb +14 -12
  54. data/app/controllers/alchemy/attachments_controller.rb +3 -3
  55. data/app/controllers/alchemy/base_controller.rb +1 -1
  56. data/app/controllers/alchemy/messages_controller.rb +18 -18
  57. data/app/controllers/alchemy/pages_controller.rb +10 -16
  58. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +1 -0
  59. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +5 -7
  60. data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +5 -5
  61. data/app/decorators/alchemy/element_editor.rb +13 -33
  62. data/app/decorators/alchemy/ingredient_editor.rb +6 -6
  63. data/app/helpers/alchemy/admin/attachments_helper.rb +1 -1
  64. data/app/helpers/alchemy/admin/base_helper.rb +21 -22
  65. data/app/helpers/alchemy/admin/elements_helper.rb +1 -3
  66. data/app/helpers/alchemy/admin/form_helper.rb +1 -1
  67. data/app/helpers/alchemy/admin/navigation_helper.rb +7 -7
  68. data/app/helpers/alchemy/admin/pages_helper.rb +2 -2
  69. data/app/helpers/alchemy/admin/tags_helper.rb +3 -3
  70. data/app/helpers/alchemy/base_helper.rb +2 -2
  71. data/app/helpers/alchemy/elements_block_helper.rb +13 -48
  72. data/app/helpers/alchemy/elements_helper.rb +15 -23
  73. data/app/helpers/alchemy/pages_helper.rb +11 -15
  74. data/app/helpers/alchemy/url_helper.rb +1 -1
  75. data/app/mailers/alchemy/messages_mailer.rb +1 -1
  76. data/app/models/alchemy/attachment.rb +12 -9
  77. data/app/models/alchemy/base_record.rb +3 -0
  78. data/app/models/alchemy/eager_loading.rb +6 -7
  79. data/app/models/alchemy/element/definitions.rb +1 -1
  80. data/app/models/alchemy/element/element_ingredients.rb +4 -11
  81. data/app/models/alchemy/element/presenters.rb +9 -25
  82. data/app/models/alchemy/element.rb +4 -19
  83. data/app/models/alchemy/elements_repository.rb +1 -1
  84. data/app/models/alchemy/image_cropper_settings.rb +2 -2
  85. data/app/models/alchemy/ingredient.rb +29 -16
  86. data/app/models/alchemy/ingredient_validator.rb +1 -1
  87. data/app/models/alchemy/ingredients/audio.rb +2 -0
  88. data/app/models/alchemy/ingredients/datetime.rb +3 -1
  89. data/app/models/alchemy/ingredients/file.rb +7 -0
  90. data/app/models/alchemy/ingredients/headline.rb +6 -0
  91. data/app/models/alchemy/ingredients/link.rb +2 -0
  92. data/app/models/alchemy/ingredients/node.rb +2 -0
  93. data/app/models/alchemy/ingredients/page.rb +2 -0
  94. data/app/models/alchemy/ingredients/picture.rb +29 -0
  95. data/app/models/alchemy/ingredients/richtext.rb +17 -8
  96. data/app/models/alchemy/ingredients/select.rb +1 -0
  97. data/app/models/alchemy/ingredients/text.rb +8 -0
  98. data/app/models/alchemy/ingredients/video.rb +2 -0
  99. data/app/models/alchemy/language/code.rb +1 -1
  100. data/app/models/alchemy/language.rb +4 -4
  101. data/app/models/alchemy/legacy_page_url.rb +1 -1
  102. data/app/models/alchemy/node.rb +11 -8
  103. data/app/models/alchemy/page/page_elements.rb +19 -40
  104. data/app/models/alchemy/page/page_layouts.rb +0 -14
  105. data/app/models/alchemy/page/page_naming.rb +4 -4
  106. data/app/models/alchemy/page/page_natures.rb +1 -11
  107. data/app/models/alchemy/page/page_scopes.rb +5 -5
  108. data/app/models/alchemy/page.rb +11 -19
  109. data/app/models/alchemy/picture/calculations.rb +2 -2
  110. data/app/models/alchemy/picture/transformations.rb +2 -32
  111. data/app/models/alchemy/picture/url.rb +5 -5
  112. data/app/models/alchemy/picture.rb +22 -20
  113. data/app/models/alchemy/picture_thumb/create.rb +7 -18
  114. data/app/models/alchemy/picture_thumb/file_store.rb +33 -0
  115. data/app/models/alchemy/picture_thumb.rb +11 -11
  116. data/app/models/alchemy/picture_variant.rb +2 -3
  117. data/app/models/alchemy/tag.rb +8 -0
  118. data/app/models/concerns/alchemy/picture_thumbnails.rb +8 -8
  119. data/app/serializers/alchemy/base_serializer.rb +1 -1
  120. data/app/serializers/alchemy/element_serializer.rb +1 -6
  121. data/app/serializers/alchemy/page_tree_serializer.rb +7 -7
  122. data/app/services/alchemy/delete_elements.rb +1 -7
  123. data/app/services/alchemy/duplicate_element.rb +2 -7
  124. data/app/services/alchemy/tag_validations.rb +1 -1
  125. data/app/views/alchemy/admin/elements/_element.html.erb +8 -22
  126. data/app/views/alchemy/admin/elements/create.js.erb +1 -1
  127. data/app/views/alchemy/admin/elements/fold.js.erb +2 -2
  128. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  129. data/app/views/alchemy/admin/elements/update.js.erb +1 -2
  130. data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
  131. data/app/views/alchemy/admin/pages/_file_link.html.erb +2 -2
  132. data/app/views/alchemy/admin/pages/_internal_link.html.erb +2 -2
  133. data/app/views/alchemy/admin/pages/edit.html.erb +1 -4
  134. data/app/views/alchemy/admin/pages/update.js.erb +10 -4
  135. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -3
  136. data/app/views/alchemy/admin/pictures/_infos.html.erb +4 -6
  137. data/app/views/alchemy/ingredients/_audio_view.html.erb +1 -14
  138. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
  139. data/app/views/alchemy/ingredients/_boolean_view.html.erb +1 -1
  140. data/app/views/alchemy/ingredients/_datetime_view.html.erb +3 -9
  141. data/app/views/alchemy/ingredients/_file_view.html.erb +3 -16
  142. data/app/views/alchemy/ingredients/_headline_editor.html.erb +1 -1
  143. data/app/views/alchemy/ingredients/_headline_view.html.erb +4 -10
  144. data/app/views/alchemy/ingredients/_html_editor.html.erb +1 -1
  145. data/app/views/alchemy/ingredients/_html_view.html.erb +1 -1
  146. data/app/views/alchemy/ingredients/_link_view.html.erb +4 -9
  147. data/app/views/alchemy/ingredients/_node_editor.html.erb +1 -1
  148. data/app/views/alchemy/ingredients/_node_view.html.erb +1 -1
  149. data/app/views/alchemy/ingredients/_page_view.html.erb +1 -4
  150. data/app/views/alchemy/ingredients/_picture_editor.html.erb +4 -4
  151. data/app/views/alchemy/ingredients/_picture_view.html.erb +4 -5
  152. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +11 -2
  153. data/app/views/alchemy/ingredients/_richtext_view.html.erb +3 -3
  154. data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -2
  155. data/app/views/alchemy/ingredients/_select_view.html.erb +1 -1
  156. data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
  157. data/app/views/alchemy/ingredients/_text_view.html.erb +3 -19
  158. data/app/views/alchemy/ingredients/_video_view.html.erb +3 -18
  159. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +4 -3
  160. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +1 -0
  161. data/app/views/alchemy/pages/_meta_data.html.erb +0 -1
  162. data/app/views/layouts/alchemy/admin.html.erb +10 -8
  163. data/bin/setup +37 -0
  164. data/bin/start +17 -0
  165. data/config/alchemy/config.yml +6 -6
  166. data/config/brakeman.ignore +56 -57
  167. data/config/initializers/assets.rb +1 -0
  168. data/config/initializers/dragonfly.rb +1 -0
  169. data/config/initializers/mime_types.rb +1 -0
  170. data/config/initializers/mini_profiler.rb +1 -0
  171. data/config/initializers/simple_form.rb +3 -2
  172. data/config/locales/alchemy.en.yml +98 -112
  173. data/config/routes.rb +22 -36
  174. data/config/spring.rb +1 -0
  175. data/db/migrate/20230121212637_alchemy_six_point_one.rb +248 -0
  176. data/db/migrate/20230505132743_add_indexes_to_alchemy_pictures.rb +6 -0
  177. data/lib/alchemy/admin/locale.rb +3 -3
  178. data/lib/alchemy/admin/preview_url.rb +2 -2
  179. data/lib/alchemy/auth_accessors.rb +1 -1
  180. data/lib/alchemy/cache_digests/template_tracker.rb +6 -7
  181. data/lib/alchemy/config.rb +3 -3
  182. data/lib/alchemy/controller_actions.rb +4 -4
  183. data/lib/alchemy/deprecation.rb +2 -1
  184. data/lib/alchemy/dragonfly/processors/thumbnail.rb +1 -1
  185. data/lib/alchemy/element_definition.rb +2 -2
  186. data/lib/alchemy/engine.rb +2 -1
  187. data/lib/alchemy/errors.rb +0 -11
  188. data/lib/alchemy/filetypes.rb +7 -7
  189. data/lib/alchemy/forms/builder.rb +4 -4
  190. data/lib/alchemy/hints.rb +10 -10
  191. data/lib/alchemy/i18n.rb +6 -4
  192. data/lib/alchemy/install/tasks.rb +2 -1
  193. data/lib/alchemy/name_conversions.rb +1 -1
  194. data/lib/alchemy/page_layout.rb +1 -1
  195. data/lib/alchemy/permissions.rb +5 -17
  196. data/lib/alchemy/resource.rb +10 -10
  197. data/lib/alchemy/resources_helper.rb +7 -7
  198. data/lib/alchemy/routing_constraints.rb +5 -5
  199. data/lib/alchemy/searchable_resource.rb +38 -0
  200. data/lib/alchemy/seeder.rb +4 -3
  201. data/lib/alchemy/shell.rb +2 -1
  202. data/lib/alchemy/taggable.rb +3 -2
  203. data/lib/alchemy/tasks/tidy.rb +1 -38
  204. data/lib/alchemy/test_support/capybara_helpers.rb +69 -0
  205. data/lib/alchemy/test_support/config_stubbing.rb +1 -0
  206. data/lib/alchemy/test_support/factories/element_factory.rb +2 -4
  207. data/lib/alchemy/test_support/factories/ingredient_factory.rb +1 -1
  208. data/lib/alchemy/test_support/factories/page_factory.rb +5 -3
  209. data/lib/alchemy/test_support/having_crop_action_examples.rb +9 -9
  210. data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +33 -33
  211. data/lib/alchemy/test_support/integration_helpers.rb +4 -3
  212. data/lib/alchemy/test_support/shared_contexts.rb +2 -1
  213. data/lib/alchemy/test_support/shared_dom_ids_examples.rb +10 -10
  214. data/lib/alchemy/test_support/shared_ingredient_examples.rb +13 -7
  215. data/lib/alchemy/test_support/shared_uploader_examples.rb +1 -0
  216. data/lib/alchemy/tinymce.rb +3 -43
  217. data/lib/alchemy/upgrader/seven_point_zero.rb +45 -0
  218. data/lib/alchemy/upgrader/tasks/.keep +0 -0
  219. data/lib/alchemy/upgrader.rb +9 -3
  220. data/lib/alchemy/version.rb +1 -1
  221. data/lib/alchemy.rb +0 -19
  222. data/lib/alchemy_cms.rb +2 -2
  223. data/lib/generators/alchemy/base.rb +3 -2
  224. data/lib/generators/alchemy/elements/elements_generator.rb +2 -2
  225. data/lib/generators/alchemy/elements/templates/view.html.erb +1 -10
  226. data/lib/generators/alchemy/elements/templates/view.html.haml +1 -9
  227. data/lib/generators/alchemy/elements/templates/view.html.slim +1 -9
  228. data/lib/generators/alchemy/ingredient/ingredient_generator.rb +1 -0
  229. data/lib/generators/alchemy/install/files/alchemy.en.yml +7 -8
  230. data/lib/generators/alchemy/install/files/application.html.erb +1 -1
  231. data/lib/generators/alchemy/install/install_generator.rb +20 -23
  232. data/lib/generators/alchemy/install/templates/elements.yml.tt +12 -12
  233. data/lib/generators/alchemy/module/module_generator.rb +1 -0
  234. data/lib/generators/alchemy/page_layouts/page_layouts_generator.rb +1 -0
  235. data/lib/generators/alchemy/site_layouts/site_layouts_generator.rb +1 -0
  236. data/lib/generators/alchemy/views/views_generator.rb +2 -1
  237. data/lib/tasks/alchemy/thumbnails.rake +6 -25
  238. data/lib/tasks/alchemy/tidy.rake +2 -12
  239. data/lib/tasks/alchemy/upgrade.rake +13 -49
  240. data/package/admin.js +2 -0
  241. data/package/dist/admin.js +16 -0
  242. data/package/dist/admin.js.map +7 -0
  243. data/package/src/datepicker.js +1 -0
  244. data/package/src/tinymce.js +142 -0
  245. data/package.json +5 -3
  246. metadata +41 -135
  247. data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +0 -93
  248. data/app/controllers/alchemy/admin/contents_controller.rb +0 -21
  249. data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -30
  250. data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -31
  251. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +0 -43
  252. data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -34
  253. data/app/controllers/alchemy/api/contents_controller.rb +0 -52
  254. data/app/decorators/alchemy/content_editor.rb +0 -119
  255. data/app/helpers/alchemy/admin/contents_helper.rb +0 -42
  256. data/app/helpers/alchemy/admin/essences_helper.rb +0 -31
  257. data/app/models/alchemy/content/factory.rb +0 -143
  258. data/app/models/alchemy/content.rb +0 -247
  259. data/app/models/alchemy/element/element_contents.rb +0 -200
  260. data/app/models/alchemy/element/element_essences.rb +0 -133
  261. data/app/models/alchemy/essence_audio.rb +0 -13
  262. data/app/models/alchemy/essence_boolean.rb +0 -20
  263. data/app/models/alchemy/essence_date.rb +0 -25
  264. data/app/models/alchemy/essence_file.rb +0 -49
  265. data/app/models/alchemy/essence_headline.rb +0 -41
  266. data/app/models/alchemy/essence_html.rb +0 -23
  267. data/app/models/alchemy/essence_link.rb +0 -21
  268. data/app/models/alchemy/essence_node.rb +0 -19
  269. data/app/models/alchemy/essence_page.rb +0 -17
  270. data/app/models/alchemy/essence_picture.rb +0 -67
  271. data/app/models/alchemy/essence_picture_view.rb +0 -90
  272. data/app/models/alchemy/essence_richtext.rb +0 -44
  273. data/app/models/alchemy/essence_select.rb +0 -19
  274. data/app/models/alchemy/essence_text.rb +0 -23
  275. data/app/models/alchemy/essence_video.rb +0 -13
  276. data/app/presenters/alchemy/picture_view.rb +0 -88
  277. data/app/serializers/alchemy/content_serializer.rb +0 -17
  278. data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -10
  279. data/app/serializers/alchemy/essence_date_serializer.rb +0 -10
  280. data/app/serializers/alchemy/essence_file_serializer.rb +0 -13
  281. data/app/serializers/alchemy/essence_html_serializer.rb +0 -10
  282. data/app/serializers/alchemy/essence_link_serializer.rb +0 -13
  283. data/app/serializers/alchemy/essence_picture_serializer.rb +0 -28
  284. data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -11
  285. data/app/serializers/alchemy/essence_select_serializer.rb +0 -10
  286. data/app/serializers/alchemy/essence_text_serializer.rb +0 -22
  287. data/app/views/alchemy/admin/contents/create.js.erb +0 -21
  288. data/app/views/alchemy/admin/essence_audios/edit.html.erb +0 -7
  289. data/app/views/alchemy/admin/essence_files/edit.html.erb +0 -21
  290. data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +0 -5
  291. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +0 -30
  292. data/app/views/alchemy/admin/essence_pictures/save_link.js.erb +0 -3
  293. data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -8
  294. data/app/views/alchemy/admin/essence_videos/edit.html.erb +0 -12
  295. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +0 -13
  296. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -4
  297. data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -15
  298. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +0 -11
  299. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +0 -2
  300. data/app/views/alchemy/essences/_essence_date_editor.html.erb +0 -16
  301. data/app/views/alchemy/essences/_essence_date_view.html.erb +0 -10
  302. data/app/views/alchemy/essences/_essence_file_editor.html.erb +0 -54
  303. data/app/views/alchemy/essences/_essence_file_view.html.erb +0 -18
  304. data/app/views/alchemy/essences/_essence_headline_editor.html.erb +0 -36
  305. data/app/views/alchemy/essences/_essence_headline_view.html.erb +0 -10
  306. data/app/views/alchemy/essences/_essence_html_editor.html.erb +0 -10
  307. data/app/views/alchemy/essences/_essence_html_view.html.erb +0 -2
  308. data/app/views/alchemy/essences/_essence_link_editor.html.erb +0 -30
  309. data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -10
  310. data/app/views/alchemy/essences/_essence_node_editor.html.erb +0 -27
  311. data/app/views/alchemy/essences/_essence_node_view.html.erb +0 -1
  312. data/app/views/alchemy/essences/_essence_page_editor.html.erb +0 -26
  313. data/app/views/alchemy/essences/_essence_page_view.html.erb +0 -5
  314. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +0 -59
  315. data/app/views/alchemy/essences/_essence_picture_view.html.erb +0 -6
  316. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -14
  317. data/app/views/alchemy/essences/_essence_richtext_view.html.erb +0 -4
  318. data/app/views/alchemy/essences/_essence_select_editor.html.erb +0 -28
  319. data/app/views/alchemy/essences/_essence_select_view.html.erb +0 -2
  320. data/app/views/alchemy/essences/_essence_text_editor.html.erb +0 -29
  321. data/app/views/alchemy/essences/_essence_text_view.html.erb +0 -17
  322. data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -4
  323. data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -19
  324. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +0 -59
  325. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +0 -20
  326. data/app/views/alchemy/pages/show.rss.builder +0 -21
  327. data/db/migrate/20200226213334_alchemy_four_point_four.rb +0 -313
  328. data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +0 -11
  329. data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +0 -28
  330. data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +0 -8
  331. data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +0 -27
  332. data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +0 -6
  333. data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +0 -24
  334. data/db/migrate/20200617110713_create_alchemy_picture_thumbs.rb +0 -22
  335. data/db/migrate/20200907111332_remove_tri_state_booleans.rb +0 -33
  336. data/db/migrate/20201207131309_create_page_versions.rb +0 -19
  337. data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +0 -76
  338. data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +0 -10
  339. data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +0 -7
  340. data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +0 -12
  341. data/db/migrate/20210506135919_create_essence_audios.rb +0 -19
  342. data/db/migrate/20210506140258_create_essence_videos.rb +0 -23
  343. data/db/migrate/20210508091432_create_alchemy_ingredients.rb +0 -22
  344. data/db/migrate/20220514072456_restrict_on_delete_page_id_foreign_key_from_alchemy_nodes.rb +0 -13
  345. data/db/migrate/20220622130905_add_playsinline_to_alchemy_essence_videos.rb +0 -9
  346. data/lib/alchemy/essence.rb +0 -250
  347. data/lib/alchemy/test_support/essence_shared_examples.rb +0 -271
  348. data/lib/alchemy/test_support/factories/content_factory.rb +0 -20
  349. data/lib/alchemy/test_support/factories/essence_audio_factory.rb +0 -7
  350. data/lib/alchemy/test_support/factories/essence_file_factory.rb +0 -7
  351. data/lib/alchemy/test_support/factories/essence_page_factory.rb +0 -7
  352. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +0 -11
  353. data/lib/alchemy/test_support/factories/essence_text_factory.rb +0 -7
  354. data/lib/alchemy/test_support/factories/essence_video_factory.rb +0 -7
  355. data/lib/alchemy/upgrader/five_point_zero.rb +0 -41
  356. data/lib/alchemy/upgrader/six_point_zero.rb +0 -21
  357. data/lib/alchemy/upgrader/tasks/add_page_versions.rb +0 -33
  358. data/lib/alchemy/upgrader/tasks/element_views_updater.rb +0 -34
  359. data/lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb +0 -29
  360. data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +0 -74
  361. data/lib/generators/alchemy/essence/essence_generator.rb +0 -49
  362. data/lib/generators/alchemy/essence/templates/editor.html.erb +0 -17
  363. 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: a020fff31bc399c4927b5f6c4757d3f8ec8c24b76e42d6f352a5687e1feb0924
4
- data.tar.gz: ae7367b2543dbfde31a5a7f09418e68bb94e2d40626eebd650aca7f14d5bd0cb
3
+ metadata.gz: 1294701d36b22b1003c708713292d905295b3a91b9caabae888c7e75555dd84c
4
+ data.tar.gz: 9119c835cd11c74c996466747ddf5c1ad4ba1da42bfe82a52847507a88371513
5
5
  SHA512:
6
- metadata.gz: 7c572d21fa3d5adb4de20649bfe1e8fa127805a82b2852f310ed6dd850797094e7cbbac5c8d5e8061600d88e54548f14753a543c8af6dc2cd0c227bb45e22818
7
- data.tar.gz: 0e75de36f74f9b1c7c37cf12785c154dc2ed987e377fe355a9b98c3821f63302a60f8ee03e06e6bc84e04703a20d8f200236f4370ecbb6f599c0c89f3bb10389
6
+ metadata.gz: f16b17350ebda052f7115a01ecf91274ccbb82bd0c3040701eae28d0cb793f87a62b54302e5caac4861536c0f0edb9f33bf242d6c6fa3d97388c17622aa40d52
7
+ data.tar.gz: 2466351d5448f8b2b304e8c7d3338443cbbae3b2df6ba5bdcf25545e3b496fd6de49ad29e6900cc5f70a22ac6585ba10e08414fe21bb734e20096ef0206c6515
@@ -19,7 +19,7 @@ jobs:
19
19
  steps:
20
20
  # Checkout the repository to the GitHub Actions runner
21
21
  - name: Checkout
22
- uses: actions/checkout@v2
22
+ uses: actions/checkout@v3
23
23
 
24
24
  # Customize the ruby version depending on your needs
25
25
  - name: Set up Ruby
@@ -41,6 +41,6 @@ jobs:
41
41
 
42
42
  # Upload the SARIF file generated in the previous step
43
43
  - name: Upload SARIF
44
- uses: github/codeql-action/upload-sarif@v1
44
+ uses: github/codeql-action/upload-sarif@v2
45
45
  with:
46
46
  sarif_file: output.sarif.json
@@ -12,9 +12,9 @@ jobs:
12
12
  - "6.1"
13
13
  - "7.0"
14
14
  ruby:
15
- - "2.7"
16
15
  - "3.0"
17
16
  - "3.1"
17
+ - "3.2"
18
18
  database:
19
19
  - mysql
20
20
  - postgresql
@@ -54,7 +54,7 @@ jobs:
54
54
  MARIADB_ROOT_PASSWORD: password
55
55
  options: --health-cmd="mariadb-admin ping" --health-interval=10s --health-timeout=5s --health-retries=5
56
56
  steps:
57
- - uses: actions/checkout@v2.3.4
57
+ - uses: actions/checkout@v3
58
58
  - name: Set up Ruby
59
59
  uses: ruby/setup-ruby@v1
60
60
  with:
@@ -62,7 +62,7 @@ jobs:
62
62
  bundler-cache: true
63
63
  - name: Restore apt cache
64
64
  id: apt-cache
65
- uses: actions/cache@v2.1.3
65
+ uses: actions/cache@v3
66
66
  with:
67
67
  path: /home/runner/apt/cache
68
68
  key: ${{ runner.os }}-apt-${{ matrix.database }}
@@ -82,12 +82,9 @@ 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
- uses: actions/cache@v2.1.3
87
+ uses: actions/cache@v3
91
88
  with:
92
89
  path: spec/dummy/node_modules
93
90
  key: ${{ runner.os }}-yarn-dummy-${{ hashFiles('./package.json') }}
@@ -97,7 +94,7 @@ jobs:
97
94
  run: |
98
95
  bundle exec rake alchemy:spec:prepare
99
96
  - name: Run tests & publish code coverage
100
- uses: paambaati/codeclimate-action@v2.7.5
97
+ uses: paambaati/codeclimate-action@v3.2.0
101
98
  env:
102
99
  CC_TEST_REPORTER_ID: bca4349e32f97919210ac8a450b04904b90683fcdd57d65a22c0f5065482bc22
103
100
  with:
@@ -112,9 +109,9 @@ jobs:
112
109
  env:
113
110
  NODE_ENV: test
114
111
  steps:
115
- - uses: actions/checkout@v2.3.4
112
+ - uses: actions/checkout@v3
116
113
  - name: Restore node modules cache
117
- uses: actions/cache@v2.1.3
114
+ uses: actions/cache@v3
118
115
  with:
119
116
  path: node_modules
120
117
  key: ${{ runner.os }}-yarn-${{ hashFiles('./package.json') }}
@@ -0,0 +1,17 @@
1
+ name: Lint
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ Lint:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - name: Checkout code
10
+ uses: actions/checkout@v3
11
+ - name: Install Ruby and gems
12
+ uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: "3.0"
15
+ bundler-cache: true
16
+ - name: Lint Ruby files
17
+ run: bundle exec standardrb
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/.hound.yml CHANGED
@@ -1,10 +1,9 @@
1
1
  rubocop:
2
- config_file: .rubocop.yml
3
- version: 1.5.2
2
+ enabled: false
4
3
  scss:
5
4
  enabled: false
6
5
  coffeescript:
7
6
  enabled: false
8
7
  javascript:
9
8
  enabled: false
10
- fail_on_violations: true
9
+ fail_on_violations: false
data/.rubocop.yml CHANGED
@@ -1,353 +1,7 @@
1
- # Relaxed.Ruby.Style
1
+ require: standard
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.5
5
- Exclude:
6
- - 'bin/rspec'
7
- - 'vendor/**/*'
8
- - 'spec/dummy/db/**/*'
9
- - 'spec/dummy/config/**/*'
10
- - 'alchemy_cms.gemspec'
11
- - 'Rakefile'
12
- - 'node_modules/**/*'
4
+ TargetRubyVersion: 3.0
13
5
 
14
- # Really, rubocop?
15
- Bundler/OrderedGems:
16
- Enabled: false
17
-
18
- Style/EmptyLiteral:
19
- Enabled: false
20
-
21
- # We use class vars and will have to continue doing so for compatability
22
- Style/ClassVars:
23
- Enabled: false
24
-
25
- Style/FloatDivision:
26
- EnforcedStyle: left_coerce
27
-
28
- # This has been used for customization
29
- Style/MutableConstant:
30
- Enabled: false
31
-
32
- Style/ClassAndModuleChildren:
33
- Enabled: false
34
-
35
- Style/GuardClause:
36
- Enabled: false
37
-
38
- # We support older versions of Ruby (2.1) that do not have the %i syntax
39
- Style/SymbolArray:
40
- Enabled: false
41
-
42
- Style/SymbolProc:
43
- Exclude:
44
- - 'lib/alchemy/permissions.rb'
45
-
46
- Style/WordArray:
47
- Enabled: false
48
-
49
- Style/ConditionalAssignment:
50
- Enabled: false
51
-
52
- Style/MixinUsage:
53
- Exclude:
54
- - spec/**/*
55
-
56
- Layout/ArgumentAlignment:
57
- Enabled: false
58
-
59
- Layout/HashAlignment:
60
- Enabled: false
61
-
62
- Layout/ParameterAlignment:
63
- Enabled: false
64
-
65
- Layout/ClosingParenthesisIndentation:
66
- Enabled: false
67
-
68
- Layout/DotPosition:
69
- Enabled: false
70
- StyleGuide: http://relaxed.ruby.style/#styledotposition
71
-
72
- Layout/ElseAlignment:
73
- Enabled: false
74
-
75
- Layout/EmptyLineAfterMagicComment:
76
- Enabled: false
77
-
78
- Layout/EmptyLinesAroundAccessModifier:
79
- Exclude:
80
- - lib/alchemy/test_support/factories/*.rb
81
-
82
- Layout/FirstArrayElementIndentation:
83
- Enabled: false
84
-
85
- Layout/FirstHashElementIndentation:
86
- Enabled: false
87
-
88
- Layout/IndentationWidth:
89
- Enabled: false
90
-
91
- Layout/LineLength:
92
- Enabled: false
93
-
94
- Layout/MultilineHashBraceLayout:
95
- Enabled: false
96
-
97
- Layout/MultilineMethodCallBraceLayout:
98
- Enabled: false
99
-
100
- Layout/MultilineMethodCallIndentation:
101
- Enabled: false
102
-
103
- Layout/SpaceBeforeBlockBraces:
104
- Enabled: false
105
- StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
106
-
107
- Layout/SpaceInsideHashLiteralBraces:
108
- Enabled: false
109
-
110
- Layout/SpaceInsideParens:
111
- Enabled: false
112
- StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
113
-
114
- Layout/EndAlignment:
115
- Enabled: false
116
-
117
- Layout/RescueEnsureAlignment:
118
- Enabled: false
119
-
120
- Lint/SuppressedException:
121
- Exclude:
122
- - 'config/initializers/mini_profiler.rb'
123
-
124
- Style/CollectionMethods:
125
- Enabled: false
126
-
127
- Style/Alias:
128
- Enabled: false
129
- StyleGuide: http://relaxed.ruby.style/#stylealias
130
-
131
- Style/BeginBlock:
132
- Enabled: false
133
- StyleGuide: http://relaxed.ruby.style/#stylebeginblock
134
-
135
- Style/BlockDelimiters:
136
- Enabled: false
137
- StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
138
-
139
- Style/Documentation:
140
- Enabled: false
141
- StyleGuide: http://relaxed.ruby.style/#styledocumentation
142
-
143
- Style/DoubleNegation:
144
- Enabled: false
145
- StyleGuide: http://relaxed.ruby.style/#styledoublenegation
146
-
147
- Style/EmptyMethod:
148
- Enabled: false
149
-
150
- Style/EndBlock:
151
- Enabled: false
152
- StyleGuide: http://relaxed.ruby.style/#styleendblock
153
-
154
- Style/FormatString:
155
- Enabled: false
156
- StyleGuide: http://relaxed.ruby.style/#styleformatstring
157
-
158
- Style/IfUnlessModifier:
159
- Enabled: false
160
- StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
161
-
162
- Style/Lambda:
163
- Enabled: false
164
- StyleGuide: http://relaxed.ruby.style/#stylelambda
165
-
166
- Style/ModuleFunction:
167
- Enabled: false
168
- StyleGuide: http://relaxed.ruby.style/#stylemodulefunction
169
-
170
- Style/MultilineBlockChain:
171
- Enabled: false
172
- StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
173
-
174
- Style/NegatedIf:
175
- Enabled: false
176
- StyleGuide: http://relaxed.ruby.style/#stylenegatedif
177
-
178
- Style/NegatedWhile:
179
- Enabled: false
180
- StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
181
-
182
- Style/NumericLiteralPrefix:
183
- Enabled: false
184
-
185
- Style/ParallelAssignment:
186
- Enabled: false
187
- StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
188
-
189
- Style/PercentLiteralDelimiters:
190
- Enabled: false
191
- StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
192
-
193
- Style/PerlBackrefs:
194
- Enabled: false
195
- StyleGuide: http://relaxed.ruby.style/#styleperlbackrefs
196
-
197
- Style/RegexpLiteral:
198
- Enabled: false
199
-
200
- Style/Semicolon:
201
- Enabled: false
202
- StyleGuide: http://relaxed.ruby.style/#stylesemicolon
203
-
204
- Style/SignalException:
205
- Enabled: false
206
- StyleGuide: http://relaxed.ruby.style/#stylesignalexception
207
-
208
- Style/SingleLineBlockParams:
209
- Enabled: false
210
- StyleGuide: http://relaxed.ruby.style/#stylesinglelineblockparams
211
-
212
- Style/SingleLineMethods:
213
- Enabled: false
214
- StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
215
-
216
- Style/SpecialGlobalVars:
217
- Enabled: false
218
- StyleGuide: http://relaxed.ruby.style/#stylespecialglobalvars
219
-
220
- Style/StringLiterals:
221
- EnforcedStyle: double_quotes
222
-
223
- Style/StringLiteralsInInterpolation:
224
- EnforcedStyle: double_quotes
225
-
226
- Style/TrailingCommaInArguments:
227
- Enabled: false
228
-
229
- Style/TrailingCommaInArrayLiteral:
230
- EnforcedStyleForMultiline: comma
231
-
232
- Style/TrailingCommaInHashLiteral:
233
- EnforcedStyleForMultiline: consistent_comma
234
-
235
- Style/WhileUntilModifier:
236
- Enabled: false
237
- StyleGuide: http://relaxed.ruby.style/#stylewhileuntilmodifier
238
-
239
- # We use a lot of
240
- #
241
- # expect {
242
- # something
243
- # }.to { happen }
244
- #
245
- # syntax in the specs files.
246
- Lint/AmbiguousBlockAssociation:
247
- Exclude:
248
- - 'spec/**/*'
249
-
250
- Lint/AmbiguousRegexpLiteral:
251
- Enabled: false
252
- StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
253
-
254
- Lint/AssignmentInCondition:
255
- Enabled: false
256
- StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
257
-
258
- # We use eval to get the correct url proxy object of engines in:
259
- # - app/helpers/alchemy/admin/navigation_helper.rb:139
260
- # - lib/alchemy/resources_helper.rb:24
261
- Security/Eval:
262
- Exclude:
263
- - app/helpers/alchemy/admin/navigation_helper.rb
264
- - lib/alchemy/resources_helper.rb
265
-
266
- Metrics/AbcSize:
267
- Enabled: false
268
-
269
- Metrics/BlockLength:
270
- Enabled: false
271
-
272
- Metrics/BlockNesting:
273
- Enabled: false
274
-
275
- Metrics/ClassLength:
276
- Enabled: false
277
-
278
- Metrics/ModuleLength:
279
- Enabled: false
280
-
281
- Metrics/CyclomaticComplexity:
282
- Enabled: false
283
-
284
- Metrics/MethodLength:
285
- Enabled: false
286
-
287
- Metrics/ParameterLists:
288
- Enabled: false
289
-
290
- Metrics/PerceivedComplexity:
291
- Enabled: false
292
-
293
- Naming/AccessorMethodName:
294
- Enabled: false
295
-
296
- Naming/HeredocDelimiterNaming:
297
- Enabled: false
298
-
299
- # This cop is great but has no config option to support the style `@_method_name` we are using.
300
- Naming/MemoizedInstanceVariableName:
301
- Enabled: false
302
-
303
- # We need these names for backwards compatability
304
- Naming/PredicateName:
305
- Enabled: false
306
-
307
- Naming/VariableNumber:
308
- Enabled: false
309
-
310
- Lint/DuplicateBranch: # (new in 1.3)
311
- Enabled: false
312
-
313
- Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
314
- Enabled: false
315
-
316
- Lint/EmptyBlock: # (new in 1.1)
317
- Enabled: false
318
-
319
- Lint/EmptyClass: # (new in 1.3)
320
- Enabled: false
321
-
322
- Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
323
- Enabled: false
324
-
325
- Lint/ToEnumArguments: # (new in 1.1)
326
- Enabled: false
327
-
328
- Lint/UnexpectedBlockArity: # (new in 1.5)
329
- Enabled: false
330
-
331
- Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
332
- Enabled: false
333
-
334
- Style/ArgumentsForwarding: # (new in 1.1)
335
- Enabled: false
336
-
337
- Style/CollectionCompact: # (new in 1.2)
338
- Enabled: false
339
-
340
- Style/DocumentDynamicEvalDefinition: # (new in 1.1)
341
- Enabled: false
342
-
343
- Style/NegatedIfElseCondition: # (new in 1.2)
344
- Enabled: false
345
-
346
- Style/NilLambda: # (new in 1.3)
347
- Enabled: false
348
-
349
- Style/RedundantArgument: # (new in 1.4)
350
- Enabled: false
351
-
352
- Style/SwapValues: # (new in 1.1)
353
- Enabled: false
6
+ inherit_gem:
7
+ standard: config/base.yml
data/.standard.yml ADDED
@@ -0,0 +1,3 @@
1
+ parallel: true
2
+ ignore:
3
+ - "spec/dummy/**/*"
data/CHANGELOG.md CHANGED
@@ -1,26 +1,56 @@
1
1
  # Changelog
2
2
 
3
- ## 6.1.5 (2023-05-26)
4
-
5
- - [6.1] Fix page seeder [#2482](https://github.com/AlchemyCMS/alchemy_cms/pull/2482) ([tvdeyen](https://github.com/tvdeyen))
6
-
7
- ## 6.1.4 (2023-05-18)
8
-
9
- - [6.1] Revert "Preload related objects in Alchemy::PagesController" [#2473](https://github.com/AlchemyCMS/alchemy_cms/pull/2473) ([tvdeyen](https://github.com/tvdeyen))
10
-
11
- ## 6.1.3 (2023-03-29)
12
-
3
+ ## 7.0.0 (unreleased)
4
+
5
+ - Fix TinyMCE loading behavior after page change [#2494](https://github.com/AlchemyCMS/alchemy_cms/pull/2494) ([sascha-karnatz](https://github.com/sascha-karnatz))
6
+ - [js] Update esbuild → 0.18.4 (unknown) [#2492](https://github.com/AlchemyCMS/alchemy_cms/pull/2492) ([depfu](https://github.com/apps/depfu))
7
+ - Add ransackable attributes to tags [#2487](https://github.com/AlchemyCMS/alchemy_cms/pull/2487) ([tvdeyen](https://github.com/tvdeyen))
8
+ - Remove selenium-webdriver 4.9.0 [#2484](https://github.com/AlchemyCMS/alchemy_cms/pull/2484) ([depfu](https://github.com/apps/depfu))
9
+ - Make it easier to run the dummy app locally [#2483](https://github.com/AlchemyCMS/alchemy_cms/pull/2483) ([tvdeyen](https://github.com/tvdeyen))
10
+ - VideoView: Merge html_options onto options [#2481](https://github.com/AlchemyCMS/alchemy_cms/pull/2481) ([tvdeyen](https://github.com/tvdeyen))
11
+ - Allow to pass level to HeadlineView component [#2480](https://github.com/AlchemyCMS/alchemy_cms/pull/2480) ([tvdeyen](https://github.com/tvdeyen))
12
+ - Un-deprecate rendering ingredient view partials [#2479](https://github.com/AlchemyCMS/alchemy_cms/pull/2479) ([tvdeyen](https://github.com/tvdeyen))
13
+ - Fix installer application layout template [#2478](https://github.com/AlchemyCMS/alchemy_cms/pull/2478) ([tvdeyen](https://github.com/tvdeyen))
14
+ - Respect available locales set in application [#2477](https://github.com/AlchemyCMS/alchemy_cms/pull/2477) ([tvdeyen](https://github.com/tvdeyen))
15
+ - Use intersection observer to init Tinymce editors [#2476](https://github.com/AlchemyCMS/alchemy_cms/pull/2476) ([sascha-karnatz](https://github.com/sascha-karnatz))
16
+ - Revert "Preload related objects in Alchemy::PagesController" [#2472](https://github.com/AlchemyCMS/alchemy_cms/pull/2472) ([tvdeyen](https://github.com/tvdeyen))
17
+ - Collapse all nested elements on fold [#2471](https://github.com/AlchemyCMS/alchemy_cms/pull/2471) ([tvdeyen](https://github.com/tvdeyen))
18
+ - Do not render nested elements of element editor if folded [#2470](https://github.com/AlchemyCMS/alchemy_cms/pull/2470) ([tvdeyen](https://github.com/tvdeyen))
19
+ - Pin selenium-webdriver to 4.9.0 [#2469](https://github.com/AlchemyCMS/alchemy_cms/pull/2469) ([tvdeyen](https://github.com/tvdeyen))
20
+ - Add indexes to pictures table [#2466](https://github.com/AlchemyCMS/alchemy_cms/pull/2466) ([sascha-karnatz](https://github.com/sascha-karnatz))
21
+ - Use view_component for ingredient views [#2465](https://github.com/AlchemyCMS/alchemy_cms/pull/2465) ([tvdeyen](https://github.com/tvdeyen))
22
+ - Drop Ruby 2.x support [#2464](https://github.com/AlchemyCMS/alchemy_cms/pull/2464) ([tvdeyen](https://github.com/tvdeyen))
23
+ - Remove defer from admin JS includes [#2463](https://github.com/AlchemyCMS/alchemy_cms/pull/2463) ([tvdeyen](https://github.com/tvdeyen))
24
+ - Use ISO Date format in flatpickr [#2462](https://github.com/AlchemyCMS/alchemy_cms/pull/2462) ([phantomwhale](https://github.com/phantomwhale))
25
+ - Fix layoutpages configuration [#2459](https://github.com/AlchemyCMS/alchemy_cms/pull/2459) ([oRIOnTx](https://github.com/oRIOnTx))
26
+ - Fix picture show overlay if picture in use [#2456](https://github.com/AlchemyCMS/alchemy_cms/pull/2456) ([tvdeyen](https://github.com/tvdeyen))
27
+ - Fix picture file format filter [#2455](https://github.com/AlchemyCMS/alchemy_cms/pull/2455) ([tvdeyen](https://github.com/tvdeyen))
28
+ - Allow editors to switch language [#2454](https://github.com/AlchemyCMS/alchemy_cms/pull/2454) ([mamhoff](https://github.com/mamhoff))
29
+ - Use standard.rb as code linter and formatter [#2453](https://github.com/AlchemyCMS/alchemy_cms/pull/2453) ([tvdeyen](https://github.com/tvdeyen))
30
+ - CI: Update brakeman workflow [#2452](https://github.com/AlchemyCMS/alchemy_cms/pull/2452) ([tvdeyen](https://github.com/tvdeyen))
31
+ - CI: Use latest version of GitHub actions [#2451](https://github.com/AlchemyCMS/alchemy_cms/pull/2451) ([tvdeyen](https://github.com/tvdeyen))
32
+ - Send language_id (of the currently editing page) parameter to Pages API requests for page select on link overlay [#2439](https://github.com/AlchemyCMS/alchemy_cms/pull/2439) ([dbwinger](https://github.com/dbwinger))
33
+ - Fix page seeder [#2389](https://github.com/AlchemyCMS/alchemy_cms/pull/2389) ([tvdeyen](https://github.com/tvdeyen))
34
+ - Remove deprecations [#2450](https://github.com/AlchemyCMS/alchemy_cms/pull/2450) ([tvdeyen](https://github.com/tvdeyen))
35
+ - Fix respond_to? overwrite in ElementEditor [#2449](https://github.com/AlchemyCMS/alchemy_cms/pull/2449) ([tvdeyen](https://github.com/tvdeyen))
13
36
  - Fix installer: Add seeds file if not exists [#2446](https://github.com/AlchemyCMS/alchemy_cms/pull/2446) ([tvdeyen](https://github.com/tvdeyen))
37
+ - Make CapybaraHelpers requireable [#2445](https://github.com/AlchemyCMS/alchemy_cms/pull/2445) ([tvdeyen](https://github.com/tvdeyen))
38
+ - Do not install webpacker tag for fresh apps [#2444](https://github.com/AlchemyCMS/alchemy_cms/pull/2444) ([tvdeyen](https://github.com/tvdeyen))
39
+ - Re-add Webpacker support. [#2443](https://github.com/AlchemyCMS/alchemy_cms/pull/2443) ([tvdeyen](https://github.com/tvdeyen))
40
+ - Add support for more link tabs [#2442](https://github.com/AlchemyCMS/alchemy_cms/pull/2442) ([tvdeyen](https://github.com/tvdeyen))
41
+ - Add support for Ransack 4 [#2438](https://github.com/AlchemyCMS/alchemy_cms/pull/2438) ([tvdeyen](https://github.com/tvdeyen))
42
+ - Fix non_stupid_digest_assets [#2436](https://github.com/AlchemyCMS/alchemy_cms/pull/2436) ([tvdeyen](https://github.com/tvdeyen))
43
+ - Add PictureThumb.storage_class [#2435](https://github.com/AlchemyCMS/alchemy_cms/pull/2435) ([tvdeyen](https://github.com/tvdeyen))
44
+ - Fix thumbnail writing for multi-concurrent and multi-db setups [#2433](https://github.com/AlchemyCMS/alchemy_cms/pull/2433) ([tvdeyen](https://github.com/tvdeyen))
14
45
  - Integrate non_stupid_digest_assets gem [#2430](https://github.com/AlchemyCMS/alchemy_cms/pull/2430) ([afdev82](https://github.com/afdev82))
15
-
16
- ## 6.1.2 (2023-02-27)
17
-
18
- - [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))
19
-
20
- ## 6.1.1 (2023-01-23)
21
-
22
- - Re-introduce deleted methods [#2422](https://github.com/AlchemyCMS/alchemy_cms/pull/2422) ([tvdeyen](https://github.com/tvdeyen))
23
- - Add searchable field to page (Alchemy 6.1) [#2420](https://github.com/AlchemyCMS/alchemy_cms/pull/2420) ([kulturbande](https://github.com/kulturbande))
46
+ - Define allowed settings in ingredients [#2425](https://github.com/AlchemyCMS/alchemy_cms/pull/2425) ([tvdeyen](https://github.com/tvdeyen))
47
+ - Remove webpacker [#2424](https://github.com/AlchemyCMS/alchemy_cms/pull/2424) ([tvdeyen](https://github.com/tvdeyen))
48
+ - Remove deprecated methods [#2421](https://github.com/AlchemyCMS/alchemy_cms/pull/2421) ([tvdeyen](https://github.com/tvdeyen))
49
+ - Remove 6.0 upgrade tasks [#2418](https://github.com/AlchemyCMS/alchemy_cms/pull/2418) ([tvdeyen](https://github.com/tvdeyen))
50
+ - Compress 6.1 migrations [#2417](https://github.com/AlchemyCMS/alchemy_cms/pull/2417) ([tvdeyen](https://github.com/tvdeyen))
51
+ - Remove all content/essence related code [#2416](https://github.com/AlchemyCMS/alchemy_cms/pull/2416) ([tvdeyen](https://github.com/tvdeyen))
52
+ - Remove RSS Feed feature [#2415](https://github.com/AlchemyCMS/alchemy_cms/pull/2415) ([tvdeyen](https://github.com/tvdeyen))
53
+ - Add searchable field to page [#2414](https://github.com/AlchemyCMS/alchemy_cms/pull/2414) ([kulturbande](https://github.com/kulturbande))
24
54
 
25
55
  ## 6.1.0 (2023-01-19)
26
56
 
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source "https://rubygems.org"
3
4
 
4
5
  gemspec
@@ -19,7 +20,9 @@ group :development, :test do
19
20
  # in our case the culprit is `handlebars-assets`. The changes between 2.7.0 and 2.8.0 are
20
21
  # minimal, but breaking.
21
22
  gem "execjs", "= 2.8.1"
22
- gem "selenium-webdriver", "< 4.9.1" # until https://github.com/teamcapybara/capybara/pull/2665 got merged
23
+ gem "jsbundling-rails", "~> 1.1"
24
+ gem "rubocop", require: false
25
+ gem "standard", "~> 1.25", require: false
23
26
 
24
27
  if ENV["GITHUB_ACTIONS"]
25
28
  # Necessary because GH Actions gem cache does not have this "Bundled with Ruby" gem installed
@@ -32,7 +35,6 @@ group :development, :test do
32
35
  gem "yard"
33
36
  gem "redcarpet"
34
37
  gem "pry-byebug"
35
- gem "rubocop", "1.5.2", require: false
36
38
  gem "listen"
37
39
  gem "localeapp", "~> 3.0", require: false
38
40
  gem "dotenv", "~> 2.2"
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # AlchemyCMS
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/alchemy_cms.svg)](http://badge.fury.io/rb/alchemy_cms)
4
3
  [![Build Status](https://github.com/AlchemyCMS/alchemy_cms/workflows/CI/badge.svg?branch=main)](https://github.com/AlchemyCMS/alchemy_cms/actions)
4
+ [![Brakeman Scan](https://github.com/AlchemyCMS/alchemy_cms/actions/workflows/brakeman-analysis.yml/badge.svg)](https://github.com/AlchemyCMS/alchemy_cms/actions/workflows/brakeman-analysis.yml)
5
+
6
+ [![Gem Version](https://badge.fury.io/rb/alchemy_cms.svg)](http://badge.fury.io/rb/alchemy_cms)
5
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/196c56c56568ed24a697/maintainability)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/maintainability)
6
8
  [![Test Coverage](https://api.codeclimate.com/v1/badges/196c56c56568ed24a697/test_coverage)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/test_coverage)
7
- [![Depfu](https://badges.depfu.com/badges/ebe56d2dd7b7044a8ae700cc81212a8e/overview.svg)](https://depfu.com/github/AlchemyCMS/alchemy_cms?project_id=4600)
8
-
9
- [![Slack Status](https://slackin.alchemy-cms.com/badge.svg)](https://slackin.alchemy-cms.com)
10
9
  [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)
10
+ [![Depfu](https://badges.depfu.com/badges/ebe56d2dd7b7044a8ae700cc81212a8e/overview.svg)](https://depfu.com/github/AlchemyCMS/alchemy_cms?project_id=4600)
11
11
 
12
12
  [![Backers on Open Collective](https://opencollective.com/alchemy_cms/backers/badge.svg?color=blue)](#backers)
13
13
  [![Sponsors on Open Collective](https://opencollective.com/alchemy_cms/sponsors/badge.svg?color=blue)](#sponsors)
@@ -302,7 +302,7 @@ If you want to contribute to Alchemy ([and we encourage you to do so](CONTRIBUTI
302
302
  First of all you need to clone your fork to your local development machine. Then you need to install the dependencies with bundler.
303
303
 
304
304
  ```bash
305
- $ bundle install
305
+ $ bin/setup
306
306
  ```
307
307
 
308
308
  To prepare the tests of your Alchemy fork please make sure to run the preparation task:
@@ -316,7 +316,7 @@ to set up the database for testing.
316
316
  ### Run your tests with:
317
317
 
318
318
  ```bash
319
- $ bundle exec rspec
319
+ $ bin/rspec
320
320
  ```
321
321
 
322
322
  **Alternatively** you can just run*:
@@ -332,9 +332,7 @@ $ bundle exec rake
332
332
  You can even start the dummy app and use it to manually test your changes with:
333
333
 
334
334
  ```bash
335
- $ cd spec/dummy
336
- $ bin/setup
337
- $ bin/rails s
335
+ $ bin/start
338
336
  ```
339
337
 
340
338