alchemy_cms 5.2.5 → 6.0.0.b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (270) 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 -29
  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/content.min.css.scss +3 -3
  30. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +7 -7
  31. data/app/controllers/alchemy/admin/attachments_controller.rb +6 -2
  32. data/app/controllers/alchemy/admin/base_controller.rb +5 -7
  33. data/app/controllers/alchemy/admin/elements_controller.rb +58 -34
  34. data/app/controllers/alchemy/admin/essence_audios_controller.rb +30 -0
  35. data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -14
  36. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +8 -79
  37. data/app/controllers/alchemy/admin/essence_videos_controller.rb +33 -0
  38. data/app/controllers/alchemy/admin/ingredients_controller.rb +30 -0
  39. data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -1
  40. data/app/controllers/alchemy/admin/pages_controller.rb +6 -13
  41. data/app/controllers/alchemy/admin/pictures_controller.rb +35 -9
  42. data/app/controllers/alchemy/api/elements_controller.rb +10 -5
  43. data/app/controllers/alchemy/api/pages_controller.rb +2 -4
  44. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +13 -3
  45. data/app/controllers/concerns/alchemy/admin/crop_action.rb +26 -0
  46. data/app/decorators/alchemy/element_editor.rb +23 -1
  47. data/app/decorators/alchemy/ingredient_editor.rb +154 -0
  48. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  49. data/app/helpers/alchemy/admin/essences_helper.rb +1 -1
  50. data/app/helpers/alchemy/admin/ingredients_helper.rb +42 -0
  51. data/app/helpers/alchemy/elements_block_helper.rb +22 -7
  52. data/app/helpers/alchemy/elements_helper.rb +12 -5
  53. data/app/helpers/alchemy/pages_helper.rb +3 -11
  54. data/app/jobs/alchemy/base_job.rb +11 -0
  55. data/app/jobs/alchemy/publish_page_job.rb +11 -0
  56. data/app/models/alchemy/attachment.rb +1 -1
  57. data/app/models/alchemy/content/factory.rb +23 -27
  58. data/app/models/alchemy/content.rb +1 -6
  59. data/app/models/alchemy/element/definitions.rb +29 -27
  60. data/app/models/alchemy/element/element_contents.rb +131 -122
  61. data/app/models/alchemy/element/element_essences.rb +100 -98
  62. data/app/models/alchemy/element/element_ingredients.rb +176 -0
  63. data/app/models/alchemy/element/presenters.rb +89 -87
  64. data/app/models/alchemy/element.rb +40 -73
  65. data/app/models/alchemy/elements_repository.rb +126 -0
  66. data/app/models/alchemy/essence_audio.rb +12 -0
  67. data/app/models/alchemy/essence_headline.rb +40 -0
  68. data/app/models/alchemy/essence_picture.rb +4 -116
  69. data/app/models/alchemy/essence_richtext.rb +12 -0
  70. data/app/models/alchemy/essence_video.rb +12 -0
  71. data/app/models/alchemy/image_cropper_settings.rb +87 -0
  72. data/app/models/alchemy/ingredient.rb +219 -0
  73. data/app/models/alchemy/ingredient_validator.rb +97 -0
  74. data/app/models/alchemy/ingredients/audio.rb +29 -0
  75. data/app/models/alchemy/ingredients/boolean.rb +21 -0
  76. data/app/models/alchemy/ingredients/datetime.rb +20 -0
  77. data/app/models/alchemy/ingredients/file.rb +30 -0
  78. data/app/models/alchemy/ingredients/headline.rb +42 -0
  79. data/app/models/alchemy/ingredients/html.rb +19 -0
  80. data/app/models/alchemy/ingredients/link.rb +16 -0
  81. data/app/models/alchemy/ingredients/node.rb +23 -0
  82. data/app/models/alchemy/ingredients/page.rb +23 -0
  83. data/app/models/alchemy/ingredients/picture.rb +41 -0
  84. data/app/models/alchemy/ingredients/richtext.rb +57 -0
  85. data/app/models/alchemy/ingredients/select.rb +10 -0
  86. data/app/models/alchemy/ingredients/text.rb +17 -0
  87. data/app/models/alchemy/ingredients/video.rb +33 -0
  88. data/app/models/alchemy/language.rb +0 -11
  89. data/app/models/alchemy/node.rb +1 -1
  90. data/app/models/alchemy/page/fixed_attributes.rb +53 -51
  91. data/app/models/alchemy/page/page_elements.rb +186 -205
  92. data/app/models/alchemy/page/page_naming.rb +66 -64
  93. data/app/models/alchemy/page/page_natures.rb +139 -142
  94. data/app/models/alchemy/page/page_scopes.rb +113 -102
  95. data/app/models/alchemy/page/publisher.rb +50 -0
  96. data/app/models/alchemy/page/url_path.rb +1 -1
  97. data/app/models/alchemy/page.rb +67 -33
  98. data/app/models/alchemy/page_version.rb +58 -0
  99. data/app/models/alchemy/picture/calculations.rb +2 -8
  100. data/app/models/alchemy/picture/preprocessor.rb +2 -0
  101. data/app/models/alchemy/picture/transformations.rb +24 -96
  102. data/app/models/alchemy/picture.rb +4 -2
  103. data/app/models/concerns/alchemy/picture_thumbnails.rb +181 -0
  104. data/app/models/concerns/alchemy/touch_elements.rb +2 -2
  105. data/app/presenters/alchemy/picture_view.rb +88 -0
  106. data/app/serializers/alchemy/element_serializer.rb +5 -0
  107. data/app/serializers/alchemy/page_tree_serializer.rb +3 -2
  108. data/app/services/alchemy/delete_elements.rb +44 -0
  109. data/app/services/alchemy/duplicate_element.rb +56 -0
  110. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -2
  111. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -3
  112. data/app/views/alchemy/admin/attachments/assign.js.erb +11 -0
  113. data/app/views/alchemy/admin/crop.html.erb +36 -0
  114. data/app/views/alchemy/admin/elements/_element.html.erb +14 -10
  115. data/app/views/alchemy/admin/elements/{_element_footer.html.erb → _footer.html.erb} +0 -0
  116. data/app/views/alchemy/admin/elements/{_new_element_form.html.erb → _form.html.erb} +1 -1
  117. data/app/views/alchemy/admin/elements/{_element_header.html.erb → _header.html.erb} +1 -1
  118. data/app/views/alchemy/admin/elements/{_element_toolbar.html.erb → _toolbar.html.erb} +5 -6
  119. data/app/views/alchemy/admin/elements/{trash.js.erb → destroy.js.erb} +1 -3
  120. data/app/views/alchemy/admin/elements/new.html.erb +3 -3
  121. data/app/views/alchemy/admin/elements/order.js.erb +0 -17
  122. data/app/views/alchemy/admin/elements/update.js.erb +3 -2
  123. data/app/views/alchemy/admin/essence_audios/edit.html.erb +7 -0
  124. data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -1
  125. data/app/views/alchemy/admin/essence_videos/edit.html.erb +11 -0
  126. data/app/views/alchemy/admin/ingredients/_audio_fields.html.erb +4 -0
  127. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +18 -0
  128. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +25 -0
  129. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +8 -0
  130. data/app/views/alchemy/admin/ingredients/edit.html.erb +4 -0
  131. data/app/views/alchemy/admin/layoutpages/edit.html.erb +0 -5
  132. data/app/views/alchemy/admin/nodes/_node.html.erb +2 -2
  133. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +1 -1
  134. data/app/views/alchemy/admin/pages/_external_link.html.erb +1 -1
  135. data/app/views/alchemy/admin/pages/_file_link.html.erb +1 -1
  136. data/app/views/alchemy/admin/pages/_form.html.erb +0 -6
  137. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  138. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +5 -2
  139. data/app/views/alchemy/admin/pages/edit.html.erb +36 -24
  140. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -4
  141. data/app/views/alchemy/admin/partials/_routes.html.erb +7 -11
  142. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +4 -8
  143. data/app/views/alchemy/admin/pictures/_infos.html.erb +0 -1
  144. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +4 -4
  145. data/app/views/alchemy/admin/pictures/assign.js.erb +10 -0
  146. data/app/views/alchemy/admin/resources/_form.html.erb +1 -0
  147. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +4 -0
  148. data/app/views/alchemy/essences/_essence_audio_view.html.erb +15 -0
  149. data/app/views/alchemy/essences/_essence_file_editor.html.erb +15 -6
  150. data/app/views/alchemy/essences/_essence_headline_editor.html.erb +36 -0
  151. data/app/views/alchemy/essences/_essence_headline_view.html.erb +10 -0
  152. data/app/views/alchemy/essences/_essence_link_editor.html.erb +8 -4
  153. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +27 -12
  154. data/app/views/alchemy/essences/_essence_text_editor.html.erb +12 -4
  155. data/app/views/alchemy/essences/_essence_video_editor.html.erb +4 -0
  156. data/app/views/alchemy/essences/_essence_video_view.html.erb +18 -0
  157. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +21 -16
  158. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +2 -2
  159. data/app/views/alchemy/ingredients/_audio_editor.html.erb +5 -0
  160. data/app/views/alchemy/ingredients/_audio_view.html.erb +14 -0
  161. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +11 -0
  162. data/app/views/alchemy/ingredients/_boolean_view.html.erb +1 -0
  163. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +17 -0
  164. data/app/views/alchemy/ingredients/_datetime_view.html.erb +9 -0
  165. data/app/views/alchemy/ingredients/_file_editor.html.erb +50 -0
  166. data/app/views/alchemy/ingredients/_file_view.html.erb +17 -0
  167. data/app/views/alchemy/ingredients/_headline_editor.html.erb +30 -0
  168. data/app/views/alchemy/ingredients/_headline_view.html.erb +9 -0
  169. data/app/views/alchemy/ingredients/_html_editor.html.erb +8 -0
  170. data/app/views/alchemy/ingredients/_html_view.html.erb +1 -0
  171. data/app/views/alchemy/ingredients/_link_editor.html.erb +24 -0
  172. data/app/views/alchemy/ingredients/_link_view.html.erb +9 -0
  173. data/app/views/alchemy/ingredients/_node_editor.html.erb +25 -0
  174. data/app/views/alchemy/ingredients/_node_view.html.erb +1 -0
  175. data/app/views/alchemy/ingredients/_page_editor.html.erb +24 -0
  176. data/app/views/alchemy/ingredients/_page_view.html.erb +4 -0
  177. data/app/views/alchemy/ingredients/_picture_editor.html.erb +59 -0
  178. data/app/views/alchemy/ingredients/_picture_view.html.erb +5 -0
  179. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +12 -0
  180. data/app/views/alchemy/ingredients/_richtext_view.html.erb +3 -0
  181. data/app/views/alchemy/ingredients/_select_editor.html.erb +29 -0
  182. data/app/views/alchemy/ingredients/_select_view.html.erb +1 -0
  183. data/app/views/alchemy/ingredients/_text_editor.html.erb +19 -0
  184. data/app/views/alchemy/ingredients/_text_view.html.erb +16 -0
  185. data/app/views/alchemy/ingredients/_video_editor.html.erb +5 -0
  186. data/app/views/alchemy/ingredients/_video_view.html.erb +17 -0
  187. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +20 -0
  188. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +57 -0
  189. data/config/brakeman.ignore +66 -159
  190. data/config/initializers/dragonfly.rb +10 -0
  191. data/config/locales/alchemy.en.yml +23 -15
  192. data/config/routes.rb +17 -22
  193. data/db/migrate/20201207131309_create_page_versions.rb +19 -0
  194. data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +76 -0
  195. data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +10 -0
  196. data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +7 -0
  197. data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +12 -0
  198. data/db/migrate/20210506135919_create_essence_audios.rb +19 -0
  199. data/db/migrate/20210506140258_create_essence_videos.rb +23 -0
  200. data/db/migrate/20210508091432_create_alchemy_ingredients.rb +22 -0
  201. data/lib/alchemy/admin/preview_url.rb +2 -0
  202. data/lib/alchemy/deprecation.rb +1 -1
  203. data/lib/alchemy/dragonfly/processors/auto_orient.rb +18 -0
  204. data/lib/alchemy/dragonfly/processors/crop_resize.rb +35 -0
  205. data/lib/alchemy/elements_finder.rb +14 -60
  206. data/lib/alchemy/engine.rb +1 -1
  207. data/lib/alchemy/essence.rb +1 -2
  208. data/lib/alchemy/hints.rb +8 -4
  209. data/lib/alchemy/page_layout.rb +0 -13
  210. data/lib/alchemy/permissions.rb +30 -29
  211. data/lib/alchemy/resource.rb +13 -3
  212. data/lib/alchemy/tasks/tidy.rb +29 -0
  213. data/lib/alchemy/test_support/essence_shared_examples.rb +0 -1
  214. data/lib/alchemy/test_support/factories/element_factory.rb +8 -8
  215. data/lib/alchemy/test_support/factories/essence_audio_factory.rb +7 -0
  216. data/lib/alchemy/test_support/factories/essence_video_factory.rb +7 -0
  217. data/lib/alchemy/test_support/factories/ingredient_factory.rb +25 -0
  218. data/lib/alchemy/test_support/factories/page_factory.rb +20 -1
  219. data/lib/alchemy/test_support/factories/page_version_factory.rb +23 -0
  220. data/lib/alchemy/test_support/having_crop_action_examples.rb +170 -0
  221. data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +646 -0
  222. data/lib/alchemy/test_support/shared_ingredient_editor_examples.rb +21 -0
  223. data/lib/alchemy/test_support/shared_ingredient_examples.rb +57 -0
  224. data/lib/alchemy/test_support.rb +2 -11
  225. data/lib/alchemy/tinymce.rb +17 -0
  226. data/lib/alchemy/upgrader/five_point_zero.rb +0 -32
  227. data/lib/alchemy/upgrader/six_point_zero.rb +21 -0
  228. data/lib/alchemy/upgrader/tasks/add_page_versions.rb +33 -0
  229. data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +51 -0
  230. data/lib/alchemy/version.rb +1 -1
  231. data/lib/generators/alchemy/elements/elements_generator.rb +1 -0
  232. data/lib/generators/alchemy/elements/templates/view.html.erb +9 -0
  233. data/lib/generators/alchemy/elements/templates/view.html.haml +9 -0
  234. data/lib/generators/alchemy/elements/templates/view.html.slim +9 -0
  235. data/lib/generators/alchemy/ingredient/ingredient_generator.rb +38 -0
  236. data/lib/generators/alchemy/ingredient/templates/editor.html.erb +14 -0
  237. data/lib/generators/alchemy/ingredient/templates/model.rb.tt +13 -0
  238. data/lib/generators/alchemy/ingredient/templates/view.html.erb +1 -0
  239. data/lib/generators/alchemy/install/install_generator.rb +1 -2
  240. data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +1 -1
  241. data/lib/generators/alchemy/menus/templates/node.html.erb +1 -1
  242. data/lib/generators/alchemy/menus/templates/node.html.haml +1 -1
  243. data/lib/generators/alchemy/menus/templates/node.html.slim +1 -1
  244. data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
  245. data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
  246. data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
  247. data/lib/tasks/alchemy/tidy.rake +12 -0
  248. data/lib/tasks/alchemy/upgrade.rake +21 -15
  249. data/package/admin.js +9 -1
  250. data/package/src/file_editors.js +28 -0
  251. data/package/src/image_cropper.js +103 -0
  252. data/package/src/image_loader.js +58 -0
  253. data/package/src/node_tree.js +5 -5
  254. data/package/src/picture_editors.js +169 -0
  255. data/package/src/utils/__tests__/ajax.spec.js +20 -12
  256. data/package/src/utils/ajax.js +8 -3
  257. data/package.json +3 -2
  258. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +3 -18
  259. data/vendor/assets/stylesheets/jquery.Jcrop.min.scss +2 -28
  260. metadata +285 -56
  261. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +0 -44
  262. data/app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee +0 -30
  263. data/app/assets/stylesheets/alchemy/trash.scss +0 -8
  264. data/app/controllers/alchemy/admin/trash_controller.rb +0 -44
  265. data/app/views/alchemy/admin/essence_files/assign.js.erb +0 -3
  266. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +0 -4
  267. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +0 -48
  268. data/app/views/alchemy/admin/trash/clear.js.erb +0 -4
  269. data/app/views/alchemy/admin/trash/index.html.erb +0 -31
  270. 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.5
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-24 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