alchemy_cms 4.6.6 → 5.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (382) 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 -27
  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 +13 -33
  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 +23 -8
  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 -50
  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 -96
  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/ssl_protection.rb +0 -34
  364. data/lib/alchemy/tasks/helpers.rb +0 -81
  365. data/lib/alchemy/test_support/controller_requests.rb +0 -93
  366. data/lib/alchemy/upgrader/four_point_four.rb +0 -52
  367. data/lib/alchemy/upgrader/four_point_one.rb +0 -42
  368. data/lib/alchemy/upgrader/four_point_six.rb +0 -50
  369. data/lib/alchemy/upgrader/four_point_two.rb +0 -86
  370. data/lib/alchemy/upgrader/tasks/cells_migration.rb +0 -44
  371. data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +0 -166
  372. data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +0 -32
  373. data/lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb +0 -31
  374. data/lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb +0 -27
  375. data/lib/alchemy/upgrader/tasks/picture_gallery_migration.rb +0 -65
  376. data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +0 -210
  377. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +0 -15
  378. data/lib/rails/generators/alchemy/install/install_generator.rb +0 -60
  379. data/lib/tasks/alchemy/convert.rake +0 -98
  380. data/vendor/assets/javascripts/sortable/Sortable.min.js +0 -2
  381. data/vendor/assets/stylesheets/fontawesome/fa-regular.scss +0 -22
  382. 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.6
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: 2021-11-24 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
@@ -1075,12 +1099,9 @@ files:
1075
1099
  - lib/alchemy/routing_constraints.rb
1076
1100
  - lib/alchemy/seeder.rb
1077
1101
  - lib/alchemy/shell.rb
1078
- - lib/alchemy/ssl_protection.rb
1079
1102
  - lib/alchemy/taggable.rb
1080
- - lib/alchemy/tasks/helpers.rb
1081
1103
  - lib/alchemy/tasks/tidy.rb
1082
1104
  - lib/alchemy/test_support/config_stubbing.rb
1083
- - lib/alchemy/test_support/controller_requests.rb
1084
1105
  - lib/alchemy/test_support/essence_shared_examples.rb
1085
1106
  - lib/alchemy/test_support/factories.rb
1086
1107
  - lib/alchemy/test_support/factories/attachment_factory.rb
@@ -1102,67 +1123,68 @@ files:
1102
1123
  - lib/alchemy/test_support/shared_uploader_examples.rb
1103
1124
  - lib/alchemy/tinymce.rb
1104
1125
  - lib/alchemy/upgrader.rb
1105
- - lib/alchemy/upgrader/four_point_four.rb
1106
- - lib/alchemy/upgrader/four_point_one.rb
1107
- - lib/alchemy/upgrader/four_point_six.rb
1108
- - lib/alchemy/upgrader/four_point_two.rb
1109
- - lib/alchemy/upgrader/tasks/cells_migration.rb
1110
- - lib/alchemy/upgrader/tasks/cells_upgrader.rb
1111
- - lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb
1126
+ - lib/alchemy/upgrader/five_point_zero.rb
1112
1127
  - lib/alchemy/upgrader/tasks/element_views_updater.rb
1113
- - lib/alchemy/upgrader/tasks/fixed_element_name_finder.rb
1114
- - lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb
1115
- - lib/alchemy/upgrader/tasks/picture_gallery_migration.rb
1116
- - lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb
1128
+ - lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb
1117
1129
  - lib/alchemy/userstamp.rb
1118
1130
  - lib/alchemy/version.rb
1119
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
1120
1173
  - lib/kaminari/scoped_pagination_url_helper.rb
1121
- - lib/rails/generators/alchemy/base.rb
1122
- - lib/rails/generators/alchemy/elements/elements_generator.rb
1123
- - lib/rails/generators/alchemy/elements/templates/view.html.erb
1124
- - lib/rails/generators/alchemy/elements/templates/view.html.haml
1125
- - lib/rails/generators/alchemy/elements/templates/view.html.slim
1126
- - lib/rails/generators/alchemy/essence/essence_generator.rb
1127
- - lib/rails/generators/alchemy/essence/templates/editor.html.erb
1128
- - lib/rails/generators/alchemy/essence/templates/view.html.erb
1129
- - lib/rails/generators/alchemy/install/files/_article.html.erb
1130
- - lib/rails/generators/alchemy/install/files/_standard.html.erb
1131
- - lib/rails/generators/alchemy/install/files/alchemy.en.yml
1132
- - lib/rails/generators/alchemy/install/files/all.css
1133
- - lib/rails/generators/alchemy/install/files/all.js
1134
- - lib/rails/generators/alchemy/install/files/application.html.erb
1135
- - lib/rails/generators/alchemy/install/files/article.scss
1136
- - lib/rails/generators/alchemy/install/install_generator.rb
1137
- - lib/rails/generators/alchemy/install/templates/dragonfly.rb.tt
1138
- - lib/rails/generators/alchemy/install/templates/elements.yml.tt
1139
- - lib/rails/generators/alchemy/install/templates/menus.yml.tt
1140
- - lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt
1141
- - lib/rails/generators/alchemy/menus/menus_generator.rb
1142
- - lib/rails/generators/alchemy/menus/templates/node.html.erb
1143
- - lib/rails/generators/alchemy/menus/templates/node.html.haml
1144
- - lib/rails/generators/alchemy/menus/templates/node.html.slim
1145
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.erb
1146
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.haml
1147
- - lib/rails/generators/alchemy/menus/templates/wrapper.html.slim
1148
- - lib/rails/generators/alchemy/module/module_generator.rb
1149
- - lib/rails/generators/alchemy/module/templates/ability.rb.tt
1150
- - lib/rails/generators/alchemy/module/templates/controller.rb.tt
1151
- - lib/rails/generators/alchemy/module/templates/module_config.rb.tt
1152
- - lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb
1153
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb
1154
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml
1155
- - lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim
1156
- - lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb
1157
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.erb
1158
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.haml
1159
- - lib/rails/generators/alchemy/site_layouts/templates/layout.html.slim
1160
- - lib/rails/generators/alchemy/views/views_generator.rb
1161
- - lib/tasks/alchemy/convert.rake
1162
1174
  - lib/tasks/alchemy/db.rake
1163
1175
  - lib/tasks/alchemy/install.rake
1164
1176
  - lib/tasks/alchemy/tidy.rake
1165
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
1166
1188
  - vendor/assets/fonts/fa-regular-400.eot
1167
1189
  - vendor/assets/fonts/fa-regular-400.svg
1168
1190
  - vendor/assets/fonts/fa-regular-400.ttf
@@ -1186,7 +1208,6 @@ files:
1186
1208
  - vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js
1187
1209
  - vendor/assets/javascripts/keymaster.js
1188
1210
  - vendor/assets/javascripts/requestAnimationFrame.js
1189
- - vendor/assets/javascripts/sortable/Sortable.min.js
1190
1211
  - vendor/assets/javascripts/tinymce/license.txt
1191
1212
  - vendor/assets/javascripts/tinymce/tinymce.min.js
1192
1213
  - vendor/assets/stylesheets/fontawesome/_animated.scss
@@ -1201,9 +1222,9 @@ files:
1201
1222
  - vendor/assets/stylesheets/fontawesome/_screen-reader.scss
1202
1223
  - vendor/assets/stylesheets/fontawesome/_stacked.scss
1203
1224
  - vendor/assets/stylesheets/fontawesome/_variables.scss
1204
- - vendor/assets/stylesheets/fontawesome/fa-regular.scss
1205
- - vendor/assets/stylesheets/fontawesome/fa-solid.scss
1206
1225
  - vendor/assets/stylesheets/fontawesome/fontawesome.scss
1226
+ - vendor/assets/stylesheets/fontawesome/regular.scss
1227
+ - vendor/assets/stylesheets/fontawesome/solid.scss
1207
1228
  - vendor/assets/stylesheets/jquery.Jcrop.min.scss
1208
1229
  homepage: https://alchemy-cms.com
1209
1230
  licenses:
@@ -1240,14 +1261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1240
1261
  version: 2.3.0
1241
1262
  required_rubygems_version: !ruby/object:Gem::Requirement
1242
1263
  requirements:
1243
- - - ">="
1264
+ - - ">"
1244
1265
  - !ruby/object:Gem::Version
1245
- version: '0'
1266
+ version: 1.3.1
1246
1267
  requirements:
1247
1268
  - ImageMagick (libmagick), v6.6 or greater.
1248
- rubygems_version: 3.1.6
1249
- signing_key:
1269
+ rubygems_version: 3.0.3
1270
+ signing_key:
1250
1271
  specification_version: 4
1251
- summary: A powerful, userfriendly and flexible CMS for Rails 5
1272
+ summary: A powerful, userfriendly and flexible CMS for Rails
1252
1273
  test_files: []
1253
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