alchemy_cms 2.5.3.1 → 2.6.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (331) hide show
  1. data/.gitignore +1 -1
  2. data/.travis.yml +5 -13
  3. data/Gemfile +6 -3
  4. data/README.md +3 -2
  5. data/alchemy_cms.gemspec +22 -22
  6. data/app/assets/fonts/alchemy-icons.eot +0 -0
  7. data/app/assets/fonts/alchemy-icons.svg +54 -0
  8. data/app/assets/fonts/alchemy-icons.ttf +0 -0
  9. data/app/assets/fonts/alchemy-icons.woff +0 -0
  10. data/app/assets/images/alchemy/icons.png +0 -0
  11. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +151 -0
  12. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +3 -2
  13. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +31 -0
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +1 -1
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +98 -0
  16. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +23 -24
  17. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +27 -0
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +11 -8
  19. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +32 -0
  20. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +46 -0
  21. data/app/assets/javascripts/alchemy/alchemy.js +8 -2
  22. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +5 -4
  23. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +49 -0
  24. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +3 -0
  25. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +71 -0
  26. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +61 -0
  27. data/app/assets/javascripts/alchemy/alchemy.spinner.js.coffee +35 -0
  28. data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +11 -0
  29. data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +278 -0
  30. data/app/assets/stylesheets/alchemy/admin.css.scss +2 -0
  31. data/app/assets/stylesheets/alchemy/archive.scss +109 -65
  32. data/app/assets/stylesheets/alchemy/base.scss +16 -188
  33. data/app/assets/stylesheets/alchemy/dashboard.scss +2 -2
  34. data/app/assets/stylesheets/alchemy/defaults.scss +2 -1
  35. data/app/assets/stylesheets/alchemy/elements.scss +58 -94
  36. data/app/assets/stylesheets/alchemy/errors.scss +2 -2
  37. data/app/assets/stylesheets/alchemy/{mixins.scss → extends.scss} +104 -80
  38. data/app/assets/stylesheets/alchemy/flash.scss +4 -6
  39. data/app/assets/stylesheets/alchemy/fonts.scss +46 -0
  40. data/app/assets/stylesheets/alchemy/form_elements.scss +46 -45
  41. data/app/assets/stylesheets/alchemy/frame.scss +20 -15
  42. data/app/assets/stylesheets/alchemy/icons.scss +22 -9
  43. data/app/assets/stylesheets/alchemy/jquery-ui.scss +476 -399
  44. data/app/assets/stylesheets/alchemy/login.scss +1 -1
  45. data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -1
  46. data/app/assets/stylesheets/alchemy/notices.scss +5 -5
  47. data/app/assets/stylesheets/alchemy/pagination.scss +25 -13
  48. data/app/assets/stylesheets/alchemy/search.scss +29 -17
  49. data/app/assets/stylesheets/alchemy/sitemap.scss +41 -36
  50. data/app/assets/stylesheets/alchemy/tables.scss +102 -50
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +18 -16
  52. data/app/assets/stylesheets/alchemy/toolbar.scss +84 -24
  53. data/app/assets/stylesheets/alchemy/upload.scss +14 -9
  54. data/app/assets/stylesheets/alchemy/variables.scss +1 -0
  55. data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +18 -21
  56. data/app/controllers/alchemy/admin/attachments_controller.rb +29 -39
  57. data/app/controllers/alchemy/admin/base_controller.rb +3 -9
  58. data/app/controllers/alchemy/admin/clipboard_controller.rb +1 -1
  59. data/app/controllers/alchemy/admin/contents_controller.rb +1 -1
  60. data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
  61. data/app/controllers/alchemy/admin/elements_controller.rb +3 -3
  62. data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
  63. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +5 -5
  64. data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
  65. data/app/controllers/alchemy/admin/pages_controller.rb +18 -16
  66. data/app/controllers/alchemy/admin/pictures_controller.rb +11 -10
  67. data/app/controllers/alchemy/admin/resources_controller.rb +87 -14
  68. data/app/controllers/alchemy/admin/tags_controller.rb +3 -3
  69. data/app/controllers/alchemy/admin/trash_controller.rb +3 -3
  70. data/app/controllers/alchemy/admin/users_controller.rb +6 -11
  71. data/app/controllers/alchemy/attachments_controller.rb +8 -9
  72. data/app/controllers/alchemy/base_controller.rb +17 -10
  73. data/app/controllers/alchemy/pages_controller.rb +7 -19
  74. data/app/controllers/alchemy/passwords_controller.rb +15 -3
  75. data/app/controllers/alchemy/user_sessions_controller.rb +5 -4
  76. data/app/controllers/alchemy/users_controller.rb +1 -1
  77. data/app/helpers/alchemy/admin/attachments_helper.rb +2 -2
  78. data/app/helpers/alchemy/admin/base_helper.rb +62 -90
  79. data/app/helpers/alchemy/admin/elements_helper.rb +13 -5
  80. data/app/helpers/alchemy/admin/essences_helper.rb +3 -5
  81. data/app/helpers/alchemy/admin/pages_helper.rb +6 -3
  82. data/app/helpers/alchemy/admin/tags_helper.rb +60 -0
  83. data/app/helpers/alchemy/base_helper.rb +16 -20
  84. data/app/helpers/alchemy/elements_helper.rb +7 -11
  85. data/app/helpers/alchemy/essences_helper.rb +2 -2
  86. data/app/helpers/alchemy/pages_helper.rb +31 -69
  87. data/app/helpers/alchemy/url_helper.rb +11 -3
  88. data/app/models/alchemy/attachment.rb +73 -45
  89. data/app/models/alchemy/cell.rb +1 -1
  90. data/app/models/alchemy/content.rb +20 -9
  91. data/app/models/alchemy/element.rb +9 -7
  92. data/app/models/alchemy/page.rb +15 -248
  93. data/app/models/alchemy/page/cells.rb +71 -0
  94. data/app/models/alchemy/page/elements.rb +147 -0
  95. data/app/models/alchemy/page/naming.rb +90 -0
  96. data/app/models/alchemy/picture.rb +18 -13
  97. data/app/models/alchemy/tag.rb +1 -1
  98. data/app/models/alchemy/user.rb +38 -6
  99. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -7
  100. data/app/views/alchemy/admin/attachments/_attachment.html.erb +17 -12
  101. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -8
  102. data/app/views/alchemy/admin/attachments/_files_list.html.erb +20 -12
  103. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +11 -0
  104. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +31 -0
  105. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +4 -0
  106. data/app/views/alchemy/admin/attachments/edit.html.erb +8 -7
  107. data/app/views/alchemy/admin/attachments/index.html.erb +19 -12
  108. data/app/views/alchemy/admin/attachments/new.html.erb +2 -2
  109. data/app/views/alchemy/admin/attachments/show.html.erb +3 -0
  110. data/app/views/alchemy/admin/contents/_missing.html.erb +4 -4
  111. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  112. data/app/views/alchemy/admin/contents/new.html.erb +6 -3
  113. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  114. data/app/views/alchemy/admin/dashboard/_users.html.erb +1 -1
  115. data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
  116. data/app/views/alchemy/admin/dashboard/info.html.erb +16 -13
  117. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  118. data/app/views/alchemy/admin/elements/_element_foot.html.erb +4 -4
  119. data/app/views/alchemy/admin/elements/_element_head.html.erb +1 -7
  120. data/app/views/alchemy/admin/elements/_elements_select.html.erb +2 -2
  121. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -4
  122. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  123. data/app/views/alchemy/admin/elements/create.js.erb +2 -2
  124. data/app/views/alchemy/admin/elements/fold.js.erb +3 -6
  125. data/app/views/alchemy/admin/elements/new.html.erb +1 -1
  126. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  127. data/app/views/alchemy/admin/elements/trash.js.erb +1 -1
  128. data/app/views/alchemy/admin/elements/update.js.erb +2 -2
  129. data/app/views/alchemy/admin/essence_files/edit.html.erb +4 -4
  130. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +17 -18
  131. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +2 -2
  132. data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -0
  133. data/app/views/alchemy/admin/languages/_form.html.erb +12 -10
  134. data/app/views/alchemy/admin/languages/_language.html.erb +2 -1
  135. data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
  136. data/app/views/alchemy/admin/languages/index.html.erb +15 -15
  137. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +6 -6
  138. data/app/views/alchemy/admin/layoutpages/index.html.erb +41 -40
  139. data/app/views/alchemy/admin/pages/_contactform_links.html.erb +4 -4
  140. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +6 -6
  141. data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
  142. data/app/views/alchemy/admin/pages/_file_link.html.erb +3 -3
  143. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  144. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -1
  145. data/app/views/alchemy/admin/pages/_page.html.erb +13 -13
  146. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +2 -4
  147. data/app/views/alchemy/admin/pages/_sitemap.html.erb +5 -0
  148. data/app/views/alchemy/admin/pages/configure.html.erb +7 -7
  149. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  150. data/app/views/alchemy/admin/pages/edit.html.erb +23 -30
  151. data/app/views/alchemy/admin/pages/index.html.erb +34 -23
  152. data/app/views/alchemy/admin/pages/new.html.erb +1 -1
  153. data/app/views/alchemy/admin/pages/sort.js.erb +1 -1
  154. data/app/views/alchemy/admin/partials/_flash_upload.html.erb +2 -3
  155. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
  156. data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
  157. data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -2
  158. data/app/views/alchemy/admin/pictures/_archive.html.erb +7 -7
  159. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  160. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +6 -6
  161. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +4 -4
  162. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  163. data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -8
  164. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +9 -14
  165. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +27 -25
  166. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +3 -1
  167. data/app/views/alchemy/admin/pictures/index.html.erb +49 -42
  168. data/app/views/alchemy/admin/pictures/new.html.erb +2 -2
  169. data/app/views/alchemy/admin/pictures/show.html.erb +11 -0
  170. data/app/views/alchemy/admin/resources/_boolean.html.erb +2 -2
  171. data/app/views/alchemy/admin/resources/_datetime.html.erb +2 -2
  172. data/app/views/alchemy/admin/resources/_form.html.erb +9 -8
  173. data/app/views/alchemy/admin/resources/_resource.html.erb +15 -21
  174. data/app/views/alchemy/admin/resources/_string.html.erb +2 -2
  175. data/app/views/alchemy/admin/resources/_table.html.erb +11 -13
  176. data/app/views/alchemy/admin/resources/_text.html.erb +2 -2
  177. data/app/views/alchemy/admin/resources/index.csv.erb +13 -0
  178. data/app/views/alchemy/admin/resources/index.html.erb +24 -15
  179. data/app/views/alchemy/admin/sites/index.html.erb +23 -0
  180. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +1 -1
  181. data/app/views/alchemy/admin/tags/_tag.html.erb +2 -1
  182. data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
  183. data/app/views/alchemy/admin/tags/index.html.erb +16 -11
  184. data/app/views/alchemy/admin/tags/new.html.erb +3 -3
  185. data/app/views/alchemy/admin/trash/clear.js.coffee +1 -1
  186. data/app/views/alchemy/admin/users/_table.html.erb +12 -5
  187. data/app/views/alchemy/admin/users/_user.html.erb +16 -16
  188. data/app/views/alchemy/admin/users/index.html.erb +28 -16
  189. data/app/views/alchemy/breadcrumb/_page.html.erb +15 -0
  190. data/app/views/alchemy/breadcrumb/_spacer.html.erb +1 -0
  191. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  192. data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -16
  193. data/app/views/alchemy/essences/_essence_file_view.html.erb +8 -9
  194. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +3 -6
  195. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +9 -8
  196. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -5
  197. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +2 -2
  198. data/app/views/alchemy/navigation/_link.html.erb +7 -7
  199. data/app/views/alchemy/navigation/_renderer.html.erb +29 -36
  200. data/app/views/alchemy/notifications/admin_user_created.de.text.erb +5 -1
  201. data/app/views/alchemy/notifications/admin_user_created.en.text.erb +5 -1
  202. data/app/views/alchemy/notifications/registered_user_created.de.text.erb +13 -0
  203. data/app/views/alchemy/notifications/registered_user_created.en.text.erb +13 -0
  204. data/app/views/alchemy/search/_result.html.erb +4 -6
  205. data/app/views/alchemy/search/_results.html.erb +4 -5
  206. data/app/views/alchemy/user_sessions/leave.html.erb +1 -1
  207. data/app/views/alchemy/user_sessions/new.html.erb +2 -2
  208. data/app/views/kaminari/_first_page.html.erb +11 -0
  209. data/app/views/kaminari/_gap.html.erb +1 -1
  210. data/app/views/kaminari/_last_page.html.erb +11 -0
  211. data/app/views/kaminari/_next_page.html.erb +2 -2
  212. data/app/views/kaminari/_page.html.erb +1 -1
  213. data/app/views/kaminari/_paginator.html.erb +2 -0
  214. data/app/views/kaminari/_prev_page.html.erb +2 -2
  215. data/app/views/layouts/alchemy/admin.html.erb +4 -5
  216. data/config/alchemy/config.yml +8 -12
  217. data/config/authorization_rules.rb +4 -3
  218. data/config/initializers/dragonfly.rb +20 -12
  219. data/config/locales/alchemy.de.yml +20 -15
  220. data/config/locales/alchemy.en.yml +15 -10
  221. data/config/locales/devise.de.yml +1 -0
  222. data/config/routes.rb +3 -3
  223. data/{spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb → db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  224. data/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  225. data/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  226. data/lib/alchemy/capistrano.rb +10 -8
  227. data/lib/alchemy/errors.rb +7 -0
  228. data/lib/alchemy/filetypes.rb +33 -0
  229. data/lib/alchemy/i18n.rb +9 -1
  230. data/lib/alchemy/name_conversions.rb +28 -0
  231. data/lib/alchemy/page_layout.rb +5 -3
  232. data/lib/alchemy/resource.rb +132 -29
  233. data/lib/alchemy/resources_helper.rb +81 -12
  234. data/lib/alchemy/upgrader.rb +14 -276
  235. data/lib/alchemy/version.rb +1 -1
  236. data/lib/alchemy_cms.rb +17 -2
  237. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +1 -1
  238. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -1
  239. data/lib/tasks/alchemy/convert.rake +39 -0
  240. data/lib/tasks/alchemy/install.rake +4 -6
  241. data/lib/tasks/alchemy/upgrade.rake +18 -1
  242. data/spec/controllers/admin/clipboard_controller_spec.rb +4 -4
  243. data/spec/controllers/admin/elements_controller_spec.rb +23 -23
  244. data/spec/controllers/admin/pages_controller_spec.rb +15 -0
  245. data/spec/controllers/admin/resources_controller_spec.rb +1 -11
  246. data/spec/controllers/admin/trash_controller_spec.rb +9 -9
  247. data/spec/controllers/attachments_controller_spec.rb +3 -3
  248. data/spec/controllers/elements_controller_spec.rb +2 -2
  249. data/spec/controllers/pages_controller_spec.rb +160 -129
  250. data/spec/controllers/pictures_controller_spec.rb +2 -2
  251. data/spec/controllers/user_sessions_controller_spec.rb +3 -3
  252. data/spec/controllers/users_controller_spec.rb +2 -2
  253. data/spec/dummy/app/models/event.rb +2 -2
  254. data/spec/dummy/app/models/location.rb +4 -0
  255. data/spec/dummy/app/views/layouts/application.html.erb +6 -42
  256. data/spec/dummy/config/routes.rb +1 -1
  257. data/spec/dummy/db/migrate/20121026104128_create_events.rb +0 -1
  258. data/{db/migrate/20121118000000_alchemy_two_point_four.rb → spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  259. data/spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  260. data/spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  261. data/spec/dummy/db/migrate/20130328101418_create_locations.rb +9 -0
  262. data/spec/dummy/db/schema.rb +15 -6
  263. data/spec/factories.rb +4 -4
  264. data/spec/{integration → features}/admin/link_overlay_spec.rb +0 -0
  265. data/spec/{integration → features}/admin/modules_integration_spec.rb +1 -1
  266. data/spec/{integration → features}/admin/pages_controller_spec.rb +9 -4
  267. data/spec/{integration → features}/admin/picture_library_integration_spec.rb +5 -5
  268. data/spec/{integration → features}/admin/resources_integration_spec.rb +1 -1
  269. data/spec/{integration → features}/navigation_spec.rb +0 -0
  270. data/spec/{integration → features}/pages_controller_spec.rb +42 -112
  271. data/spec/{integration → features}/picture_security_spec.rb +2 -2
  272. data/spec/{integration → features}/security_spec.rb +7 -7
  273. data/spec/{integration → features}/translation_integration_spec.rb +0 -0
  274. data/spec/helpers/admin/base_helper_spec.rb +0 -50
  275. data/spec/helpers/admin/tags_helper_spec.rb +53 -0
  276. data/spec/helpers/base_helper_spec.rb +19 -3
  277. data/spec/helpers/pages_helper_spec.rb +92 -44
  278. data/spec/{url_helpers_spec.rb → helpers/picture_url_helpers_spec.rb} +7 -7
  279. data/spec/helpers/url_helper_spec.rb +92 -72
  280. data/spec/{config_spec.rb → libraries/config_spec.rb} +0 -0
  281. data/spec/libraries/resource_spec.rb +215 -76
  282. data/spec/libraries/resources_helper_spec.rb +70 -28
  283. data/spec/models/attachment_spec.rb +75 -9
  284. data/spec/models/clipboard_spec.rb +1 -1
  285. data/spec/models/element_spec.rb +7 -0
  286. data/spec/models/page_spec.rb +144 -25
  287. data/spec/models/picture_spec.rb +5 -5
  288. data/spec/models/resource_spec.rb +47 -10
  289. data/spec/models/user_spec.rb +115 -3
  290. data/spec/{routing_spec.rb → routing/routing_spec.rb} +8 -20
  291. data/spec/spec_helper.rb +5 -6
  292. data/spec/support/alchemy/specs_helpers.rb +1 -1
  293. data/spec/support/ci/install_phantomjs +1 -1
  294. data/spec/support/image with spaces.png +0 -0
  295. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +18 -18
  296. data/vendor/assets/javascripts/jquery_plugins/{jquery.dialogextend.1_0_1.js → jquery.dialogextend.js} +25 -17
  297. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +7 -0
  298. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +7 -7
  299. data/vendor/assets/javascripts/keymage.min.js +6 -0
  300. data/vendor/assets/javascripts/spin.min.js +1 -0
  301. metadata +122 -124
  302. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  303. data/app/assets/images/alchemy/gui/toggle.png +0 -0
  304. data/app/assets/images/alchemy/image_loader.gif +0 -0
  305. data/app/assets/images/alchemy/shading.png +0 -0
  306. data/app/assets/images/alchemy/tabs.gif +0 -0
  307. data/app/assets/javascripts/alchemy/alchemy.base.js +0 -172
  308. data/app/assets/javascripts/alchemy/alchemy.datepicker.js +0 -47
  309. data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +0 -91
  310. data/app/assets/javascripts/alchemy/alchemy.growler.js +0 -46
  311. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js +0 -60
  312. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +0 -15
  313. data/app/assets/javascripts/alchemy/alchemy.preview_window.js +0 -97
  314. data/app/assets/javascripts/alchemy/alchemy.windows.js +0 -321
  315. data/app/models/alchemy/clipboard_spec.rb +0 -0
  316. data/app/views/alchemy/admin/pictures/show_in_window.html.erb +0 -8
  317. data/app/views/alchemy/notifications/registered_user_created.text.erb +0 -11
  318. data/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  319. data/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  320. data/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  321. data/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  322. data/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  323. data/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  324. data/spec/alchemy_spec.rb +0 -7
  325. data/spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  326. data/spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  327. data/spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  328. data/spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  329. data/spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  330. data/spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  331. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo-1.4.2-min.js +0 -11
@@ -5,7 +5,7 @@
5
5
  margin-bottom: 8px;
6
6
  border: 1px solid #d08f91;
7
7
  color: #690001;
8
- @include rounded-corner;
8
+ @extend .rounded-border;
9
9
 
10
10
  &.ajax_status_code_0 {
11
11
  border-color: #c4c19c;
@@ -31,7 +31,7 @@ div#errors, div.errors {
31
31
  padding: 8px 8px 4px 28px;
32
32
  border-width: 1px;
33
33
  border-style: solid;
34
- @include rounded-corner;
34
+ @extend .rounded-border;
35
35
  border-color: #c49c9c;
36
36
  color: #592e2e;
37
37
  background-color: #efd3d3;
@@ -1,41 +1,4 @@
1
- @mixin rounded-corner($radius: $default-border-radius) {
2
- @include border-radius($radius);
3
- }
4
-
5
- @mixin reset-border-radius {
6
- @include border-radius(0);
7
- }
8
-
9
- @mixin top-rounded-border($radius: $default-border-radius) {
10
- @include border-top-radius($radius);
11
- }
12
-
13
- @mixin left-rounded-border($radius: $default-border-radius) {
14
- @include border-left-radius($radius);
15
- }
16
-
17
- @mixin right-rounded-border($radius: $default-border-radius) {
18
- @include border-right-radius($radius);
19
- }
20
-
21
- @mixin bottom-rounded-border($radius: $default-border-radius) {
22
- @include border-bottom-radius($radius);
23
- }
24
-
25
- @mixin bottom-left-rounded-border($radius: $default-border-radius) {
26
- @include border-bottom-left-radius($radius);
27
- }
28
-
29
- @mixin disable-user-select {
30
- @include user-select(none);
31
- }
32
-
33
- @mixin default-button-style {
34
- @include sassy-button('shiny', $sb-border-radius, $sb-font-size, $sb-base-color, $sb-second-color, $sb-text-color, $sb-text-style, $sb-pseudo-states, $sb-ie-support);
35
-
36
- border-color: $button-border-color;
37
- margin: $default-form-field-margin;
38
- }
1
+ // Some few mixins
39
2
 
40
3
  @mixin default-focus-style($bg-color: $very-light-blue, $border: 1px solid $blue) {
41
4
  background-color: $bg-color;
@@ -54,17 +17,82 @@
54
17
  }
55
18
  }
56
19
 
57
- @mixin field_with_error {
20
+ // Extends without base classes. They are the better mixins ;)
21
+
22
+ %text-overflow {
23
+ white-space: nowrap;
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ -o-text-overflow: ellipsis;
27
+ -ms-text-overflow: ellipsis;
28
+ -moz-text-overflow: ellipsis;
29
+ }
30
+
31
+ %tooltip {
32
+ display: none;
33
+ background: $light_yellow;
34
+ @extend .rounded-border;
35
+ @include box-shadow(0 4px 24px $dark-gray);
36
+ position: absolute;
37
+ right: -25px;
38
+ top: 26px;
39
+ z-index: 100;
40
+ padding: 8px;
41
+ line-height: 1.5em;
42
+ min-width: 180px;
43
+ font-size: 12px;
44
+
45
+ &:before {
46
+ content: '';
47
+ position: absolute;
48
+ top: -8px;
49
+ right: 24px;
50
+ width: 0px;
51
+ height: 0px;
52
+ border-style: solid;
53
+ border-width: 0 8px 8px 8px;
54
+ border-color: transparent transparent $light_yellow transparent;
55
+ }
56
+ }
57
+
58
+ %thumbnail-background {
59
+ display: table-cell;
60
+ background-color: $dark-gray;
61
+ text-align: center;
62
+ vertical-align: middle;
63
+ padding: 0;
64
+ line-height: 0;
65
+ }
66
+
67
+ %button-defaults {
68
+ @include sassy-button('shiny', $sb-border-radius, $sb-font-size, $sb-base-color, $sb-second-color, $sb-text-color, $sb-text-style, $sb-pseudo-states, $sb-ie-support);
69
+ border-color: $button-border-color;
70
+ margin: $default-form-field-margin;
71
+ }
72
+
73
+ %field-with-error {
58
74
  border-color: $error_border_color;
59
75
  color: $error_text_color;
60
76
  background-color: lighten($error_background_color, 8%);
61
77
  @include box-shadow(inset 1px 1px 4px rgba($error_border_color, 0.5));
62
78
  }
63
79
 
64
- @mixin default-input-style {
80
+ %border-radius-reset {
81
+ @include border-radius(0);
82
+ }
83
+
84
+ %blue-focus-style {
85
+ @include default-focus-style;
86
+ }
87
+
88
+ %white-focus-style {
89
+ @include default-focus-style(rgba(white, 0.5), none);
90
+ }
91
+
92
+ %default-input-style {
65
93
  @include box-sizing(border-box);
66
94
  $border-inset-color: lighten($default-border-color, 20%);
67
- @include rounded-corner;
95
+ @extend .rounded-border;
68
96
  @include box-shadow(inset 1px 1px 2px $medium-gray);
69
97
  font: $default-font-style;
70
98
  padding: 1px 2*$default-padding;
@@ -78,58 +106,54 @@
78
106
  font-size: 12px;
79
107
  line-height: 12px;
80
108
  height: 29px;
81
- @include transition(
109
+ @include transition(
82
110
  box-shadow 0.25s ease-in-out,
83
111
  background-color 0.25s ease-in-out,
84
112
  border 0.25s ease-in-out
85
113
  );
86
114
 
87
115
  &:focus {
88
- @include default-focus-style;
116
+ @extend %blue-focus-style;
89
117
  }
90
118
 
91
- &.with_error { @include field_with_error }
119
+ &.with_error { @extend %field-with-error }
92
120
  }
93
121
 
94
- @mixin text-overflow($prop: ellipsis) {
95
- text-overflow: $prop;
96
- -o-text-overflow: $prop;
97
- -ms-text-overflow: $prop;
98
- -moz-text-overflow: $prop;
122
+ %gradiated-toolbar {
123
+ background: $medium-gray;
124
+ @include background(linear-gradient(top, $medium-gray 85%, darken($medium-gray, 10) 100%));
99
125
  }
100
126
 
101
- @mixin tooltip {
102
- display: none;
103
- background: $light_yellow;
104
- @include rounded-corner;
105
- @include box-shadow(0 4px 24px $dark-gray);
106
- position: absolute;
107
- right: -25px;
108
- top: 26px;
109
- z-index: 100;
110
- padding: 8px;
111
- line-height: 1.5em;
112
- min-width: 180px;
113
- font-size: 12px;
127
+ %progressbar {
128
+ @include background-image(linear-gradient(top, rgba(lighten($light-gray, 10), .5) 5%, rgba($light-gray, 0.5) 65%, rgba(darken($medium-gray, 10), 0.5) 90%));
129
+ }
114
130
 
115
- &:before {
116
- content: '';
117
- position: absolute;
118
- top: -8px;
119
- right: 24px;
120
- width: 0px;
121
- height: 0px;
122
- border-style: solid;
123
- border-width: 0 8px 8px 8px;
124
- border-color: transparent transparent $light_yellow transparent;
125
- }
131
+ // Useful base classes
132
+
133
+ .rounded-border {
134
+ @include border-radius($default-border-radius);
126
135
  }
127
136
 
128
- @mixin thumbnail-background {
129
- display: table-cell;
130
- background-color: $dark-gray;
131
- text-align: center;
132
- vertical-align: middle;
133
- padding: 0;
134
- line-height: 0;
137
+ .top-rounded-border {
138
+ @include border-top-radius($default-border-radius);
139
+ }
140
+
141
+ .left-rounded-border {
142
+ @include border-left-radius($default-border-radius);
143
+ }
144
+
145
+ .right-rounded-border {
146
+ @include border-right-radius($default-border-radius);
147
+ }
148
+
149
+ .bottom-rounded-border {
150
+ @include border-bottom-radius($default-border-radius);
151
+ }
152
+
153
+ .bottom-left-rounded-border {
154
+ @include border-bottom-left-radius($default-border-radius);
155
+ }
156
+
157
+ .disable-user-select {
158
+ @include user-select(none);
135
159
  }
@@ -9,20 +9,18 @@ div#flash_notices {
9
9
  cursor: pointer;
10
10
  padding-right: 24px;
11
11
 
12
- &:after {
13
- content: '';
12
+ &:before {
14
13
  position: absolute;
15
14
  right: 2*$default-padding;
16
15
  top: 2*$default-padding;
17
- width: 16px;
18
- height: 16px;
19
- background: url(ui-icons_666666_256x240.png) -96px -128px no-repeat;
16
+ @extend .icon-cancel:before;
17
+ font-size: 14px;
20
18
  }
21
19
  }
22
20
  }
23
21
 
24
22
  div.flash {
25
- @include rounded-corner;
23
+ @extend .rounded-border;
26
24
  @include opacity(0.95);
27
25
  padding: 8px 8px 8px 30px;
28
26
  font-weight: bold;
@@ -0,0 +1,46 @@
1
+ @charset "UTF-8";
2
+
3
+ @font-face {
4
+ font-family: 'Alchemy Icons';
5
+ src: url("/assets/alchemy-icons.eot?23044784");
6
+ src: url("/assets/alchemy-icons.eot?23044784#iefix") format('embedded-opentype'),
7
+ url("/assets/alchemy-icons.woff?23044784") format('woff'),
8
+ url("/assets/alchemy-icons.ttf?23044784") format('truetype'),
9
+ url("/assets/alchemy-icons.svg?23044784#alchemy") format('svg');
10
+ font-weight: normal;
11
+ font-style: normal;
12
+ }
13
+
14
+ .icon-plus,
15
+ .icon-expand,
16
+ .icon-collapse,
17
+ .icon-cancel:before,
18
+ .icon-reload:before,
19
+ .icon-tag,
20
+ .icon-fullscreen:before,
21
+ .icon-exit-fullscreen:before,
22
+ .icon-double-arrow,
23
+ .icon-search {
24
+ font-family: 'Alchemy Icons';
25
+ font-size: 12px;
26
+ font-style: normal;
27
+ font-weight: normal;
28
+ speak: none;
29
+ text-decoration: none;
30
+ width: 12px;
31
+ color: #666;
32
+ text-align: center;
33
+ line-height: 1em;
34
+ @include inline-block;
35
+ }
36
+
37
+ .icon-plus:before { content: '\e804' } /* '' */
38
+ .icon-expand:before { content: '\229e' }
39
+ .icon-collapse:before { content: '\229f' } /* '⊟' */
40
+ .icon-cancel:before { content: '\e803' } /* '' */
41
+ .icon-reload:before { content: '\27f2' } /* '⟲' */
42
+ .icon-tag:before { content: '\e801' } /* '' */
43
+ .icon-fullscreen:before { content: '\e802' } /* '' */
44
+ .icon-exit-fullscreen:before { content: '\e800' } /* '' */
45
+ .icon-double-arrow:before { content: '\e74f' } /* '' */
46
+ .icon-search:before { content: '\1f50e' } /* '\1f50e' */
@@ -4,12 +4,12 @@
4
4
  margin-top: $default-margin;
5
5
  display: block;
6
6
  line-height: 100%;
7
- @include disable-user-select;
7
+ @extend .disable-user-select;
8
8
  clear: both;
9
9
  }
10
10
 
11
11
  button, input[type="submit"], a.button, input.button {
12
- @include default-button-style;
12
+ @extend %button-defaults;
13
13
 
14
14
  &.small {
15
15
  padding: 2px 2*$default-padding;
@@ -34,18 +34,19 @@ button, input[type="submit"], a.button, input.button {
34
34
  }
35
35
 
36
36
  &:focus {
37
- @include default-focus-style;
37
+ @extend %blue-focus-style;
38
38
  }
39
39
 
40
40
  &.disabled {
41
41
  line-height: 13px;
42
+ height: 29px;
42
43
  padding-top: 5px;
43
44
  padding-bottom: 4px;
44
45
  }
45
46
  }
46
47
 
47
48
  .icon_button {
48
- @include default-button-style;
49
+ @extend %button-defaults;
49
50
  width: 21px;
50
51
  height: 21px;
51
52
  line-height: 19px;
@@ -82,7 +83,7 @@ button, input[type="submit"], a.button, input.button {
82
83
  float: none;
83
84
  @include inline-block;
84
85
  position: relative;
85
- top: -2px;
86
+ top: 0px;
86
87
  background: none;
87
88
  border: none;
88
89
  @include box-shadow(none);
@@ -90,8 +91,8 @@ button, input[type="submit"], a.button, input.button {
90
91
  .icon {
91
92
  left: auto;
92
93
  position: absolute;
93
- right: 4px;
94
- top: 4px;
94
+ right: 5px;
95
+ top: 0px;
95
96
  width: 8px;
96
97
  height: 8px;
97
98
 
@@ -104,12 +105,12 @@ button, input[type="submit"], a.button, input.button {
104
105
  border: $default-border-width $default-border-style $button-hover-border-color;
105
106
  @include border-radius($default-border-radius);
106
107
  background: $button-hover-bg-color;
107
- top: -2px;
108
+ top: -1px;
108
109
  right: 0px;
109
110
 
110
111
  .icon {
111
- right: 3px;
112
- top: 3px;
112
+ right: 4px;
113
+ top: 0px;
113
114
  }
114
115
  }
115
116
  }
@@ -146,7 +147,7 @@ button, input[type="submit"], a.button, input.button {
146
147
  }
147
148
 
148
149
  &:focus {
149
- @include default-focus-style;
150
+ @extend %blue-focus-style;
150
151
  }
151
152
  }
152
153
 
@@ -167,11 +168,11 @@ div#toolbar label {
167
168
  @include default-label-style;
168
169
  }
169
170
 
170
- div.button_with_label {
171
+ .button_with_label {
172
+ @include inline-block(top);
171
173
  text-align: center;
172
174
  margin-right: 8px;
173
175
  margin-left: 8px;
174
- float: left;
175
176
  min-width: 70px;
176
177
  line-height: 0;
177
178
 
@@ -233,7 +234,7 @@ div.sitemap_right_tools .sitemap_sitetools a.icon_button {
233
234
  }
234
235
 
235
236
  textarea, input[type="text"], input[type="email"], input[type="password"], .thin_border, .input_field {
236
- @include default-input-style;
237
+ @extend %default-input-style;
237
238
 
238
239
  &.dirty {
239
240
  background-color: #fff8df;
@@ -270,18 +271,18 @@ input#search_input_field {
270
271
  div.search_field span.icon, div.js_filter_field_box span.icon {
271
272
  position: absolute;
272
273
  left: 8px;
273
- top: 6px;
274
+ top: 8px;
274
275
  }
275
276
 
276
277
  .js_filter_field_box {
277
- position: relative;
278
- float: right;
279
- margin-left: 4px;
278
+ position: absolute;
279
+ right: 4px;
280
+ top: 4px;
280
281
 
281
282
  .js_filter_field {
282
283
  width: 220px;
283
284
  text-align: left;
284
- @include border-radius(15px);
285
+ @include border-radius(3px);
285
286
  padding: 3px 24px;
286
287
  height: 29px;
287
288
  margin: 0;
@@ -293,23 +294,13 @@ div.search_field span.icon, div.js_filter_field_box span.icon {
293
294
  text-align: center;
294
295
  padding-top: 3px;
295
296
  }
296
-
297
- .js_filter_field_clear {
298
- width: 15px;
299
- height: 15px;
300
- background: url('icons.png') no-repeat 0 -70px;
301
- position: absolute;
302
- right: 8px;
303
- top: 4px;
304
- @include rounded-corner;
305
- }
306
297
  }
307
298
 
308
299
  // Just some basic styling for select tags.
309
300
  // Not used, because we use the .selectBoxIt() jQuery plugin.
310
301
 
311
302
  select {
312
- @include default-button-style;
303
+ @extend %button-defaults;
313
304
  height: 29px;
314
305
  padding: 0.4em 0.6em;
315
306
  }
@@ -338,7 +329,7 @@ td.select .selectboxit {
338
329
  a { text-decoration: none }
339
330
 
340
331
  .selectboxit {
341
- @include default-button-style;
332
+ @extend %button-defaults;
342
333
  width: auto;
343
334
  height: 15px;
344
335
  padding: 6px 0 6px 8px;
@@ -401,16 +392,18 @@ td.select .selectboxit {
401
392
  .selectboxit-arrow-container {
402
393
  width: 16px;
403
394
  top: 8px;
395
+ line-height: 1em;
404
396
  height: 14px !important;
405
397
  }
406
398
 
407
399
  .selectboxit-arrow {
408
- margin-top: 0 !important;
400
+ margin-top: 2px !important;
401
+ font-size: 10px;
409
402
  }
410
403
  }
411
404
 
412
405
  &:focus {
413
- @include default-focus-style;
406
+ @extend %blue-focus-style;
414
407
  }
415
408
 
416
409
  /* Dropdown List Box Text */
@@ -419,8 +412,8 @@ td.select .selectboxit {
419
412
  overflow: hidden;
420
413
  float: left;
421
414
  white-space: nowrap;
422
- @include disable-user-select;
423
- @include text-overflow(ellipsis);
415
+ @extend .disable-user-select;
416
+ @extend %text-overflow;
424
417
  padding-right: 32px;
425
418
  line-height: normal !important;
426
419
  }
@@ -443,20 +436,21 @@ td.select .selectboxit {
443
436
  /* Horizontally centers the down arrow */
444
437
  margin-right: auto;
445
438
  margin-left: auto;
446
- margin-top: 4.5px !important;
447
- width: 16px;
448
- height: 15px;
449
- text-indent: -99999px;
450
- overflow: hidden;
439
+ margin-top: 6px !important;
440
+ width: 6px;
441
+ height: 1em;
442
+ line-height: 1em;
443
+ margin-left: 0.3em;
444
+ font-style: normal;
451
445
  display: block;
452
- background: url('ui-icons_666666_256x240.png') -127px -17px no-repeat;
446
+ @extend .icon-double-arrow;
453
447
  }
454
448
 
455
449
  &.with_error { border-color: $error_border_color }
456
450
  }
457
451
 
458
452
  /* Dropdown List Options List*/
459
- ul {
453
+ .selectboxit-options {
460
454
  @include box-sizing(border-box);
461
455
  min-height: 28px;
462
456
  min-width: 100%;
@@ -471,7 +465,7 @@ td.select .selectboxit {
471
465
  display: none;
472
466
  z-index: 99999;
473
467
  outline: none;
474
- @include rounded-corner;
468
+ @extend .rounded-border;
475
469
  @include box-shadow(0 4px 16px $dark-gray);
476
470
  border: $default-border;
477
471
 
@@ -510,6 +504,13 @@ td.select .selectboxit {
510
504
  cursor: default;
511
505
  }
512
506
  }
507
+
508
+ .selectboxit-option-anchor {
509
+ display: block;
510
+ min-height: 19px;
511
+ max-width: 410px;
512
+ @extend %text-overflow;
513
+ }
513
514
  }
514
515
 
515
516
  .autocomplete_tag_list {
@@ -517,8 +518,8 @@ td.select .selectboxit {
517
518
 
518
519
  label {
519
520
  position: absolute;
520
- top: 8px;
521
- left: 6px;
521
+ top: 13px;
522
+ left: 8px;
522
523
  }
523
524
 
524
525
  input[data-autocomplete] {