alchemy_cms 2.0.7 → 2.1.beta1

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 (256) hide show
  1. data/.gitignore +1 -4
  2. data/.travis.yml +1 -1
  3. data/Gemfile +7 -2
  4. data/README.md +6 -6
  5. data/Rakefile +26 -18
  6. data/alchemy_cms.gemspec +14 -14
  7. data/{assets/stylesheets → app/assets/images/alchemy}/Jcrop.gif +0 -0
  8. data/{assets/images → app/assets/images/alchemy}/ajax_loader.gif +0 -0
  9. data/{assets/images → app/assets/images/alchemy}/alchemy-logo.png +0 -0
  10. data/{assets/images → app/assets/images/alchemy}/flags.png +0 -0
  11. data/{assets/images → app/assets/images/alchemy}/gui/navi-tab.png +0 -0
  12. data/{assets/images → app/assets/images/alchemy}/gui/shading_90.png +0 -0
  13. data/{assets/images → app/assets/images/alchemy}/gui/toggle.png +0 -0
  14. data/{assets/images → app/assets/images/alchemy}/icons.png +0 -0
  15. data/{assets/images → app/assets/images/alchemy}/image_loader.gif +0 -0
  16. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow.gif +0 -0
  17. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg.gif +0 -0
  18. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg_hover.gif +0 -0
  19. data/{assets/images → app/assets/images/alchemy}/placeholder.png +0 -0
  20. data/{assets/images/gui → app/assets/images/alchemy}/shading.png +0 -0
  21. data/{assets/images → app/assets/images/alchemy}/swfupload/browse_button.png +0 -0
  22. data/{assets/stylesheets/default/img → app/assets/images/alchemy}/tabs.gif +0 -0
  23. data/{assets/images/jquery-ui → app/assets/images/alchemy}/ui-icons_666666_256x240.png +0 -0
  24. data/app/assets/javascripts/alchemy/alchemy.base.js +212 -0
  25. data/app/assets/javascripts/alchemy/alchemy.buttons.js +36 -0
  26. data/app/assets/javascripts/alchemy/alchemy.dirty.js +91 -0
  27. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +114 -0
  28. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.element_editor_selector.js +0 -0
  29. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.growler.js +0 -0
  30. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.image_cropper.js +0 -0
  31. data/app/assets/javascripts/alchemy/alchemy.js +26 -0
  32. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +17 -0
  33. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.link_overlay.js +1 -1
  34. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.page_sorter.js +0 -0
  35. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.preview.js +0 -0
  36. data/app/assets/javascripts/alchemy/alchemy.windows.js +438 -0
  37. data/app/assets/stylesheets/alchemy/_defaults.scss +160 -0
  38. data/app/assets/stylesheets/alchemy/alchemy.css +9 -0
  39. data/{assets/stylesheets/alchemy.css → app/assets/stylesheets/alchemy/base.css.scss} +216 -353
  40. data/{assets/stylesheets/elements.css → app/assets/stylesheets/alchemy/elements.css.scss} +41 -70
  41. data/{assets/stylesheets/flags.css → app/assets/stylesheets/alchemy/flags.css.scss} +1 -1
  42. data/{assets/stylesheets/jquery-ui-1.8.7.alchemy.css → app/assets/stylesheets/alchemy/jquery-ui.alchemy.css} +15 -15
  43. data/{assets/stylesheets/jquery.Jcrop.css → app/assets/stylesheets/alchemy/jquery.Jcrop.css.scss} +3 -3
  44. data/{assets/stylesheets/jquery.sb.css → app/assets/stylesheets/alchemy/jquery.sb.css.scss} +19 -29
  45. data/{assets/stylesheets → app/assets/stylesheets/alchemy}/print.css +6 -1
  46. data/{assets/stylesheets → app/assets/stylesheets/alchemy}/standard_set.css +0 -0
  47. data/{assets/stylesheets/alchemy_tinymce_content.css → app/assets/stylesheets/alchemy/tinymce_content.css} +0 -0
  48. data/{assets/stylesheets/alchemy_tinymce_dialog.css → app/assets/stylesheets/alchemy/tinymce_dialog.css} +2 -2
  49. data/app/controllers/admin/attachments_controller.rb +2 -8
  50. data/app/controllers/admin/clipboard_controller.rb +2 -2
  51. data/app/controllers/admin/contents_controller.rb +4 -16
  52. data/app/controllers/admin/elements_controller.rb +2 -2
  53. data/app/controllers/admin/essence_audios_controller.rb +0 -3
  54. data/app/controllers/admin/essence_files_controller.rb +0 -11
  55. data/app/controllers/admin/essence_flashes_controller.rb +0 -3
  56. data/app/controllers/admin/essence_pictures_controller.rb +2 -7
  57. data/app/controllers/admin/essence_videos_controller.rb +0 -3
  58. data/app/controllers/admin/languages_controller.rb +4 -10
  59. data/app/controllers/admin/pages_controller.rb +6 -4
  60. data/app/controllers/admin/pictures_controller.rb +13 -18
  61. data/app/controllers/admin/trash_controller.rb +0 -5
  62. data/app/controllers/admin/users_controller.rb +2 -3
  63. data/app/controllers/alchemy_controller.rb +18 -30
  64. data/app/controllers/pages_controller.rb +21 -24
  65. data/app/helpers/admin/elements_helper.rb +5 -0
  66. data/app/helpers/admin/pages_helper.rb +36 -1
  67. data/app/helpers/alchemy_helper.rb +39 -17
  68. data/app/models/attachment.rb +2 -2
  69. data/app/models/essence_file.rb +1 -1
  70. data/app/models/page.rb +1 -1
  71. data/app/sweepers/pages_sweeper.rb +10 -0
  72. data/app/views/admin/attachments/destroy.js.erb +4 -0
  73. data/app/views/admin/clipboard/insert.js.erb +12 -19
  74. data/app/views/admin/contents/create.js.erb +1 -1
  75. data/app/views/admin/contents/destroy.js.erb +7 -0
  76. data/app/views/admin/contents/order.js.erb +6 -0
  77. data/app/views/admin/elements/_element.html.erb +4 -2
  78. data/app/views/admin/elements/create.js.erb +19 -26
  79. data/app/views/admin/elements/fold.js.erb +1 -1
  80. data/app/views/admin/elements/index.html.erb +1 -1
  81. data/app/views/admin/essence_files/assign.js.erb +8 -0
  82. data/app/views/admin/essence_pictures/save_link.js.erb +3 -0
  83. data/app/views/admin/index.html.erb +37 -27
  84. data/app/views/admin/languages/destroy.js.erb +1 -0
  85. data/app/views/admin/pages/_page.html.erb +1 -1
  86. data/app/views/admin/pages/_sitemap.html.erb +1 -1
  87. data/app/views/admin/pages/edit.html.erb +2 -2
  88. data/app/views/admin/pages/update.js.erb +1 -1
  89. data/app/views/admin/partials/_upload_form.html.erb +11 -11
  90. data/app/views/admin/pictures/archive_overlay.js.erb +1 -0
  91. data/app/views/admin/pictures/flush.js.erb +2 -0
  92. data/app/views/admin/pictures/update.js.erb +1 -0
  93. data/app/views/admin/trash/clear.js.erb +3 -0
  94. data/app/views/alchemy/error_notice.js.erb +1 -0
  95. data/app/views/alchemy/permission_denied.js.erb +2 -0
  96. data/app/views/alchemy/redirect.js.erb +1 -0
  97. data/app/views/alchemy/remote_errors.js.erb +3 -0
  98. data/app/views/alchemy/update.js.erb +5 -0
  99. data/app/views/essences/_essence_file_editor.html.erb +0 -1
  100. data/app/views/essences/_essence_file_view.html.erb +1 -5
  101. data/app/views/essences/_essence_picture_tools.html.erb +1 -1
  102. data/app/views/layouts/alchemy.html.erb +22 -9
  103. data/app/views/pages/show.rss.builder +1 -1
  104. data/config/alchemy/elements.yml +0 -5
  105. data/config/alchemy/page_layouts.yml +1 -1
  106. data/config/asset_packages.yml +17 -19
  107. data/config/authorization_rules.rb +1 -0
  108. data/config/locales/de.yml +0 -1
  109. data/config/routes.rb +1 -1
  110. data/lib/alchemy/tinymce.rb +51 -0
  111. data/lib/alchemy/version.rb +3 -3
  112. data/lib/alchemy_cms.rb +4 -2
  113. data/script/rails +6 -0
  114. data/spec/controllers/admin/clipboard_controller_spec.rb +15 -13
  115. data/spec/controllers/admin/contents_controller_spec.rb +4 -4
  116. data/spec/controllers/admin/trash_controller_spec.rb +6 -9
  117. data/spec/controllers/pages_controller_spec.rb +9 -8
  118. data/spec/dummy/Rakefile +1 -1
  119. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  120. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  121. data/spec/dummy/app/mailers/.gitkeep +0 -0
  122. data/spec/dummy/app/models/.gitkeep +0 -0
  123. data/spec/dummy/app/views/layouts/application.html.erb +3 -3
  124. data/spec/dummy/config/application.rb +12 -6
  125. data/spec/dummy/config/database.yml +3 -0
  126. data/spec/dummy/config/environments/development.rb +7 -3
  127. data/spec/dummy/config/environments/production.rb +23 -12
  128. data/spec/dummy/config/environments/test.rb +5 -1
  129. data/spec/dummy/config/initializers/secret_token.rb +1 -1
  130. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  131. data/spec/dummy/config/locales/en.yml +1 -1
  132. data/spec/dummy/config/routes.rb +1 -1
  133. data/spec/dummy/lib/assets/.gitkeep +0 -0
  134. data/spec/factories.rb +8 -8
  135. data/spec/helpers/admin/elements_helper_spec.rb +2 -2
  136. data/spec/helpers/contents_helper_spec.rb +1 -1
  137. data/spec/helpers/elements_helper_spec.rb +6 -6
  138. data/spec/helpers/essences_helper_spec.rb +1 -1
  139. data/spec/helpers/pages_helper_spec.rb +37 -37
  140. data/spec/integration/pages_controller_spec.rb +29 -26
  141. data/spec/integration/security_spec.rb +2 -1
  142. data/spec/models/content_spec.rb +1 -1
  143. data/spec/models/element_spec.rb +11 -11
  144. data/spec/models/language_spec.rb +5 -5
  145. data/spec/models/page_spec.rb +54 -54
  146. data/spec/models/user_spec.rb +2 -1
  147. data/spec/routing_spec.rb +1 -1
  148. data/{assets/javascripts/jquery.js → vendor/assets/javascripts/jquery-1.6.2.min.js} +0 -0
  149. data/{assets/javascripts/jquery-ui.js → vendor/assets/javascripts/jquery-ui-custom-1.8.16.min.js} +0 -0
  150. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.Jcrop.min.js +0 -0
  151. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.dialogextend.min.js +7 -7
  152. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.in-place-edit.js +0 -0
  153. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.sb.min.js +0 -0
  154. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.scrollTo-1.4.2-min.js +10 -10
  155. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.nestedSortable.js +0 -0
  156. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.tabspaging.js +0 -0
  157. data/{assets → vendor/assets}/javascripts/swfupload/fileprogress.js +202 -202
  158. data/{assets → vendor/assets}/javascripts/swfupload/handlers.js +171 -171
  159. data/{assets → vendor/assets}/javascripts/swfupload/queue.js +97 -97
  160. data/{assets → vendor/assets}/javascripts/swfupload/swfupload.js +980 -980
  161. data/{assets → vendor/assets}/javascripts/swfupload/swfupload.swf +0 -0
  162. data/{assets → vendor/assets}/javascripts/tiny_mce/jquery.tinymce.js +0 -0
  163. data/{assets → vendor/assets}/javascripts/tiny_mce/langs/de.js +0 -0
  164. data/{assets → vendor/assets}/javascripts/tiny_mce/langs/en.js +0 -0
  165. data/{assets → vendor/assets}/javascripts/tiny_mce/license.txt +504 -504
  166. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -0
  167. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js +0 -0
  168. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js +0 -0
  169. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +0 -0
  170. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -0
  171. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
  172. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -0
  173. data/{assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css → vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.erb} +8 -8
  174. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
  175. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/editor_plugin.js +0 -0
  176. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
  177. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
  178. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +0 -0
  179. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +0 -0
  180. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
  181. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
  182. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/cell.htm +180 -180
  183. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/cell.css +16 -16
  184. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/row.css +25 -25
  185. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/table.css +13 -13
  186. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/editor_plugin.js +0 -0
  187. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/cell.js +319 -319
  188. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
  189. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/row.js +237 -237
  190. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/table.js +450 -450
  191. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +0 -0
  192. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +0 -0
  193. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
  194. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/row.htm +158 -158
  195. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/table.htm +188 -188
  196. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/about.htm +52 -52
  197. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -26
  198. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/charmap.htm +51 -51
  199. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -74
  200. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/editor_template.js +0 -0
  201. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/image.htm +80 -80
  202. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  203. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
  204. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  205. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  206. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  207. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  208. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  209. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  210. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
  211. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
  212. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  213. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/about.js +73 -73
  214. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/anchor.js +43 -43
  215. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/charmap.js +355 -355
  216. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -329
  217. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/image.js +251 -251
  218. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/link.js +153 -153
  219. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -56
  220. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de.js +0 -0
  221. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +0 -0
  222. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en.js +0 -0
  223. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +0 -0
  224. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/link.htm +57 -57
  225. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
  226. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/content.css +50 -50
  227. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -117
  228. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  229. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  230. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  231. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  232. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  233. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  234. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -214
  235. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -48
  236. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -117
  237. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  238. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  239. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  240. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -217
  241. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
  242. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
  243. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
  244. data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce.js +0 -0
  245. data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce_popup.js +0 -0
  246. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/editable_selects.js +70 -70
  247. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/form_utils.js +210 -210
  248. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/mctabs.js +161 -161
  249. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/validate.js +252 -252
  250. metadata +338 -369
  251. data/app/views/elements/_download_editor.html.erb +0 -1
  252. data/app/views/elements/_download_view.html.erb +0 -3
  253. data/assets/javascripts/alchemy.js +0 -903
  254. data/assets/javascripts/jquery.rails.js +0 -315
  255. data/assets/stylesheets/ie6.css +0 -18
  256. data/config/initializers/tinymce_hammer.rb +0 -31
@@ -1,3 +1,8 @@
1
+ /*
2
+ *= require alchemy/base
3
+ *= require_self
4
+ */
5
+
1
6
  div#main_menu,
2
7
  div#top_menu,
3
8
  div#corner,
@@ -26,4 +31,4 @@ div.pagination em.current {
26
31
 
27
32
  div.pagination em:before {
28
33
  content: 'Page ';
29
- }
34
+ }
@@ -96,7 +96,7 @@ input.checkbox {
96
96
  padding-right: 8px;
97
97
  padding-bottom: 2px;
98
98
  margin: 0;
99
- background: #eaeaea url(/images/alchemy/gui/shading.png) repeat-x 0 -75px;
99
+ background: #eaeaea url('/assets/alchemy/shading.png') repeat-x 0 -75px;
100
100
  -webkit-border-radius: 2px;
101
101
  -moz-border-radius: 2px;
102
102
  border-radius: 2px;
@@ -234,7 +234,7 @@ td.charmap, #charmap a {
234
234
 
235
235
  .tabs li {
236
236
  float: left;
237
- background: url(/images/alchemy/gui/shading.png) repeat-x 0 0;
237
+ background: url('/assets/alchemy/shading.png') repeat-x 0 0;
238
238
  margin: 0 2px 0 0;
239
239
  padding: 0 0 0 10px;
240
240
  line-height: 17px;
@@ -58,10 +58,7 @@ class Admin::AttachmentsController < AlchemyController
58
58
  redirect_to :action => :index
59
59
  end
60
60
  rescue Exception => e
61
- log_error $!
62
- render :update, :status => 500 do |page|
63
- page.call('Alchemy.growl', _('File upload error: %{error}') % {:error => e}, :error)
64
- end
61
+ exception_handler(e)
65
62
  end
66
63
 
67
64
  def edit
@@ -88,10 +85,7 @@ class Admin::AttachmentsController < AlchemyController
88
85
  @attachment = Attachment.find(params[:id])
89
86
  name = @attachment.name
90
87
  @attachment.destroy
91
- render :update do |page|
92
- flash[:notice] = ( _("File: '%{name}' deleted successfully") % {:name => name} )
93
- page.redirect_to admin_attachments_path(:per_page => params[:per_page], :page => params[:page], :query => params[:query])
94
- end
88
+ flash[:notice] = ( _("File: '%{name}' deleted successfully") % {:name => name} )
95
89
  end
96
90
 
97
91
  def show
@@ -15,7 +15,7 @@ class Admin::ClipboardController < AlchemyController
15
15
  def insert
16
16
  @clipboard = get_clipboard(params[:remarkable_type].tableize)
17
17
  @item = params[:remarkable_type].classify.constantize.find(params[:remarkable_id])
18
- unless @clipboard.collect { |i| i[:id] }.include?(params[:remarkable_id])
18
+ unless @clipboard.collect { |i| i[:id].to_s }.include?(params[:remarkable_id])
19
19
  @clipboard.push({:id => params[:remarkable_id], :action => params[:remove] ? 'cut' : 'copy'})
20
20
  end
21
21
  respond_to do |format|
@@ -28,7 +28,7 @@ class Admin::ClipboardController < AlchemyController
28
28
  def remove
29
29
  @clipboard = get_clipboard(params[:remarkable_type].tableize)
30
30
  @item = params[:remarkable_type].classify.constantize.find(params[:remarkable_id])
31
- @clipboard.delete_if { |i| i[:id] == params[:remarkable_id] }
31
+ @clipboard.delete_if { |i| i[:id].to_s == params[:remarkable_id] }
32
32
  respond_to do |format|
33
33
  format.js
34
34
  end
@@ -34,9 +34,6 @@ class Admin::ContentsController < AlchemyController
34
34
  def update
35
35
  content = Content.find(params[:id])
36
36
  content.essence.update_attributes(params[:content])
37
- render :update do |page|
38
- page << "Alchemy.closeCurrentWindow();Alchemy.reloadPreview()"
39
- end
40
37
  end
41
38
 
42
39
  def order
@@ -44,11 +41,7 @@ class Admin::ContentsController < AlchemyController
44
41
  content = Content.find(id)
45
42
  content.move_to_bottom
46
43
  end
47
- render :update do |page|
48
- page.call('Alchemy.growl', _("Successfully saved content position"))
49
- page.call("Alchemy.SortableContents", '#element_area .picture_gallery_images', form_authenticity_token)
50
- page.call('Alchemy.reloadPreview')
51
- end
44
+ @notice = _("Successfully saved content position")
52
45
  rescue
53
46
  exception_handler($!)
54
47
  end
@@ -57,14 +50,9 @@ class Admin::ContentsController < AlchemyController
57
50
  content = Content.find(params[:id])
58
51
  element = content.element
59
52
  content_name = content.name
60
- content_dom_id = "#{content.essence_type.underscore}_#{content.id}"
61
- if content.destroy
62
- render :update do |page|
63
- page.call("jQuery('#{content_dom_id}').remove")
64
- page.call('Alchemy.growl', _("Successfully deleted %{content}") % {:content => content_name})
65
- page.call('Alchemy.reloadPreview')
66
- end
67
- end
53
+ @content_dom_id = "#{content.essence_type.underscore}_#{content.id}"
54
+ @notice = _("Successfully deleted %{content}") % {:content => content_name}
55
+ content.destroy
68
56
  rescue
69
57
  exception_handler($!)
70
58
  end
@@ -45,7 +45,6 @@ class Admin::ElementsController < AlchemyController
45
45
  @element = Element.copy(source_element, {:page_id => @page.id})
46
46
  if element_from_clipboard[:action] == 'cut'
47
47
  source_element.destroy
48
- @cutted_element_id = source_element.id
49
48
  @clipboard.delete_if { |i| i[:id].to_i == source_element.id }
50
49
  end
51
50
  else
@@ -70,7 +69,8 @@ class Admin::ElementsController < AlchemyController
70
69
  if @element.save_contents(params)
71
70
  @page = @element.page
72
71
  @element.public = !params[:public].nil?
73
- @element_validated = @element.save
72
+ @element.save
73
+ @element_validated = true
74
74
  else
75
75
  @element_validated = false
76
76
  @notice = _('Validation failed.')
@@ -5,9 +5,6 @@ class Admin::EssenceAudiosController < AlchemyController
5
5
  def update
6
6
  @essence_audio = EssenceAudio.find(params[:id])
7
7
  @essence_audio.update_attributes(params[:essence_audio])
8
- render :update do |page|
9
- page << "Alchemy.closeCurrentWindow(); Alchemy.reloadPreview()"
10
- end
11
8
  end
12
9
 
13
10
  end
@@ -1,7 +1,6 @@
1
1
  class Admin::EssenceFilesController < AlchemyController
2
2
 
3
3
  filter_access_to :all
4
- helper :contents
5
4
 
6
5
  def edit
7
6
  @content = Content.find(params[:id])
@@ -12,10 +11,6 @@ class Admin::EssenceFilesController < AlchemyController
12
11
  def update
13
12
  @essence_file = EssenceFile.find(params[:id])
14
13
  @essence_file.update_attributes(params[:essence_file])
15
- render :update do |page|
16
- page.call "Alchemy.closeCurrentWindow"
17
- page.call "Alchemy.reloadPreview"
18
- end
19
14
  end
20
15
 
21
16
  def assign
@@ -25,12 +20,6 @@ class Admin::EssenceFilesController < AlchemyController
25
20
  @content.essence.save
26
21
  @content.save
27
22
  @options = params[:options]
28
- render :update do |page|
29
- page << "jQuery('##{@content.essence_type.underscore}_#{@content.id}').replaceWith('#{escape_javascript(render(:partial => "essences/essence_file_editor.html.erb", :locals => {:content => @content, :options => @options}))}')"
30
- page.call "Alchemy.closeCurrentWindow"
31
- page.call "Alchemy.reloadPreview"
32
- page.call "Alchemy.setElementDirty", "#element_#{@content.element.id}"
33
- end
34
23
  end
35
24
 
36
25
  end
@@ -5,9 +5,6 @@ class Admin::EssenceFlashesController < AlchemyController
5
5
  def update
6
6
  @essence_flash = EssenceFlash.find(params[:id])
7
7
  @essence_flash.update_attributes(params[:essence_flash])
8
- render :update do |page|
9
- page << "Alchemy.closeCurrentWindow(); Alchemy.reloadPreview()"
10
- end
11
8
  end
12
9
 
13
10
  end
@@ -68,13 +68,8 @@ class Admin::EssencePicturesController < AlchemyController
68
68
  @picture_essence.link = params[:link]
69
69
  @picture_essence.link_title = params[:title]
70
70
  @picture_essence.open_link_in_new_window = params[:blank]
71
- if @picture_essence.save
72
- render :update do |page|
73
- page << "Alchemy.closeCurrentWindow()"
74
- page << "Alchemy.reloadPreview()"
75
- page.call('Alchemy.growl', _("saved_link"))
76
- end
77
- end
71
+ @notice = _("saved_link")
72
+ @picture_essence.save
78
73
  end
79
74
 
80
75
  def destroy
@@ -5,9 +5,6 @@ class Admin::EssenceVideosController < AlchemyController
5
5
  def update
6
6
  @essence_video = EssenceVideo.find(params[:id])
7
7
  @essence_video.update_attributes(params[:essence_video])
8
- render :update do |page|
9
- page << "Alchemy.closeCurrentWindow(); Alchemy.reloadPreview()"
10
- end
11
8
  end
12
9
 
13
10
  end
@@ -48,17 +48,11 @@ class Admin::LanguagesController < AlchemyController
48
48
 
49
49
  def destroy
50
50
  name = @language.name
51
- if @language.destroy
52
- flash[:notice] = ( _("Language '%{name}' destroyed") % {:name => name} )
53
- set_language_to_default
54
- end
55
- render(:update) { |page| page.redirect_to(admin_languages_url) }
51
+ @language.destroy
52
+ flash[:notice] = ( _("Language '%{name}' destroyed") % {:name => name} )
53
+ set_language_to_default
56
54
  rescue Exception => e
57
- render :update do |page|
58
- page << "confirm.close();"
59
- page.call('Alchemy.growl', e, :error)
60
- end
61
- logger.error("++++++++++++++ #{e}")
55
+ exception_handler(e)
62
56
  end
63
57
 
64
58
  private
@@ -49,6 +49,7 @@ class Admin::PagesController < AlchemyController
49
49
  render_errors_or_redirect(page, parent.layoutpage? ? admin_layoutpages_path : admin_pages_path, _("page '%{name}' created.") % {:name => page.name}, 'form#new_page_form button.button')
50
50
  rescue Exception => e
51
51
  exception_handler(e)
52
+ redirect_to admin_pages_path
52
53
  end
53
54
 
54
55
  # Edit the content of the page and all its elements and contents.
@@ -77,6 +78,7 @@ class Admin::PagesController < AlchemyController
77
78
  # fetching page via before filter
78
79
  if @page.update_attributes(params[:page])
79
80
  @notice = _("Page %{name} saved") % {:name => @page.name}
81
+ @while_page_edit = request.referer.include?('edit')
80
82
  else
81
83
  render_remote_errors(@page, "form#edit_page_#{@page.id} button.button")
82
84
  end
@@ -198,7 +200,8 @@ class Admin::PagesController < AlchemyController
198
200
  page.move_to_child_of(parent)
199
201
  end
200
202
  flash[:notice] = _("Pages order saved")
201
- render(:update) { |page| page.redirect_to admin_pages_path }
203
+ @redirect_url = admin_pages_path
204
+ render :action => :redirect
202
205
  rescue Exception => e
203
206
  exception_handler(e)
204
207
  end
@@ -209,9 +212,8 @@ class Admin::PagesController < AlchemyController
209
212
  session[:language_id] = params[:language_id]
210
213
  redirect_path = params[:layoutpages] ? admin_layoutpages_path : admin_pages_path
211
214
  if request.xhr?
212
- render :update do |page|
213
- page.redirect_to redirect_path
214
- end
215
+ @redirect_url = redirect_path
216
+ render :action => :redirect
215
217
  else
216
218
  redirect_to redirect_path
217
219
  end
@@ -7,6 +7,8 @@ class Admin::PicturesController < AlchemyController
7
7
 
8
8
  cache_sweeper :pictures_sweeper, :only => [:update, :destroy]
9
9
 
10
+ respond_to :html, :js
11
+
10
12
  def index
11
13
  @size = params[:size] || 'medium'
12
14
  if params[:per_page] == 'all'
@@ -64,7 +66,9 @@ class Admin::PicturesController < AlchemyController
64
66
  # Are we using the Flash uploader? Or the plain html file uploader?
65
67
  if params[Rails.application.config.session_options[:key]].blank?
66
68
  flash[:notice] = @message
67
- redirect_to :back
69
+ #redirect_to :back
70
+ #TODO temporary workaround; has to be fixed.
71
+ redirect_to admin_pictures_path
68
72
  end
69
73
  rescue Exception => e
70
74
  exception_handler(e)
@@ -77,21 +81,17 @@ class Admin::PicturesController < AlchemyController
77
81
  @picture.name = params[:name]
78
82
  @picture.save
79
83
  @message = _("Image renamed successfully from: '%{from}' to '%{to}'") % {:from => oldname, :to => @picture.name}
80
- render :update do |page|
81
- page.call 'Alchemy.growl', @message
82
- end
83
84
  rescue Exception => e
84
85
  exception_handler(e)
85
86
  end
86
87
 
87
88
  def destroy
88
- @picture = Picture.find(params[:id])
89
- name = @picture.name
90
- @picture.destroy
91
- render :update do |page|
92
- flash[:notice] = ( _("Image: '%{name}' deleted successfully") % {:name => name} )
93
- page.redirect_to admin_pictures_path(:per_page => params[:per_page], :page => params[:page], :query => params[:query])
94
- end
89
+ @picture = Picture.find(params[:id])
90
+ name = @picture.name
91
+ @picture.destroy
92
+ flash[:notice] = ( _("Image: '%{name}' deleted successfully") % {:name => name} )
93
+ @redirect_url = admin_pictures_path(:per_page => params[:per_page], :page => params[:page], :query => params[:query])
94
+ render :action => :redirect
95
95
  end
96
96
 
97
97
  def flush
@@ -100,10 +100,7 @@ class Admin::PicturesController < AlchemyController
100
100
  FileUtils.rm_rf("#{Rails.root}/public/pictures/thumbnails/#{picture.id}")
101
101
  expire_page(:controller => '/pictures', :action => 'zoom', :id => picture.id)
102
102
  end
103
- render :update do |page|
104
- page.call 'Alchemy.growl', _('Picture cache flushed')
105
- page.call "Alchemy.pleaseWaitOverlay", false
106
- end
103
+ @notice = _('Picture cache flushed')
107
104
  end
108
105
 
109
106
  def show_in_window
@@ -138,9 +135,7 @@ private
138
135
  render :partial => 'archive_overlay'
139
136
  }
140
137
  format.js {
141
- render :update do |page|
142
- page << "jQuery('#alchemy_window_body').replaceWith('#{escape_javascript(render(:partial => 'archive_overlay'))}')"
143
- end
138
+ render :action => :archive_overlay
144
139
  }
145
140
  end
146
141
  end
@@ -21,11 +21,6 @@ class Admin::TrashController < AlchemyController
21
21
  @page = Page.find_by_id(params[:page_id])
22
22
  @elements = Element.trashed
23
23
  @elements.map(&:destroy)
24
- render :update do |page|
25
- page.call('Alchemy.growl', _("Cleared trash"))
26
- page << "Alchemy.refreshTrashWindow(#{@page.id})"
27
- page << "jQuery('#element_trash_button .icon').removeClass('full')"
28
- end
29
24
  rescue Exception => e
30
25
  exception_handler(e)
31
26
  end
@@ -66,9 +66,8 @@ class Admin::UsersController < AlchemyController
66
66
  if @user.destroy
67
67
  flash[:notice] = ( _("User: '%{name}' deleted") % {:name => name} )
68
68
  end
69
- render :update do |page|
70
- page.redirect_to admin_users_path
71
- end
69
+ @redirect_url = admin_users_path
70
+ render :action => :redirect
72
71
  end
73
72
 
74
73
  end
@@ -21,22 +21,21 @@ class AlchemyController < ApplicationController
21
21
  current_user.admin?
22
22
  end
23
23
 
24
- def render_errors_or_redirect(object, redirect_url, flash_notice, button = nil)
25
- if object.errors.empty?
26
- flash[:notice] = _(flash_notice)
27
- render(:update) { |page| page.redirect_to(redirect_url) }
28
- else
29
- render_remote_errors(object, button)
30
- end
31
- end
24
+ def render_errors_or_redirect(object, redirect_url, flash_notice, button = nil)
25
+ if object.errors.empty?
26
+ @redirect_url = redirect_url
27
+ flash[:notice] = _(flash_notice)
28
+ render :action => :redirect
29
+ else
30
+ render_remote_errors(object, button)
31
+ end
32
+ end
32
33
 
33
- def render_remote_errors(object, button = nil)
34
- render :update do |page|
35
- page << "jQuery('#errors').html('<ul>" + object.errors.sum { |a, b| "<li>" + _(b) + "</li>" } + "</ul>')"
36
- page << "jQuery('#errors').show()"
37
- page << "Alchemy.enableButton('#{button || 'form button.button'}')"
38
- end
39
- end
34
+ def render_remote_errors(object, button = nil)
35
+ @button = button
36
+ @errors = ("<ul>" + object.errors.sum { |a, b| "<li>" + _(b) + "</li>" } + "</ul>").html_safe
37
+ render :action => :remote_errors
38
+ end
40
39
 
41
40
  # Returns a host string with the domain the app is running on.
42
41
  def current_server
@@ -106,9 +105,9 @@ private
106
105
 
107
106
  # Displays an error notice in the Alchemy backend.
108
107
  def show_error_notice(e)
109
- notice = "Error: #{e}"
108
+ @notice = "Error: #{e}"
110
109
  if request.xhr?
111
- render(:update) { |page| page.call("Alchemy.growl", notice, 'error') }
110
+ render :action => "error_notice"
112
111
  else
113
112
  flash[:error] = notice
114
113
  end
@@ -198,10 +197,7 @@ protected
198
197
  else
199
198
  flash[:info] = _('Please log in')
200
199
  if request.xhr?
201
- render :update do |page|
202
- page.call "Alchemy.closeCurrentWindow"
203
- page.redirect_to login_path
204
- end
200
+ render :action => :permission_denied
205
201
  else
206
202
  store_location
207
203
  redirect_to login_path
@@ -245,13 +241,5 @@ protected
245
241
  def trash_empty?(category)
246
242
  category.singularize.classify.constantize.trashed.blank?
247
243
  end
248
-
249
- def layout_for_page
250
- if !params[:layout].blank? && params[:layout] != 'none'
251
- params[:layout]
252
- else
253
- 'pages'
254
- end
255
- end
256
-
244
+
257
245
  end