alchemy_cms 2.1.beta1 → 2.1.beta5

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 (555) hide show
  1. data/.gitignore +2 -1
  2. data/.rspec +2 -2
  3. data/.travis.yml +2 -1
  4. data/Gemfile +8 -9
  5. data/README.md +10 -10
  6. data/Rakefile +0 -1
  7. data/alchemy_cms.gemspec +7 -9
  8. data/app/assets/images/alchemy/icons.png +0 -0
  9. data/app/assets/javascripts/alchemy/alchemy.base.js +8 -2
  10. data/app/assets/javascripts/alchemy/{alchemy.dragndrop.js → alchemy.dragndrop.js.erb} +3 -3
  11. data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +1 -1
  12. data/app/assets/javascripts/alchemy/alchemy.growler.js +3 -3
  13. data/app/assets/javascripts/alchemy/alchemy.js +10 -15
  14. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js +6 -2
  15. data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.preview.js +1 -1
  17. data/app/assets/javascripts/alchemy/alchemy.routes.js.erb +38 -0
  18. data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +360 -0
  19. data/app/assets/javascripts/alchemy/alchemy.windows.js +32 -17
  20. data/app/assets/javascripts/alchemy/preview.js +1 -0
  21. data/{vendor → app}/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -0
  22. data/{vendor → app}/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js +0 -0
  23. data/{vendor → app}/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js +0 -0
  24. data/{vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.erb → app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss} +15 -33
  25. data/app/assets/stylesheets/alchemy/_defaults.scss +4 -16
  26. data/app/assets/stylesheets/alchemy/alchemy.css +2 -2
  27. data/app/assets/stylesheets/alchemy/base.css.scss +161 -205
  28. data/app/assets/stylesheets/alchemy/elements.css.scss +15 -8
  29. data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css → jquery-ui.alchemy.css.scss} +41 -45
  30. data/app/assets/stylesheets/alchemy/jquery.sb.css.scss +14 -10
  31. data/app/assets/stylesheets/alchemy/{tinymce_content.css → tinymce_content.css.scss} +7 -6
  32. data/app/assets/stylesheets/alchemy/{tinymce_dialog.css → tinymce_dialog.css.scss} +7 -7
  33. data/app/controllers/alchemy/admin/attachments_controller.rb +131 -0
  34. data/app/controllers/alchemy/admin/base_controller.rb +118 -0
  35. data/app/controllers/alchemy/admin/clipboard_controller.rb +46 -0
  36. data/app/controllers/alchemy/admin/contents_controller.rb +55 -0
  37. data/app/controllers/alchemy/admin/dashboard_controller.rb +15 -0
  38. data/app/controllers/alchemy/admin/elements_controller.rb +123 -0
  39. data/app/controllers/alchemy/admin/essence_audios_controller.rb +12 -0
  40. data/app/controllers/alchemy/admin/essence_files_controller.rb +27 -0
  41. data/app/controllers/alchemy/admin/essence_flashes_controller.rb +12 -0
  42. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +91 -0
  43. data/app/controllers/alchemy/admin/essence_videos_controller.rb +12 -0
  44. data/app/controllers/alchemy/admin/languages_controller.rb +7 -0
  45. data/app/controllers/alchemy/admin/layoutpages_controller.rb +13 -0
  46. data/app/controllers/alchemy/admin/pages_controller.rb +253 -0
  47. data/app/controllers/alchemy/admin/pictures_controller.rb +139 -0
  48. data/app/controllers/alchemy/admin/resources_controller.rb +132 -0
  49. data/app/controllers/alchemy/admin/trash_controller.rb +24 -0
  50. data/app/controllers/alchemy/admin/users_controller.rb +81 -0
  51. data/app/controllers/alchemy/attachments_controller.rb +30 -0
  52. data/app/controllers/alchemy/base_controller.rb +137 -0
  53. data/app/controllers/alchemy/elements_controller.rb +18 -0
  54. data/app/controllers/alchemy/messages_controller.rb +115 -0
  55. data/app/controllers/alchemy/pages_controller.rb +169 -0
  56. data/app/controllers/alchemy/pictures_controller.rb +62 -0
  57. data/app/controllers/alchemy/user_sessions_controller.rb +80 -0
  58. data/app/helpers/alchemy/admin/attachments_helper.rb +11 -0
  59. data/app/helpers/alchemy/admin/base_helper.rb +423 -0
  60. data/app/helpers/alchemy/admin/contents_helper.rb +75 -0
  61. data/app/helpers/alchemy/admin/elements_helper.rb +118 -0
  62. data/app/helpers/alchemy/admin/essences_helper.rb +78 -0
  63. data/app/helpers/alchemy/admin/pages_helper.rb +46 -0
  64. data/app/helpers/alchemy/admin/pictures_helper.rb +30 -0
  65. data/app/helpers/alchemy/base_helper.rb +65 -0
  66. data/app/helpers/alchemy/elements_helper.rb +173 -0
  67. data/app/helpers/alchemy/essences_helper.rb +101 -0
  68. data/app/helpers/alchemy/pages_helper.rb +550 -0
  69. data/app/mailers/alchemy/messages.rb +17 -0
  70. data/app/mailers/alchemy/notifications.rb +25 -0
  71. data/app/models/alchemy.rb +7 -0
  72. data/app/models/alchemy/attachment.rb +82 -0
  73. data/app/models/alchemy/cell.rb +61 -0
  74. data/app/models/alchemy/content.rb +163 -0
  75. data/app/models/alchemy/element.rb +479 -0
  76. data/app/models/alchemy/essence_audio.rb +19 -0
  77. data/app/models/alchemy/essence_date.rb +22 -0
  78. data/app/models/alchemy/essence_file.rb +19 -0
  79. data/app/models/alchemy/essence_flash.rb +17 -0
  80. data/app/models/alchemy/essence_html.rb +21 -0
  81. data/app/models/alchemy/essence_picture.rb +29 -0
  82. data/app/models/alchemy/essence_richtext.rb +63 -0
  83. data/app/models/alchemy/essence_text.rb +40 -0
  84. data/app/models/alchemy/essence_video.rb +19 -0
  85. data/app/models/alchemy/folded_page.rb +5 -0
  86. data/app/models/alchemy/language.rb +90 -0
  87. data/app/models/alchemy/message.rb +71 -0
  88. data/app/models/alchemy/page.rb +548 -0
  89. data/app/models/alchemy/picture.rb +100 -0
  90. data/app/models/alchemy/user.rb +72 -0
  91. data/app/models/alchemy/user_session.rb +12 -0
  92. data/app/sweepers/alchemy/content_sweeper.rb +22 -0
  93. data/app/sweepers/alchemy/pages_sweeper.rb +49 -0
  94. data/app/sweepers/alchemy/pictures_sweeper.rb +23 -0
  95. data/app/views/{admin → alchemy/admin}/attachments/_archive_overlay.html.erb +6 -6
  96. data/app/views/{admin → alchemy/admin}/attachments/_attachment.html.erb +14 -14
  97. data/app/views/{admin → alchemy/admin}/attachments/_file_to_assign.html.erb +0 -0
  98. data/app/views/alchemy/admin/attachments/_files_list.html.erb +25 -0
  99. data/app/views/{admin → alchemy/admin}/attachments/create.js.erb +0 -0
  100. data/app/views/{admin → alchemy/admin}/attachments/destroy.js.erb +0 -0
  101. data/app/views/{admin → alchemy/admin}/attachments/edit.html.erb +2 -2
  102. data/app/views/alchemy/admin/attachments/index.html.erb +18 -0
  103. data/app/views/{admin → alchemy/admin}/attachments/new.html.erb +3 -3
  104. data/app/views/{admin → alchemy/admin}/clipboard/clear.js.erb +1 -1
  105. data/app/views/alchemy/admin/clipboard/index.html.erb +19 -0
  106. data/app/views/alchemy/admin/clipboard/insert.js.erb +14 -0
  107. data/app/views/alchemy/admin/clipboard/remove.js.erb +10 -0
  108. data/app/views/{admin → alchemy/admin}/contents/_missing.html.erb +4 -4
  109. data/app/views/{admin → alchemy/admin}/contents/create.js.erb +10 -10
  110. data/app/views/{admin → alchemy/admin}/contents/destroy.js.erb +0 -0
  111. data/app/views/{admin → alchemy/admin}/contents/new.html.erb +1 -1
  112. data/app/views/{admin → alchemy/admin}/contents/order.js.erb +0 -0
  113. data/app/views/alchemy/admin/dashboard/index.html.erb +96 -0
  114. data/app/views/{admin → alchemy/admin}/elements/_add_content.html.erb +2 -2
  115. data/app/views/{admin → alchemy/admin}/elements/_element.html.erb +3 -3
  116. data/app/views/{admin → alchemy/admin}/elements/_element_foot.html.erb +8 -8
  117. data/app/views/{admin → alchemy/admin}/elements/_element_head.html.erb +4 -4
  118. data/app/views/{admin → alchemy/admin}/elements/_elements_select.html.erb +2 -2
  119. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +30 -0
  120. data/app/views/{admin → alchemy/admin}/elements/_picture_editor.html.erb +3 -3
  121. data/app/views/{admin → alchemy/admin}/elements/create.js.erb +2 -2
  122. data/app/views/{admin → alchemy/admin}/elements/destroy.js.erb +1 -1
  123. data/app/views/{admin → alchemy/admin}/elements/fold.js.erb +2 -2
  124. data/app/views/{admin → alchemy/admin}/elements/index.html.erb +1 -10
  125. data/app/views/{admin → alchemy/admin}/elements/list.js.erb +2 -2
  126. data/app/views/alchemy/admin/elements/new.html.erb +41 -0
  127. data/app/views/{admin → alchemy/admin}/elements/order.js.erb +1 -1
  128. data/app/views/{admin → alchemy/admin}/elements/trash.js.erb +1 -1
  129. data/app/views/{admin → alchemy/admin}/elements/update.js.erb +1 -1
  130. data/app/views/{admin → alchemy/admin}/essence_files/assign.js.erb +1 -1
  131. data/app/views/{admin → alchemy/admin}/essence_files/edit.html.erb +23 -23
  132. data/app/views/{admin → alchemy/admin}/essence_pictures/assign.js.erb +2 -2
  133. data/app/views/{admin → alchemy/admin}/essence_pictures/crop.html.erb +15 -6
  134. data/app/views/{admin → alchemy/admin}/essence_pictures/destroy.js.erb +1 -1
  135. data/app/views/{admin → alchemy/admin}/essence_pictures/edit.html.erb +11 -11
  136. data/app/views/{admin → alchemy/admin}/essence_pictures/save_link.js.erb +0 -0
  137. data/app/views/{admin → alchemy/admin}/essence_pictures/update.js.erb +2 -2
  138. data/app/views/alchemy/admin/languages/_language.html.erb +36 -0
  139. data/app/views/{admin → alchemy/admin}/layoutpages/_layoutpage.html.erb +18 -18
  140. data/app/views/alchemy/admin/layoutpages/index.html.erb +65 -0
  141. data/app/views/{admin → alchemy/admin}/pages/_contactform_links.html.erb +6 -6
  142. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +38 -0
  143. data/app/views/{admin → alchemy/admin}/pages/_external_link.html.erb +9 -9
  144. data/app/views/{admin → alchemy/admin}/pages/_file_link.html.erb +13 -13
  145. data/app/views/{admin → alchemy/admin}/pages/_internal_link.html.erb +8 -8
  146. data/app/views/{admin → alchemy/admin}/pages/_new_page_form.html.erb +6 -6
  147. data/app/views/{admin → alchemy/admin}/pages/_page.html.erb +25 -25
  148. data/app/views/{admin → alchemy/admin}/pages/_page_for_links.html.erb +6 -6
  149. data/app/views/{admin → alchemy/admin}/pages/_page_infos.html.erb +3 -3
  150. data/app/views/{admin → alchemy/admin}/pages/_page_status.html.erb +4 -4
  151. data/app/views/{admin → alchemy/admin}/pages/_sitemap.html.erb +21 -21
  152. data/app/views/alchemy/admin/pages/configure.html.erb +71 -0
  153. data/app/views/{admin → alchemy/admin}/pages/configure_external.html.erb +9 -9
  154. data/app/views/{admin → alchemy/admin}/pages/destroy.js.erb +2 -2
  155. data/app/views/alchemy/admin/pages/edit.html.erb +181 -0
  156. data/app/views/alchemy/admin/pages/flush.js.erb +2 -0
  157. data/app/views/{admin → alchemy/admin}/pages/fold.js.erb +0 -0
  158. data/app/views/alchemy/admin/pages/index.html.erb +104 -0
  159. data/app/views/{admin → alchemy/admin}/pages/link.html.erb +4 -4
  160. data/app/views/alchemy/admin/pages/locked.html.erb +3 -0
  161. data/app/views/{admin → alchemy/admin}/pages/new.html.erb +8 -8
  162. data/app/views/{admin → alchemy/admin}/pages/show.html.erb +0 -0
  163. data/app/views/{admin → alchemy/admin}/pages/sort.js.erb +0 -0
  164. data/app/views/{admin → alchemy/admin}/pages/unlock.js.erb +1 -1
  165. data/app/views/{admin → alchemy/admin}/pages/update.js.erb +5 -5
  166. data/app/views/{admin → alchemy/admin}/partials/_flash.html.erb +0 -0
  167. data/app/views/{admin → alchemy/admin}/partials/_flash_notices.html.erb +1 -1
  168. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +14 -0
  169. data/app/views/alchemy/admin/partials/_pagination_links.html.erb +5 -0
  170. data/app/views/{admin → alchemy/admin}/partials/_remote_pagination_links.html.erb +2 -2
  171. data/app/views/{admin → alchemy/admin}/partials/_remote_search_form.html.erb +2 -2
  172. data/app/views/{admin → alchemy/admin}/partials/_search_form.html.erb +6 -7
  173. data/app/views/alchemy/admin/partials/_sub_navigation_tab.html.erb +8 -0
  174. data/app/views/alchemy/admin/partials/_upload_form.html.erb +129 -0
  175. data/app/views/{admin → alchemy/admin}/pictures/_archive_overlay.html.erb +3 -3
  176. data/app/views/{admin → alchemy/admin}/pictures/_filter_and_size_bar.html.erb +15 -15
  177. data/app/views/{admin → alchemy/admin}/pictures/_picture.html.erb +7 -7
  178. data/app/views/{admin → alchemy/admin}/pictures/_picture_to_assign.html.erb +2 -2
  179. data/app/views/alchemy/admin/pictures/_pictures_list.html.erb +14 -0
  180. data/app/views/{admin → alchemy/admin}/pictures/archive_overlay.js.erb +0 -0
  181. data/app/views/{admin → alchemy/admin}/pictures/create.js.erb +3 -3
  182. data/app/views/{admin → alchemy/admin}/pictures/flush.js.erb +0 -0
  183. data/app/views/alchemy/admin/pictures/index.html.erb +83 -0
  184. data/app/views/{admin → alchemy/admin}/pictures/new.html.erb +3 -3
  185. data/app/views/alchemy/admin/pictures/show_in_window.html.erb +1 -0
  186. data/app/views/{admin → alchemy/admin}/pictures/update.js.erb +0 -0
  187. data/app/views/alchemy/admin/resources/_form.html.erb +20 -0
  188. data/app/views/alchemy/admin/resources/_resource.html.erb +35 -0
  189. data/app/views/alchemy/admin/resources/_table.html.erb +23 -0
  190. data/app/views/alchemy/admin/resources/destroy.js.erb +1 -0
  191. data/app/views/{admin/languages → alchemy/admin/resources}/edit.html.erb +0 -0
  192. data/app/views/alchemy/admin/resources/index.html.erb +19 -0
  193. data/app/views/{admin/languages → alchemy/admin/resources}/new.html.erb +0 -0
  194. data/app/views/{admin → alchemy/admin}/trash/clear.js.erb +1 -1
  195. data/app/views/{admin → alchemy/admin}/trash/index.html.erb +4 -4
  196. data/app/views/alchemy/admin/users/_table.html.erb +54 -0
  197. data/app/views/{admin → alchemy/admin}/users/_user.html.erb +14 -12
  198. data/app/views/{admin → alchemy/admin}/users/edit.html.erb +0 -0
  199. data/app/views/alchemy/admin/users/index.html.erb +41 -0
  200. data/app/views/{admin → alchemy/admin}/users/new.html.erb +1 -1
  201. data/app/views/{attachments → alchemy/attachments}/show.html.erb +0 -0
  202. data/app/views/alchemy/base/500.html.erb +5 -0
  203. data/app/views/alchemy/base/error_notice.js.erb +2 -0
  204. data/app/views/alchemy/base/permission_denied.js.erb +2 -0
  205. data/app/views/alchemy/{redirect.js.erb → base/redirect.js.erb} +0 -0
  206. data/app/views/alchemy/{remote_errors.js.erb → base/remote_errors.js.erb} +0 -0
  207. data/app/views/alchemy/{update.js.erb → base/update.js.erb} +0 -0
  208. data/app/views/{elements → alchemy/elements}/_article_editor.html.erb +0 -0
  209. data/app/views/{elements → alchemy/elements}/_article_view.html.erb +1 -1
  210. data/app/views/{elements → alchemy/elements}/_bild_editor.html.erb +0 -0
  211. data/app/views/{elements → alchemy/elements}/_bild_text_editor.html.erb +0 -0
  212. data/app/views/{elements → alchemy/elements}/_bild_text_view.html.erb +1 -1
  213. data/app/views/{elements → alchemy/elements}/_bild_view.html.erb +1 -1
  214. data/app/views/{elements → alchemy/elements}/_claim_editor.html.erb +0 -0
  215. data/app/views/{elements → alchemy/elements}/_claim_view.html.erb +0 -0
  216. data/app/views/{elements → alchemy/elements}/_contactform_editor.html.erb +0 -0
  217. data/app/views/{elements → alchemy/elements}/_contactform_view.html.erb +0 -0
  218. data/app/views/{elements → alchemy/elements}/_editor_not_found.html.erb +1 -1
  219. data/app/views/{elements → alchemy/elements}/_footnote_editor.html.erb +0 -0
  220. data/app/views/{elements → alchemy/elements}/_footnote_view.html.erb +0 -0
  221. data/app/views/{elements → alchemy/elements}/_header_editor.html.erb +0 -0
  222. data/app/views/{elements → alchemy/elements}/_header_view.html.erb +1 -1
  223. data/app/views/{elements → alchemy/elements}/_headline_editor.html.erb +0 -0
  224. data/app/views/{elements → alchemy/elements}/_headline_view.html.erb +0 -0
  225. data/app/views/{elements → alchemy/elements}/_image_mosaic_editor.html.erb +0 -0
  226. data/app/views/{elements → alchemy/elements}/_image_mosaic_view.html.erb +1 -1
  227. data/app/views/{elements → alchemy/elements}/_intro_editor.html.erb +0 -0
  228. data/app/views/{elements → alchemy/elements}/_intro_image_text_editor.html.erb +0 -0
  229. data/app/views/{elements → alchemy/elements}/_intro_image_text_view.html.erb +1 -1
  230. data/app/views/{elements → alchemy/elements}/_intro_view.html.erb +0 -0
  231. data/app/views/{elements → alchemy/elements}/_news_editor.html.erb +0 -0
  232. data/app/views/{elements → alchemy/elements}/_news_view.html.erb +0 -0
  233. data/app/views/alchemy/elements/_searchresult_editor.html.erb +1 -0
  234. data/app/views/alchemy/elements/_searchresult_view.html.erb +4 -0
  235. data/app/views/alchemy/elements/_sitemap_editor.html.erb +3 -0
  236. data/app/views/{elements → alchemy/elements}/_sitemap_view.html.erb +2 -2
  237. data/app/views/{elements → alchemy/elements}/_sitename_editor.html.erb +0 -0
  238. data/app/views/{elements → alchemy/elements}/_sitename_view.html.erb +0 -0
  239. data/app/views/{elements → alchemy/elements}/_subheadline_editor.html.erb +0 -0
  240. data/app/views/{elements → alchemy/elements}/_subheadline_view.html.erb +0 -0
  241. data/app/views/{elements → alchemy/elements}/_text_editor.html.erb +0 -0
  242. data/app/views/{elements → alchemy/elements}/_text_view.html.erb +0 -0
  243. data/app/views/{elements → alchemy/elements}/_view_not_found.html.erb +0 -0
  244. data/app/views/alchemy/elements/show.html.erb +6 -0
  245. data/app/views/{elements → alchemy/elements}/show.js.erb +1 -1
  246. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +1 -0
  247. data/app/views/{essences → alchemy/essences}/_essence_audio_view.html.erb +0 -0
  248. data/app/views/{essences → alchemy/essences}/_essence_date_editor.html.erb +0 -0
  249. data/app/views/{essences → alchemy/essences}/_essence_date_view.html.erb +0 -0
  250. data/app/views/{essences → alchemy/essences}/_essence_file_editor.html.erb +9 -9
  251. data/app/views/{essences → alchemy/essences}/_essence_file_view.html.erb +1 -1
  252. data/app/views/alchemy/essences/_essence_flash_editor.html.erb +1 -0
  253. data/app/views/{essences → alchemy/essences}/_essence_flash_view.html.erb +0 -0
  254. data/app/views/{essences → alchemy/essences}/_essence_html_editor.html.erb +0 -0
  255. data/app/views/{essences → alchemy/essences}/_essence_html_view.html.erb +0 -0
  256. data/app/views/{essences → alchemy/essences}/_essence_picture_editor.html.erb +8 -8
  257. data/app/views/{essences → alchemy/essences}/_essence_picture_tools.html.erb +11 -11
  258. data/app/views/{essences → alchemy/essences}/_essence_picture_view.html.erb +2 -4
  259. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +11 -0
  260. data/app/views/{essences → alchemy/essences}/_essence_richtext_view.html.erb +0 -0
  261. data/app/views/{essences → alchemy/essences}/_essence_text_editor.html.erb +6 -6
  262. data/app/views/{essences → alchemy/essences}/_essence_text_view.html.erb +0 -0
  263. data/app/views/alchemy/essences/_essence_video_editor.html.erb +1 -0
  264. data/app/views/{essences → alchemy/essences}/_essence_video_view.html.erb +1 -1
  265. data/app/views/{messages → alchemy/messages}/contact_form_mail.html.erb +0 -0
  266. data/app/views/{messages → alchemy/messages}/contact_form_mail.text.erb +0 -0
  267. data/app/views/{messages → alchemy/messages}/new.html.erb +0 -0
  268. data/app/views/{navigation → alchemy/navigation}/_image_link.html.erb +0 -0
  269. data/app/views/{navigation → alchemy/navigation}/_link.html.erb +1 -1
  270. data/app/views/{navigation → alchemy/navigation}/_renderer.html.erb +0 -0
  271. data/app/views/alchemy/notifications/admin_user_created.text.erb +13 -0
  272. data/app/views/alchemy/notifications/registered_user_created.text.erb +10 -0
  273. data/app/views/{page_layouts → alchemy/page_layouts}/_contact.html.erb +0 -0
  274. data/app/views/{page_layouts → alchemy/page_layouts}/_external.html.erb +0 -0
  275. data/app/views/{page_layouts → alchemy/page_layouts}/_intro.html.erb +0 -0
  276. data/app/views/{page_layouts → alchemy/page_layouts}/_layout_footer.html.erb +0 -0
  277. data/app/views/{page_layouts → alchemy/page_layouts}/_layout_header.html.erb +0 -0
  278. data/app/views/{page_layouts → alchemy/page_layouts}/_news.html.erb +0 -0
  279. data/app/views/{_newsletter_layout.html.erb → alchemy/page_layouts/_newsletter_layout.html.erb} +0 -0
  280. data/app/views/{page_layouts → alchemy/page_layouts}/_search.html.erb +0 -0
  281. data/app/views/{page_layouts → alchemy/page_layouts}/_standard.html.erb +0 -0
  282. data/app/views/{pages → alchemy/pages}/show.html.erb +0 -0
  283. data/app/views/{pages → alchemy/pages}/show.rss.builder +0 -0
  284. data/app/views/{pages → alchemy/pages}/sitemap.xml.erb +0 -0
  285. data/app/views/{pictures → alchemy/pictures}/show.gif.flexi +0 -0
  286. data/app/views/{pictures → alchemy/pictures}/show.jpg.flexi +0 -0
  287. data/app/views/{pictures → alchemy/pictures}/show.png.flexi +0 -0
  288. data/app/views/{pictures → alchemy/pictures}/thumbnail.png.flexi +0 -0
  289. data/app/views/{pictures → alchemy/pictures}/zoom.png.flexi +0 -0
  290. data/app/views/alchemy/search/_result.html.erb +9 -0
  291. data/app/views/alchemy/user_sessions/leave.html.erb +11 -0
  292. data/app/views/alchemy/user_sessions/login.html.erb +47 -0
  293. data/app/views/alchemy/user_sessions/logout.html.erb +3 -0
  294. data/app/views/alchemy/user_sessions/signup.html.erb +14 -0
  295. data/app/views/layouts/{alchemy.html.erb → alchemy/admin.html.erb} +23 -17
  296. data/app/views/layouts/alchemy/login.html.erb +37 -0
  297. data/app/views/layouts/alchemy/pages.html.erb +29 -0
  298. data/app/views/layouts/{sitemap.xml.erb → alchemy/sitemap.xml.erb} +0 -0
  299. data/config/alchemy/config.yml +2 -80
  300. data/config/alchemy/modules.yml +70 -0
  301. data/config/alchemy/page_layouts.yml +2 -0
  302. data/config/authorization_rules.rb +32 -39
  303. data/config/locales/alchemy.de.yml +789 -0
  304. data/config/locales/alchemy.en.yml +587 -0
  305. data/config/routes.rb +144 -142
  306. data/db/migrate/20111116125112_namespace_models.rb +23 -0
  307. data/lib/alchemy/auth_engine.rb +7 -0
  308. data/lib/alchemy/capistrano.rb +4 -1
  309. data/lib/alchemy/engine.rb +39 -25
  310. data/lib/alchemy/essence.rb +5 -1
  311. data/lib/alchemy/i18n.rb +47 -0
  312. data/lib/alchemy/modules.rb +38 -0
  313. data/lib/alchemy/page_layout.rb +98 -56
  314. data/lib/alchemy/seeder.rb +60 -110
  315. data/lib/alchemy/tinymce.rb +2 -2
  316. data/lib/alchemy/version.rb +3 -3
  317. data/lib/alchemy_cms.rb +23 -23
  318. data/lib/rails/generators/alchemy/elements/elements_generator.rb +1 -1
  319. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +1 -1
  320. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +2 -2
  321. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +1 -1
  322. data/lib/rails/generators/alchemy/plugin/plugin_generator.rb +0 -1
  323. data/lib/rails/generators/alchemy/scaffold/files/pages.html.erb +1 -1
  324. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +34 -34
  325. data/lib/tasks/install.rake +2 -9
  326. data/lib/tasks/upgrade.rake +69 -208
  327. data/spec/controllers/admin/clipboard_controller_spec.rb +33 -35
  328. data/spec/controllers/admin/contents_controller_spec.rb +5 -5
  329. data/spec/controllers/admin/elements_controller_spec.rb +22 -0
  330. data/spec/controllers/admin/trash_controller_spec.rb +5 -5
  331. data/spec/controllers/base_controller_spec.rb +67 -0
  332. data/spec/controllers/pages_controller_spec.rb +6 -6
  333. data/spec/dummy/config/application.rb +1 -8
  334. data/spec/dummy/config/routes.rb +2 -57
  335. data/spec/dummy/db/schema.rb +27 -27
  336. data/spec/factories.rb +8 -8
  337. data/spec/helpers/{alchemy_helper_spec.rb → admin/base_helper_spec.rb} +8 -1
  338. data/spec/helpers/admin/contents_helper_spec.rb +25 -0
  339. data/spec/helpers/admin/elements_helper_spec.rb +31 -3
  340. data/spec/helpers/admin/essences_helper_spec.rb +27 -0
  341. data/spec/helpers/elements_helper_spec.rb +99 -21
  342. data/spec/helpers/essences_helper_spec.rb +1 -18
  343. data/spec/helpers/pages_helper_spec.rb +212 -26
  344. data/spec/integration/admin/pages_controller_spec.rb +56 -0
  345. data/spec/integration/navigation_spec.rb +1 -1
  346. data/spec/integration/pages_controller_spec.rb +85 -68
  347. data/spec/integration/security_spec.rb +49 -22
  348. data/spec/models/content_spec.rb +3 -3
  349. data/spec/models/element_spec.rb +19 -11
  350. data/spec/models/essence_richtext_spec.rb +2 -2
  351. data/spec/models/language_spec.rb +36 -7
  352. data/spec/models/page_spec.rb +57 -13
  353. data/spec/models/user_spec.rb +1 -1
  354. data/spec/page_layout_spec.rb +13 -3
  355. data/spec/routing_spec.rb +12 -8
  356. data/spec/spec_helper.rb +8 -9
  357. data/spec/support/controller_hacks.rb +37 -0
  358. data/vendor/assets/javascripts/swfupload/SWFObject License.txt +4 -0
  359. data/vendor/assets/javascripts/swfupload/swfupload.cookies.js +53 -0
  360. data/vendor/assets/javascripts/swfupload/swfupload.js +1 -1
  361. data/vendor/assets/javascripts/swfupload/{queue.js → swfupload.queue.js} +97 -97
  362. data/vendor/assets/javascripts/swfupload/swfupload.speed.js +342 -0
  363. data/vendor/assets/javascripts/swfupload/swfupload.swfobject.js +111 -0
  364. data/vendor/assets/javascripts/tiny_mce/license.txt +504 -504
  365. data/vendor/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  366. data/vendor/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
  367. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  368. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  369. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  370. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  371. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  372. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  373. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  374. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
  375. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
  376. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
  377. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
  378. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
  379. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
  380. data/vendor/assets/javascripts/tiny_mce/plugins/table/cell.htm +180 -180
  381. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/cell.css +16 -16
  382. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/row.css +25 -25
  383. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/table.css +13 -13
  384. data/vendor/assets/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
  385. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/cell.js +319 -319
  386. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
  387. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/row.js +237 -237
  388. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/table.js +484 -450
  389. data/vendor/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
  390. data/vendor/assets/javascripts/tiny_mce/plugins/table/row.htm +158 -158
  391. data/vendor/assets/javascripts/tiny_mce/plugins/table/table.htm +188 -188
  392. data/vendor/assets/javascripts/tiny_mce/themes/advanced/about.htm +52 -52
  393. data/vendor/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -26
  394. data/vendor/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +55 -51
  395. data/vendor/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -74
  396. data/vendor/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  397. data/vendor/assets/javascripts/tiny_mce/themes/advanced/image.htm +80 -80
  398. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/about.js +73 -73
  399. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +43 -43
  400. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +363 -355
  401. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -329
  402. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/image.js +251 -251
  403. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/link.js +153 -153
  404. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -56
  405. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +1 -1
  406. data/vendor/assets/javascripts/tiny_mce/themes/advanced/link.htm +57 -57
  407. data/vendor/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
  408. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +50 -50
  409. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -117
  410. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -214
  411. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
  412. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
  413. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
  414. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -48
  415. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -117
  416. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -217
  417. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
  418. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
  419. data/vendor/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
  420. data/vendor/assets/javascripts/tiny_mce/tiny_mce.js +1 -1
  421. data/vendor/assets/javascripts/tiny_mce/utils/editable_selects.js +70 -70
  422. data/vendor/assets/javascripts/tiny_mce/utils/form_utils.js +210 -210
  423. data/vendor/assets/javascripts/tiny_mce/utils/mctabs.js +161 -161
  424. data/vendor/assets/javascripts/tiny_mce/utils/validate.js +252 -252
  425. metadata +432 -465
  426. data/app/controllers/admin/attachments_controller.rb +0 -136
  427. data/app/controllers/admin/clipboard_controller.rb +0 -43
  428. data/app/controllers/admin/contents_controller.rb +0 -60
  429. data/app/controllers/admin/elements_controller.rb +0 -134
  430. data/app/controllers/admin/essence_audios_controller.rb +0 -10
  431. data/app/controllers/admin/essence_files_controller.rb +0 -25
  432. data/app/controllers/admin/essence_flashes_controller.rb +0 -10
  433. data/app/controllers/admin/essence_pictures_controller.rb +0 -84
  434. data/app/controllers/admin/essence_videos_controller.rb +0 -10
  435. data/app/controllers/admin/languages_controller.rb +0 -64
  436. data/app/controllers/admin/layoutpages_controller.rb +0 -12
  437. data/app/controllers/admin/pages_controller.rb +0 -251
  438. data/app/controllers/admin/pictures_controller.rb +0 -143
  439. data/app/controllers/admin/trash_controller.rb +0 -28
  440. data/app/controllers/admin/users_controller.rb +0 -73
  441. data/app/controllers/admin_controller.rb +0 -76
  442. data/app/controllers/alchemy_controller.rb +0 -245
  443. data/app/controllers/attachments_controller.rb +0 -28
  444. data/app/controllers/elements_controller.rb +0 -16
  445. data/app/controllers/messages_controller.rb +0 -113
  446. data/app/controllers/pages_controller.rb +0 -150
  447. data/app/controllers/pictures_controller.rb +0 -63
  448. data/app/helpers/admin/attachments_helper.rb +0 -7
  449. data/app/helpers/admin/elements_helper.rb +0 -112
  450. data/app/helpers/admin/pages_helper.rb +0 -38
  451. data/app/helpers/admin/pictures_helper.rb +0 -26
  452. data/app/helpers/alchemy_helper.rb +0 -379
  453. data/app/helpers/contents_helper.rb +0 -69
  454. data/app/helpers/elements_helper.rb +0 -170
  455. data/app/helpers/essences_helper.rb +0 -167
  456. data/app/helpers/layout_helper.rb +0 -37
  457. data/app/helpers/pages_helper.rb +0 -503
  458. data/app/mailers/messages.rb +0 -15
  459. data/app/mailers/notifications.rb +0 -23
  460. data/app/models/attachment.rb +0 -80
  461. data/app/models/cell.rb +0 -59
  462. data/app/models/content.rb +0 -145
  463. data/app/models/element.rb +0 -476
  464. data/app/models/essence_audio.rb +0 -17
  465. data/app/models/essence_date.rb +0 -20
  466. data/app/models/essence_file.rb +0 -17
  467. data/app/models/essence_flash.rb +0 -15
  468. data/app/models/essence_html.rb +0 -19
  469. data/app/models/essence_picture.rb +0 -27
  470. data/app/models/essence_richtext.rb +0 -61
  471. data/app/models/essence_text.rb +0 -38
  472. data/app/models/essence_video.rb +0 -17
  473. data/app/models/folded_page.rb +0 -3
  474. data/app/models/language.rb +0 -83
  475. data/app/models/message.rb +0 -69
  476. data/app/models/page.rb +0 -545
  477. data/app/models/picture.rb +0 -98
  478. data/app/models/user.rb +0 -70
  479. data/app/models/user_session.rb +0 -10
  480. data/app/sweepers/content_sweeper.rb +0 -20
  481. data/app/sweepers/pages_sweeper.rb +0 -47
  482. data/app/sweepers/pictures_sweeper.rb +0 -21
  483. data/app/views/_contact.html.erb +0 -3
  484. data/app/views/_intro.html.erb +0 -3
  485. data/app/views/_news.html.erb +0 -3
  486. data/app/views/_search.html.erb +0 -3
  487. data/app/views/_standard.html.erb +0 -1
  488. data/app/views/admin/attachments/_files_list.html.erb +0 -24
  489. data/app/views/admin/attachments/index.html.erb +0 -30
  490. data/app/views/admin/clipboard/index.html.erb +0 -19
  491. data/app/views/admin/clipboard/insert.js.erb +0 -14
  492. data/app/views/admin/clipboard/remove.js.erb +0 -10
  493. data/app/views/admin/elements/_new_element_form.html.erb +0 -25
  494. data/app/views/admin/elements/new.html.erb +0 -33
  495. data/app/views/admin/index.html.erb +0 -102
  496. data/app/views/admin/infos.html.erb +0 -5
  497. data/app/views/admin/languages/_form.html.erb +0 -34
  498. data/app/views/admin/languages/_language.html.erb +0 -35
  499. data/app/views/admin/languages/destroy.js.erb +0 -1
  500. data/app/views/admin/languages/index.html.erb +0 -41
  501. data/app/views/admin/layoutpages/index.html.erb +0 -75
  502. data/app/views/admin/leave.html.erb +0 -11
  503. data/app/views/admin/login.html.erb +0 -46
  504. data/app/views/admin/logout.html.erb +0 -5
  505. data/app/views/admin/pages/_create_language_form.html.erb +0 -43
  506. data/app/views/admin/pages/configure.html.erb +0 -71
  507. data/app/views/admin/pages/edit.html.erb +0 -185
  508. data/app/views/admin/pages/flush.js.erb +0 -2
  509. data/app/views/admin/pages/index.html.erb +0 -108
  510. data/app/views/admin/pages/locked.html.erb +0 -3
  511. data/app/views/admin/partials/_mainnavigation_entry.html.erb +0 -27
  512. data/app/views/admin/partials/_pagination_links.html.erb +0 -5
  513. data/app/views/admin/partials/_per_page_links.html.erb +0 -17
  514. data/app/views/admin/partials/_sub_navigation.html.erb +0 -14
  515. data/app/views/admin/partials/_upload_form.html.erb +0 -119
  516. data/app/views/admin/pictures/_pictures_list.html.erb +0 -12
  517. data/app/views/admin/pictures/index.html.erb +0 -89
  518. data/app/views/admin/pictures/show_in_window.html.erb +0 -1
  519. data/app/views/admin/signup.html.erb +0 -16
  520. data/app/views/admin/users/_table.html.erb +0 -54
  521. data/app/views/admin/users/index.html.erb +0 -41
  522. data/app/views/alchemy/error_notice.js.erb +0 -1
  523. data/app/views/alchemy/permission_denied.js.erb +0 -2
  524. data/app/views/elements/_searchresult_editor.html.erb +0 -1
  525. data/app/views/elements/_searchresult_view.html.erb +0 -49
  526. data/app/views/elements/_sitemap_editor.html.erb +0 -3
  527. data/app/views/elements/show.html.erb +0 -6
  528. data/app/views/essences/_essence_audio_editor.html.erb +0 -1
  529. data/app/views/essences/_essence_flash_editor.html.erb +0 -1
  530. data/app/views/essences/_essence_richtext_editor.html.erb +0 -9
  531. data/app/views/essences/_essence_video_editor.html.erb +0 -1
  532. data/app/views/layouts/login.html.erb +0 -59
  533. data/app/views/layouts/pages.html.erb +0 -29
  534. data/app/views/notifications/admin_user_created.text.erb +0 -13
  535. data/app/views/notifications/registered_user_created.text.erb +0 -10
  536. data/app/views/page_layouts/_newsletter_layout.html.erb +0 -1
  537. data/config/initializers/authorization.rb +0 -4
  538. data/config/initializers/fast_gettext.rb +0 -3
  539. data/config/locales/de.yml +0 -377
  540. data/config/locales/en.yml +0 -371
  541. data/lib/alchemy/controller.rb +0 -79
  542. data/lib/rails/generators/alchemy/plugin/templates/gettext.rb +0 -2
  543. data/lib/tasks/gettext.rake +0 -120
  544. data/lib/translation_extras/alchemy_core_modules.rb +0 -11
  545. data/locale/alchemy.pot +0 -1749
  546. data/locale/de/alchemy.po +0 -1795
  547. data/locale/en/alchemy.po +0 -1745
  548. data/locale/missing_translations.rb +0 -4
  549. data/locale/model_attributes.rb +0 -56
  550. data/spec/helpers/contents_helper_spec.rb +0 -27
  551. data/vendor/assets/javascripts/jquery-1.6.2.min.js +0 -18
  552. data/vendor/assets/javascripts/jquery-ui-custom-1.8.16.min.js +0 -550
  553. data/vendor/assets/javascripts/swfupload/fileprogress.js +0 -203
  554. data/vendor/assets/javascripts/swfupload/handlers.js +0 -171
  555. data/vendor/assets/javascripts/tiny_mce/jquery.tinymce.js +0 -1
@@ -7,7 +7,7 @@ module Alchemy
7
7
  source_root File.expand_path('templates', File.dirname(__FILE__))
8
8
 
9
9
  def create_directory
10
- @elements_dir = "#{Rails.root}/app/views/elements"
10
+ @elements_dir = "#{Rails.root}/app/views/alchemy/elements"
11
11
  empty_directory @elements_dir
12
12
  end
13
13
 
@@ -1,6 +1,6 @@
1
1
  <%- unless @contents.blank? -%>
2
2
  <%- @contents.each do |content| -%>
3
- <%- unless content["type"] == "EssencePicture" -%>
3
+ <%- unless content["type"] == "Alchemy::EssencePicture" -%>
4
4
  <%%= render_essence_editor_by_name(element, '<%= content["name"] %>') %>
5
5
  <%- else -%>
6
6
  <%%= render_picture_editor(element) %>
@@ -1,9 +1,9 @@
1
1
  <div class="<%= @element_name %>" id="<%%= element_dom_id(element) %>"<%%= element_preview_code(element) -%>>
2
2
  <%- unless @contents.blank? -%>
3
3
  <%- @contents.each do |content| -%>
4
- <%- if content["type"] == "EssencePicture" -%>
4
+ <%- if content["type"] == "Alchemy::EssencePicture" -%>
5
5
  <div class="<%= @element_name %>_images">
6
- <%%- element.all_contents_by_type("EssencePicture").each do |content| -%>
6
+ <%%- element.all_contents_by_type("Alchemy::EssencePicture").each do |content| -%>
7
7
  <div class="<%= @element_name %>_image <%%= content.essence.css_class %>">
8
8
  <%%= render_essence_view(content, :image_size => "160x120") %>
9
9
  </div>
@@ -7,7 +7,7 @@ module Alchemy
7
7
  source_root File.expand_path('templates', File.dirname(__FILE__))
8
8
 
9
9
  def create_directory
10
- @page_layouts_dir = "#{Rails.root}/app/views/page_layouts"
10
+ @page_layouts_dir = "#{Rails.root}/app/views/alchemy/page_layouts"
11
11
  empty_directory @page_layouts_dir
12
12
  end
13
13
 
@@ -25,7 +25,6 @@ module Alchemy
25
25
  copy_file("#{File.dirname(__FILE__)}/files/translation.pot", "#{@plugin_path}/locale/#{@plugin_name}.pot")
26
26
  copy_file("#{File.dirname(__FILE__)}/files/translation_de.po", "#{@plugin_path}/locale/de/#{@plugin_name}.po")
27
27
  copy_file("#{File.dirname(__FILE__)}/files/translation_en.po", "#{@plugin_path}/locale/en/#{@plugin_name}.po")
28
- template("gettext.rb", "#{@plugin_path}/config/initializers/gettext.rb")
29
28
  template("config.yml", "#{@plugin_path}/config/alchemy/config.yml")
30
29
  template("authorization_rules.rb", "#{@plugin_path}/config/authorization_rules.rb")
31
30
  template("routes.rb", "#{@plugin_path}/config/routes.rb")
@@ -1,4 +1,4 @@
1
- <!DOCTYPE>
1
+ <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
4
  <%= render_meta_data %>
@@ -1,41 +1,41 @@
1
1
  require 'rails'
2
2
 
3
3
  module Alchemy
4
- module Generators
5
- class ScaffoldGenerator < ::Rails::Generators::Base
6
- desc "This generator generates the Alchemy scaffold. Pass --with-standard-set to copy Alchemys Standardset files into your app."
7
- class_option 'with-standard-set', :type => :boolean, :desc => "Copy standard set files."
8
- source_root File.expand_path('templates', File.dirname(__FILE__))
9
-
10
- def create_config_dir
11
- empty_directory "#{Rails.root}/config/alchemy"
12
- end
4
+ module Generators
5
+ class ScaffoldGenerator < ::Rails::Generators::Base
6
+ desc "This generator generates the Alchemy scaffold. Pass --with-standard-set to copy Alchemys Standardset files into your app."
7
+ class_option 'with-standard-set', :type => :boolean, :desc => "Copy standard set files."
8
+ source_root File.expand_path('templates', File.dirname(__FILE__))
9
+
10
+ def create_config_dir
11
+ empty_directory "#{Rails.root}/config/alchemy"
12
+ end
13
13
 
14
14
  def create_view_dirs
15
- empty_directory Rails.root.join("app/views/elements")
16
- empty_directory Rails.root.join("app/views/page_layouts")
15
+ empty_directory Rails.root.join("app/views/alchemy/elements")
16
+ empty_directory Rails.root.join("app/views/alchemy/page_layouts")
17
+ end
18
+
19
+ def copy_config
20
+ @config_path = File.expand_path('../../../../../config/alchemy', File.dirname(__FILE__))
21
+ copy_file "#{@config_path}/config.yml", "#{Rails.root}/config/alchemy/config.yml"
17
22
  end
18
-
19
- def copy_config
20
- @config_path = File.expand_path('../../../../../config/alchemy', File.dirname(__FILE__))
21
- copy_file "#{@config_path}/config.yml", "#{Rails.root}/config/alchemy/config.yml"
22
- end
23
-
24
- def copy_files
25
- if options['with-standard-set']
26
- layouts_path = File.expand_path('../../../../../app/views/layouts', File.dirname(__FILE__))
27
- copy_file "#{@config_path}/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
28
- copy_file "#{@config_path}/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
29
- copy_file "#{layouts_path}/pages.html.erb", "#{Rails.root}/app/views/layouts/pages.html.erb"
30
- Rails::Generators.invoke("alchemy:elements")
31
- Rails::Generators.invoke("alchemy:page_layouts")
32
- else
33
- copy_file "#{File.dirname(__FILE__)}/files/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
34
- copy_file "#{File.dirname(__FILE__)}/files/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
35
- copy_file "#{File.dirname(__FILE__)}/files/pages.html.erb", "#{Rails.root}/app/views/layouts/pages.html.erb"
36
- end
37
- end
38
-
39
- end
40
- end
23
+
24
+ def copy_files
25
+ if options['with-standard-set']
26
+ layouts_path = File.expand_path('../../../../../app/views/layouts/alchemy', File.dirname(__FILE__))
27
+ copy_file "#{@config_path}/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
28
+ copy_file "#{@config_path}/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
29
+ copy_file "#{layouts_path}/pages.html.erb", "#{Rails.root}/app/views/layouts/alchemy/pages.html.erb"
30
+ Rails::Generators.invoke("alchemy:elements")
31
+ Rails::Generators.invoke("alchemy:page_layouts")
32
+ else
33
+ copy_file "#{File.dirname(__FILE__)}/files/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
34
+ copy_file "#{File.dirname(__FILE__)}/files/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
35
+ copy_file "#{File.dirname(__FILE__)}/files/pages.html.erb", "#{Rails.root}/app/views/layouts/alchemy/pages.html.erb"
36
+ end
37
+ end
38
+
39
+ end
40
+ end
41
41
  end
@@ -5,7 +5,7 @@ namespace :alchemy do
5
5
 
6
6
  desc "Migrates the database, inserts essential data into the database and copies all assets."
7
7
  task :prepare do
8
- Rake::Task['alchemy:migrations:sync'].invoke
8
+ Rake::Task['alchemy:install:migrations'].invoke
9
9
  Rake::Task['alchemy:seeder:copy'].invoke
10
10
  Rake::Task['alchemy:assets:copy:all'].invoke
11
11
  end
@@ -19,13 +19,6 @@ namespace :alchemy do
19
19
  end
20
20
  end
21
21
  end
22
-
23
- namespace 'migrations' do
24
- desc "Syncs Alchemy migrations into db/migrate"
25
- task 'sync' do
26
- system "rsync -ruv #{File.join(File.dirname(__FILE__), '..', '..', 'db', 'migrate')} #{Rails.root}/db"
27
- end
28
- end
29
22
 
30
23
  namespace 'assets' do
31
24
  namespace 'copy' do
@@ -82,7 +75,7 @@ namespace :alchemy do
82
75
  page_layouts.each do |layout|
83
76
  unless layout['cells'].blank?
84
77
  cells_for_layout = cells.select { |cell| layout['cells'].include? cell['name'] }
85
- Page.find_all_by_page_layout(layout['name']).each do |page|
78
+ Alchemy::Page.find_all_by_page_layout(layout['name']).each do |page|
86
79
  cells_for_layout.each do |cell_for_layout|
87
80
  cell = Cell.find_or_initialize_by_name_and_page_id({:name => cell_for_layout['name'], :page_id => page.id})
88
81
  cell.elements << page.elements.select { |element| cell_for_layout['elements'].include?(element.name) }
@@ -1,211 +1,72 @@
1
- # TODO: Refactor for Rails 3
2
1
  namespace :alchemy do
3
- namespace :upgrade do
4
-
5
- desc "Removing unused files and directories"
6
- task "cleanup" do
7
- system('rm -rf vendor/plugins/webmate')
8
- system('rm -rf public/plugin_assets/webmate')
9
- system('rm config/initializers/fast_gettext.rb config/initializers/cache_storage.rb config/initializers/session_store.rb')
10
- end
11
-
12
- desc 'Writes a rake file into lib/tasks to make all the Alchemy plugins tasks available'
13
- task 'write_rake_task' do
14
- s = <<EOF
15
- # Make all the Alchemy plugins tasks available
16
- Dir.glob(File.dirname(__FILE__) + "/../../vendor/plugins/alchemy/plugins/**/tasks/*.rake").each do |rake_file|
17
- import rake_file
18
- end
19
- EOF
20
- File.open('lib/tasks/alchemy_plugins_tasks.rake', 'w') { |f| f.write(s)}
21
- end
22
-
23
- desc "Generates migration for upgrading the database."
24
- task "generate_migration" do
25
- system('script/generate migration upgrade_db_for_alchemy')
26
- migration_file = Dir.glob("db/migrate/*_upgrade_db_for_alchemy.rb").first
27
- s = <<EOF
28
- class UpgradeDbForAlchemy < ActiveRecord::Migration
29
- def self.up
30
-
31
- # Removing unused tables
32
- drop_table :wa_atom_checkboxes
33
- drop_table :wa_atom_formtags
34
- drop_table :wa_atom_galleries
35
- drop_table :wa_atom_gallery_pictures
36
- drop_table :wa_atom_molecule_selectors
37
- drop_table :wa_atom_resetbuttons
38
- drop_table :wa_atom_selectboxes
39
- drop_table :wa_atom_submitbuttons
40
- drop_table :wa_atom_text_bigs
41
- drop_table :wa_atom_textareas
42
- drop_table :wa_atom_textfields
43
- drop_table :wa_gallery_images
44
- drop_table :wa_atom_sitemaps
45
-
46
- # renaming tables
47
- rename_table :wa_pages, :pages
48
- rename_table :wa_molecules, :elements
49
- rename_table :wa_atoms, :contents
50
- rename_table :wa_users, :users
51
- rename_table :wa_images, :pictures
52
- rename_table :wa_files, :attachments
53
- rename_table :wa_foldeds, :folded_pages
54
- rename_table :wa_molecules_wa_pages, :elements_pages
55
- rename_table :wa_atom_texts, :essence_texts
56
- rename_table :wa_atom_rtfs, :essence_richtexts
57
- rename_table :wa_atom_pictures, :essence_pictures
58
- rename_table :wa_atom_files, :essence_files
59
- rename_table :wa_atom_htmls, :essence_htmls
60
- rename_table :wa_atom_flashvideos, :essence_videos
61
- rename_table :wa_atom_flashes, :essence_flashes
62
- rename_table :wa_atom_dates, :essence_dates
63
- rename_table :wa_atom_audios, :essence_audios
64
-
65
- # renaming tables rows
66
- rename_column :elements, :wa_page_id, :page_id
67
- rename_column :elements_pages, :wa_molecule_id, :element_id
68
- rename_column :elements_pages, :wa_page_id, :page_id
69
- rename_column :folded_pages, :wa_user_id, :user_id
70
- rename_column :folded_pages, :wa_page_id, :page_id
71
- rename_column :contents, :wa_molecule_id, :element_id
72
- rename_column :contents, :atom_id, :essence_id
73
- rename_column :contents, :atom_type, :essence_type
74
- rename_column :essence_pictures, :wa_image_id, :picture_id
75
- rename_column :essence_files, :wa_file_id, :attachment_id
76
- rename_column :essence_videos, :wa_file_id, :attachment_id
77
- rename_column :essence_audios, :wa_file_id, :attachment_id
78
- rename_column :essence_flashes, :wa_file_id, :attachment_id
79
- rename_column :essence_texts, :content, :body
80
- rename_column :essence_richtexts, :content, :body
81
- rename_column :essence_richtexts, :stripped_content, :stripped_body
82
- rename_column :pages, :systempage, :layoutpage
83
-
84
- # Changing WaAtoms to Essences
85
- execute("UPDATE contents SET essence_type = REPLACE(essence_type, 'WaAtom', 'Essence')")
86
- execute("UPDATE contents SET essence_type = REPLACE(essence_type, 'EssenceRtf', 'EssenceRichtext')")
87
- execute("UPDATE contents SET essence_type = REPLACE(essence_type, 'EssenceFlashvideo', 'EssenceVideo')")
88
-
89
- # Renaming old userstamp columns to new userstamp columns
90
- rename_column :essence_htmls, :content, :source
91
- rename_column :pages, :created_by, :creator_id
92
- rename_column :pages, :updated_by, :updater_id
93
-
94
- # Adding userstamps to tables
95
- add_column :essence_audios, :creator_id, :integer
96
- add_column :essence_audios, :updater_id, :integer
97
- add_column :attachments, :creator_id, :integer
98
- add_column :attachments, :updater_id, :integer
99
- add_column :contents, :creator_id, :integer
100
- add_column :contents, :updater_id, :integer
101
- add_column :essence_dates, :creator_id, :integer
102
- add_column :essence_dates, :updater_id, :integer
103
- add_column :essence_files, :creator_id, :integer
104
- add_column :essence_files, :updater_id, :integer
105
- add_column :essence_flashes, :creator_id, :integer
106
- add_column :essence_flashes, :updater_id, :integer
107
- add_column :essence_htmls, :creator_id, :integer
108
- add_column :essence_htmls, :updater_id, :integer
109
- add_column :essence_pictures, :creator_id, :integer
110
- add_column :essence_pictures, :updater_id, :integer
111
- add_column :essence_richtexts, :creator_id, :integer
112
- add_column :essence_richtexts, :updater_id, :integer
113
- add_column :essence_texts, :creator_id, :integer
114
- add_column :essence_texts, :updater_id, :integer
115
- add_column :essence_videos, :creator_id, :integer
116
- add_column :essence_videos, :updater_id, :integer
117
- add_column :pictures, :creator_id, :integer
118
- add_column :pictures, :updater_id, :integer
119
- add_column :elements, :creator_id, :integer
120
- add_column :elements, :updater_id, :integer
121
- add_column :users, :creator_id, :integer
122
- add_column :users, :updater_id, :integer
123
-
124
- # Adding columns
125
- add_column :users, :gender, :string
126
-
127
- execute("INSERT INTO schema_migrations SET version = '20100607143125-alchemy'")
128
- execute("INSERT INTO schema_migrations SET version = '20100607144254-alchemy'")
129
- execute("INSERT INTO schema_migrations SET version = '20100607145256-alchemy'")
130
- execute("INSERT INTO schema_migrations SET version = '20100607145719-alchemy'")
131
- execute("INSERT INTO schema_migrations SET version = '20100607150611-alchemy'")
132
- execute("INSERT INTO schema_migrations SET version = '20100607150812-alchemy'")
133
- execute("INSERT INTO schema_migrations SET version = '20100607153647-alchemy'")
134
- execute("INSERT INTO schema_migrations SET version = '20100607161345-alchemy'")
135
- execute("INSERT INTO schema_migrations SET version = '20100607162339-alchemy'")
136
- execute("INSERT INTO schema_migrations SET version = '20100607193638-alchemy'")
137
- execute("INSERT INTO schema_migrations SET version = '20100607193646-alchemy'")
138
- execute("INSERT INTO schema_migrations SET version = '20100607193653-alchemy'")
139
- execute("INSERT INTO schema_migrations SET version = '20100609111653-alchemy'")
140
- execute("INSERT INTO schema_migrations SET version = '20100609111809-alchemy'")
141
- execute("INSERT INTO schema_migrations SET version = '20100609111821-alchemy'")
142
- execute("INSERT INTO schema_migrations SET version = '20100609111837-alchemy'")
143
- execute("INSERT INTO schema_migrations SET version = '20100616150753-alchemy'")
144
- execute("INSERT INTO schema_migrations SET version = '20100709163925-alchemy'")
145
- execute("INSERT INTO schema_migrations SET version = '20100812085225-alchemy'")
146
-
147
- end
148
-
149
- def self.down
150
- raise IrreversibleMigration
151
- end
152
- end
153
- EOF
154
- File.open(migration_file, 'w') { |f| f.write(s)}
155
- end
156
-
157
- desc "Updates the config/environment.rb file"
158
- task "environment_file" do
159
- s = <<EOF
160
- RAILS_GEM_VERSION = '2.3.10' unless defined? RAILS_GEM_VERSION
161
-
162
- require File.join(File.dirname(__FILE__), 'boot')
163
-
164
- Rails::Initializer.run do |config|
165
- config.gem 'acts_as_ferret', :version => '0.4.8.2'
166
- config.gem 'authlogic', :version => '>=2.1.2'
167
- config.gem 'awesome_nested_set', :version => '>=1.4.3'
168
- config.gem 'declarative_authorization', :version => '>=0.4.1'
169
- config.gem "fleximage", :version => ">=1.0.4"
170
- config.gem 'fast_gettext', :version => '>=0.4.8'
171
- config.gem 'gettext_i18n_rails', :version => '0.2.3'
172
- config.gem 'gettext', :lib => false, :version => '>=1.9.3'
173
- config.gem 'rmagick', :lib => "RMagick2", :version => '>=2.13.1'
174
- config.gem 'jk-ferret', :version => '>=0.11.8.2', :lib => 'ferret'
175
- config.gem 'will_paginate', :version => '2.3.15'
176
- config.gem 'mimetype-fu', :version => '>=0.1.2', :lib => 'mimetype_fu'
177
- config.autoload_paths += %W( vendor/plugins/alchemy/app/sweepers )
178
- config.autoload_paths += %W( vendor/plugins/alchemy/app/middleware )
179
- config.i18n.load_path += Dir[Rails.root.join('vendor/plugins/alchemy/config', 'locales', '*.{rb,yml}')]
180
- config.time_zone = 'Berlin'
181
- config.i18n.default_locale = :de
182
- end
183
- EOF
184
- File.open('config/environment.rb', 'w') { |f| f.write(s)}
185
- end
186
-
187
- namespace :svn do
188
-
189
- desc "Renaming files and folders for svn repository"
190
- task "rename" do
191
- system('svn rename config/webmate config/alchemy')
192
- system('svn rename config/alchemy/molecules.yml config/alchemy/elements.yml')
193
- system('svn rename app/views/wa_molecules app/views/elements')
194
- system('svn rename app/views/layouts/wa_pages.html.erb app/views/layouts/pages.html.erb')
195
- system('svn remove config/initializers/fast_gettext.rb config/initializers/cache_storage.rb')
196
- end
197
-
198
- desc "Commits everything into you svn repository"
199
- task "commit" do
200
- system("svn mkdir uploads")
201
- system("svn propset svn:ignore '*' uploads/")
202
- system("svn add lib/tasks/alchemy_plugins_tasks.rake")
203
- system("svn add db/migrate/*")
204
- system("svn commit -m 'upgraded to alchemy'")
205
- end
206
-
207
- end
208
-
209
- end
2
+
3
+ desc "Upgrades database to Alchemy CMS v#{Alchemy::VERSION}."
4
+ task :upgrade => :environment do
5
+
6
+ # invoke seed task
7
+ Rake::Task['db:seed'].invoke
8
+
9
+ # Creates Language model if it does not exist (Alchemy CMS prior v1.5)
10
+ # Also creates missing associations between pages and languages
11
+ Alchemy::Page.all.each do |page|
12
+ if !page.language_code.blank? && page.language.nil?
13
+ root = page.get_language_root
14
+ lang = Alchemy::Language.find_or_create_by_code(
15
+ :name => page.language_code.capitalize,
16
+ :code => page.language_code,
17
+ :frontpage_name => root.name,
18
+ :page_layout => root.page_layout,
19
+ :public => true
20
+ )
21
+ page.language = lang
22
+ if page.save(:validate => false)
23
+ puts "== Set language for page #{page.name} to #{lang.name}"
24
+ end
25
+ else
26
+ puts "== Skipping! Language for page #{page.name} already set."
27
+ end
28
+ end
29
+ default_language = Alchemy::Language.get_default
30
+ Alchemy::Page.layoutpages.each do |page|
31
+ if page.language.class == String || page.language.nil?
32
+ page.language = default_language
33
+ if page.save(:validate => false)
34
+ puts "== Set language for page #{page.name} to #{default_language.name}"
35
+ end
36
+ else
37
+ puts "== Skipping! Language for page #{page.name} already set."
38
+ end
39
+ end
40
+ (Alchemy::EssencePicture.all + Alchemy::EssenceText.all).each do |essence|
41
+ case essence.link_target
42
+ when '1'
43
+ if essence.update_attribute(:link_target, 'blank')
44
+ puts "== Updated #{essence.preview_text} link target to #{essence.link_target}."
45
+ end
46
+ when '0'
47
+ essence.update_attribute(:link_target, nil)
48
+ puts "== Updated #{essence.preview_text} link target to #{essence.link_target.inspect}."
49
+ end
50
+ end
51
+
52
+ # Updates all essence_type of Content if not already namespaced.
53
+ depricated_contents = Alchemy::Content.where("essence_type LIKE ?", "Essence%")
54
+ if depricated_contents.any?
55
+ success = 0
56
+ errors = []
57
+ depricated_contents.each do |c|
58
+ if c.update_attribute(:essence_type, c.essence_type.gsub(/^Essence/, 'Alchemy::Essence'))
59
+ success += 1
60
+ else
61
+ errors << c.errors.full_messages
62
+ end
63
+ end
64
+ puts "== Namespaced #{success} Essence-Types." if success > 0
65
+ puts "!! #{errors.count} errors while namespacing Essence-Types.\n#{errors.join('\n')}" if errors.count > 0
66
+ else
67
+ puts "== Skipping! Already namespaced Essence-Types"
68
+ end
69
+
70
+ end
210
71
 
211
72
  end
@@ -1,51 +1,49 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Admin::ClipboardController do
3
+ describe Alchemy::Admin::ClipboardController do
4
4
 
5
5
  before(:each) do
6
6
  activate_authlogic
7
- user = Factory(:admin_user)
8
- user.save_without_session_maintenance
9
- UserSession.create user
7
+ Alchemy::UserSession.create(Factory(:admin_user))
10
8
  end
11
9
 
12
- context "clipboard" do
10
+ context "clipboard" do
13
11
 
14
- it "should hold element ids" do
15
- @page = Factory(:page, :parent_id => Page.rootpage.id)
16
- @element = Factory(:element, :page => @page)
17
- @another_element = Factory(:element, :page => @page)
18
- session[:clipboard] = { :elements => [{:id => @element.id, :action => 'copy'}] }
12
+ it "should hold element ids" do
13
+ @page = Factory(:page, :parent_id => Alchemy::Page.rootpage.id)
14
+ @element = Factory(:element, :page => @page)
15
+ @another_element = Factory(:element, :page => @page)
16
+ session['clipboard'] = { 'elements' => [{:id => @element.id, :action => 'copy'}] }
19
17
  post(:insert, {:remarkable_type => 'element', :remarkable_id => @another_element.id, :format => :js})
20
- session[:clipboard][:elements].should == [{:id => @element.id, :action => 'copy'}, {:id => @another_element.id.to_s, :action => 'copy'}]
21
- end
18
+ session['clipboard']['elements'].should == [{:id => @element.id, :action => 'copy'}, {:id => @another_element.id.to_s, :action => 'copy'}]
19
+ end
22
20
 
23
- it "should not have the same element twice" do
24
- @page = Factory(:page, :parent_id => Page.rootpage.id)
25
- @element = Factory(:element, :page => @page)
26
- session[:clipboard] = { :elements => [{:id => @element.id, :action => 'copy'}] }
21
+ it "should not have the same element twice" do
22
+ @page = Factory(:page, :parent_id => Alchemy::Page.rootpage.id)
23
+ @element = Factory(:element, :page => @page)
24
+ session['clipboard'] = { 'elements' => [{:id => @element.id, :action => 'copy'}] }
27
25
  post(:insert, {:remarkable_type => 'element', :remarkable_id => @element.id, :format => :js})
28
- session[:clipboard][:elements].should == [{:id => @element.id, :action => 'copy'}]
29
- end
30
-
31
- it "should remove element ids" do
32
- @page = Factory(:page, :parent_id => Page.rootpage.id)
33
- @element = Factory(:element, :page => @page)
34
- @another_element = Factory(:element, :page => @page)
35
- session[:clipboard] = { :elements => [{:id => @element.id, :action => 'copy'}, {:id => @another_element.id, :action => 'copy'}] }
26
+ session['clipboard']['elements'].should == [{:id => @element.id, :action => 'copy'}]
27
+ end
28
+
29
+ it "should remove element ids" do
30
+ @page = Factory(:page, :parent_id => Alchemy::Page.rootpage.id)
31
+ @element = Factory(:element, :page => @page)
32
+ @another_element = Factory(:element, :page => @page)
33
+ session['clipboard'] = { 'elements' => [{:id => @element.id, :action => 'copy'}, {:id => @another_element.id, :action => 'copy'}] }
36
34
  delete(:remove, {:remarkable_type => 'element', :remarkable_id => @another_element.id, :format => :js})
37
- session[:clipboard][:elements].should == [{:id => @element.id, :action => 'copy'}]
38
- end
39
-
40
- it "should be clearable" do
41
- @page = Factory(:page, :parent_id => Page.rootpage.id)
42
- @element = Factory(:element, :page => @page)
43
- @another_element = Factory(:element, :page => @page)
44
- session[:clipboard] = { :elements => [@element.id, @another_element.id] }
35
+ session['clipboard']['elements'].should == [{:id => @element.id, :action => 'copy'}]
36
+ end
37
+
38
+ it "should be clearable" do
39
+ @page = Factory(:page, :parent_id => Alchemy::Page.rootpage.id)
40
+ @element = Factory(:element, :page => @page)
41
+ @another_element = Factory(:element, :page => @page)
42
+ session['clipboard'] = { 'elements' => [@element.id, @another_element.id] }
45
43
  delete(:clear, :format => :js)
46
- session[:clipboard].should == {}
47
- end
44
+ session['clipboard'].should == {}
45
+ end
48
46
 
49
- end
47
+ end
50
48
 
51
49
  end