alchemy_cms 2.1.12 → 2.2.rc1

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 (405) hide show
  1. data/.travis.yml +1 -1
  2. data/Gemfile +20 -16
  3. data/README.md +11 -7
  4. data/alchemy_cms.gemspec +31 -29
  5. data/app/assets/javascripts/alchemy/alchemy.base.js +234 -233
  6. data/app/assets/javascripts/alchemy/alchemy.buttons.js +26 -26
  7. data/app/assets/javascripts/alchemy/alchemy.datepicker.js +32 -32
  8. data/app/assets/javascripts/alchemy/alchemy.dirty.js +78 -78
  9. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +103 -103
  10. data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +84 -84
  11. data/app/assets/javascripts/alchemy/alchemy.elements_window.js +88 -88
  12. data/app/assets/javascripts/alchemy/alchemy.file_progress.js +92 -0
  13. data/app/assets/javascripts/alchemy/alchemy.growler.js +23 -23
  14. data/app/assets/javascripts/alchemy/alchemy.html5.js +23 -0
  15. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js +53 -52
  16. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +33 -30
  17. data/app/assets/javascripts/alchemy/alchemy.js +2 -0
  18. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +14 -14
  19. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +181 -0
  20. data/app/assets/javascripts/alchemy/alchemy.menubar.js +48 -48
  21. data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +39 -39
  22. data/app/assets/javascripts/alchemy/alchemy.preview.js +81 -83
  23. data/app/assets/javascripts/alchemy/alchemy.preview_window.js +86 -86
  24. data/app/assets/javascripts/alchemy/alchemy.routes.js.erb +23 -23
  25. data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +208 -353
  26. data/app/assets/javascripts/alchemy/alchemy.uploader.js +279 -0
  27. data/app/assets/javascripts/alchemy/alchemy.windows.js +268 -268
  28. data/app/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +42 -42
  29. data/app/assets/stylesheets/alchemy/_defaults.scss +89 -89
  30. data/app/assets/stylesheets/alchemy/base.css.scss +790 -804
  31. data/app/assets/stylesheets/alchemy/buttons.css.scss +263 -264
  32. data/app/assets/stylesheets/alchemy/dashboard.css.scss +66 -66
  33. data/app/assets/stylesheets/alchemy/elements.css.scss +575 -564
  34. data/app/assets/stylesheets/alchemy/flash.css.scss +45 -45
  35. data/app/assets/stylesheets/alchemy/frame.css.scss +262 -262
  36. data/app/assets/stylesheets/alchemy/icons.css.scss +86 -86
  37. data/app/assets/stylesheets/alchemy/jquery-ui.alchemy.css.scss +706 -707
  38. data/app/assets/stylesheets/alchemy/jquery.Jcrop.css.scss +46 -27
  39. data/app/assets/stylesheets/alchemy/jquery.sb.css.scss +107 -107
  40. data/app/assets/stylesheets/alchemy/login.css.scss +40 -38
  41. data/app/assets/stylesheets/alchemy/menubar.css.scss +84 -82
  42. data/app/assets/stylesheets/alchemy/modules.css.scss +9 -9
  43. data/app/assets/stylesheets/alchemy/pagination.css.scss +49 -49
  44. data/app/assets/stylesheets/alchemy/print.css +7 -7
  45. data/app/assets/stylesheets/alchemy/sitemap.css.scss +185 -154
  46. data/app/assets/stylesheets/alchemy/standard_set.css +205 -206
  47. data/app/assets/stylesheets/alchemy/tables.css.scss +94 -60
  48. data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +34 -34
  49. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +177 -177
  50. data/app/assets/stylesheets/alchemy/upload.css.scss +68 -45
  51. data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +222 -221
  52. data/app/controllers/alchemy/admin/attachments_controller.rb +100 -100
  53. data/app/controllers/alchemy/admin/base_controller.rb +116 -116
  54. data/app/controllers/alchemy/admin/clipboard_controller.rb +44 -44
  55. data/app/controllers/alchemy/admin/contents_controller.rb +55 -55
  56. data/app/controllers/alchemy/admin/dashboard_controller.rb +12 -11
  57. data/app/controllers/alchemy/admin/elements_controller.rb +109 -109
  58. data/app/controllers/alchemy/admin/essence_audios_controller.rb +8 -8
  59. data/app/controllers/alchemy/admin/essence_files_controller.rb +20 -20
  60. data/app/controllers/alchemy/admin/essence_flashes_controller.rb +8 -8
  61. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +81 -81
  62. data/app/controllers/alchemy/admin/essence_videos_controller.rb +8 -8
  63. data/app/controllers/alchemy/admin/languages_controller.rb +16 -4
  64. data/app/controllers/alchemy/admin/layoutpages_controller.rb +9 -9
  65. data/app/controllers/alchemy/admin/pages_controller.rb +249 -248
  66. data/app/controllers/alchemy/admin/pictures_controller.rb +105 -105
  67. data/app/controllers/alchemy/admin/resources_controller.rb +111 -166
  68. data/app/controllers/alchemy/admin/trash_controller.rb +18 -18
  69. data/app/controllers/alchemy/admin/users_controller.rb +69 -69
  70. data/app/controllers/alchemy/attachments_controller.rb +27 -27
  71. data/app/controllers/alchemy/base_controller.rb +159 -155
  72. data/app/controllers/alchemy/elements_controller.rb +16 -16
  73. data/app/controllers/alchemy/messages_controller.rb +59 -59
  74. data/app/controllers/alchemy/pages_controller.rb +194 -198
  75. data/app/controllers/alchemy/pictures_controller.rb +57 -57
  76. data/app/controllers/alchemy/user_sessions_controller.rb +70 -70
  77. data/app/helpers/alchemy/admin/attachments_helper.rb +7 -7
  78. data/app/helpers/alchemy/admin/base_helper.rb +425 -425
  79. data/app/helpers/alchemy/admin/contents_helper.rb +72 -72
  80. data/app/helpers/alchemy/admin/elements_helper.rb +108 -107
  81. data/app/helpers/alchemy/admin/essences_helper.rb +108 -108
  82. data/app/helpers/alchemy/admin/pages_helper.rb +42 -42
  83. data/app/helpers/alchemy/admin/pictures_helper.rb +26 -26
  84. data/app/helpers/alchemy/base_helper.rb +90 -90
  85. data/app/helpers/alchemy/elements_helper.rb +167 -168
  86. data/app/helpers/alchemy/essences_helper.rb +133 -133
  87. data/app/helpers/alchemy/pages_helper.rb +515 -526
  88. data/app/helpers/alchemy/pictures_helper.rb +19 -0
  89. data/app/mailers/alchemy/messages.rb +13 -13
  90. data/app/mailers/alchemy/notifications.rb +19 -19
  91. data/app/models/alchemy.rb +3 -3
  92. data/app/models/alchemy/attachment.rb +52 -78
  93. data/app/models/alchemy/cell.rb +48 -48
  94. data/app/models/alchemy/content.rb +196 -196
  95. data/app/models/alchemy/element.rb +500 -490
  96. data/app/models/alchemy/essence_audio.rb +7 -7
  97. data/app/models/alchemy/essence_date.rb +10 -10
  98. data/app/models/alchemy/essence_file.rb +7 -7
  99. data/app/models/alchemy/essence_flash.rb +6 -6
  100. data/app/models/alchemy/essence_html.rb +9 -9
  101. data/app/models/alchemy/essence_picture.rb +17 -17
  102. data/app/models/alchemy/essence_richtext.rb +53 -53
  103. data/app/models/alchemy/essence_text.rb +21 -21
  104. data/app/models/alchemy/essence_video.rb +7 -7
  105. data/app/models/alchemy/folded_page.rb +3 -3
  106. data/app/models/alchemy/language.rb +91 -91
  107. data/app/models/alchemy/language/code.rb +14 -14
  108. data/app/models/alchemy/message.rb +48 -45
  109. data/app/models/alchemy/page.rb +555 -558
  110. data/app/models/alchemy/picture.rb +100 -99
  111. data/app/models/alchemy/user.rb +76 -74
  112. data/app/models/alchemy/user_session.rb +8 -8
  113. data/app/sweepers/alchemy/content_sweeper.rb +15 -15
  114. data/app/sweepers/alchemy/pages_sweeper.rb +50 -50
  115. data/app/sweepers/alchemy/pictures_sweeper.rb +14 -14
  116. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +23 -23
  117. data/app/views/alchemy/admin/attachments/_attachment.html.erb +56 -56
  118. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +15 -15
  119. data/app/views/alchemy/admin/attachments/_files_list.html.erb +16 -16
  120. data/app/views/alchemy/admin/attachments/create.js.erb +2 -2
  121. data/app/views/alchemy/admin/attachments/destroy.js.erb +3 -3
  122. data/app/views/alchemy/admin/attachments/edit.html.erb +10 -10
  123. data/app/views/alchemy/admin/attachments/index.html.erb +14 -14
  124. data/app/views/alchemy/admin/attachments/new.html.erb +9 -9
  125. data/app/views/alchemy/admin/clipboard/index.html.erb +21 -21
  126. data/app/views/alchemy/admin/clipboard/insert.js.erb +5 -5
  127. data/app/views/alchemy/admin/contents/_missing.html.erb +1 -1
  128. data/app/views/alchemy/admin/contents/create.js.erb +33 -33
  129. data/app/views/alchemy/admin/contents/destroy.js.erb +5 -5
  130. data/app/views/alchemy/admin/contents/new.html.erb +13 -13
  131. data/app/views/alchemy/admin/contents/order.js.erb +2 -2
  132. data/app/views/alchemy/admin/dashboard/index.html.erb +96 -92
  133. data/app/views/alchemy/admin/elements/_add_content.html.erb +12 -12
  134. data/app/views/alchemy/admin/elements/_element.html.erb +3 -3
  135. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +28 -28
  136. data/app/views/alchemy/admin/elements/_picture_editor.html.erb +21 -21
  137. data/app/views/alchemy/admin/elements/create.js.erb +32 -32
  138. data/app/views/alchemy/admin/elements/index.html.erb +2 -2
  139. data/app/views/alchemy/admin/elements/new.html.erb +31 -31
  140. data/app/views/alchemy/admin/elements/order.js.erb +3 -3
  141. data/app/views/alchemy/admin/elements/trash.js.erb +13 -13
  142. data/app/views/alchemy/admin/elements/update.js.erb +6 -6
  143. data/app/views/alchemy/admin/essence_files/assign.js.erb +6 -6
  144. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +32 -32
  145. data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +1 -1
  146. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +1 -1
  147. data/app/views/alchemy/admin/essence_pictures/update.js.erb +11 -11
  148. data/app/views/alchemy/admin/languages/_form.html.erb +51 -45
  149. data/app/views/alchemy/admin/languages/_language.html.erb +45 -45
  150. data/app/views/alchemy/admin/languages/_table.html.erb +25 -25
  151. data/app/views/alchemy/admin/layoutpages/index.html.erb +35 -35
  152. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +42 -42
  153. data/app/views/alchemy/admin/pages/_external_link.html.erb +1 -1
  154. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +27 -27
  155. data/app/views/alchemy/admin/pages/_page.html.erb +112 -112
  156. data/app/views/alchemy/admin/pages/_sitemap.html.erb +1 -1
  157. data/app/views/alchemy/admin/pages/configure.html.erb +71 -69
  158. data/app/views/alchemy/admin/pages/configure_external.html.erb +38 -38
  159. data/app/views/alchemy/admin/pages/destroy.js.erb +10 -10
  160. data/app/views/alchemy/admin/pages/edit.html.erb +165 -165
  161. data/app/views/alchemy/admin/pages/fold.js.erb +2 -2
  162. data/app/views/alchemy/admin/pages/index.html.erb +66 -66
  163. data/app/views/alchemy/admin/pages/locked.html.erb +1 -1
  164. data/app/views/alchemy/admin/pages/new.html.erb +40 -40
  165. data/app/views/alchemy/admin/pages/sort.js.erb +4 -4
  166. data/app/views/alchemy/admin/pages/unlock.js.erb +6 -6
  167. data/app/views/alchemy/admin/pages/update.js.erb +19 -19
  168. data/app/views/alchemy/admin/partials/_flash.html.erb +2 -2
  169. data/app/views/alchemy/admin/partials/_flash_notices.html.erb +1 -1
  170. data/app/views/alchemy/admin/partials/_flash_upload.html.erb +38 -0
  171. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +15 -15
  172. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +8 -8
  173. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +35 -35
  174. data/app/views/alchemy/admin/partials/_search_form.html.erb +14 -14
  175. data/app/views/alchemy/admin/partials/_sub_navigation_tab.html.erb +6 -6
  176. data/app/views/alchemy/admin/partials/_upload_form.html.erb +56 -118
  177. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +11 -11
  178. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +71 -71
  179. data/app/views/alchemy/admin/pictures/_picture.html.erb +32 -32
  180. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +26 -26
  181. data/app/views/alchemy/admin/pictures/_pictures_list.html.erb +6 -6
  182. data/app/views/alchemy/admin/pictures/create.js.erb +7 -7
  183. data/app/views/alchemy/admin/pictures/index.html.erb +67 -67
  184. data/app/views/alchemy/admin/pictures/show_in_window.html.erb +5 -4
  185. data/app/views/alchemy/admin/resources/_form.html.erb +25 -19
  186. data/app/views/alchemy/admin/resources/_resource.html.erb +37 -36
  187. data/app/views/alchemy/admin/resources/_table.html.erb +17 -17
  188. data/app/views/alchemy/admin/resources/destroy.js.erb +1 -1
  189. data/app/views/alchemy/admin/resources/index.html.erb +14 -14
  190. data/app/views/alchemy/admin/trash/index.html.erb +20 -20
  191. data/app/views/alchemy/admin/users/_table.html.erb +52 -52
  192. data/app/views/alchemy/admin/users/_user.html.erb +35 -36
  193. data/app/views/alchemy/admin/users/index.html.erb +26 -27
  194. data/app/views/alchemy/base/error_notice.html.erb +2 -2
  195. data/app/views/alchemy/base/update.js.erb +1 -1
  196. data/app/views/alchemy/elements/_contactform_view.html.erb +76 -76
  197. data/app/views/alchemy/elements/_download_view.html.erb +1 -1
  198. data/app/views/alchemy/elements/_editor_not_found.html.erb +3 -3
  199. data/app/views/alchemy/elements/_searchresult_view.html.erb +2 -2
  200. data/app/views/alchemy/elements/_sitemap_editor.html.erb +1 -1
  201. data/app/views/alchemy/essences/_essence_audio_view.html.erb +13 -13
  202. data/app/views/alchemy/essences/_essence_date_editor.html.erb +10 -10
  203. data/app/views/alchemy/essences/_essence_file_editor.html.erb +62 -62
  204. data/app/views/alchemy/essences/_essence_file_view.html.erb +8 -8
  205. data/app/views/alchemy/essences/_essence_flash_view.html.erb +19 -19
  206. data/app/views/alchemy/essences/_essence_html_editor.html.erb +6 -6
  207. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +73 -73
  208. data/app/views/alchemy/essences/_essence_picture_view.html.erb +34 -34
  209. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +7 -7
  210. data/app/views/alchemy/essences/_essence_text_editor.html.erb +8 -8
  211. data/app/views/alchemy/navigation/_image_link.html.erb +12 -12
  212. data/app/views/alchemy/navigation/_link.html.erb +13 -13
  213. data/app/views/alchemy/navigation/_renderer.html.erb +17 -17
  214. data/app/views/alchemy/page_layouts/_layout_footer.html.erb +1 -1
  215. data/app/views/alchemy/page_layouts/_layout_header.html.erb +1 -1
  216. data/app/views/alchemy/pages/show.rss.builder +14 -14
  217. data/app/views/alchemy/search/_result.html.erb +7 -7
  218. data/app/views/alchemy/user_sessions/leave.html.erb +9 -9
  219. data/app/views/alchemy/user_sessions/login.html.erb +39 -39
  220. data/app/views/alchemy/user_sessions/logout.html.erb +1 -1
  221. data/app/views/layouts/alchemy/admin.html.erb +81 -81
  222. data/app/views/layouts/alchemy/login.html.erb +36 -36
  223. data/app/views/layouts/alchemy/pages.html.erb +48 -27
  224. data/bin/alchemy +136 -134
  225. data/config/alchemy/config.yml +13 -9
  226. data/config/locales/alchemy.de.yml +24 -30
  227. data/config/locales/alchemy.en.yml +11 -28
  228. data/config/routes.rb +146 -146
  229. data/db/migrate/20100607193638_create_essence_pictures.rb +3 -3
  230. data/db/migrate/20101109150312_alter_pages_visible_column_default.rb +1 -1
  231. data/db/migrate/20101109151812_create_languages.rb +3 -3
  232. data/db/migrate/20110115123343_remove_css_class_default_from_essence_pictures.rb +3 -3
  233. data/db/migrate/20110224105120_change_pages_visible_default.rb +3 -3
  234. data/db/migrate/20110228182659_remove_default_page_layout_from_pages.rb +2 -2
  235. data/db/migrate/20110414163140_remove_display_name_from_elements.rb +3 -3
  236. data/db/migrate/20110511100516_rename_essence_texts_title_to_link_title.rb +2 -2
  237. data/db/migrate/20110529130500_add_cell_id_to_elements.rb +3 -3
  238. data/db/migrate/20110530102804_change_pages_page_layout_column.rb +3 -3
  239. data/db/migrate/20110711142057_change_open_link_in_new_window_to_link_target.rb +1 -1
  240. data/db/migrate/20111116125112_namespace_alchemy_models.rb +21 -21
  241. data/lib/alchemy/auth_engine.rb +5 -5
  242. data/lib/alchemy/capistrano.rb +64 -64
  243. data/lib/alchemy/config.rb +47 -44
  244. data/lib/alchemy/engine.rb +41 -41
  245. data/lib/alchemy/essence.rb +50 -51
  246. data/lib/alchemy/i18n.rb +48 -48
  247. data/lib/alchemy/modules.rb +30 -30
  248. data/lib/alchemy/mount_point.rb +6 -6
  249. data/lib/alchemy/page_layout.rb +94 -93
  250. data/lib/alchemy/resource.rb +82 -0
  251. data/lib/alchemy/resources_helper.rb +56 -0
  252. data/lib/alchemy/scoped_pagination_url_helper.rb +8 -8
  253. data/lib/alchemy/seeder.rb +88 -88
  254. data/lib/alchemy/tinymce.rb +49 -49
  255. data/lib/alchemy/upgrader.rb +103 -103
  256. data/lib/alchemy/version.rb +1 -1
  257. data/lib/alchemy_cms.rb +26 -27
  258. data/lib/extensions/action_view.rb +1 -1
  259. data/lib/extensions/array.rb +3 -3
  260. data/lib/extensions/hash.rb +3 -3
  261. data/lib/middleware/flash_session_cookie.rb +1 -1
  262. data/lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb +24 -24
  263. data/lib/rails/generators/alchemy/elements/elements_generator.rb +7 -7
  264. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +17 -17
  265. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +6 -6
  266. data/lib/rails/generators/alchemy/plugin/templates/authorization_rules.rb +8 -8
  267. data/lib/rails/generators/alchemy/scaffold/files/pages.html.erb +7 -7
  268. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +36 -36
  269. data/lib/rails/templates/alchemy.rb +1 -1
  270. data/lib/tasks/ferret.rake +2 -2
  271. data/lib/tasks/fleximage.rake +32 -32
  272. data/lib/tasks/install.rake +12 -12
  273. data/lib/tasks/upgrade.rake +4 -4
  274. data/spec/controllers/admin/clipboard_controller_spec.rb +43 -43
  275. data/spec/controllers/admin/contents_controller_spec.rb +22 -22
  276. data/spec/controllers/admin/elements_controller_spec.rb +13 -13
  277. data/spec/controllers/admin/languages_controller_spec.rb +31 -0
  278. data/spec/controllers/admin/pages_controller_spec.rb +10 -41
  279. data/spec/controllers/admin/resources_controller_spec.rb +19 -0
  280. data/spec/controllers/admin/trash_controller_spec.rb +11 -11
  281. data/spec/controllers/base_controller_spec.rb +46 -46
  282. data/spec/controllers/pages_controller_spec.rb +102 -92
  283. data/spec/dummy/app/controllers/admin/events_controller.rb +3 -0
  284. data/spec/dummy/app/controllers/errors_controller.rb +5 -0
  285. data/spec/dummy/app/models/event.rb +3 -0
  286. data/spec/dummy/config.ru +1 -1
  287. data/spec/dummy/config/application.rb +3 -0
  288. data/spec/dummy/config/authorization_rules.rb +7 -0
  289. data/spec/dummy/config/environments/development.rb +8 -1
  290. data/spec/dummy/config/environments/production.rb +1 -1
  291. data/spec/dummy/config/environments/test.rb +5 -2
  292. data/spec/dummy/config/routes.rb +9 -1
  293. data/spec/dummy/db/schema.rb +47 -35
  294. data/spec/dummy/public/404.html +19 -7
  295. data/spec/dummy/public/404.html.bak +26 -0
  296. data/spec/dummy/public/422.html +19 -7
  297. data/spec/dummy/public/500.html +19 -7
  298. data/spec/dummy/script/rails +2 -2
  299. data/spec/factories.rb +76 -76
  300. data/spec/helpers/admin/base_helper_spec.rb +21 -21
  301. data/spec/helpers/admin/contents_helper_spec.rb +14 -14
  302. data/spec/helpers/admin/elements_helper_spec.rb +40 -40
  303. data/spec/helpers/admin/essences_helper_spec.rb +7 -7
  304. data/spec/helpers/elements_helper_spec.rb +154 -154
  305. data/spec/helpers/essences_helper_spec.rb +10 -10
  306. data/spec/helpers/pages_helper_spec.rb +369 -372
  307. data/spec/helpers/pictures_helper_spec.rb +14 -0
  308. data/spec/helpers/url_helpers_spec.rb +29 -34
  309. data/spec/integration/admin/pages_controller_spec.rb +50 -50
  310. data/spec/integration/admin/resources_integration_spec.rb +100 -0
  311. data/spec/integration/navigation_spec.rb +1 -1
  312. data/spec/integration/pages_controller_spec.rb +205 -207
  313. data/spec/integration/security_spec.rb +47 -47
  314. data/spec/javascripts/alchemy/link_overlay_spec.js.coffee +42 -0
  315. data/spec/javascripts/alchemy_integration_spec.coffee +12 -0
  316. data/spec/javascripts/fixtures/select.html +3 -0
  317. data/spec/javascripts/helpers/.gitkeep +0 -0
  318. data/spec/javascripts/helpers/jasmine-jquery-1.3.1.js +289 -0
  319. data/spec/javascripts/helpers/mock-ajax.js +207 -0
  320. data/spec/javascripts/helpers/test_responses/test_responses.js +1 -0
  321. data/spec/javascripts/spec.css +3 -0
  322. data/spec/javascripts/spec.js +2 -0
  323. data/spec/libraries/resource_spec.rb +122 -0
  324. data/spec/libraries/resources_helper_spec.rb +105 -0
  325. data/spec/models/content_spec.rb +67 -67
  326. data/spec/models/element_spec.rb +133 -133
  327. data/spec/models/essence_picture_spec.rb +5 -5
  328. data/spec/models/essence_richtext_spec.rb +4 -4
  329. data/spec/models/language_spec.rb +89 -89
  330. data/spec/models/page_spec.rb +436 -506
  331. data/spec/models/picture_spec.rb +34 -34
  332. data/spec/models/user_spec.rb +2 -2
  333. data/spec/page_layout_spec.rb +24 -20
  334. data/spec/routing_spec.rb +253 -253
  335. data/spec/spec_helper.rb +51 -50
  336. data/spec/support/alchemy/controller_hacks.rb +25 -25
  337. data/spec/support/alchemy/specs_helpers.rb +25 -25
  338. data/spec/support/integration_spec_helper.rb +24 -0
  339. data/vendor/assets/javascripts/jquery_plugins/jquery.html5uploader.js +271 -0
  340. data/vendor/assets/javascripts/jquery_plugins/jquery.in-place-edit.js +86 -85
  341. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +380 -377
  342. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +285 -279
  343. data/vendor/assets/javascripts/swfupload/SWFObject License.txt +3 -3
  344. data/vendor/assets/javascripts/swfupload/swfupload.cookies.js +47 -47
  345. data/vendor/assets/javascripts/swfupload/swfupload.js +612 -612
  346. data/vendor/assets/javascripts/swfupload/swfupload.queue.js +93 -93
  347. data/vendor/assets/javascripts/swfupload/swfupload.speed.js +337 -337
  348. data/vendor/assets/javascripts/swfupload/swfupload.swfobject.js +706 -102
  349. data/vendor/assets/javascripts/tiny_mce/license.txt +6 -6
  350. data/vendor/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +97 -97
  351. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +386 -376
  352. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +30 -30
  353. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +45 -45
  354. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +20 -17
  355. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +12 -12
  356. data/vendor/assets/javascripts/tiny_mce/plugins/table/cell.htm +183 -173
  357. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/cell.css +4 -4
  358. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/row.css +7 -7
  359. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/table.css +3 -3
  360. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/cell.js +282 -280
  361. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +15 -15
  362. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/row.js +204 -204
  363. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/table.js +435 -435
  364. data/vendor/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +24 -22
  365. data/vendor/assets/javascripts/tiny_mce/plugins/table/row.htm +144 -136
  366. data/vendor/assets/javascripts/tiny_mce/plugins/table/table.htm +184 -168
  367. data/vendor/assets/javascripts/tiny_mce/themes/advanced/about.htm +62 -46
  368. data/vendor/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +17 -16
  369. data/vendor/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +56 -47
  370. data/vendor/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +67 -54
  371. data/vendor/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +852 -1
  372. data/vendor/assets/javascripts/tiny_mce/themes/advanced/image.htm +79 -69
  373. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/about.js +48 -48
  374. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +28 -28
  375. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +317 -317
  376. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +248 -246
  377. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/image.js +246 -246
  378. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/link.js +146 -146
  379. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +31 -31
  380. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/de.js +1 -1
  381. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +1 -1
  382. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/en.js +1 -1
  383. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +1 -1
  384. data/vendor/assets/javascripts/tiny_mce/themes/advanced/link.htm +53 -46
  385. data/vendor/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +57 -45
  386. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +182 -47
  387. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +399 -92
  388. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +891 -187
  389. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +102 -24
  390. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +377 -78
  391. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +452 -77
  392. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +167 -45
  393. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +399 -92
  394. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +890 -190
  395. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +33 -7
  396. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +15 -4
  397. data/vendor/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +18 -15
  398. data/vendor/assets/javascripts/tiny_mce/utils/editable_selects.js +46 -46
  399. data/vendor/assets/javascripts/tiny_mce/utils/form_utils.js +124 -124
  400. data/vendor/assets/javascripts/tiny_mce/utils/mctabs.js +112 -112
  401. data/vendor/assets/javascripts/tiny_mce/utils/validate.js +213 -213
  402. metadata +102 -115
  403. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js +0 -216
  404. data/lib/tasks/routes.rake +0 -29
  405. data/spec/integration/admin/resources_spec.rb +0 -19
@@ -81,20 +81,20 @@ default_language:
81
81
  # ==== Options:
82
82
  #
83
83
  # page_layout_name: [String] # A +Alchemy::PageLayout+ name. Used to render the contactform on a page with this layout.
84
- # fields: [Array] # An Array of fieldnames.
85
- # validate_fields: [Array] # An Array of fieldnames to be validated on presence.
84
+ # fields: [Array] # An Array of fieldnames
85
+ # validate_fields: [Hash] # A Hash with fieldname as key and a Hash (with :message as key and a message_id as value) as value
86
86
  #
87
87
  # ==== Translating validation messages:
88
88
  #
89
- # The validation messages are passed through ::I18n.t so you can translate it in your language yml file.
89
+ # The message_id is passed through Alchemy::I18n.t so you can translate it in your language yml file.
90
90
  #
91
- # ==== Example:
91
+ # Example:
92
92
  #
93
93
  # de:
94
- # activemodel:
95
- # attributes:
96
- # alchemy/message:
97
- # firstname: Vorname
94
+ # alchemy:
95
+ # contactform:
96
+ # validations:
97
+ # enter_name: 'Bitte geben Sie einen Namen an'
98
98
  #
99
99
  :mailer:
100
100
  :page_layout_name: contact
@@ -103,7 +103,11 @@ default_language:
103
103
  :mail_from: your.mail@your-domain.com
104
104
  :mail_to: your.mail@your-domain.com
105
105
  :fields: [salutation, firstname, lastname, address, zip, city, phone, email, message]
106
- :validate_fields: [lastname, email]
106
+ :validate_fields:
107
+ :lastname:
108
+ :message: enter_name
109
+ :email:
110
+ :message: enter_email
107
111
 
108
112
  # === User roles
109
113
  # You can add own user roles. To set permissions for this roles please add an authorization_rules.rb file in your config folder.
@@ -113,6 +113,12 @@ de:
113
113
  message: 'Nachricht'
114
114
  send: 'absenden'
115
115
  mandatory_fields: '*Pflichtfelder. Bitte füllen Sie diese Felder aus.'
116
+ # Translations for the contactform validations.
117
+ # Validations are set in the config/alchemy/config.yml mailer section.
118
+ validations:
119
+ enter_name: 'Bitte geben Sie Ihren Namen an'
120
+ enter_email: Bitte geben Sie Ihre E-Mail-Adresse an
121
+ wrong_email_format: 'Die E-Mail-Adresse scheint nicht richtig zu sein.'
116
122
  # The flash message shown after succesfully sending the message.
117
123
  messages:
118
124
  success: 'Ihre Nachricht wurde erfolgreich übermittelt.'
@@ -226,7 +232,7 @@ de:
226
232
  "No EssenceType given": ""
227
233
  "No image found. Did you saved the element?": "Es wurde kein Bild gefunden. Haben Sie das Element auch gespeichert?"
228
234
  "No items in your clipboard": "Ihre Zwischenablage ist leer"
229
- "None": "keine"
235
+ "None": ""
230
236
  "Open Link in": "Link öffnen in"
231
237
  "Page deleted": "%{name} wurde gelöscht"
232
238
  "Page saved": "%{name} wurde gespeichert"
@@ -247,11 +253,13 @@ de:
247
253
  "Picture cache flushed": "Bildercache wurde geleert"
248
254
  "Please Signup": "Um Ihre Homepage bearbeiten zu können, müssen Sie als erstes einen Admin Benutzer einrichten."
249
255
  "Please choose": "Bitte wählen"
256
+ "Please choose a page layout.": "Bitte wählen Sie einen Seitentyp."
257
+ choose_element: "Bitte wählen Sie ein Element."
250
258
  "Please log in": "Bitte melden Sie sich an."
251
259
  use_alternative_uploader_instead: "Benutzen Sie bitte diesen alternativen Uploader."
252
260
  "Publish page": "veröffentlichen"
253
261
  "Read the License": "Lizenz lesen"
254
- "Redirects to": "Leitet weiter auf"
262
+ "Redirects to": ""
255
263
  "Remove item from clipboard": "Inhalt aus der Zwischenablage entfernen"
256
264
  "Remove this content": "Diesen Inhalt entfernen"
257
265
  "Reset Imagemask": "Bildmaske zurücksetzen"
@@ -265,6 +273,7 @@ de:
265
273
  "Show trash": "Papierkorb anzeigen"
266
274
  "Size": "Größe"
267
275
  "Sort pages": "Seiten sortieren"
276
+ "Status": ""
268
277
  "Successfully added content": "%{content} wurde hinzugefügt"
269
278
  "Successfully deleted content": "%{content} wurde gelöscht"
270
279
  "Successfully saved content position": "Die Position wurde gespeichert."
@@ -276,6 +285,8 @@ de:
276
285
  "Title": "Titel"
277
286
  "To manage your website open a browser and go to": "Um die Inhalte Ihrer Webseite zu bearbeiten klicken Sie bitte auf folgenden Link"
278
287
  "Trash": "Papierkorb"
288
+ "URL": ""
289
+ "URL-Name already token": "Der URL-Name ist bereits vergeben."
279
290
  "User created": "%{name} wurde erstellt"
280
291
  "User deleted": "%{name} wurde gelöscht"
281
292
  "User updated": "%{name} wurde aktualisiert"
@@ -288,6 +299,7 @@ de:
288
299
  "Warning: Content is missing its description.": "Warnung: Für Content '%{contentname}' konnte die Vorlage nicht gefunden werden."
289
300
  "Warning: Element '%{elementname}' is missing its description.": "Warnung: Für Element '%{elementname}' konnte die Vorlage nicht gefunden werden."
290
301
  "Welcome back, %{name}": "Willkommen zurück, %{name}!"
302
+ "Welcome, %{name}": "Willkommen, %{name}!"
291
303
  "Welcome to Alchemy": "Willkommen in Alchemy!"
292
304
  "Who else is online": "Wer ist noch online"
293
305
  "Yes": "Ja"
@@ -375,6 +387,7 @@ de:
375
387
  step1: "Klicken Sie auf 'durchsuchen' und öffnen Sie den Ordner mit Ihren %{name}"
376
388
  step2: "Wählen Sie alle %{name} aus, die Sie gleichzeitig hochladen wollen"
377
389
  step3: "Klicken Sie auf 'öffnen'. Das Hochladen beginnt!"
390
+ dragndrop: "Alternativ können Sie Dateien auch von Ihrem Computer mit der Maus auf die untere Fläche ziehen."
378
391
  female: "Frau"
379
392
  file: "Datei"
380
393
  file_rename_error: "Datei konnte nicht umbenannt werden."
@@ -470,6 +483,7 @@ de:
470
483
  picture_gallery_editor: 'Bilder'
471
484
  place_link: "Text verlinken"
472
485
  player_version: "Flashplayer Version"
486
+ "please enter a name": "Bitte geben Sie einen Namen ein."
473
487
  "please enter subject and mail address": "Bitte geben Sie den Betreff und eine Empfängeradresse an."
474
488
  please_confirm: "Bitte bestätigen"
475
489
  please_wait: "Bitte warten"
@@ -508,6 +522,7 @@ de:
508
522
  upload_file: "Datei(en) hochladen"
509
523
  upload_image: "Bild(er) hochladen"
510
524
  url_name: "URL-Name"
525
+ urlname_to_short: "Der URL-Name der Seite ist zu kurz (min. 3 Zeichen)"
511
526
  username: "Benutzername"
512
527
  visible: "sichtbar"
513
528
  want_to_create_new_language: "Wollen Sie einen neuen leeren Sprachbaum erstellen?"
@@ -533,7 +548,13 @@ de:
533
548
  "You are already logged in": "Sie sind bereits angemeldet."
534
549
  "No users found": "Keine Benutzer gefunden."
535
550
  "Nothing found": "Keine Einträge gefunden."
536
-
551
+ "Or drag files over here": "Oder ziehen Sie die Dateien hier rauf"
552
+ "Now drop the files": "Lassen Sie die Dateien nun los"
553
+ "Queued x files": "x Dateien in der Warteschlange."
554
+ complete: 'Abgeschlossen'
555
+ "Uploading": "Hochladen"
556
+ "Uploaded x files": "x Dateien hochgeladen."
557
+
537
558
  # END of Alchemy translation
538
559
 
539
560
  # == Rails translations
@@ -642,19 +663,6 @@ de:
642
663
  words_connector: ", "
643
664
  two_words_connector: " und "
644
665
  last_word_connector: " und "
645
-
646
- activemodel:
647
- attributes:
648
- alchemy/message:
649
- salutation: Anrede
650
- firstname: Vorname
651
- lastname: Nachname
652
- address: Adresse
653
- zip: PLZ
654
- city: Ort
655
- phone: Telefon
656
- email: E-Mail
657
- message: Nachricht
658
666
 
659
667
  # Translations for active record database models and error messages.
660
668
  activerecord:
@@ -795,25 +803,11 @@ de:
795
803
  attributes:
796
804
  essence:
797
805
  validation_failed: 'Validierung fehlgeschlagen.'
798
- alchemy/element:
799
- attributes:
800
- name:
801
- blank: "^Bitte wählen Sie ein Element."
802
806
  alchemy/language:
803
807
  attributes:
804
808
  language_code:
805
809
  invalid: 'ist nicht korrekt. Bitte exakt zwei Kleinbuchstaben verwenden.'
806
810
  taken: 'ist für dieses Länderkürzel bereits vergeben.'
807
- alchemy/page:
808
- attributes:
809
- name:
810
- blank: "^Bitte geben Sie einen Namen ein."
811
- page_layout:
812
- blank: "^Bitte wählen Sie einen Seitentyp."
813
- urlname:
814
- too_short: "^Der URL-Name der Seite ist zu kurz (min. 3 Zeichen)"
815
- taken: "^Der URL-Name ist bereits vergeben."
816
- exclusion: "^Der URL-Name der Seite kann nicht benutzt werden."
817
811
 
818
812
  # Translations for the authentication system used in alchemy.
819
813
  authlogic:
@@ -96,6 +96,12 @@ en:
96
96
  message: 'Message'
97
97
  send: 'Send'
98
98
  mandatory_fields: '*Mandatory fields.'
99
+ # Translations for the contactform validations.
100
+ # Validations are set in the config/alchemy/config.yml mailer section.
101
+ validations:
102
+ enter_name: 'Please enter your name'
103
+ enter_email: 'Please enter your email'
104
+ wrong_email_format: 'Email has wrong format'
99
105
  # The flash message shown after succesfully sending the message.
100
106
  messages:
101
107
  success: 'Your message was delivered succesfully.'
@@ -180,6 +186,7 @@ en:
180
186
  big_thumbnails: "Big thumbnails"
181
187
  choose_element_as_target: "Please choose an element as target"
182
188
  choose_element_to_link: "Please choose an element"
189
+ choose_element: "Please choose an element."
183
190
  choose_file_to_link: "Please choose a file to link"
184
191
  click_to_show_all: "Click to show all again."
185
192
  confirm_to_delete_file: "Do you really want to delete this file from the server?"
@@ -293,7 +300,7 @@ en:
293
300
  "Page created": "Page: '%{name}' created."
294
301
  page_for_links.choose_page: "Choose %{name}"
295
302
  page_locked: "This page is locked by another user."
296
- page_properties: "page properties"
303
+ page_properties: "Page properties"
297
304
  page_public: "published"
298
305
  page_published: "Published page"
299
306
  page_restricted: "restricted"
@@ -319,6 +326,7 @@ en:
319
326
  "Picture deleted successfully": "Picture %{name} deleted"
320
327
  place_link: "Link text"
321
328
  player_version: "Flashplayer Version"
329
+ "please enter a name": "Please enter a name."
322
330
  "please enter subject and mail address": "Please enter recipient and subject."
323
331
  please_confirm: "Please confirm"
324
332
  please_wait: "Please wait"
@@ -351,6 +359,7 @@ en:
351
359
  upload_file: "Upload file(s)"
352
360
  upload_image: "Upload image(s)"
353
361
  url_name: "URL-Name"
362
+ urlname_to_short: "The pages urlname is too short (minimum of 3 characters)"
354
363
  username: "Username"
355
364
  want_to_create_new_language: "Do you want to create a new empty language tree?"
356
365
  want_to_make_copy_of_existing_language: "Do you want to copy an existing language tree?"
@@ -479,18 +488,6 @@ en:
479
488
  one: "over 1 year"
480
489
  many: "over %{count} years"
481
490
 
482
- activemodel:
483
- attributes:
484
- alchemy/message:
485
- salutation: 'Salutation'
486
- firstname: 'Firstname'
487
- lastname: 'Lastname'
488
- address: 'Street / No.'
489
- zip: 'Zipcode / City'
490
- phone: 'Telephone'
491
- email: 'Email'
492
- message: 'Message'
493
-
494
491
  # Translations for active record database models and error messages.
495
492
  activerecord:
496
493
 
@@ -592,24 +589,10 @@ en:
592
589
  attributes:
593
590
  essence:
594
591
  validation_failed: 'Validation failed.'
595
- alchemy/element:
596
- attributes:
597
- name:
598
- blank: "^Please choose an element."
599
592
  alchemy/language:
600
593
  attributes:
601
594
  code:
602
- invalid: '^Format of languagecode is not valid. Please use exactly two lowercase characters.'
603
- alchemy/page:
604
- attributes:
605
- name:
606
- blank: "^Please enter a name."
607
- page_layout:
608
- blank: "^Please choose a page layout."
609
- urlname:
610
- too_short: "^The pages urlname is too short (minimum of 3 characters)."
611
- taken: "^URL-Name already taken."
612
- exclusion: "^URL-Name reserved."
595
+ invalid: 'Format of languagecode is not valid. Please use exactly two lowercase characters.'
613
596
 
614
597
  # Translations for the authentication system used in alchemy.
615
598
  authlogic:
@@ -1,150 +1,150 @@
1
1
  Alchemy::Engine.routes.draw do
2
2
 
3
- root :to => 'pages#show'
4
-
5
- match '/admin' => redirect(
6
- "#{Alchemy.mount_point}/admin/dashboard"
7
- )
8
- match '/admin/login' => 'user_sessions#login',
9
- :as => :login
10
- match '/admin/signup' => 'user_sessions#signup',
11
- :as => :signup
12
- match '/admin/leave' => 'user_sessions#leave',
13
- :as => :leave_admin
14
- match '/admin/logout' => 'user_sessions#logout',
15
- :as => :logout
16
- match '/admin/dashboard' => 'admin/dashboard#index',
17
- :as => :admin_dashboard
18
-
19
- match '/attachment/:id/download(/:name)(.:format)' => 'attachments#download',
20
- :as => :download_attachment
21
-
22
- # catching legacy download urls
23
- match '/wa_files/download/:id' => 'attachments#download'
24
- match '/uploads/files/0000/:id/:name(.:suffix)' => 'attachments#download'
25
-
26
- match '/attachment/:id/show' => 'attachments#show',
27
- :as => :show_attachment
28
-
29
- match "/pictures/:id/show(/:size)(/:crop)(/:crop_from/:crop_size)/:name.:format" => 'pictures#show',
30
- :as => :show_picture, :defaults => { :format => Alchemy::Config.get(:image_output_format) }
31
- match '/pictures/:id/zoom/:name.:format' => 'pictures#zoom',
32
- :as => :zoom_picture, :defaults => { :format => Alchemy::Config.get(:image_store_format) }
33
- match "/pictures/:id/thumbnails/:size(/:crop)(/:crop_from/:crop_size)/:name.:format" => 'pictures#thumbnail',
34
- :as => :thumbnail, :defaults => { :format => 'png', :name => "thumbnail" }
35
-
36
- resources :messages, :only => [:index, :new, :create]
37
-
38
- resources :user_sessions
39
- resources :elements, :only => :show
40
-
41
- namespace :admin do
42
-
43
- resources :users
44
-
45
- resources :contents do
46
- collection do
47
- post :order
48
- end
49
- end
50
-
51
- resources :pages do
52
- resources :elements
53
- collection do
54
- post :order
55
- post :flush
56
- post :copy_language_tree
57
- get :switch_language
58
- get :create_language
59
- get :link
60
- get :sort
61
- end
62
- member do
63
- post :unlock
64
- post :publish
65
- post :fold
66
- post :visit
67
- get :configure
68
- get :preview
69
- end
70
- end
71
-
72
- resources :elements do
73
- resources :contents
74
- collection do
75
- get :list
76
- post :order
77
- end
78
- member do
79
- post :fold
80
- delete :trash
81
- end
82
- end
83
-
84
- resources :layoutpages, :only => :index
85
-
86
- resources :pictures do
87
- collection do
88
- post :flush
89
- end
90
- member do
91
- get :show_in_window
92
- delete :remove
93
- end
94
- end
95
-
96
- resources :attachments do
97
- member do
98
- get :download
99
- end
100
- end
101
-
102
- resources :essence_pictures, :except => [:show, :new, :create] do
103
- collection do
104
- put :assign
105
- end
106
- member do
107
- get :crop
108
- end
109
- end
110
-
111
- resources :essence_files, :only => [:edit, :update] do
112
- collection do
113
- put :assign
114
- end
115
- end
116
-
117
- resources :essence_videos
118
-
119
- resources :languages
120
-
121
- # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
122
- resource :clipboard, :only => :index, :controller => 'clipboard' do
123
- collection do
124
- get :index
125
- delete :clear
126
- delete :remove
127
- post :insert
128
- end
129
- end
130
-
131
- # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
132
- resource :trash, :only => :index, :controller => 'trash' do
133
- collection do
134
- get :index
135
- delete :clear
136
- end
137
- end
138
-
139
- end
140
-
141
- match '/:lang' => 'pages#show',
142
- :constraints => {:lang => /[a-z]{2}(-[a-z]{2})?/},
143
- :as => :show_language_root
144
-
145
- # The page show action has to be last route
146
- match '(/:lang)(/:level1(/:level2(/:level3)))/:urlname(.:format)' => 'pages#show',
147
- :constraints => {:lang => /[a-z]{2}(-[a-z]{2})?/},
148
- :as => :show_page
3
+ root :to => 'pages#show'
4
+
5
+ match '/admin' => redirect(
6
+ "#{Alchemy.mount_point}/admin/dashboard"
7
+ )
8
+ match '/admin/login' => 'user_sessions#login',
9
+ :as => :login
10
+ match '/admin/signup' => 'user_sessions#signup',
11
+ :as => :signup
12
+ match '/admin/leave' => 'user_sessions#leave',
13
+ :as => :leave_admin
14
+ match '/admin/logout' => 'user_sessions#logout',
15
+ :as => :logout
16
+ match '/admin/dashboard' => 'admin/dashboard#index',
17
+ :as => :admin_dashboard
18
+
19
+ match '/attachment/:id/download(/:name)(.:format)' => 'attachments#download',
20
+ :as => :download_attachment
21
+
22
+ # catching legacy download urls
23
+ match '/wa_files/download/:id' => 'attachments#download'
24
+ match '/uploads/files/0000/:id/:name(.:suffix)' => 'attachments#download'
25
+
26
+ match '/attachment/:id/show' => 'attachments#show',
27
+ :as => :show_attachment
28
+
29
+ match "/pictures/:id/show(/:size)(/:crop)(/:crop_from/:crop_size)/:name.:format" => 'pictures#show',
30
+ :as => :show_picture
31
+ match '/pictures/:id/zoom/:name.:format' => 'pictures#zoom',
32
+ :as => :zoom_picture
33
+ match "/pictures/:id/thumbnails/:size(/:crop)(/:crop_from/:crop_size)/:name.:format" => 'pictures#thumbnail',
34
+ :as => :thumbnail, :defaults => {:format => 'png', :name => "thumbnail"}
35
+
36
+ resources :messages, :only => [:index, :new, :create]
37
+
38
+ resources :user_sessions
39
+ resources :elements, :only => :show
40
+
41
+ namespace :admin do
42
+
43
+ resources :users
44
+
45
+ resources :contents do
46
+ collection do
47
+ post :order
48
+ end
49
+ end
50
+
51
+ resources :pages do
52
+ resources :elements
53
+ collection do
54
+ post :order
55
+ post :flush
56
+ post :copy_language_tree
57
+ get :switch_language
58
+ get :create_language
59
+ get :link
60
+ get :sort
61
+ end
62
+ member do
63
+ post :unlock
64
+ post :publish
65
+ post :fold
66
+ post :visit
67
+ get :configure
68
+ get :preview
69
+ end
70
+ end
71
+
72
+ resources :elements do
73
+ resources :contents
74
+ collection do
75
+ get :list
76
+ post :order
77
+ end
78
+ member do
79
+ post :fold
80
+ delete :trash
81
+ end
82
+ end
83
+
84
+ resources :layoutpages, :only => :index
85
+
86
+ resources :pictures do
87
+ collection do
88
+ post :flush
89
+ end
90
+ member do
91
+ get :show_in_window
92
+ delete :remove
93
+ end
94
+ end
95
+
96
+ resources :attachments do
97
+ member do
98
+ get :download
99
+ end
100
+ end
101
+
102
+ resources :essence_pictures, :except => [:show, :new, :create] do
103
+ collection do
104
+ put :assign
105
+ end
106
+ member do
107
+ get :crop
108
+ end
109
+ end
110
+
111
+ resources :essence_files, :only => [:edit, :update] do
112
+ collection do
113
+ put :assign
114
+ end
115
+ end
116
+
117
+ resources :essence_videos
118
+
119
+ resources :languages
120
+
121
+ # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
122
+ resource :clipboard, :only => :index, :controller => 'clipboard' do
123
+ collection do
124
+ get :index
125
+ delete :clear
126
+ delete :remove
127
+ post :insert
128
+ end
129
+ end
130
+
131
+ # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
132
+ resource :trash, :only => :index, :controller => 'trash' do
133
+ collection do
134
+ get :index
135
+ delete :clear
136
+ end
137
+ end
138
+
139
+ end
140
+
141
+ match '/:lang' => 'pages#show',
142
+ :constraints => {:lang => /[a-z]{2}(-[a-z]{2})?/},
143
+ :as => :show_language_root
144
+
145
+ # The page show action has to be last route
146
+ match '(/:lang)(/:level1(/:level2(/:level3)))/:urlname(.:format)' => 'pages#show',
147
+ :constraints => {:lang => /[a-z]{2}(-[a-z]{2})?/},
148
+ :as => :show_page
149
149
 
150
150
  end