alchemy_cms 5.2.4 → 6.0.0.b1

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 (269) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +6 -14
  3. data/.gitignore +0 -1
  4. data/.hound.yml +1 -1
  5. data/.rubocop.yml +46 -4
  6. data/CHANGELOG.md +80 -25
  7. data/Gemfile +4 -2
  8. data/README.md +5 -2
  9. data/alchemy_cms.gemspec +78 -65
  10. data/app/assets/javascripts/alchemy/admin.js +0 -2
  11. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -27
  12. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -1
  13. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +1 -1
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -25
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -0
  17. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +1 -1
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +3 -1
  19. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +1 -1
  20. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +40 -27
  21. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
  22. data/app/assets/stylesheets/alchemy/admin.scss +1 -1
  23. data/app/assets/stylesheets/alchemy/archive.scss +4 -4
  24. data/app/assets/stylesheets/alchemy/buttons.scss +0 -4
  25. data/app/assets/stylesheets/alchemy/elements.scss +73 -61
  26. data/app/assets/stylesheets/alchemy/images.scss +8 -0
  27. data/app/assets/stylesheets/alchemy/node-select.scss +4 -3
  28. data/app/assets/stylesheets/alchemy/page-select.scss +1 -0
  29. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +6 -6
  30. data/app/controllers/alchemy/admin/attachments_controller.rb +6 -2
  31. data/app/controllers/alchemy/admin/base_controller.rb +5 -7
  32. data/app/controllers/alchemy/admin/elements_controller.rb +58 -34
  33. data/app/controllers/alchemy/admin/essence_audios_controller.rb +30 -0
  34. data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -14
  35. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +8 -79
  36. data/app/controllers/alchemy/admin/essence_videos_controller.rb +33 -0
  37. data/app/controllers/alchemy/admin/ingredients_controller.rb +30 -0
  38. data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -1
  39. data/app/controllers/alchemy/admin/pages_controller.rb +6 -13
  40. data/app/controllers/alchemy/admin/pictures_controller.rb +35 -9
  41. data/app/controllers/alchemy/api/elements_controller.rb +10 -5
  42. data/app/controllers/alchemy/api/pages_controller.rb +2 -4
  43. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +13 -3
  44. data/app/controllers/concerns/alchemy/admin/crop_action.rb +26 -0
  45. data/app/decorators/alchemy/element_editor.rb +23 -1
  46. data/app/decorators/alchemy/ingredient_editor.rb +154 -0
  47. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  48. data/app/helpers/alchemy/admin/essences_helper.rb +1 -1
  49. data/app/helpers/alchemy/admin/ingredients_helper.rb +42 -0
  50. data/app/helpers/alchemy/elements_block_helper.rb +22 -7
  51. data/app/helpers/alchemy/elements_helper.rb +12 -5
  52. data/app/helpers/alchemy/pages_helper.rb +3 -11
  53. data/app/jobs/alchemy/base_job.rb +11 -0
  54. data/app/jobs/alchemy/publish_page_job.rb +11 -0
  55. data/app/models/alchemy/attachment.rb +1 -1
  56. data/app/models/alchemy/content/factory.rb +23 -27
  57. data/app/models/alchemy/content.rb +1 -6
  58. data/app/models/alchemy/element/definitions.rb +29 -27
  59. data/app/models/alchemy/element/element_contents.rb +131 -122
  60. data/app/models/alchemy/element/element_essences.rb +100 -98
  61. data/app/models/alchemy/element/element_ingredients.rb +176 -0
  62. data/app/models/alchemy/element/presenters.rb +89 -87
  63. data/app/models/alchemy/element.rb +40 -73
  64. data/app/models/alchemy/elements_repository.rb +126 -0
  65. data/app/models/alchemy/essence_audio.rb +12 -0
  66. data/app/models/alchemy/essence_headline.rb +40 -0
  67. data/app/models/alchemy/essence_picture.rb +4 -116
  68. data/app/models/alchemy/essence_richtext.rb +12 -0
  69. data/app/models/alchemy/essence_video.rb +12 -0
  70. data/app/models/alchemy/image_cropper_settings.rb +87 -0
  71. data/app/models/alchemy/ingredient.rb +219 -0
  72. data/app/models/alchemy/ingredient_validator.rb +97 -0
  73. data/app/models/alchemy/ingredients/audio.rb +29 -0
  74. data/app/models/alchemy/ingredients/boolean.rb +21 -0
  75. data/app/models/alchemy/ingredients/datetime.rb +20 -0
  76. data/app/models/alchemy/ingredients/file.rb +30 -0
  77. data/app/models/alchemy/ingredients/headline.rb +42 -0
  78. data/app/models/alchemy/ingredients/html.rb +19 -0
  79. data/app/models/alchemy/ingredients/link.rb +16 -0
  80. data/app/models/alchemy/ingredients/node.rb +23 -0
  81. data/app/models/alchemy/ingredients/page.rb +23 -0
  82. data/app/models/alchemy/ingredients/picture.rb +41 -0
  83. data/app/models/alchemy/ingredients/richtext.rb +57 -0
  84. data/app/models/alchemy/ingredients/select.rb +10 -0
  85. data/app/models/alchemy/ingredients/text.rb +17 -0
  86. data/app/models/alchemy/ingredients/video.rb +33 -0
  87. data/app/models/alchemy/language.rb +0 -11
  88. data/app/models/alchemy/node.rb +1 -1
  89. data/app/models/alchemy/page/fixed_attributes.rb +53 -51
  90. data/app/models/alchemy/page/page_elements.rb +186 -205
  91. data/app/models/alchemy/page/page_naming.rb +66 -64
  92. data/app/models/alchemy/page/page_natures.rb +139 -142
  93. data/app/models/alchemy/page/page_scopes.rb +113 -102
  94. data/app/models/alchemy/page/publisher.rb +50 -0
  95. data/app/models/alchemy/page/url_path.rb +1 -1
  96. data/app/models/alchemy/page.rb +67 -33
  97. data/app/models/alchemy/page_version.rb +58 -0
  98. data/app/models/alchemy/picture/calculations.rb +2 -8
  99. data/app/models/alchemy/picture/preprocessor.rb +2 -0
  100. data/app/models/alchemy/picture/transformations.rb +24 -96
  101. data/app/models/alchemy/picture.rb +4 -2
  102. data/app/models/concerns/alchemy/picture_thumbnails.rb +181 -0
  103. data/app/models/concerns/alchemy/touch_elements.rb +2 -2
  104. data/app/presenters/alchemy/picture_view.rb +88 -0
  105. data/app/serializers/alchemy/element_serializer.rb +5 -0
  106. data/app/serializers/alchemy/page_tree_serializer.rb +3 -2
  107. data/app/services/alchemy/delete_elements.rb +44 -0
  108. data/app/services/alchemy/duplicate_element.rb +56 -0
  109. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -2
  110. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -3
  111. data/app/views/alchemy/admin/attachments/assign.js.erb +11 -0
  112. data/app/views/alchemy/admin/crop.html.erb +36 -0
  113. data/app/views/alchemy/admin/elements/_element.html.erb +14 -10
  114. data/app/views/alchemy/admin/elements/{_element_footer.html.erb → _footer.html.erb} +0 -0
  115. data/app/views/alchemy/admin/elements/{_new_element_form.html.erb → _form.html.erb} +1 -1
  116. data/app/views/alchemy/admin/elements/{_element_header.html.erb → _header.html.erb} +1 -1
  117. data/app/views/alchemy/admin/elements/{_element_toolbar.html.erb → _toolbar.html.erb} +5 -6
  118. data/app/views/alchemy/admin/elements/{trash.js.erb → destroy.js.erb} +1 -3
  119. data/app/views/alchemy/admin/elements/new.html.erb +3 -3
  120. data/app/views/alchemy/admin/elements/order.js.erb +0 -17
  121. data/app/views/alchemy/admin/elements/update.js.erb +3 -2
  122. data/app/views/alchemy/admin/essence_audios/edit.html.erb +7 -0
  123. data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -1
  124. data/app/views/alchemy/admin/essence_videos/edit.html.erb +11 -0
  125. data/app/views/alchemy/admin/ingredients/_audio_fields.html.erb +4 -0
  126. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +18 -0
  127. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +25 -0
  128. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +8 -0
  129. data/app/views/alchemy/admin/ingredients/edit.html.erb +4 -0
  130. data/app/views/alchemy/admin/layoutpages/edit.html.erb +0 -5
  131. data/app/views/alchemy/admin/nodes/_node.html.erb +2 -2
  132. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +1 -1
  133. data/app/views/alchemy/admin/pages/_external_link.html.erb +1 -1
  134. data/app/views/alchemy/admin/pages/_file_link.html.erb +1 -1
  135. data/app/views/alchemy/admin/pages/_form.html.erb +0 -6
  136. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  137. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +5 -2
  138. data/app/views/alchemy/admin/pages/edit.html.erb +36 -24
  139. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -4
  140. data/app/views/alchemy/admin/partials/_routes.html.erb +7 -11
  141. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +4 -8
  142. data/app/views/alchemy/admin/pictures/_infos.html.erb +0 -1
  143. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +4 -4
  144. data/app/views/alchemy/admin/pictures/assign.js.erb +10 -0
  145. data/app/views/alchemy/admin/resources/_form.html.erb +1 -0
  146. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +4 -0
  147. data/app/views/alchemy/essences/_essence_audio_view.html.erb +15 -0
  148. data/app/views/alchemy/essences/_essence_file_editor.html.erb +15 -6
  149. data/app/views/alchemy/essences/_essence_headline_editor.html.erb +36 -0
  150. data/app/views/alchemy/essences/_essence_headline_view.html.erb +10 -0
  151. data/app/views/alchemy/essences/_essence_link_editor.html.erb +8 -4
  152. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +27 -12
  153. data/app/views/alchemy/essences/_essence_text_editor.html.erb +12 -4
  154. data/app/views/alchemy/essences/_essence_video_editor.html.erb +4 -0
  155. data/app/views/alchemy/essences/_essence_video_view.html.erb +18 -0
  156. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +21 -16
  157. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +2 -2
  158. data/app/views/alchemy/ingredients/_audio_editor.html.erb +5 -0
  159. data/app/views/alchemy/ingredients/_audio_view.html.erb +14 -0
  160. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +11 -0
  161. data/app/views/alchemy/ingredients/_boolean_view.html.erb +1 -0
  162. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +17 -0
  163. data/app/views/alchemy/ingredients/_datetime_view.html.erb +9 -0
  164. data/app/views/alchemy/ingredients/_file_editor.html.erb +50 -0
  165. data/app/views/alchemy/ingredients/_file_view.html.erb +17 -0
  166. data/app/views/alchemy/ingredients/_headline_editor.html.erb +30 -0
  167. data/app/views/alchemy/ingredients/_headline_view.html.erb +9 -0
  168. data/app/views/alchemy/ingredients/_html_editor.html.erb +8 -0
  169. data/app/views/alchemy/ingredients/_html_view.html.erb +1 -0
  170. data/app/views/alchemy/ingredients/_link_editor.html.erb +24 -0
  171. data/app/views/alchemy/ingredients/_link_view.html.erb +9 -0
  172. data/app/views/alchemy/ingredients/_node_editor.html.erb +25 -0
  173. data/app/views/alchemy/ingredients/_node_view.html.erb +1 -0
  174. data/app/views/alchemy/ingredients/_page_editor.html.erb +24 -0
  175. data/app/views/alchemy/ingredients/_page_view.html.erb +4 -0
  176. data/app/views/alchemy/ingredients/_picture_editor.html.erb +59 -0
  177. data/app/views/alchemy/ingredients/_picture_view.html.erb +5 -0
  178. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +12 -0
  179. data/app/views/alchemy/ingredients/_richtext_view.html.erb +3 -0
  180. data/app/views/alchemy/ingredients/_select_editor.html.erb +29 -0
  181. data/app/views/alchemy/ingredients/_select_view.html.erb +1 -0
  182. data/app/views/alchemy/ingredients/_text_editor.html.erb +19 -0
  183. data/app/views/alchemy/ingredients/_text_view.html.erb +16 -0
  184. data/app/views/alchemy/ingredients/_video_editor.html.erb +5 -0
  185. data/app/views/alchemy/ingredients/_video_view.html.erb +17 -0
  186. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +20 -0
  187. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +57 -0
  188. data/config/brakeman.ignore +66 -159
  189. data/config/initializers/dragonfly.rb +10 -0
  190. data/config/locales/alchemy.en.yml +23 -15
  191. data/config/routes.rb +17 -22
  192. data/db/migrate/20201207131309_create_page_versions.rb +19 -0
  193. data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +76 -0
  194. data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +10 -0
  195. data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +7 -0
  196. data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +12 -0
  197. data/db/migrate/20210506135919_create_essence_audios.rb +19 -0
  198. data/db/migrate/20210506140258_create_essence_videos.rb +23 -0
  199. data/db/migrate/20210508091432_create_alchemy_ingredients.rb +22 -0
  200. data/lib/alchemy/admin/preview_url.rb +2 -0
  201. data/lib/alchemy/deprecation.rb +1 -1
  202. data/lib/alchemy/dragonfly/processors/auto_orient.rb +18 -0
  203. data/lib/alchemy/dragonfly/processors/crop_resize.rb +35 -0
  204. data/lib/alchemy/elements_finder.rb +14 -60
  205. data/lib/alchemy/engine.rb +1 -1
  206. data/lib/alchemy/essence.rb +1 -2
  207. data/lib/alchemy/hints.rb +8 -4
  208. data/lib/alchemy/page_layout.rb +0 -13
  209. data/lib/alchemy/permissions.rb +30 -29
  210. data/lib/alchemy/resource.rb +13 -3
  211. data/lib/alchemy/tasks/tidy.rb +29 -0
  212. data/lib/alchemy/test_support/essence_shared_examples.rb +0 -1
  213. data/lib/alchemy/test_support/factories/element_factory.rb +8 -8
  214. data/lib/alchemy/test_support/factories/essence_audio_factory.rb +7 -0
  215. data/lib/alchemy/test_support/factories/essence_video_factory.rb +7 -0
  216. data/lib/alchemy/test_support/factories/ingredient_factory.rb +25 -0
  217. data/lib/alchemy/test_support/factories/page_factory.rb +20 -1
  218. data/lib/alchemy/test_support/factories/page_version_factory.rb +23 -0
  219. data/lib/alchemy/test_support/having_crop_action_examples.rb +170 -0
  220. data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +646 -0
  221. data/lib/alchemy/test_support/shared_ingredient_editor_examples.rb +21 -0
  222. data/lib/alchemy/test_support/shared_ingredient_examples.rb +57 -0
  223. data/lib/alchemy/test_support.rb +2 -11
  224. data/lib/alchemy/tinymce.rb +17 -0
  225. data/lib/alchemy/upgrader/five_point_zero.rb +0 -32
  226. data/lib/alchemy/upgrader/six_point_zero.rb +21 -0
  227. data/lib/alchemy/upgrader/tasks/add_page_versions.rb +33 -0
  228. data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +51 -0
  229. data/lib/alchemy/version.rb +1 -1
  230. data/lib/generators/alchemy/elements/elements_generator.rb +1 -0
  231. data/lib/generators/alchemy/elements/templates/view.html.erb +9 -0
  232. data/lib/generators/alchemy/elements/templates/view.html.haml +9 -0
  233. data/lib/generators/alchemy/elements/templates/view.html.slim +9 -0
  234. data/lib/generators/alchemy/ingredient/ingredient_generator.rb +38 -0
  235. data/lib/generators/alchemy/ingredient/templates/editor.html.erb +14 -0
  236. data/lib/generators/alchemy/ingredient/templates/model.rb.tt +13 -0
  237. data/lib/generators/alchemy/ingredient/templates/view.html.erb +1 -0
  238. data/lib/generators/alchemy/install/install_generator.rb +1 -2
  239. data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +1 -1
  240. data/lib/generators/alchemy/menus/templates/node.html.erb +1 -1
  241. data/lib/generators/alchemy/menus/templates/node.html.haml +1 -1
  242. data/lib/generators/alchemy/menus/templates/node.html.slim +1 -1
  243. data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
  244. data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
  245. data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
  246. data/lib/tasks/alchemy/tidy.rake +12 -0
  247. data/lib/tasks/alchemy/upgrade.rake +21 -15
  248. data/package/admin.js +9 -1
  249. data/package/src/file_editors.js +28 -0
  250. data/package/src/image_cropper.js +103 -0
  251. data/package/src/image_loader.js +58 -0
  252. data/package/src/node_tree.js +5 -5
  253. data/package/src/picture_editors.js +169 -0
  254. data/package/src/utils/__tests__/ajax.spec.js +20 -12
  255. data/package/src/utils/ajax.js +8 -3
  256. data/package.json +3 -2
  257. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +3 -18
  258. data/vendor/assets/stylesheets/jquery.Jcrop.min.scss +2 -28
  259. metadata +285 -56
  260. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +0 -44
  261. data/app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee +0 -30
  262. data/app/assets/stylesheets/alchemy/trash.scss +0 -8
  263. data/app/controllers/alchemy/admin/trash_controller.rb +0 -44
  264. data/app/views/alchemy/admin/essence_files/assign.js.erb +0 -3
  265. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +0 -4
  266. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +0 -48
  267. data/app/views/alchemy/admin/trash/clear.js.erb +0 -4
  268. data/app/views/alchemy/admin/trash/index.html.erb +0 -31
  269. data/lib/alchemy/test_support/factories.rb +0 -20
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: 5.2.4
4
+ version: 6.0.0.b1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -10,11 +10,171 @@ 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-17 00:00:00.000000000 Z
16
+ date: 2021-07-05 00:00:00.000000000 Z
17
17
  dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: actionmailer
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: '6.0'
25
+ - - "<"
26
+ - !ruby/object:Gem::Version
27
+ version: '6.1'
28
+ type: :runtime
29
+ prerelease: false
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '6.0'
35
+ - - "<"
36
+ - !ruby/object:Gem::Version
37
+ version: '6.1'
38
+ - !ruby/object:Gem::Dependency
39
+ name: actionpack
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '6.0'
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: '6.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '6.0'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '6.1'
58
+ - !ruby/object:Gem::Dependency
59
+ name: actionview
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '6.0'
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '6.1'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '6.0'
75
+ - - "<"
76
+ - !ruby/object:Gem::Version
77
+ version: '6.1'
78
+ - !ruby/object:Gem::Dependency
79
+ name: activejob
80
+ requirement: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '6.0'
85
+ - - "<"
86
+ - !ruby/object:Gem::Version
87
+ version: '6.1'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '6.0'
95
+ - - "<"
96
+ - !ruby/object:Gem::Version
97
+ version: '6.1'
98
+ - !ruby/object:Gem::Dependency
99
+ name: activemodel
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '6.0'
105
+ - - "<"
106
+ - !ruby/object:Gem::Version
107
+ version: '6.1'
108
+ type: :runtime
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '6.0'
115
+ - - "<"
116
+ - !ruby/object:Gem::Version
117
+ version: '6.1'
118
+ - !ruby/object:Gem::Dependency
119
+ name: activerecord
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '6.0'
125
+ - - "<"
126
+ - !ruby/object:Gem::Version
127
+ version: '6.1'
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '6.0'
135
+ - - "<"
136
+ - !ruby/object:Gem::Version
137
+ version: '6.1'
138
+ - !ruby/object:Gem::Dependency
139
+ name: activesupport
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '6.0'
145
+ - - "<"
146
+ - !ruby/object:Gem::Version
147
+ version: '6.1'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '6.0'
155
+ - - "<"
156
+ - !ruby/object:Gem::Version
157
+ version: '6.1'
158
+ - !ruby/object:Gem::Dependency
159
+ name: railties
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '6.0'
165
+ - - "<"
166
+ - !ruby/object:Gem::Version
167
+ version: '6.1'
168
+ type: :runtime
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '6.0'
175
+ - - "<"
176
+ - !ruby/object:Gem::Version
177
+ version: '6.1'
18
178
  - !ruby/object:Gem::Dependency
19
179
  name: active_model_serializers
20
180
  requirement: !ruby/object:Gem::Requirement
@@ -108,12 +268,6 @@ dependencies:
108
268
  requirement: !ruby/object:Gem::Requirement
109
269
  requirements:
110
270
  - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: '1.0'
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: 1.0.7
116
- - - "<"
117
271
  - !ruby/object:Gem::Version
118
272
  version: '1.4'
119
273
  type: :runtime
@@ -121,12 +275,6 @@ dependencies:
121
275
  version_requirements: !ruby/object:Gem::Requirement
122
276
  requirements:
123
277
  - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '1.0'
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: 1.0.7
129
- - - "<"
130
278
  - !ruby/object:Gem::Version
131
279
  version: '1.4'
132
280
  - !ruby/object:Gem::Dependency
@@ -253,26 +401,6 @@ dependencies:
253
401
  - - "~>"
254
402
  - !ruby/object:Gem::Version
255
403
  version: 1.0.8
256
- - !ruby/object:Gem::Dependency
257
- name: rails
258
- requirement: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - ">="
261
- - !ruby/object:Gem::Version
262
- version: 5.2.0
263
- - - "<"
264
- - !ruby/object:Gem::Version
265
- version: '6.1'
266
- type: :runtime
267
- prerelease: false
268
- version_requirements: !ruby/object:Gem::Requirement
269
- requirements:
270
- - - ">="
271
- - !ruby/object:Gem::Version
272
- version: 5.2.0
273
- - - "<"
274
- - !ruby/object:Gem::Version
275
- version: '6.1'
276
404
  - !ruby/object:Gem::Dependency
277
405
  name: ransack
278
406
  requirement: !ruby/object:Gem::Requirement
@@ -639,7 +767,6 @@ files:
639
767
  - app/assets/javascripts/alchemy/alchemy.gui.js.coffee
640
768
  - app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee
641
769
  - app/assets/javascripts/alchemy/alchemy.html5.js
642
- - app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee
643
770
  - app/assets/javascripts/alchemy/alchemy.image_overlay.coffee
644
771
  - app/assets/javascripts/alchemy/alchemy.initializer.js.coffee
645
772
  - app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee
@@ -652,7 +779,6 @@ files:
652
779
  - app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee
653
780
  - app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
654
781
  - app/assets/javascripts/alchemy/alchemy.tooltips.coffee
655
- - app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee
656
782
  - app/assets/javascripts/alchemy/alchemy.uploader.js.coffee
657
783
  - app/assets/javascripts/alchemy/menubar.js.coffee
658
784
  - app/assets/javascripts/alchemy/node_select.js
@@ -688,6 +814,7 @@ files:
688
814
  - app/assets/stylesheets/alchemy/hints.scss
689
815
  - app/assets/stylesheets/alchemy/icons.scss
690
816
  - app/assets/stylesheets/alchemy/image_library.scss
817
+ - app/assets/stylesheets/alchemy/images.scss
691
818
  - app/assets/stylesheets/alchemy/jquery-ui.scss
692
819
  - app/assets/stylesheets/alchemy/labels.scss
693
820
  - app/assets/stylesheets/alchemy/lists.scss
@@ -708,7 +835,6 @@ files:
708
835
  - app/assets/stylesheets/alchemy/tables.scss
709
836
  - app/assets/stylesheets/alchemy/tags.scss
710
837
  - app/assets/stylesheets/alchemy/toolbar.scss
711
- - app/assets/stylesheets/alchemy/trash.scss
712
838
  - app/assets/stylesheets/alchemy/typography.scss
713
839
  - app/assets/stylesheets/alchemy/upload.scss
714
840
  - app/assets/stylesheets/alchemy/welcome.sass
@@ -730,8 +856,11 @@ files:
730
856
  - app/controllers/alchemy/admin/contents_controller.rb
731
857
  - app/controllers/alchemy/admin/dashboard_controller.rb
732
858
  - app/controllers/alchemy/admin/elements_controller.rb
859
+ - app/controllers/alchemy/admin/essence_audios_controller.rb
733
860
  - app/controllers/alchemy/admin/essence_files_controller.rb
734
861
  - app/controllers/alchemy/admin/essence_pictures_controller.rb
862
+ - app/controllers/alchemy/admin/essence_videos_controller.rb
863
+ - app/controllers/alchemy/admin/ingredients_controller.rb
735
864
  - app/controllers/alchemy/admin/languages_controller.rb
736
865
  - app/controllers/alchemy/admin/layoutpages_controller.rb
737
866
  - app/controllers/alchemy/admin/legacy_page_urls_controller.rb
@@ -742,7 +871,6 @@ files:
742
871
  - app/controllers/alchemy/admin/sites_controller.rb
743
872
  - app/controllers/alchemy/admin/styleguide_controller.rb
744
873
  - app/controllers/alchemy/admin/tags_controller.rb
745
- - app/controllers/alchemy/admin/trash_controller.rb
746
874
  - app/controllers/alchemy/api/base_controller.rb
747
875
  - app/controllers/alchemy/api/contents_controller.rb
748
876
  - app/controllers/alchemy/api/elements_controller.rb
@@ -754,18 +882,21 @@ files:
754
882
  - app/controllers/alchemy/messages_controller.rb
755
883
  - app/controllers/alchemy/pages_controller.rb
756
884
  - app/controllers/concerns/alchemy/admin/archive_overlay.rb
885
+ - app/controllers/concerns/alchemy/admin/crop_action.rb
757
886
  - app/controllers/concerns/alchemy/admin/current_language.rb
758
887
  - app/controllers/concerns/alchemy/admin/uploader_responses.rb
759
888
  - app/controllers/concerns/alchemy/legacy_page_redirects.rb
760
889
  - app/controllers/concerns/alchemy/site_redirects.rb
761
890
  - app/decorators/alchemy/content_editor.rb
762
891
  - app/decorators/alchemy/element_editor.rb
892
+ - app/decorators/alchemy/ingredient_editor.rb
763
893
  - app/helpers/alchemy/admin/attachments_helper.rb
764
894
  - app/helpers/alchemy/admin/base_helper.rb
765
895
  - app/helpers/alchemy/admin/contents_helper.rb
766
896
  - app/helpers/alchemy/admin/elements_helper.rb
767
897
  - app/helpers/alchemy/admin/essences_helper.rb
768
898
  - app/helpers/alchemy/admin/form_helper.rb
899
+ - app/helpers/alchemy/admin/ingredients_helper.rb
769
900
  - app/helpers/alchemy/admin/navigation_helper.rb
770
901
  - app/helpers/alchemy/admin/pages_helper.rb
771
902
  - app/helpers/alchemy/admin/pictures_helper.rb
@@ -775,6 +906,8 @@ files:
775
906
  - app/helpers/alchemy/elements_helper.rb
776
907
  - app/helpers/alchemy/pages_helper.rb
777
908
  - app/helpers/alchemy/url_helper.rb
909
+ - app/jobs/alchemy/base_job.rb
910
+ - app/jobs/alchemy/publish_page_job.rb
778
911
  - app/mailers/alchemy/base_mailer.rb
779
912
  - app/mailers/alchemy/messages_mailer.rb
780
913
  - app/models/alchemy/attachment.rb
@@ -786,11 +919,15 @@ files:
786
919
  - app/models/alchemy/element/definitions.rb
787
920
  - app/models/alchemy/element/element_contents.rb
788
921
  - app/models/alchemy/element/element_essences.rb
922
+ - app/models/alchemy/element/element_ingredients.rb
789
923
  - app/models/alchemy/element/presenters.rb
790
924
  - app/models/alchemy/element_to_page.rb
925
+ - app/models/alchemy/elements_repository.rb
926
+ - app/models/alchemy/essence_audio.rb
791
927
  - app/models/alchemy/essence_boolean.rb
792
928
  - app/models/alchemy/essence_date.rb
793
929
  - app/models/alchemy/essence_file.rb
930
+ - app/models/alchemy/essence_headline.rb
794
931
  - app/models/alchemy/essence_html.rb
795
932
  - app/models/alchemy/essence_link.rb
796
933
  - app/models/alchemy/essence_node.rb
@@ -800,7 +937,25 @@ files:
800
937
  - app/models/alchemy/essence_richtext.rb
801
938
  - app/models/alchemy/essence_select.rb
802
939
  - app/models/alchemy/essence_text.rb
940
+ - app/models/alchemy/essence_video.rb
803
941
  - app/models/alchemy/folded_page.rb
942
+ - app/models/alchemy/image_cropper_settings.rb
943
+ - app/models/alchemy/ingredient.rb
944
+ - app/models/alchemy/ingredient_validator.rb
945
+ - app/models/alchemy/ingredients/audio.rb
946
+ - app/models/alchemy/ingredients/boolean.rb
947
+ - app/models/alchemy/ingredients/datetime.rb
948
+ - app/models/alchemy/ingredients/file.rb
949
+ - app/models/alchemy/ingredients/headline.rb
950
+ - app/models/alchemy/ingredients/html.rb
951
+ - app/models/alchemy/ingredients/link.rb
952
+ - app/models/alchemy/ingredients/node.rb
953
+ - app/models/alchemy/ingredients/page.rb
954
+ - app/models/alchemy/ingredients/picture.rb
955
+ - app/models/alchemy/ingredients/richtext.rb
956
+ - app/models/alchemy/ingredients/select.rb
957
+ - app/models/alchemy/ingredients/text.rb
958
+ - app/models/alchemy/ingredients/video.rb
804
959
  - app/models/alchemy/language.rb
805
960
  - app/models/alchemy/language/code.rb
806
961
  - app/models/alchemy/legacy_page_url.rb
@@ -812,7 +967,9 @@ files:
812
967
  - app/models/alchemy/page/page_naming.rb
813
968
  - app/models/alchemy/page/page_natures.rb
814
969
  - app/models/alchemy/page/page_scopes.rb
970
+ - app/models/alchemy/page/publisher.rb
815
971
  - app/models/alchemy/page/url_path.rb
972
+ - app/models/alchemy/page_version.rb
816
973
  - app/models/alchemy/picture.rb
817
974
  - app/models/alchemy/picture/calculations.rb
818
975
  - app/models/alchemy/picture/preprocessor.rb
@@ -827,7 +984,9 @@ files:
827
984
  - app/models/alchemy/site/layout.rb
828
985
  - app/models/alchemy/tag.rb
829
986
  - app/models/alchemy/tree_node.rb
987
+ - app/models/concerns/alchemy/picture_thumbnails.rb
830
988
  - app/models/concerns/alchemy/touch_elements.rb
989
+ - app/presenters/alchemy/picture_view.rb
831
990
  - app/serializers/alchemy/attachment_serializer.rb
832
991
  - app/serializers/alchemy/base_serializer.rb
833
992
  - app/serializers/alchemy/content_serializer.rb
@@ -845,6 +1004,8 @@ files:
845
1004
  - app/serializers/alchemy/page_serializer.rb
846
1005
  - app/serializers/alchemy/page_tree_serializer.rb
847
1006
  - app/serializers/alchemy/picture_serializer.rb
1007
+ - app/services/alchemy/delete_elements.rb
1008
+ - app/services/alchemy/duplicate_element.rb
848
1009
  - app/views/alchemy/_edit_mode.html.erb
849
1010
  - app/views/alchemy/_menubar.html.erb
850
1011
  - app/views/alchemy/_preview_mode_code.html.erb
@@ -857,6 +1018,7 @@ files:
857
1018
  - app/views/alchemy/admin/attachments/_replace_button.html.erb
858
1019
  - app/views/alchemy/admin/attachments/_tag_list.html.erb
859
1020
  - app/views/alchemy/admin/attachments/archive_overlay.js.erb
1021
+ - app/views/alchemy/admin/attachments/assign.js.erb
860
1022
  - app/views/alchemy/admin/attachments/destroy.js.erb
861
1023
  - app/views/alchemy/admin/attachments/edit.html.erb
862
1024
  - app/views/alchemy/admin/attachments/index.html.erb
@@ -866,6 +1028,7 @@ files:
866
1028
  - app/views/alchemy/admin/clipboard/insert.js.erb
867
1029
  - app/views/alchemy/admin/clipboard/remove.js.erb
868
1030
  - app/views/alchemy/admin/contents/create.js.erb
1031
+ - app/views/alchemy/admin/crop.html.erb
869
1032
  - app/views/alchemy/admin/dashboard/_locked_pages.html.erb
870
1033
  - app/views/alchemy/admin/dashboard/_recent_pages.html.erb
871
1034
  - app/views/alchemy/admin/dashboard/_sites.html.erb
@@ -874,26 +1037,30 @@ files:
874
1037
  - app/views/alchemy/admin/dashboard/index.html.erb
875
1038
  - app/views/alchemy/admin/dashboard/info.html.erb
876
1039
  - app/views/alchemy/admin/elements/_element.html.erb
877
- - app/views/alchemy/admin/elements/_element_footer.html.erb
878
- - app/views/alchemy/admin/elements/_element_header.html.erb
879
- - app/views/alchemy/admin/elements/_element_toolbar.html.erb
880
- - app/views/alchemy/admin/elements/_new_element_form.html.erb
1040
+ - app/views/alchemy/admin/elements/_footer.html.erb
1041
+ - app/views/alchemy/admin/elements/_form.html.erb
1042
+ - app/views/alchemy/admin/elements/_header.html.erb
1043
+ - app/views/alchemy/admin/elements/_toolbar.html.erb
881
1044
  - app/views/alchemy/admin/elements/create.js.erb
1045
+ - app/views/alchemy/admin/elements/destroy.js.erb
882
1046
  - app/views/alchemy/admin/elements/fold.js.erb
883
1047
  - app/views/alchemy/admin/elements/index.html.erb
884
1048
  - app/views/alchemy/admin/elements/new.html.erb
885
1049
  - app/views/alchemy/admin/elements/order.js.erb
886
1050
  - app/views/alchemy/admin/elements/publish.js.erb
887
- - app/views/alchemy/admin/elements/trash.js.erb
888
1051
  - app/views/alchemy/admin/elements/update.js.erb
889
- - app/views/alchemy/admin/essence_files/assign.js.erb
1052
+ - app/views/alchemy/admin/essence_audios/edit.html.erb
890
1053
  - app/views/alchemy/admin/essence_files/edit.html.erb
891
- - app/views/alchemy/admin/essence_pictures/assign.js.erb
892
- - app/views/alchemy/admin/essence_pictures/crop.html.erb
893
1054
  - app/views/alchemy/admin/essence_pictures/destroy.js.erb
894
1055
  - app/views/alchemy/admin/essence_pictures/edit.html.erb
895
1056
  - app/views/alchemy/admin/essence_pictures/save_link.js.erb
896
1057
  - app/views/alchemy/admin/essence_pictures/update.js.erb
1058
+ - app/views/alchemy/admin/essence_videos/edit.html.erb
1059
+ - app/views/alchemy/admin/ingredients/_audio_fields.html.erb
1060
+ - app/views/alchemy/admin/ingredients/_file_fields.html.erb
1061
+ - app/views/alchemy/admin/ingredients/_picture_fields.html.erb
1062
+ - app/views/alchemy/admin/ingredients/_video_fields.html.erb
1063
+ - app/views/alchemy/admin/ingredients/edit.html.erb
897
1064
  - app/views/alchemy/admin/languages/_form.html.erb
898
1065
  - app/views/alchemy/admin/languages/_language.html.erb
899
1066
  - app/views/alchemy/admin/languages/_table.html.erb
@@ -972,6 +1139,7 @@ files:
972
1139
  - app/views/alchemy/admin/pictures/_picture_to_assign.html.erb
973
1140
  - app/views/alchemy/admin/pictures/_tag_list.html.erb
974
1141
  - app/views/alchemy/admin/pictures/archive_overlay.js.erb
1142
+ - app/views/alchemy/admin/pictures/assign.js.erb
975
1143
  - app/views/alchemy/admin/pictures/edit_multiple.html.erb
976
1144
  - app/views/alchemy/admin/pictures/index.html.erb
977
1145
  - app/views/alchemy/admin/pictures/index.js.erb
@@ -998,8 +1166,6 @@ files:
998
1166
  - app/views/alchemy/admin/tags/edit.html.erb
999
1167
  - app/views/alchemy/admin/tags/index.html.erb
1000
1168
  - app/views/alchemy/admin/tags/new.html.erb
1001
- - app/views/alchemy/admin/trash/clear.js.erb
1002
- - app/views/alchemy/admin/trash/index.html.erb
1003
1169
  - app/views/alchemy/admin/uploader/_button.html.erb
1004
1170
  - app/views/alchemy/admin/uploader/_setup.html.erb
1005
1171
  - app/views/alchemy/attachments/show.html.erb
@@ -1015,12 +1181,16 @@ files:
1015
1181
  - app/views/alchemy/elements/_view_not_found.html.erb
1016
1182
  - app/views/alchemy/elements/show.html.erb
1017
1183
  - app/views/alchemy/elements/show.js.erb
1184
+ - app/views/alchemy/essences/_essence_audio_editor.html.erb
1185
+ - app/views/alchemy/essences/_essence_audio_view.html.erb
1018
1186
  - app/views/alchemy/essences/_essence_boolean_editor.html.erb
1019
1187
  - app/views/alchemy/essences/_essence_boolean_view.html.erb
1020
1188
  - app/views/alchemy/essences/_essence_date_editor.html.erb
1021
1189
  - app/views/alchemy/essences/_essence_date_view.html.erb
1022
1190
  - app/views/alchemy/essences/_essence_file_editor.html.erb
1023
1191
  - app/views/alchemy/essences/_essence_file_view.html.erb
1192
+ - app/views/alchemy/essences/_essence_headline_editor.html.erb
1193
+ - app/views/alchemy/essences/_essence_headline_view.html.erb
1024
1194
  - app/views/alchemy/essences/_essence_html_editor.html.erb
1025
1195
  - app/views/alchemy/essences/_essence_html_view.html.erb
1026
1196
  - app/views/alchemy/essences/_essence_link_editor.html.erb
@@ -1037,8 +1207,40 @@ files:
1037
1207
  - app/views/alchemy/essences/_essence_select_view.html.erb
1038
1208
  - app/views/alchemy/essences/_essence_text_editor.html.erb
1039
1209
  - app/views/alchemy/essences/_essence_text_view.html.erb
1210
+ - app/views/alchemy/essences/_essence_video_editor.html.erb
1211
+ - app/views/alchemy/essences/_essence_video_view.html.erb
1040
1212
  - app/views/alchemy/essences/shared/_essence_picture_tools.html.erb
1041
1213
  - app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb
1214
+ - app/views/alchemy/ingredients/_audio_editor.html.erb
1215
+ - app/views/alchemy/ingredients/_audio_view.html.erb
1216
+ - app/views/alchemy/ingredients/_boolean_editor.html.erb
1217
+ - app/views/alchemy/ingredients/_boolean_view.html.erb
1218
+ - app/views/alchemy/ingredients/_datetime_editor.html.erb
1219
+ - app/views/alchemy/ingredients/_datetime_view.html.erb
1220
+ - app/views/alchemy/ingredients/_file_editor.html.erb
1221
+ - app/views/alchemy/ingredients/_file_view.html.erb
1222
+ - app/views/alchemy/ingredients/_headline_editor.html.erb
1223
+ - app/views/alchemy/ingredients/_headline_view.html.erb
1224
+ - app/views/alchemy/ingredients/_html_editor.html.erb
1225
+ - app/views/alchemy/ingredients/_html_view.html.erb
1226
+ - app/views/alchemy/ingredients/_link_editor.html.erb
1227
+ - app/views/alchemy/ingredients/_link_view.html.erb
1228
+ - app/views/alchemy/ingredients/_node_editor.html.erb
1229
+ - app/views/alchemy/ingredients/_node_view.html.erb
1230
+ - app/views/alchemy/ingredients/_page_editor.html.erb
1231
+ - app/views/alchemy/ingredients/_page_view.html.erb
1232
+ - app/views/alchemy/ingredients/_picture_editor.html.erb
1233
+ - app/views/alchemy/ingredients/_picture_view.html.erb
1234
+ - app/views/alchemy/ingredients/_richtext_editor.html.erb
1235
+ - app/views/alchemy/ingredients/_richtext_view.html.erb
1236
+ - app/views/alchemy/ingredients/_select_editor.html.erb
1237
+ - app/views/alchemy/ingredients/_select_view.html.erb
1238
+ - app/views/alchemy/ingredients/_text_editor.html.erb
1239
+ - app/views/alchemy/ingredients/_text_view.html.erb
1240
+ - app/views/alchemy/ingredients/_video_editor.html.erb
1241
+ - app/views/alchemy/ingredients/_video_view.html.erb
1242
+ - app/views/alchemy/ingredients/shared/_link_tools.html.erb
1243
+ - app/views/alchemy/ingredients/shared/_picture_tools.html.erb
1042
1244
  - app/views/alchemy/language_links/_language.html.erb
1043
1245
  - app/views/alchemy/language_links/_spacer.html.erb
1044
1246
  - app/views/alchemy/messages_mailer/contact_form_mail.de.text.erb
@@ -1082,6 +1284,14 @@ files:
1082
1284
  - db/migrate/20200519073500_remove_visible_from_alchemy_pages.rb
1083
1285
  - db/migrate/20200617110713_create_alchemy_picture_thumbs.rb
1084
1286
  - db/migrate/20200907111332_remove_tri_state_booleans.rb
1287
+ - db/migrate/20201207131309_create_page_versions.rb
1288
+ - db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb
1289
+ - db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb
1290
+ - db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb
1291
+ - db/migrate/20210406093436_add_alchemy_essence_headlines.rb
1292
+ - db/migrate/20210506135919_create_essence_audios.rb
1293
+ - db/migrate/20210506140258_create_essence_videos.rb
1294
+ - db/migrate/20210508091432_create_alchemy_ingredients.rb
1085
1295
  - lib/alchemy.rb
1086
1296
  - lib/alchemy/ability_helper.rb
1087
1297
  - lib/alchemy/admin/locale.rb
@@ -1092,6 +1302,8 @@ files:
1092
1302
  - lib/alchemy/configuration_methods.rb
1093
1303
  - lib/alchemy/controller_actions.rb
1094
1304
  - lib/alchemy/deprecation.rb
1305
+ - lib/alchemy/dragonfly/processors/auto_orient.rb
1306
+ - lib/alchemy/dragonfly/processors/crop_resize.rb
1095
1307
  - lib/alchemy/element_definition.rb
1096
1308
  - lib/alchemy/elements_finder.rb
1097
1309
  - lib/alchemy/engine.rb
@@ -1120,30 +1332,40 @@ files:
1120
1332
  - lib/alchemy/test_support.rb
1121
1333
  - lib/alchemy/test_support/config_stubbing.rb
1122
1334
  - lib/alchemy/test_support/essence_shared_examples.rb
1123
- - lib/alchemy/test_support/factories.rb
1124
1335
  - lib/alchemy/test_support/factories/attachment_factory.rb
1125
1336
  - lib/alchemy/test_support/factories/content_factory.rb
1126
1337
  - lib/alchemy/test_support/factories/dummy_user_factory.rb
1127
1338
  - lib/alchemy/test_support/factories/element_factory.rb
1339
+ - lib/alchemy/test_support/factories/essence_audio_factory.rb
1128
1340
  - lib/alchemy/test_support/factories/essence_file_factory.rb
1129
1341
  - lib/alchemy/test_support/factories/essence_page_factory.rb
1130
1342
  - lib/alchemy/test_support/factories/essence_picture_factory.rb
1131
1343
  - lib/alchemy/test_support/factories/essence_text_factory.rb
1344
+ - lib/alchemy/test_support/factories/essence_video_factory.rb
1345
+ - lib/alchemy/test_support/factories/ingredient_factory.rb
1132
1346
  - lib/alchemy/test_support/factories/language_factory.rb
1133
1347
  - lib/alchemy/test_support/factories/node_factory.rb
1134
1348
  - lib/alchemy/test_support/factories/page_factory.rb
1349
+ - lib/alchemy/test_support/factories/page_version_factory.rb
1135
1350
  - lib/alchemy/test_support/factories/picture_factory.rb
1136
1351
  - lib/alchemy/test_support/factories/picture_thumb_factory.rb
1137
1352
  - lib/alchemy/test_support/factories/site_factory.rb
1138
1353
  - lib/alchemy/test_support/fixtures/image.png
1354
+ - lib/alchemy/test_support/having_crop_action_examples.rb
1355
+ - lib/alchemy/test_support/having_picture_thumbnails_examples.rb
1139
1356
  - lib/alchemy/test_support/integration_helpers.rb
1140
1357
  - lib/alchemy/test_support/shared_contexts.rb
1358
+ - lib/alchemy/test_support/shared_ingredient_editor_examples.rb
1359
+ - lib/alchemy/test_support/shared_ingredient_examples.rb
1141
1360
  - lib/alchemy/test_support/shared_uploader_examples.rb
1142
1361
  - lib/alchemy/tinymce.rb
1143
1362
  - lib/alchemy/upgrader.rb
1144
1363
  - lib/alchemy/upgrader/five_point_zero.rb
1364
+ - lib/alchemy/upgrader/six_point_zero.rb
1365
+ - lib/alchemy/upgrader/tasks/add_page_versions.rb
1145
1366
  - lib/alchemy/upgrader/tasks/element_views_updater.rb
1146
1367
  - lib/alchemy/upgrader/tasks/harden_gutentag_migrations.rb
1368
+ - lib/alchemy/upgrader/tasks/ingredients_migrator.rb
1147
1369
  - lib/alchemy/version.rb
1148
1370
  - lib/alchemy_cms.rb
1149
1371
  - lib/generators/alchemy/base.rb
@@ -1154,6 +1376,10 @@ files:
1154
1376
  - lib/generators/alchemy/essence/essence_generator.rb
1155
1377
  - lib/generators/alchemy/essence/templates/editor.html.erb
1156
1378
  - lib/generators/alchemy/essence/templates/view.html.erb
1379
+ - lib/generators/alchemy/ingredient/ingredient_generator.rb
1380
+ - lib/generators/alchemy/ingredient/templates/editor.html.erb
1381
+ - lib/generators/alchemy/ingredient/templates/model.rb.tt
1382
+ - lib/generators/alchemy/ingredient/templates/view.html.erb
1157
1383
  - lib/generators/alchemy/install/files/_article.html.erb
1158
1384
  - lib/generators/alchemy/install/files/_standard.html.erb
1159
1385
  - lib/generators/alchemy/install/files/alchemy.en.yml
@@ -1196,8 +1422,12 @@ files:
1196
1422
  - package.json
1197
1423
  - package/admin.js
1198
1424
  - package/src/__tests__/i18n.spec.js
1425
+ - package/src/file_editors.js
1199
1426
  - package/src/i18n.js
1427
+ - package/src/image_cropper.js
1428
+ - package/src/image_loader.js
1200
1429
  - package/src/node_tree.js
1430
+ - package/src/picture_editors.js
1201
1431
  - package/src/translations.js
1202
1432
  - package/src/utils/__tests__/ajax.spec.js
1203
1433
  - package/src/utils/__tests__/events.spec.js
@@ -1278,17 +1508,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
1278
1508
  requirements:
1279
1509
  - - ">="
1280
1510
  - !ruby/object:Gem::Version
1281
- version: 2.3.0
1511
+ version: 2.5.0
1282
1512
  required_rubygems_version: !ruby/object:Gem::Requirement
1283
1513
  requirements:
1284
- - - ">="
1514
+ - - ">"
1285
1515
  - !ruby/object:Gem::Version
1286
- version: '0'
1516
+ version: 1.3.1
1287
1517
  requirements:
1288
1518
  - ImageMagick (libmagick), v6.6 or greater.
1289
- rubygems_version: 3.1.6
1290
- signing_key:
1519
+ rubygems_version: 3.1.4
1520
+ signing_key:
1291
1521
  specification_version: 4
1292
1522
  summary: A powerful, userfriendly and flexible CMS for Rails
1293
1523
  test_files: []
1294
- ...
@@ -1,44 +0,0 @@
1
- window.Alchemy = {} if typeof (window.Alchemy) is "undefined"
2
-
3
- Alchemy.ImageCropper =
4
-
5
- initialized: false
6
-
7
- init: (box, min_size, default_box, ratio, true_size) ->
8
- crop_from_field = $("#essence_picture_crop_from")
9
- crop_size_field = $("#essence_picture_crop_size")
10
- options =
11
- onSelect: (coords) ->
12
- crop_from_field.val coords.x + "x" + coords.y
13
- crop_size_field.val coords.w + "x" + coords.h
14
- setSelect: box
15
- aspectRatio: (if ratio then ratio else `undefined`)
16
- minSize: (if min_size then min_size else `undefined`)
17
- boxWidth: 800
18
- boxHeight: 600
19
- trueSize: true_size
20
- Alchemy.ImageCropper.box = box
21
- Alchemy.ImageCropper.default_box = default_box
22
- Alchemy.ImageCropper.crop_from_field = crop_from_field
23
- Alchemy.ImageCropper.crop_size_field = crop_size_field
24
- unless Alchemy.ImageCropper.initialized
25
- Alchemy.ImageCropper.api = $.Jcrop("#imageToCrop", options)
26
- Alchemy.ImageCropper.initialized = true
27
- dialog = Alchemy.currentDialog()
28
- if dialog?
29
- dialog.options.closed = ->
30
- Alchemy.ImageCropper.destroy()
31
-
32
- undo: ->
33
- Alchemy.ImageCropper.api.setSelect Alchemy.ImageCropper.box
34
-
35
- reset: ->
36
- Alchemy.ImageCropper.api.setSelect Alchemy.ImageCropper.default_box
37
- Alchemy.ImageCropper.crop_from_field.val ""
38
- Alchemy.ImageCropper.crop_size_field.val ""
39
-
40
- destroy: ->
41
- if Alchemy.ImageCropper.api
42
- Alchemy.ImageCropper.api.destroy()
43
- Alchemy.ImageCropper.initialized = false
44
- true