alchemy_cms 4.6.7 → 5.0.0.beta1

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 (384) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +33 -1
  3. data/.github/workflows/stale.yml +1 -1
  4. data/.gitignore +20 -2
  5. data/.hound.yml +2 -1
  6. data/.prettierrc +6 -0
  7. data/.rubocop.yml +31 -10
  8. data/CHANGELOG.md +89 -32
  9. data/Gemfile +24 -22
  10. data/README.md +31 -19
  11. data/Rakefile +10 -8
  12. data/alchemy_cms.gemspec +6 -5
  13. data/app/assets/javascripts/alchemy/admin.js +1 -5
  14. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +2 -1
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -2
  16. data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +17 -17
  17. data/app/assets/javascripts/alchemy/node_select.js +39 -0
  18. data/app/assets/javascripts/alchemy/templates/index.js +1 -0
  19. data/app/assets/javascripts/alchemy/templates/node.hbs +16 -0
  20. data/app/assets/stylesheets/alchemy/admin.scss +3 -2
  21. data/app/assets/stylesheets/alchemy/base.scss +0 -1
  22. data/app/assets/stylesheets/alchemy/elements.scss +1 -1
  23. data/app/assets/stylesheets/alchemy/forms.scss +5 -0
  24. data/app/assets/stylesheets/alchemy/node-select.scss +43 -0
  25. data/app/assets/stylesheets/alchemy/nodes.scss +1 -1
  26. data/app/assets/stylesheets/alchemy/sitemap.scss +5 -1
  27. data/app/assets/stylesheets/alchemy/tables.scss +1 -24
  28. data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +3 -3
  29. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +7 -7
  30. data/app/controllers/alchemy/admin/attachments_controller.rb +8 -7
  31. data/app/controllers/alchemy/admin/base_controller.rb +16 -42
  32. data/app/controllers/alchemy/admin/clipboard_controller.rb +5 -4
  33. data/app/controllers/alchemy/admin/contents_controller.rb +1 -2
  34. data/app/controllers/alchemy/admin/dashboard_controller.rb +10 -9
  35. data/app/controllers/alchemy/admin/elements_controller.rb +20 -20
  36. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +12 -14
  37. data/app/controllers/alchemy/admin/languages_controller.rb +35 -2
  38. data/app/controllers/alchemy/admin/layoutpages_controller.rb +5 -2
  39. data/app/controllers/alchemy/admin/nodes_controller.rb +5 -4
  40. data/app/controllers/alchemy/admin/pages_controller.rb +50 -62
  41. data/app/controllers/alchemy/admin/pictures_controller.rb +16 -16
  42. data/app/controllers/alchemy/admin/resources_controller.rb +21 -13
  43. data/app/controllers/alchemy/admin/sites_controller.rb +18 -0
  44. data/app/controllers/alchemy/admin/styleguide_controller.rb +1 -0
  45. data/app/controllers/alchemy/admin/tags_controller.rb +5 -3
  46. data/app/controllers/alchemy/admin/trash_controller.rb +6 -6
  47. data/app/controllers/alchemy/api/base_controller.rb +2 -2
  48. data/app/controllers/alchemy/api/contents_controller.rb +4 -4
  49. data/app/controllers/alchemy/api/elements_controller.rb +8 -8
  50. data/app/controllers/alchemy/api/nodes_controller.rb +37 -1
  51. data/app/controllers/alchemy/api/pages_controller.rb +14 -23
  52. data/app/controllers/alchemy/attachments_controller.rb +5 -5
  53. data/app/controllers/alchemy/base_controller.rb +10 -9
  54. data/app/controllers/alchemy/messages_controller.rb +16 -23
  55. data/app/controllers/alchemy/pages_controller.rb +13 -11
  56. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +3 -2
  57. data/app/controllers/concerns/alchemy/admin/current_language.rb +23 -0
  58. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +5 -5
  59. data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +4 -4
  60. data/app/controllers/concerns/alchemy/page_redirects.rb +2 -9
  61. data/app/controllers/concerns/alchemy/site_redirects.rb +2 -2
  62. data/app/decorators/alchemy/element_editor.rb +39 -0
  63. data/app/helpers/alchemy/admin/attachments_helper.rb +6 -6
  64. data/app/helpers/alchemy/admin/base_helper.rb +36 -35
  65. data/app/helpers/alchemy/admin/contents_helper.rb +3 -3
  66. data/app/helpers/alchemy/admin/elements_helper.rb +3 -88
  67. data/app/helpers/alchemy/admin/essences_helper.rb +8 -117
  68. data/app/helpers/alchemy/admin/form_helper.rb +1 -1
  69. data/app/helpers/alchemy/admin/navigation_helper.rb +24 -23
  70. data/app/helpers/alchemy/admin/pages_helper.rb +4 -4
  71. data/app/helpers/alchemy/admin/pictures_helper.rb +3 -3
  72. data/app/helpers/alchemy/admin/tags_helper.rb +8 -7
  73. data/app/helpers/alchemy/base_helper.rb +13 -8
  74. data/app/helpers/alchemy/elements_block_helper.rb +2 -31
  75. data/app/helpers/alchemy/elements_helper.rb +12 -58
  76. data/app/helpers/alchemy/pages_helper.rb +24 -174
  77. data/app/helpers/alchemy/url_helper.rb +2 -1
  78. data/app/mailers/alchemy/base_mailer.rb +1 -1
  79. data/app/mailers/alchemy/messages_mailer.rb +1 -1
  80. data/app/models/alchemy/attachment.rb +21 -19
  81. data/app/models/alchemy/base_record.rb +2 -5
  82. data/app/models/alchemy/content/factory.rb +24 -31
  83. data/app/models/alchemy/content.rb +33 -38
  84. data/app/models/alchemy/element/definitions.rb +4 -4
  85. data/app/models/alchemy/element/element_contents.rb +9 -6
  86. data/app/models/alchemy/element/element_essences.rb +4 -3
  87. data/app/models/alchemy/element/presenters.rb +3 -2
  88. data/app/models/alchemy/element.rb +46 -54
  89. data/app/models/alchemy/element_to_page.rb +1 -1
  90. data/app/models/alchemy/essence_boolean.rb +1 -3
  91. data/app/models/alchemy/essence_date.rb +2 -3
  92. data/app/models/alchemy/essence_file.rb +4 -4
  93. data/app/models/alchemy/essence_html.rb +1 -3
  94. data/app/models/alchemy/essence_link.rb +1 -3
  95. data/app/models/alchemy/essence_node.rb +18 -0
  96. data/app/models/alchemy/essence_page.rb +3 -16
  97. data/app/models/alchemy/essence_picture.rb +17 -16
  98. data/app/models/alchemy/essence_picture_view.rb +7 -6
  99. data/app/models/alchemy/essence_richtext.rb +1 -3
  100. data/app/models/alchemy/essence_select.rb +1 -3
  101. data/app/models/alchemy/essence_text.rb +0 -2
  102. data/app/models/alchemy/folded_page.rb +1 -0
  103. data/app/models/alchemy/language/code.rb +4 -4
  104. data/app/models/alchemy/language.rb +21 -35
  105. data/app/models/alchemy/legacy_page_url.rb +1 -1
  106. data/app/models/alchemy/message.rb +3 -3
  107. data/app/models/alchemy/node.rb +28 -5
  108. data/app/models/alchemy/page/fixed_attributes.rb +3 -2
  109. data/app/models/alchemy/page/page_elements.rb +35 -44
  110. data/app/models/alchemy/page/page_naming.rb +20 -70
  111. data/app/models/alchemy/page/page_natures.rb +7 -34
  112. data/app/models/alchemy/page/page_scopes.rb +23 -29
  113. data/app/models/alchemy/page/url_path.rb +0 -2
  114. data/app/models/alchemy/page.rb +47 -128
  115. data/app/models/alchemy/picture/transformations.rb +9 -7
  116. data/app/models/alchemy/picture/url.rb +5 -5
  117. data/app/models/alchemy/picture.rb +19 -28
  118. data/app/models/alchemy/site/layout.rb +2 -2
  119. data/app/models/alchemy/site.rb +6 -36
  120. data/app/models/concerns/alchemy/touch_elements.rb +24 -0
  121. data/app/serializers/alchemy/content_serializer.rb +0 -3
  122. data/app/serializers/alchemy/essence_boolean_serializer.rb +3 -3
  123. data/app/serializers/alchemy/essence_date_serializer.rb +3 -3
  124. data/app/serializers/alchemy/essence_file_serializer.rb +4 -2
  125. data/app/serializers/alchemy/essence_html_serializer.rb +3 -3
  126. data/app/serializers/alchemy/essence_link_serializer.rb +3 -3
  127. data/app/serializers/alchemy/essence_picture_serializer.rb +5 -4
  128. data/app/serializers/alchemy/essence_richtext_serializer.rb +3 -3
  129. data/app/serializers/alchemy/essence_select_serializer.rb +3 -3
  130. data/app/serializers/alchemy/essence_text_serializer.rb +5 -4
  131. data/app/serializers/alchemy/node_serializer.rb +2 -0
  132. data/app/serializers/alchemy/page_tree_serializer.rb +9 -13
  133. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -2
  134. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +1 -2
  135. data/app/views/alchemy/admin/attachments/_files_list.html.erb +4 -4
  136. data/app/views/alchemy/admin/contents/create.js.erb +1 -3
  137. data/app/views/alchemy/admin/elements/_element.html.erb +9 -18
  138. data/app/views/alchemy/admin/elements/create.js.erb +1 -1
  139. data/app/views/alchemy/admin/elements/fold.js.erb +1 -1
  140. data/app/views/alchemy/admin/elements/index.html.erb +3 -3
  141. data/app/views/alchemy/admin/essence_files/assign.js.erb +1 -6
  142. data/app/views/alchemy/admin/essence_files/edit.html.erb +1 -1
  143. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +1 -7
  144. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +1 -1
  145. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +7 -7
  146. data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -1
  147. data/app/views/alchemy/admin/languages/_form.html.erb +5 -5
  148. data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
  149. data/app/views/alchemy/admin/languages/edit.html.erb +1 -0
  150. data/app/views/alchemy/admin/languages/index.html.erb +23 -4
  151. data/app/views/alchemy/admin/languages/new.html.erb +1 -0
  152. data/app/views/alchemy/admin/layoutpages/index.html.erb +3 -3
  153. data/app/views/alchemy/admin/nodes/_form.html.erb +18 -15
  154. data/app/views/alchemy/admin/nodes/_node.html.erb +1 -5
  155. data/app/views/alchemy/admin/nodes/index.html.erb +3 -4
  156. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +0 -8
  157. data/app/views/alchemy/admin/pages/_form.html.erb +0 -1
  158. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -0
  159. data/app/views/alchemy/admin/pages/_page.html.erb +11 -19
  160. data/app/views/alchemy/admin/pages/_page_infos.html.erb +0 -4
  161. data/app/views/alchemy/admin/pages/edit.html.erb +1 -1
  162. data/app/views/alchemy/admin/pages/info.html.erb +0 -9
  163. data/app/views/alchemy/admin/pages/unlock.js.erb +13 -6
  164. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +0 -2
  165. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -5
  166. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  167. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -2
  168. data/app/views/alchemy/admin/resources/_resource.html.erb +1 -1
  169. data/app/views/alchemy/admin/resources/_table.html.erb +2 -2
  170. data/app/views/alchemy/admin/sites/_form.html.erb +8 -0
  171. data/app/views/alchemy/admin/sites/edit.html.erb +1 -0
  172. data/app/views/alchemy/admin/sites/index.html.erb +21 -9
  173. data/app/views/alchemy/admin/sites/new.html.erb +1 -0
  174. data/app/views/alchemy/admin/tags/index.html.erb +2 -2
  175. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +10 -12
  176. data/app/views/alchemy/essences/_essence_date_editor.html.erb +11 -8
  177. data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -17
  178. data/app/views/alchemy/essences/_essence_html_editor.html.erb +8 -5
  179. data/app/views/alchemy/essences/_essence_link_editor.html.erb +18 -15
  180. data/app/views/alchemy/essences/_essence_node_editor.html.erb +27 -0
  181. data/app/views/alchemy/essences/_essence_node_view.html.erb +1 -0
  182. data/app/views/alchemy/essences/_essence_page_editor.html.erb +14 -11
  183. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +22 -20
  184. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +10 -7
  185. data/app/views/alchemy/essences/_essence_select_editor.html.erb +12 -16
  186. data/app/views/alchemy/essences/_essence_text_editor.html.erb +18 -17
  187. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +6 -11
  188. data/app/views/alchemy/pages/show.rss.builder +3 -2
  189. data/app/views/layouts/alchemy/admin.html.erb +1 -0
  190. data/babel.config.js +12 -0
  191. data/bin/rails +5 -4
  192. data/config/alchemy/config.yml +15 -18
  193. data/config/brakeman.ignore +1 -1
  194. data/config/initializers/assets.rb +2 -1
  195. data/config/initializers/dragonfly.rb +2 -1
  196. data/config/initializers/mime_types.rb +1 -0
  197. data/config/initializers/mini_profiler.rb +3 -2
  198. data/config/initializers/simple_form.rb +6 -6
  199. data/config/locales/alchemy.en.yml +23 -8
  200. data/config/routes.rb +25 -24
  201. data/config/spring.rb +3 -2
  202. data/db/migrate/20200226213334_alchemy_four_point_four.rb +313 -0
  203. data/db/migrate/20200423073425_create_alchemy_essence_nodes.rb +11 -0
  204. data/db/migrate/20200504210159_remove_site_id_from_nodes.rb +28 -0
  205. data/db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb +8 -0
  206. data/db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb +27 -0
  207. data/db/migrate/20200514091507_make_page_layoutpage_null_false.rb +6 -0
  208. data/db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb +24 -0
  209. data/lib/alchemy/admin/locale.rb +3 -1
  210. data/lib/alchemy/admin/preview_url.rb +64 -0
  211. data/lib/alchemy/auth_accessors.rb +8 -7
  212. data/lib/alchemy/cache_digests/template_tracker.rb +5 -4
  213. data/lib/alchemy/config.rb +1 -5
  214. data/lib/alchemy/configuration_methods.rb +3 -1
  215. data/lib/alchemy/controller_actions.rb +6 -5
  216. data/lib/alchemy/deprecation.rb +2 -1
  217. data/lib/alchemy/elements_finder.rb +5 -5
  218. data/lib/alchemy/engine.rb +22 -14
  219. data/lib/alchemy/errors.rb +0 -7
  220. data/lib/alchemy/essence.rb +17 -16
  221. data/lib/alchemy/filetypes.rb +5 -5
  222. data/lib/alchemy/forms/builder.rb +4 -4
  223. data/lib/alchemy/hints.rb +1 -1
  224. data/lib/alchemy/i18n.rb +2 -1
  225. data/lib/alchemy/modules.rb +12 -12
  226. data/lib/alchemy/name_conversions.rb +5 -5
  227. data/lib/alchemy/on_page_layout/callbacks_runner.rb +1 -0
  228. data/lib/alchemy/page_layout.rb +15 -12
  229. data/lib/alchemy/paths.rb +1 -1
  230. data/lib/alchemy/permissions.rb +7 -6
  231. data/lib/alchemy/resource.rb +25 -17
  232. data/lib/alchemy/resources_helper.rb +12 -18
  233. data/lib/alchemy/routing_constraints.rb +1 -1
  234. data/lib/alchemy/seeder.rb +42 -14
  235. data/lib/alchemy/shell.rb +13 -10
  236. data/lib/alchemy/taggable.rb +1 -0
  237. data/lib/alchemy/tasks/tidy.rb +4 -3
  238. data/lib/alchemy/test_support/config_stubbing.rb +1 -0
  239. data/lib/alchemy/test_support/essence_shared_examples.rb +72 -72
  240. data/lib/alchemy/test_support/factories/attachment_factory.rb +5 -5
  241. data/lib/alchemy/test_support/factories/content_factory.rb +6 -6
  242. data/lib/alchemy/test_support/factories/dummy_user_factory.rb +7 -7
  243. data/lib/alchemy/test_support/factories/element_factory.rb +9 -9
  244. data/lib/alchemy/test_support/factories/essence_file_factory.rb +3 -3
  245. data/lib/alchemy/test_support/factories/essence_page_factory.rb +3 -3
  246. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +4 -4
  247. data/lib/alchemy/test_support/factories/essence_text_factory.rb +3 -3
  248. data/lib/alchemy/test_support/factories/language_factory.rb +16 -14
  249. data/lib/alchemy/test_support/factories/node_factory.rb +8 -8
  250. data/lib/alchemy/test_support/factories/page_factory.rb +15 -27
  251. data/lib/alchemy/test_support/factories/picture_factory.rb +5 -5
  252. data/lib/alchemy/test_support/factories/site_factory.rb +7 -6
  253. data/lib/alchemy/test_support/factories.rb +1 -1
  254. data/lib/alchemy/test_support/integration_helpers.rb +1 -0
  255. data/lib/alchemy/test_support/shared_contexts.rb +5 -4
  256. data/lib/alchemy/test_support/shared_uploader_examples.rb +4 -3
  257. data/lib/alchemy/tinymce.rb +15 -13
  258. data/lib/alchemy/upgrader/five_point_zero.rb +41 -0
  259. data/lib/alchemy/upgrader/tasks/element_views_updater.rb +4 -4
  260. data/lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb +29 -0
  261. data/lib/alchemy/upgrader.rb +8 -7
  262. data/lib/alchemy/userstamp.rb +1 -1
  263. data/lib/alchemy/version.rb +1 -1
  264. data/lib/alchemy_cms.rb +52 -51
  265. data/lib/{rails/generators → generators}/alchemy/base.rb +5 -4
  266. data/lib/{rails/generators → generators}/alchemy/elements/elements_generator.rb +13 -9
  267. data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.erb +0 -0
  268. data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.haml +0 -0
  269. data/lib/{rails/generators → generators}/alchemy/elements/templates/view.html.slim +0 -0
  270. data/lib/{rails/generators → generators}/alchemy/essence/essence_generator.rb +15 -13
  271. data/lib/generators/alchemy/essence/templates/editor.html.erb +17 -0
  272. data/lib/{rails/generators → generators}/alchemy/essence/templates/view.html.erb +0 -0
  273. data/lib/{rails/generators → generators}/alchemy/install/files/_article.html.erb +0 -0
  274. data/lib/{rails/generators → generators}/alchemy/install/files/_standard.html.erb +0 -0
  275. data/lib/{rails/generators → generators}/alchemy/install/files/alchemy.en.yml +0 -0
  276. data/lib/generators/alchemy/install/files/alchemy_admin.js +1 -0
  277. data/lib/{rails/generators → generators}/alchemy/install/files/all.css +0 -0
  278. data/lib/{rails/generators → generators}/alchemy/install/files/all.js +0 -0
  279. data/lib/{rails/generators → generators}/alchemy/install/files/application.html.erb +0 -0
  280. data/lib/{rails/generators → generators}/alchemy/install/files/article.scss +0 -0
  281. data/lib/generators/alchemy/install/install_generator.rb +110 -0
  282. data/lib/{rails/generators → generators}/alchemy/install/templates/dragonfly.rb.tt +0 -0
  283. data/lib/{rails/generators → generators}/alchemy/install/templates/elements.yml.tt +0 -0
  284. data/lib/{rails/generators → generators}/alchemy/install/templates/menus.yml.tt +0 -0
  285. data/lib/{rails/generators → generators}/alchemy/install/templates/page_layouts.yml.tt +0 -0
  286. data/lib/{rails/generators → generators}/alchemy/menus/menus_generator.rb +2 -2
  287. data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.erb +1 -4
  288. data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.haml +1 -4
  289. data/lib/{rails/generators → generators}/alchemy/menus/templates/node.html.slim +1 -4
  290. data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.erb +1 -1
  291. data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.haml +1 -1
  292. data/lib/{rails/generators → generators}/alchemy/menus/templates/wrapper.html.slim +1 -1
  293. data/lib/{rails/generators → generators}/alchemy/module/module_generator.rb +3 -2
  294. data/lib/{rails/generators → generators}/alchemy/module/templates/ability.rb.tt +0 -0
  295. data/lib/{rails/generators → generators}/alchemy/module/templates/controller.rb.tt +0 -0
  296. data/lib/{rails/generators → generators}/alchemy/module/templates/module_config.rb.tt +0 -0
  297. data/lib/{rails/generators → generators}/alchemy/page_layouts/page_layouts_generator.rb +5 -4
  298. data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.erb +0 -0
  299. data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.haml +0 -0
  300. data/lib/{rails/generators → generators}/alchemy/page_layouts/templates/layout.html.slim +0 -0
  301. data/lib/{rails/generators → generators}/alchemy/site_layouts/site_layouts_generator.rb +4 -2
  302. data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.erb +0 -0
  303. data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.haml +0 -0
  304. data/lib/{rails/generators → generators}/alchemy/site_layouts/templates/layout.html.slim +0 -0
  305. data/lib/{rails/generators → generators}/alchemy/views/views_generator.rb +7 -6
  306. data/lib/kaminari/scoped_pagination_url_helper.rb +1 -0
  307. data/lib/tasks/alchemy/db.rake +3 -19
  308. data/lib/tasks/alchemy/install.rake +3 -2
  309. data/lib/tasks/alchemy/tidy.rake +9 -8
  310. data/lib/tasks/alchemy/upgrade.rake +18 -120
  311. data/package/admin.js +14 -0
  312. data/package/src/__tests__/i18n.spec.js +70 -0
  313. data/package/src/i18n.js +48 -0
  314. data/package/src/node_tree.js +72 -0
  315. data/package/src/translations.js +32 -0
  316. data/package/src/utils/__tests__/ajax.spec.js +124 -0
  317. data/package/src/utils/__tests__/events.spec.js +38 -0
  318. data/package/src/utils/ajax.js +48 -0
  319. data/package/src/utils/events.js +16 -0
  320. data/package.json +45 -0
  321. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  322. data/vendor/assets/fonts/fa-regular-400.svg +798 -358
  323. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  324. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  325. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  326. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  327. data/vendor/assets/fonts/fa-solid-900.svg +4933 -1408
  328. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  329. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  330. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  331. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +1 -2
  332. data/vendor/assets/stylesheets/fontawesome/_core.scss +5 -0
  333. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +1 -1
  334. data/vendor/assets/stylesheets/fontawesome/_icons.scss +651 -2
  335. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -1
  336. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +3 -2
  337. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +1 -1
  338. data/vendor/assets/stylesheets/fontawesome/_variables.scss +662 -9
  339. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +2 -2
  340. data/vendor/assets/stylesheets/fontawesome/regular.scss +23 -0
  341. data/vendor/assets/stylesheets/fontawesome/solid.scss +24 -0
  342. metadata +117 -98
  343. data/app/assets/javascripts/alchemy/alchemy.i18n.js.coffee +0 -32
  344. data/app/assets/javascripts/alchemy/alchemy.node_tree.js +0 -66
  345. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +0 -29
  346. data/app/assets/javascripts/alchemy/alchemy.utils.js +0 -45
  347. data/app/helpers/alchemy/essences_helper.rb +0 -119
  348. data/app/models/concerns/alchemy/content_touching.rb +0 -23
  349. data/app/serializers/alchemy/legacy_element_serializer.rb +0 -15
  350. data/app/views/alchemy/admin/contents/_missing.html.erb +0 -17
  351. data/app/views/alchemy/admin/pages/_menu_fields.html.erb +0 -37
  352. data/app/views/alchemy/admin/pages/configure_external.html.erb +0 -32
  353. data/app/views/alchemy/elements/_editor_not_found.html.erb +0 -4
  354. data/app/views/alchemy/navigation/_image_link.html.erb +0 -14
  355. data/app/views/alchemy/navigation/_link.html.erb +0 -19
  356. data/app/views/alchemy/navigation/_renderer.html.erb +0 -29
  357. data/db/migrate/20180226123013_alchemy_four_point_zero.rb +0 -363
  358. data/db/migrate/20180227224537_migrate_tags_to_gutentag.rb +0 -41
  359. data/db/migrate/20180519204655_add_fixed_to_alchemy_elements.rb +0 -6
  360. data/db/migrate/20191016073858_create_alchemy_essence_pages.rb +0 -8
  361. data/db/migrate/20191029212236_create_alchemy_nodes.rb +0 -24
  362. data/db/migrate/20200226081535_add_site_id_to_alchemy_nodes.rb +0 -15
  363. data/lib/alchemy/error_tracking/airbrake_handler.rb +0 -13
  364. data/lib/alchemy/error_tracking.rb +0 -14
  365. data/lib/alchemy/ssl_protection.rb +0 -34
  366. data/lib/alchemy/tasks/helpers.rb +0 -81
  367. data/lib/alchemy/test_support/controller_requests.rb +0 -93
  368. data/lib/alchemy/upgrader/four_point_four.rb +0 -52
  369. data/lib/alchemy/upgrader/four_point_one.rb +0 -42
  370. data/lib/alchemy/upgrader/four_point_six.rb +0 -50
  371. data/lib/alchemy/upgrader/four_point_two.rb +0 -86
  372. data/lib/alchemy/upgrader/tasks/cells_migration.rb +0 -45
  373. data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +0 -166
  374. data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +0 -32
  375. data/lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb +0 -31
  376. data/lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb +0 -27
  377. data/lib/alchemy/upgrader/tasks/picture_gallery_migration.rb +0 -65
  378. data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +0 -210
  379. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +0 -15
  380. data/lib/rails/generators/alchemy/install/install_generator.rb +0 -60
  381. data/lib/tasks/alchemy/convert.rake +0 -98
  382. data/vendor/assets/javascripts/sortable/Sortable.min.js +0 -2
  383. data/vendor/assets/stylesheets/fontawesome/fa-regular.scss +0 -22
  384. data/vendor/assets/stylesheets/fontawesome/fa-solid.scss +0 -23
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com
3
- * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
2
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
4
  */
5
5
  @import 'variables';
6
6
  @import 'mixins';
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @import 'variables';
6
+
7
+ @font-face {
8
+ font-family: 'Font Awesome 5 Free';
9
+ font-style: normal;
10
+ font-weight: 400;
11
+ font-display: $fa-font-display;
12
+ src: asset_url('fa-regular-400.eot');
13
+ src: asset_url('fa-regular-400.eot?#iefix') format('embedded-opentype'),
14
+ asset_url('fa-regular-400.woff2') format('woff2'),
15
+ asset_url('fa-regular-400.woff') format('woff'),
16
+ asset_url('fa-regular-400.ttf') format('truetype'),
17
+ asset_url('fa-regular-400.svg#fontawesome') format('svg');
18
+ }
19
+
20
+ .far {
21
+ font-family: 'Font Awesome 5 Free';
22
+ font-weight: 400;
23
+ }
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @import 'variables';
6
+
7
+ @font-face {
8
+ font-family: 'Font Awesome 5 Free';
9
+ font-style: normal;
10
+ font-weight: 900;
11
+ font-display: $fa-font-display;
12
+ src: asset_url('fa-solid-900.eot');
13
+ src: asset_url('fa-solid-900.eot?#iefix') format('embedded-opentype'),
14
+ asset_url('fa-solid-900.woff2') format('woff2'),
15
+ asset_url('fa-solid-900.woff') format('woff'),
16
+ asset_url('fa-solid-900.ttf') format('truetype'),
17
+ asset_url('fa-solid-900.svg#fontawesome') format('svg');
18
+ }
19
+
20
+ .fa,
21
+ .fas {
22
+ font-family: 'Font Awesome 5 Free';
23
+ font-weight: 900;
24
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.7
4
+ version: 5.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -10,10 +10,10 @@ authors:
10
10
  - Hendrik Mans
11
11
  - Carsten Fregin
12
12
  - Martin Meyerhoff
13
- autorequire:
13
+ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2022-01-23 00:00:00.000000000 Z
16
+ date: 2020-06-11 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: active_model_serializers
@@ -107,22 +107,22 @@ dependencies:
107
107
  name: dragonfly
108
108
  requirement: !ruby/object:Gem::Requirement
109
109
  requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '1.0'
110
113
  - - ">="
111
114
  - !ruby/object:Gem::Version
112
115
  version: 1.0.7
113
- - - "<"
114
- - !ruby/object:Gem::Version
115
- version: '1.4'
116
116
  type: :runtime
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
120
123
  - - ">="
121
124
  - !ruby/object:Gem::Version
122
125
  version: 1.0.7
123
- - - "<"
124
- - !ruby/object:Gem::Version
125
- version: '1.4'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: dragonfly_svg
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -253,7 +253,7 @@ dependencies:
253
253
  requirements:
254
254
  - - ">="
255
255
  - !ruby/object:Gem::Version
256
- version: 5.0.0
256
+ version: 5.2.0
257
257
  - - "<"
258
258
  - !ruby/object:Gem::Version
259
259
  version: '6.1'
@@ -263,7 +263,7 @@ dependencies:
263
263
  requirements:
264
264
  - - ">="
265
265
  - !ruby/object:Gem::Version
266
- version: 5.0.0
266
+ version: 5.2.0
267
267
  - - "<"
268
268
  - !ruby/object:Gem::Version
269
269
  version: '6.1'
@@ -409,6 +409,26 @@ dependencies:
409
409
  - - ">="
410
410
  - !ruby/object:Gem::Version
411
411
  version: '2.5'
412
+ - !ruby/object:Gem::Dependency
413
+ name: webpacker
414
+ requirement: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - ">="
417
+ - !ruby/object:Gem::Version
418
+ version: '4.0'
419
+ - - "<"
420
+ - !ruby/object:Gem::Version
421
+ version: '6'
422
+ type: :runtime
423
+ prerelease: false
424
+ version_requirements: !ruby/object:Gem::Requirement
425
+ requirements:
426
+ - - ">="
427
+ - !ruby/object:Gem::Version
428
+ version: '4.0'
429
+ - - "<"
430
+ - !ruby/object:Gem::Version
431
+ version: '6'
412
432
  - !ruby/object:Gem::Dependency
413
433
  name: capybara
414
434
  requirement: !ruby/object:Gem::Requirement
@@ -563,9 +583,9 @@ dependencies:
563
583
  - - "~>"
564
584
  - !ruby/object:Gem::Version
565
585
  version: '4.0'
566
- description: Alchemy is a powerful, userfriendly and flexible Rails 5 CMS.
586
+ description: Alchemy is a powerful, userfriendly and flexible Rails CMS.
567
587
  email:
568
- - alchemy@magiclabs.de
588
+ - hello@alchemy-cms.com
569
589
  executables: []
570
590
  extensions: []
571
591
  extra_rdoc_files: []
@@ -582,6 +602,7 @@ files:
582
602
  - ".gitignore"
583
603
  - ".hound.yml"
584
604
  - ".localeapp/config.rb"
605
+ - ".prettierrc"
585
606
  - ".rubocop.yml"
586
607
  - ".yardopts"
587
608
  - CHANGELOG.md
@@ -618,13 +639,11 @@ files:
618
639
  - app/assets/javascripts/alchemy/alchemy.gui.js.coffee
619
640
  - app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee
620
641
  - app/assets/javascripts/alchemy/alchemy.html5.js
621
- - app/assets/javascripts/alchemy/alchemy.i18n.js.coffee
622
642
  - app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee
623
643
  - app/assets/javascripts/alchemy/alchemy.image_overlay.coffee
624
644
  - app/assets/javascripts/alchemy/alchemy.initializer.js.coffee
625
645
  - app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee
626
646
  - app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee
627
- - app/assets/javascripts/alchemy/alchemy.node_tree.js
628
647
  - app/assets/javascripts/alchemy/alchemy.page_sorter.js
629
648
  - app/assets/javascripts/alchemy/alchemy.preview.js.coffee
630
649
  - app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee
@@ -633,14 +652,14 @@ files:
633
652
  - app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee
634
653
  - app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
635
654
  - app/assets/javascripts/alchemy/alchemy.tooltips.coffee
636
- - app/assets/javascripts/alchemy/alchemy.translations.js.coffee
637
655
  - app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee
638
656
  - app/assets/javascripts/alchemy/alchemy.uploader.js.coffee
639
- - app/assets/javascripts/alchemy/alchemy.utils.js
640
657
  - app/assets/javascripts/alchemy/menubar.js.coffee
658
+ - app/assets/javascripts/alchemy/node_select.js
641
659
  - app/assets/javascripts/alchemy/page_select.js
642
660
  - app/assets/javascripts/alchemy/preview.js
643
661
  - app/assets/javascripts/alchemy/templates/index.js
662
+ - app/assets/javascripts/alchemy/templates/node.hbs
644
663
  - app/assets/javascripts/alchemy/templates/node_folder.hbs
645
664
  - app/assets/javascripts/alchemy/templates/page.hbs
646
665
  - app/assets/javascripts/alchemy/templates/spinner.hbs
@@ -674,6 +693,7 @@ files:
674
693
  - app/assets/stylesheets/alchemy/lists.scss
675
694
  - app/assets/stylesheets/alchemy/menubar.scss
676
695
  - app/assets/stylesheets/alchemy/navigation.scss
696
+ - app/assets/stylesheets/alchemy/node-select.scss
677
697
  - app/assets/stylesheets/alchemy/nodes.scss
678
698
  - app/assets/stylesheets/alchemy/notices.scss
679
699
  - app/assets/stylesheets/alchemy/page-select.scss
@@ -734,12 +754,14 @@ files:
734
754
  - app/controllers/alchemy/messages_controller.rb
735
755
  - app/controllers/alchemy/pages_controller.rb
736
756
  - app/controllers/concerns/alchemy/admin/archive_overlay.rb
757
+ - app/controllers/concerns/alchemy/admin/current_language.rb
737
758
  - app/controllers/concerns/alchemy/admin/uploader_responses.rb
738
759
  - app/controllers/concerns/alchemy/legacy_page_redirects.rb
739
760
  - app/controllers/concerns/alchemy/locale_redirects.rb
740
761
  - app/controllers/concerns/alchemy/page_redirects.rb
741
762
  - app/controllers/concerns/alchemy/site_redirects.rb
742
763
  - app/decorators/alchemy/content_editor.rb
764
+ - app/decorators/alchemy/element_editor.rb
743
765
  - app/helpers/alchemy/admin/attachments_helper.rb
744
766
  - app/helpers/alchemy/admin/base_helper.rb
745
767
  - app/helpers/alchemy/admin/contents_helper.rb
@@ -753,7 +775,6 @@ files:
753
775
  - app/helpers/alchemy/base_helper.rb
754
776
  - app/helpers/alchemy/elements_block_helper.rb
755
777
  - app/helpers/alchemy/elements_helper.rb
756
- - app/helpers/alchemy/essences_helper.rb
757
778
  - app/helpers/alchemy/pages_helper.rb
758
779
  - app/helpers/alchemy/url_helper.rb
759
780
  - app/mailers/alchemy/base_mailer.rb
@@ -773,6 +794,7 @@ files:
773
794
  - app/models/alchemy/essence_file.rb
774
795
  - app/models/alchemy/essence_html.rb
775
796
  - app/models/alchemy/essence_link.rb
797
+ - app/models/alchemy/essence_node.rb
776
798
  - app/models/alchemy/essence_page.rb
777
799
  - app/models/alchemy/essence_picture.rb
778
800
  - app/models/alchemy/essence_picture_view.rb
@@ -799,7 +821,7 @@ files:
799
821
  - app/models/alchemy/site/layout.rb
800
822
  - app/models/alchemy/tag.rb
801
823
  - app/models/alchemy/tree_node.rb
802
- - app/models/concerns/alchemy/content_touching.rb
824
+ - app/models/concerns/alchemy/touch_elements.rb
803
825
  - app/serializers/alchemy/attachment_serializer.rb
804
826
  - app/serializers/alchemy/base_serializer.rb
805
827
  - app/serializers/alchemy/content_serializer.rb
@@ -813,7 +835,6 @@ files:
813
835
  - app/serializers/alchemy/essence_richtext_serializer.rb
814
836
  - app/serializers/alchemy/essence_select_serializer.rb
815
837
  - app/serializers/alchemy/essence_text_serializer.rb
816
- - app/serializers/alchemy/legacy_element_serializer.rb
817
838
  - app/serializers/alchemy/node_serializer.rb
818
839
  - app/serializers/alchemy/page_serializer.rb
819
840
  - app/serializers/alchemy/page_tree_serializer.rb
@@ -838,7 +859,6 @@ files:
838
859
  - app/views/alchemy/admin/clipboard/index.html.erb
839
860
  - app/views/alchemy/admin/clipboard/insert.js.erb
840
861
  - app/views/alchemy/admin/clipboard/remove.js.erb
841
- - app/views/alchemy/admin/contents/_missing.html.erb
842
862
  - app/views/alchemy/admin/contents/create.js.erb
843
863
  - app/views/alchemy/admin/dashboard/_locked_pages.html.erb
844
864
  - app/views/alchemy/admin/dashboard/_recent_pages.html.erb
@@ -871,7 +891,9 @@ files:
871
891
  - app/views/alchemy/admin/languages/_form.html.erb
872
892
  - app/views/alchemy/admin/languages/_language.html.erb
873
893
  - app/views/alchemy/admin/languages/_table.html.erb
894
+ - app/views/alchemy/admin/languages/edit.html.erb
874
895
  - app/views/alchemy/admin/languages/index.html.erb
896
+ - app/views/alchemy/admin/languages/new.html.erb
875
897
  - app/views/alchemy/admin/layoutpages/_layoutpage.html.erb
876
898
  - app/views/alchemy/admin/layoutpages/edit.html.erb
877
899
  - app/views/alchemy/admin/layoutpages/index.html.erb
@@ -897,7 +919,6 @@ files:
897
919
  - app/views/alchemy/admin/pages/_internal_link.html.erb
898
920
  - app/views/alchemy/admin/pages/_legacy_urls.html.erb
899
921
  - app/views/alchemy/admin/pages/_locked_page.html.erb
900
- - app/views/alchemy/admin/pages/_menu_fields.html.erb
901
922
  - app/views/alchemy/admin/pages/_new_page_form.html.erb
902
923
  - app/views/alchemy/admin/pages/_page.html.erb
903
924
  - app/views/alchemy/admin/pages/_page_infos.html.erb
@@ -906,7 +927,6 @@ files:
906
927
  - app/views/alchemy/admin/pages/_sitemap.html.erb
907
928
  - app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb
908
929
  - app/views/alchemy/admin/pages/configure.html.erb
909
- - app/views/alchemy/admin/pages/configure_external.html.erb
910
930
  - app/views/alchemy/admin/pages/edit.html.erb
911
931
  - app/views/alchemy/admin/pages/flush.js.erb
912
932
  - app/views/alchemy/admin/pages/fold.js.erb
@@ -957,7 +977,10 @@ files:
957
977
  - app/views/alchemy/admin/resources/index.csv.erb
958
978
  - app/views/alchemy/admin/resources/index.html.erb
959
979
  - app/views/alchemy/admin/resources/new.html.erb
980
+ - app/views/alchemy/admin/sites/_form.html.erb
981
+ - app/views/alchemy/admin/sites/edit.html.erb
960
982
  - app/views/alchemy/admin/sites/index.html.erb
983
+ - app/views/alchemy/admin/sites/new.html.erb
961
984
  - app/views/alchemy/admin/styleguide/index.html.erb
962
985
  - app/views/alchemy/admin/tags/_radio_tag.html.erb
963
986
  - app/views/alchemy/admin/tags/_tag.html.erb
@@ -978,7 +1001,6 @@ files:
978
1001
  - app/views/alchemy/breadcrumb/_page.html.erb
979
1002
  - app/views/alchemy/breadcrumb/_separator.html.erb
980
1003
  - app/views/alchemy/breadcrumb/_wrapper.html.erb
981
- - app/views/alchemy/elements/_editor_not_found.html.erb
982
1004
  - app/views/alchemy/elements/_view_not_found.html.erb
983
1005
  - app/views/alchemy/elements/show.html.erb
984
1006
  - app/views/alchemy/elements/show.js.erb
@@ -992,6 +1014,8 @@ files:
992
1014
  - app/views/alchemy/essences/_essence_html_view.html.erb
993
1015
  - app/views/alchemy/essences/_essence_link_editor.html.erb
994
1016
  - app/views/alchemy/essences/_essence_link_view.html.erb
1017
+ - app/views/alchemy/essences/_essence_node_editor.html.erb
1018
+ - app/views/alchemy/essences/_essence_node_view.html.erb
995
1019
  - app/views/alchemy/essences/_essence_page_editor.html.erb
996
1020
  - app/views/alchemy/essences/_essence_page_view.html.erb
997
1021
  - app/views/alchemy/essences/_essence_picture_editor.html.erb
@@ -1010,9 +1034,6 @@ files:
1010
1034
  - app/views/alchemy/messages_mailer/contact_form_mail.en.text.erb
1011
1035
  - app/views/alchemy/messages_mailer/contact_form_mail.es.text.erb
1012
1036
  - app/views/alchemy/messages_mailer/new.html.erb
1013
- - app/views/alchemy/navigation/_image_link.html.erb
1014
- - app/views/alchemy/navigation/_link.html.erb
1015
- - app/views/alchemy/navigation/_renderer.html.erb
1016
1037
  - app/views/alchemy/pages/_meta_data.html.erb
1017
1038
  - app/views/alchemy/pages/show.html.erb
1018
1039
  - app/views/alchemy/pages/show.rss.builder
@@ -1027,6 +1048,7 @@ files:
1027
1048
  - app/views/kaminari/alchemy/_prev_page.html.erb
1028
1049
  - app/views/layouts/alchemy/admin.html.erb
1029
1050
  - app/views/layouts/alchemy/sitemap.xml.erb
1051
+ - babel.config.js
1030
1052
  - bin/rails
1031
1053
  - bin/rspec
1032
1054
  - config/alchemy/config.yml
@@ -1040,14 +1062,16 @@ files:
1040
1062
  - config/locales/alchemy.en.yml
1041
1063
  - config/routes.rb
1042
1064
  - config/spring.rb
1043
- - db/migrate/20180226123013_alchemy_four_point_zero.rb
1044
- - db/migrate/20180227224537_migrate_tags_to_gutentag.rb
1045
- - db/migrate/20180519204655_add_fixed_to_alchemy_elements.rb
1046
- - db/migrate/20191016073858_create_alchemy_essence_pages.rb
1047
- - db/migrate/20191029212236_create_alchemy_nodes.rb
1048
- - db/migrate/20200226081535_add_site_id_to_alchemy_nodes.rb
1065
+ - db/migrate/20200226213334_alchemy_four_point_four.rb
1066
+ - db/migrate/20200423073425_create_alchemy_essence_nodes.rb
1067
+ - db/migrate/20200504210159_remove_site_id_from_nodes.rb
1068
+ - db/migrate/20200505215518_add_language_id_foreign_key_to_alchemy_pages.rb
1069
+ - db/migrate/20200511113603_add_menu_type_to_alchemy_nodes.rb
1070
+ - db/migrate/20200514091507_make_page_layoutpage_null_false.rb
1071
+ - db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb
1049
1072
  - lib/alchemy/ability_helper.rb
1050
1073
  - lib/alchemy/admin/locale.rb
1074
+ - lib/alchemy/admin/preview_url.rb
1051
1075
  - lib/alchemy/auth_accessors.rb
1052
1076
  - lib/alchemy/cache_digests/template_tracker.rb
1053
1077
  - lib/alchemy/config.rb
@@ -1056,8 +1080,6 @@ files:
1056
1080
  - lib/alchemy/deprecation.rb
1057
1081
  - lib/alchemy/elements_finder.rb
1058
1082
  - lib/alchemy/engine.rb
1059
- - lib/alchemy/error_tracking.rb
1060
- - lib/alchemy/error_tracking/airbrake_handler.rb
1061
1083
  - lib/alchemy/errors.rb
1062
1084
  - lib/alchemy/essence.rb
1063
1085
  - lib/alchemy/filetypes.rb
@@ -1077,12 +1099,9 @@ files:
1077
1099
  - lib/alchemy/routing_constraints.rb
1078
1100
  - lib/alchemy/seeder.rb
1079
1101
  - lib/alchemy/shell.rb
1080
- - lib/alchemy/ssl_protection.rb
1081
1102
  - lib/alchemy/taggable.rb
1082
- - lib/alchemy/tasks/helpers.rb
1083
1103
  - lib/alchemy/tasks/tidy.rb
1084
1104
  - lib/alchemy/test_support/config_stubbing.rb
1085
- - lib/alchemy/test_support/controller_requests.rb
1086
1105
  - lib/alchemy/test_support/essence_shared_examples.rb
1087
1106
  - lib/alchemy/test_support/factories.rb
1088
1107
  - lib/alchemy/test_support/factories/attachment_factory.rb
@@ -1104,67 +1123,68 @@ files:
1104
1123
  - lib/alchemy/test_support/shared_uploader_examples.rb
1105
1124
  - lib/alchemy/tinymce.rb
1106
1125
  - lib/alchemy/upgrader.rb
1107
- - lib/alchemy/upgrader/four_point_four.rb
1108
- - lib/alchemy/upgrader/four_point_one.rb
1109
- - lib/alchemy/upgrader/four_point_six.rb
1110
- - lib/alchemy/upgrader/four_point_two.rb
1111
- - lib/alchemy/upgrader/tasks/cells_migration.rb
1112
- - lib/alchemy/upgrader/tasks/cells_upgrader.rb
1113
- - lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb
1126
+ - lib/alchemy/upgrader/five_point_zero.rb
1114
1127
  - lib/alchemy/upgrader/tasks/element_views_updater.rb
1115
- - lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb
1116
- - lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb
1117
- - lib/alchemy/upgrader/tasks/picture_gallery_migration.rb
1118
- - lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb
1128
+ - lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb
1119
1129
  - lib/alchemy/userstamp.rb
1120
1130
  - lib/alchemy/version.rb
1121
1131
  - lib/alchemy_cms.rb
1132
+ - lib/generators/alchemy/base.rb
1133
+ - lib/generators/alchemy/elements/elements_generator.rb
1134
+ - lib/generators/alchemy/elements/templates/view.html.erb
1135
+ - lib/generators/alchemy/elements/templates/view.html.haml
1136
+ - lib/generators/alchemy/elements/templates/view.html.slim
1137
+ - lib/generators/alchemy/essence/essence_generator.rb
1138
+ - lib/generators/alchemy/essence/templates/editor.html.erb
1139
+ - lib/generators/alchemy/essence/templates/view.html.erb
1140
+ - lib/generators/alchemy/install/files/_article.html.erb
1141
+ - lib/generators/alchemy/install/files/_standard.html.erb
1142
+ - lib/generators/alchemy/install/files/alchemy.en.yml
1143
+ - lib/generators/alchemy/install/files/alchemy_admin.js
1144
+ - lib/generators/alchemy/install/files/all.css
1145
+ - lib/generators/alchemy/install/files/all.js
1146
+ - lib/generators/alchemy/install/files/application.html.erb
1147
+ - lib/generators/alchemy/install/files/article.scss
1148
+ - lib/generators/alchemy/install/install_generator.rb
1149
+ - lib/generators/alchemy/install/templates/dragonfly.rb.tt
1150
+ - lib/generators/alchemy/install/templates/elements.yml.tt
1151
+ - lib/generators/alchemy/install/templates/menus.yml.tt
1152
+ - lib/generators/alchemy/install/templates/page_layouts.yml.tt
1153
+ - lib/generators/alchemy/menus/menus_generator.rb
1154
+ - lib/generators/alchemy/menus/templates/node.html.erb
1155
+ - lib/generators/alchemy/menus/templates/node.html.haml
1156
+ - lib/generators/alchemy/menus/templates/node.html.slim
1157
+ - lib/generators/alchemy/menus/templates/wrapper.html.erb
1158
+ - lib/generators/alchemy/menus/templates/wrapper.html.haml
1159
+ - lib/generators/alchemy/menus/templates/wrapper.html.slim
1160
+ - lib/generators/alchemy/module/module_generator.rb
1161
+ - lib/generators/alchemy/module/templates/ability.rb.tt
1162
+ - lib/generators/alchemy/module/templates/controller.rb.tt
1163
+ - lib/generators/alchemy/module/templates/module_config.rb.tt
1164
+ - lib/generators/alchemy/page_layouts/page_layouts_generator.rb
1165
+ - lib/generators/alchemy/page_layouts/templates/layout.html.erb
1166
+ - lib/generators/alchemy/page_layouts/templates/layout.html.haml
1167
+ - lib/generators/alchemy/page_layouts/templates/layout.html.slim
1168
+ - lib/generators/alchemy/site_layouts/site_layouts_generator.rb
1169
+ - lib/generators/alchemy/site_layouts/templates/layout.html.erb
1170
+ - lib/generators/alchemy/site_layouts/templates/layout.html.haml
1171
+ - lib/generators/alchemy/site_layouts/templates/layout.html.slim
1172
+ - lib/generators/alchemy/views/views_generator.rb
1122
1173
  - lib/kaminari/scoped_pagination_url_helper.rb
1123
- - lib/rails/generators/alchemy/base.rb
1124
- - lib/rails/generators/alchemy/elements/elements_generator.rb
1125
- - lib/rails/generators/alchemy/elements/templates/view.html.erb
1126
- - lib/rails/generators/alchemy/elements/templates/view.html.haml
1127
- - lib/rails/generators/alchemy/elements/templates/view.html.slim
1128
- - lib/rails/generators/alchemy/essence/essence_generator.rb
1129
- - lib/rails/generators/alchemy/essence/templates/editor.html.erb
1130
- - lib/rails/generators/alchemy/essence/templates/view.html.erb
1131
- - lib/rails/generators/alchemy/install/files/_article.html.erb
1132
- - lib/rails/generators/alchemy/install/files/_standard.html.erb
1133
- - lib/rails/generators/alchemy/install/files/alchemy.en.yml
1134
- - lib/rails/generators/alchemy/install/files/all.css
1135
- - lib/rails/generators/alchemy/install/files/all.js
1136
- - lib/rails/generators/alchemy/install/files/application.html.erb
1137
- - lib/rails/generators/alchemy/install/files/article.scss
1138
- - lib/rails/generators/alchemy/install/install_generator.rb
1139
- - lib/rails/generators/alchemy/install/templates/dragonfly.rb.tt
1140
- - lib/rails/generators/alchemy/install/templates/elements.yml.tt
1141
- - lib/rails/generators/alchemy/install/templates/menus.yml.tt
1142
- - lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt
1143
- - lib/rails/generators/alchemy/menus/menus_generator.rb
1144
- - lib/rails/generators/alchemy/menus/templates/node.html.erb
1145
- - lib/rails/generators/alchemy/menus/templates/node.html.haml
1146
- - lib/rails/generators/alchemy/menus/templates/node.html.slim
1147
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.erb
1148
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.haml
1149
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.slim
1150
- - lib/rails/generators/alchemy/module/module_generator.rb
1151
- - lib/rails/generators/alchemy/module/templates/ability.rb.tt
1152
- - lib/rails/generators/alchemy/module/templates/controller.rb.tt
1153
- - lib/rails/generators/alchemy/module/templates/module_config.rb.tt
1154
- - lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb
1155
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb
1156
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml
1157
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim
1158
- - lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb
1159
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.erb
1160
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.haml
1161
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.slim
1162
- - lib/rails/generators/alchemy/views/views_generator.rb
1163
- - lib/tasks/alchemy/convert.rake
1164
1174
  - lib/tasks/alchemy/db.rake
1165
1175
  - lib/tasks/alchemy/install.rake
1166
1176
  - lib/tasks/alchemy/tidy.rake
1167
1177
  - lib/tasks/alchemy/upgrade.rake
1178
+ - package.json
1179
+ - package/admin.js
1180
+ - package/src/__tests__/i18n.spec.js
1181
+ - package/src/i18n.js
1182
+ - package/src/node_tree.js
1183
+ - package/src/translations.js
1184
+ - package/src/utils/__tests__/ajax.spec.js
1185
+ - package/src/utils/__tests__/events.spec.js
1186
+ - package/src/utils/ajax.js
1187
+ - package/src/utils/events.js
1168
1188
  - vendor/assets/fonts/fa-regular-400.eot
1169
1189
  - vendor/assets/fonts/fa-regular-400.svg
1170
1190
  - vendor/assets/fonts/fa-regular-400.ttf
@@ -1188,7 +1208,6 @@ files:
1188
1208
  - vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js
1189
1209
  - vendor/assets/javascripts/keymaster.js
1190
1210
  - vendor/assets/javascripts/requestAnimationFrame.js
1191
- - vendor/assets/javascripts/sortable/Sortable.min.js
1192
1211
  - vendor/assets/javascripts/tinymce/license.txt
1193
1212
  - vendor/assets/javascripts/tinymce/tinymce.min.js
1194
1213
  - vendor/assets/stylesheets/fontawesome/_animated.scss
@@ -1203,9 +1222,9 @@ files:
1203
1222
  - vendor/assets/stylesheets/fontawesome/_screen-reader.scss
1204
1223
  - vendor/assets/stylesheets/fontawesome/_stacked.scss
1205
1224
  - vendor/assets/stylesheets/fontawesome/_variables.scss
1206
- - vendor/assets/stylesheets/fontawesome/fa-regular.scss
1207
- - vendor/assets/stylesheets/fontawesome/fa-solid.scss
1208
1225
  - vendor/assets/stylesheets/fontawesome/fontawesome.scss
1226
+ - vendor/assets/stylesheets/fontawesome/regular.scss
1227
+ - vendor/assets/stylesheets/fontawesome/solid.scss
1209
1228
  - vendor/assets/stylesheets/jquery.Jcrop.min.scss
1210
1229
  homepage: https://alchemy-cms.com
1211
1230
  licenses:
@@ -1242,14 +1261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1242
1261
  version: 2.3.0
1243
1262
  required_rubygems_version: !ruby/object:Gem::Requirement
1244
1263
  requirements:
1245
- - - ">="
1264
+ - - ">"
1246
1265
  - !ruby/object:Gem::Version
1247
- version: '0'
1266
+ version: 1.3.1
1248
1267
  requirements:
1249
1268
  - ImageMagick (libmagick), v6.6 or greater.
1250
- rubygems_version: 3.1.6
1251
- signing_key:
1269
+ rubygems_version: 3.0.3
1270
+ signing_key:
1252
1271
  specification_version: 4
1253
- summary: A powerful, userfriendly and flexible CMS for Rails 5
1272
+ summary: A powerful, userfriendly and flexible CMS for Rails
1254
1273
  test_files: []
1255
1274
  ...
@@ -1,32 +0,0 @@
1
- #= require alchemy/alchemy.translations
2
-
3
- window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
4
-
5
- Alchemy.I18n =
6
-
7
- KEY_SEPARATOR: /\./
8
-
9
- # Translates given string
10
- #
11
- translate: (key, replacement) ->
12
- if !Alchemy.locale?
13
- throw 'Alchemy.locale is not set! Please set Alchemy.locale to a locale string in order to translate something.'
14
- translations = Alchemy.translations[Alchemy.locale]
15
- if translations
16
- if @KEY_SEPARATOR.test(key)
17
- keys = key.split(@KEY_SEPARATOR)
18
- translation = translations[keys[0]][keys[1]] || key
19
- else
20
- translation = translations[key] || key
21
- if replacement
22
- translation.replace(/%\{.+\}/, replacement)
23
- else
24
- translation
25
- else
26
- console.warn "Translations for locale #{Alchemy.locale} not found!"
27
- key
28
-
29
- # Global utility method for translating a given string
30
- #
31
- Alchemy.t = (key, replacement) ->
32
- Alchemy.I18n.translate(key, replacement)
@@ -1,66 +0,0 @@
1
- Alchemy.NodeTree = {
2
- onFinishDragging: function (evt) {
3
- var url = Alchemy.routes.move_api_node_path(evt.item.dataset.id)
4
- var data = {
5
- target_parent_id: evt.to.dataset.nodeId,
6
- new_position: evt.newIndex
7
- };
8
- var ajax = Alchemy.ajax('PATCH', url, data)
9
-
10
- ajax.then(function(response) {
11
- Alchemy.growl('Successfully moved menu item.')
12
- Alchemy.NodeTree.displayNodeFolders()
13
- }).catch(function() {
14
- Alchemy.growl(error.message || error);
15
- })
16
- },
17
-
18
- displayNodeFolders: function () {
19
- document.querySelectorAll('li.menu-item').forEach(function (el) {
20
- var leftIconArea = el.querySelector('.nodes_tree-left_images')
21
- var list = el.querySelector('ul')
22
- var node = { folded: el.dataset.folded === 'true', id: el.dataset.id }
23
-
24
- if (list.children.length > 0 || node.folded ) {
25
- leftIconArea.innerHTML = HandlebarsTemplates.node_folder({ node: node })
26
- } else {
27
- leftIconArea.innerHTML = '&nbsp;'
28
- }
29
- });
30
- },
31
-
32
- handleNodeFolders: function() {
33
- Alchemy.on('click', '.nodes_tree', '.node_folder', function(evt) {
34
- var nodeId = this.dataset.nodeId
35
- var menu_item = this.closest('li.menu-item')
36
- var url = Alchemy.routes.toggle_folded_api_node_path(nodeId)
37
- var list = menu_item.querySelector('.children')
38
- var ajax = Alchemy.ajax('PATCH', url)
39
-
40
- ajax.then(function() {
41
- list.classList.toggle('folded')
42
- menu_item.dataset.folded = menu_item.dataset.folded == 'true' ? 'false' : 'true'
43
- Alchemy.NodeTree.displayNodeFolders();
44
- }).catch(function(error){
45
- Alchemy.growl(error.message || error);
46
- });
47
- });
48
- },
49
-
50
- init: function() {
51
- this.handleNodeFolders()
52
- this.displayNodeFolders()
53
-
54
- document.querySelectorAll('.nodes_tree ul.children').forEach(function (el) {
55
- new Sortable(el, {
56
- group: 'nodes',
57
- animation: 150,
58
- fallbackOnBody: true,
59
- swapThreshold: 0.65,
60
- handle: '.node_name',
61
- invertSwap: true,
62
- onEnd: Alchemy.NodeTree.onFinishDragging
63
- });
64
- });
65
- }
66
- }
@@ -1,29 +0,0 @@
1
- window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
2
-
3
- # Holds translations for javascripts
4
- #
5
- Alchemy.translations =
6
- en:
7
- allowed_chars: 'of %{count} chars'
8
- cancel: 'Cancel'
9
- cancelled: 'Cancelled'
10
- click_to_edit: 'click to edit'
11
- complete: 'Complete'
12
- element_dirty_notice: 'This element has unsaved changes. Do you really want to fold it?'
13
- help: 'Help'
14
- ok: 'Ok'
15
- page_dirty_notice: 'You have unsaved changes on this page. They will be lost if you continue.'
16
- page_found: 'Page found'
17
- pages_found: 'Pages found'
18
- url_validation_failed: 'The url has no valid format.'
19
- warning: 'Warning!'
20
- 'File is too large': 'File is too large'
21
- 'File is too small': 'File is too small'
22
- 'File type not allowed': 'File type not allowed'
23
- 'Maximum number of files exceeded': 'Maximum number of files exceeded.'
24
- 'Uploaded bytes exceed file size': 'Uploaded bytes exceed file size'
25
- formats:
26
- datetime: "Y-m-d H:i"
27
- date: "Y-m-d"
28
- time: "H:i"
29
- time_24hr: false