alchemy_cms 2.5.3.1 → 2.6.0.rc5

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 (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
@@ -6,9 +6,121 @@ module Alchemy
6
6
  let(:user) { FactoryGirl.build(:user) }
7
7
  let(:page) { FactoryGirl.create(:page) }
8
8
 
9
- it "should have a role" do
9
+ it "should have at least registered role" do
10
10
  user.save!
11
- user.role.should_not be_nil
11
+ user.roles.should_not be_blank
12
+ user.roles.should include('registered')
13
+ end
14
+
15
+ describe 'scopes' do
16
+ describe '.admins' do
17
+ before do
18
+ user.roles = 'admin'
19
+ user.save!
20
+ end
21
+
22
+ it "should only return users with admin role" do
23
+ User.admins.should include(user)
24
+ end
25
+ end
26
+ end
27
+
28
+ describe ".human_rolename" do
29
+ it "return a translated role name" do
30
+ ::I18n.locale = :de
31
+ User.human_rolename('registered').should == "Registriert"
32
+ end
33
+ end
34
+
35
+ describe "#human_roles_string" do
36
+ it "should return a humanized roles string." do
37
+ ::I18n.locale = :de
38
+ user.roles = ['registered', 'admin']
39
+ user.human_roles_string.should == "Registriert und Administrator"
40
+ end
41
+ end
42
+
43
+ describe '#role_symbols' do
44
+ it "should return an array of user role symbols" do
45
+ user.role_symbols.should == [:registered]
46
+ end
47
+ end
48
+
49
+ describe '#has_role?' do
50
+
51
+ context "with given role" do
52
+ it "should return true." do
53
+ user.has_role?('registered').should be_true
54
+ end
55
+ end
56
+
57
+ context "with role given as symbol" do
58
+ it "should return true." do
59
+ user.has_role?(:registered).should be_true
60
+ end
61
+ end
62
+
63
+ context "without given role" do
64
+ it "should return true." do
65
+ user.has_role?('admin').should be_false
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ describe '#role' do
72
+ context "when user doesn't have any roles" do
73
+ before { user.roles = [] }
74
+
75
+ it 'should return nil' do
76
+ user.role.should be_nil
77
+ end
78
+ end
79
+
80
+ context "when user has multiple roles" do
81
+ before { user.roles = ["admin", "registered"] }
82
+
83
+ it 'should return the first role' do
84
+ user.role.should == "admin"
85
+ end
86
+ end
87
+ end
88
+
89
+ describe '#roles' do
90
+ it "should return an array of user roles" do
91
+ user.roles.should == ["registered"]
92
+ end
93
+ end
94
+
95
+ describe '#roles=' do
96
+
97
+ it "should accept an array of user roles" do
98
+ user.roles = ["admin"]
99
+ user.roles.should == ["admin"]
100
+ end
101
+
102
+ it "should accept a string of user roles" do
103
+ user.roles = "admin registered"
104
+ user.roles.should == ["admin", "registered"]
105
+ end
106
+
107
+ it "should store the user roles as space seperated string" do
108
+ user.roles = ["admin", "registered"]
109
+ user.read_attribute(:roles).should == "admin registered"
110
+ end
111
+
112
+ end
113
+
114
+ describe "#add_role" do
115
+ it "should add the given role to roles array" do
116
+ user.add_role "member"
117
+ user.roles.should == ["registered", "member"]
118
+ end
119
+
120
+ it "should not add the given role twice" do
121
+ user.add_role "registered"
122
+ user.roles.should == ["registered"]
123
+ end
12
124
  end
13
125
 
14
126
  describe '#logged_in?' do
@@ -53,7 +165,7 @@ module Alchemy
53
165
 
54
166
  describe '#is_admin?' do
55
167
  it "should return true if the user has admin role" do
56
- user.role = "admin"
168
+ user.roles = "admin"
57
169
  user.save!
58
170
  user.is_admin?.should be_true
59
171
  end
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "The Routing", :type => :routing do
3
+ describe "The Routing" do
4
4
 
5
- before { @routes = Alchemy::Engine.routes }
5
+ routes { Alchemy::Engine.routes }
6
6
 
7
7
  context "for downloads" do
8
8
 
@@ -62,8 +62,7 @@ describe "The Routing", :type => :routing do
62
62
  }.should route_to(
63
63
  :controller => "alchemy/pages",
64
64
  :action => "show",
65
- :level1 => "products",
66
- :urlname => "my-product"
65
+ :urlname => "products/my-product"
67
66
  )
68
67
  end
69
68
 
@@ -75,8 +74,7 @@ describe "The Routing", :type => :routing do
75
74
  }.should route_to(
76
75
  :controller => "alchemy/pages",
77
76
  :action => "show",
78
- :level1 => "products",
79
- :urlname => "my-product",
77
+ :urlname => "products/my-product",
80
78
  :lang => "de"
81
79
  )
82
80
  end
@@ -93,9 +91,7 @@ describe "The Routing", :type => :routing do
93
91
  }.should route_to(
94
92
  :controller => "alchemy/pages",
95
93
  :action => "show",
96
- :level1 => "catalog",
97
- :level2 => "products",
98
- :urlname => "my-product"
94
+ :urlname => "catalog/products/my-product"
99
95
  )
100
96
  end
101
97
 
@@ -107,9 +103,7 @@ describe "The Routing", :type => :routing do
107
103
  }.should route_to(
108
104
  :controller => "alchemy/pages",
109
105
  :action => "show",
110
- :level1 => "catalog",
111
- :level2 => "products",
112
- :urlname => "my-product",
106
+ :urlname => "catalog/products/my-product",
113
107
  :lang => "de"
114
108
  )
115
109
  end
@@ -126,10 +120,7 @@ describe "The Routing", :type => :routing do
126
120
  }.should route_to(
127
121
  :controller => "alchemy/pages",
128
122
  :action => "show",
129
- :level1 => "2011",
130
- :level2 => "12",
131
- :level3 => "08",
132
- :urlname => "my-post"
123
+ :urlname => "2011/12/08/my-post"
133
124
  )
134
125
  end
135
126
 
@@ -141,10 +132,7 @@ describe "The Routing", :type => :routing do
141
132
  }.should route_to(
142
133
  :controller => "alchemy/pages",
143
134
  :action => "show",
144
- :level1 => "2011",
145
- :level2 => "12",
146
- :level3 => "08",
147
- :urlname => "my-post",
135
+ :urlname => "2011/12/08/my-post",
148
136
  :lang => "de"
149
137
  )
150
138
  end
@@ -1,10 +1,9 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
1
3
 
2
- begin
3
- require 'simplecov'
4
- SimpleCov.start('rails') do
5
- add_filter "/spec/"
6
- end
7
- rescue LoadError => e
4
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
5
+ SimpleCov.start do
6
+ add_filter '/spec/'
8
7
  end
9
8
 
10
9
  begin
@@ -66,5 +66,5 @@ module Alchemy
66
66
  end
67
67
 
68
68
  RSpec.configure do |c|
69
- c.include Alchemy::Specs::Helpers, :type => :request
69
+ c.include Alchemy::Specs::Helpers, :type => :feature
70
70
  end
@@ -4,4 +4,4 @@ version=phantomjs-1.8.1-linux-i686
4
4
  cd
5
5
  wget http://phantomjs.googlecode.com/files/$version.tar.bz2
6
6
  tar xjf $version.tar.bz2
7
- mv $version phantomjs
7
+ mv $version phantomjs
@@ -1,22 +1,22 @@
1
1
  /**
2
- * jquery.Jcrop.min.js v0.9.10 (build:20120429)
2
+ * jquery.Jcrop.min.js v0.9.12 (build:20130202)
3
3
  * jQuery Image Cropping Plugin - released under MIT License
4
- * Copyright (c) 2008-2012 Tapmodo Interactive LLC
4
+ * Copyright (c) 2008-2013 Tapmodo Interactive LLC
5
5
  * https://github.com/tapmodo/Jcrop
6
6
  */
7
- (function(a){a.Jcrop=function(b,c){function h(a){return a+"px"}function i(a){return d.baseClass+"-"+a}function j(){return a.fx.step.hasOwnProperty("backgroundColor")}function k(b){var c=a(b).offset();return[c.left,c.top]}function l(a){return[a.pageX-e[0],a.pageY-e[1]]}function m(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function n(a,b){e=k(E),bd.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bd.activateHandlers(p(b),u);var c=ba.getFixed(),d=q(a),f=ba.getCorner(q(d));ba.setPressed(ba.getCorner(d)),ba.setCurrent(f),bd.activateHandlers(o(a,c),u)}function o(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}ba.setCurrent(c),bc.update()}}function p(a){var b=a;return be.watchKeys(),function(
8
- a){ba.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bc.update()}}function q(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function r(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=k(E),X=!0,n(a,l(b)),b.stopPropagation(),b.preventDefault(),!1)}}function s(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),U=a.width()/d,V=a.height()/e,a.width(d).height(e)}function t(a){return{x:a.x*U,y:a.y*V,x2:a.x2*U,y2:a.y2*V,w:a.w*U,h:a.h*V}}function u(a){var b=ba.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bc.enableHandles(),bc.done()):bc.release(),bd.setCursor(d.allowSelect?"crosshair":"default")}function v(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;X=!0,e=k(E),bc.disableHandles(),bd.setCursor("crosshair");var b=l(a);return ba.setPressed(b),bc.update(),bd.activateHandlers(w,u),be.watchKeys(),a.stopPropagation
9
- (),a.preventDefault(),!1}function w(a){ba.setCurrent(a),bc.update()}function z(){var b=a("<div></div>").addClass(i("tracker"));return a.browser.msie&&b.css({opacity:0,backgroundColor:"white"}),b}function bf(a){H.removeClass().addClass(i("holder")).addClass(a)}function bg(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/U,e=a[1]/V,f=a[2]/U,g=a[3]/V;if(Y)return;var h=ba.flipCoords(c,e,f,g),i=ba.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;x=k[0],y=k[1],f=k[2],g=k[3],bc.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=x+q/100*m,k[1]=y+q/100*n,k[2]=f+q/100*o,k[3]=g+q/100*p,q>=99.8&&(q=100),q<100?(bi(k),t()):(bc.done(),typeof b=="function"&&b.call(bt))}}();t()}function bh(a){bi([a[0]/U,a[1]/V,a[2]/U,a[3]/V]),d.onSelect.call(bt,t(ba.getFixed())),bc.enableHandles()}function bi(a){ba.setPressed([a[0],a[1]]),ba.setCurrent([a[2],a[3]]),bc.update()}function bj(){return t(ba.getFixed())}function bk(){return ba.getFixed()}function bl
10
- (a){m(a),bs()}function bm(){d.disabled=!0,bc.disableHandles(),bc.setCursor("default"),bd.setCursor("default")}function bn(){d.disabled=!1,bs()}function bo(){bc.done(),bd.activateHandlers(null,null)}function bp(){H.remove(),B.show(),a(b).removeData("Jcrop")}function bq(a,b){bc.release(),bm();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;E.width(e).height(f),E.attr("src",a),I.attr("src",a),s(E,g,h),F=E.width(),G=E.height(),I.width(F).height(G),N.width(F+M*2).height(G+M*2),H.width(F).height(G),bb.resize(F,G),bn(),typeof b=="function"&&b.call(bt)},c.src=a}function br(a,b,c){var e=b||d.bgColor;d.bgFade&&j()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function bs(a){d.allowResize?a?bc.enableOnly():bc.enableHandles():bc.disableHandles(),bd.setCursor(d.allowSelect?"crosshair":"default"),bc.setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(U=d.trueSize[0]/F,V=d.trueSize[1]/G),d.hasOwnProperty("setSelect"
11
- )&&(bh(d.setSelect),bc.done(),delete d.setSelect),bb.refresh(),d.bgColor!=O&&(br(d.shade?bb.getShades():H,d.shade?d.shadeColor||d.bgColor:d.bgColor),O=d.bgColor),P!=d.bgOpacity&&(P=d.bgOpacity,d.shade?bb.refresh():bc.setBgOpacity(P)),Q=d.maxSize[0]||0,R=d.maxSize[1]||0,S=d.minSize[0]||0,T=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(E.attr("src",d.outerImage),delete d.outerImage),bc.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f,g=!1;a.browser.msie&&a.browser.version.split(".")[0]==="6"&&(g=!0),typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),m(c);var A={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},B=a(b),C=!0;if(b.tagName=="IMG"){if(B[0].width!=0&&B[0].height!=0)B.width(B[0].width),B.height(B[0].height);else{var D=new Image;D.src=B[0].src,B.width(D.width),B.height(D.height)}var E=B.clone().removeAttr("id").css(A).show();E.width(B.width()),E.height(B.height()),B.after(E).hide()}else E=B.css(A).show(),C=!1,d.shade===null&&(d.shade=!0);s(E,d.boxWidth,d.
12
- boxHeight);var F=E.width(),G=E.height(),H=a("<div />").width(F).height(G).addClass(i("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(B).append(E);d.addClass&&H.addClass(d.addClass);var I=a("<div />"),J=a("<div />").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),K=a("<div />").width("100%").height("100%").css("zIndex",320),L=a("<div />").css({position:"absolute",zIndex:600}).dblclick(function(){var a=ba.getFixed();d.onDblClick.call(bt,a)}).insertBefore(E).append(J,K);C&&(I=a("<img />").attr("src",E.attr("src")).css(A).width(F).height(G),J.append(I)),g&&L.css({overflowY:"hidden"});var M=d.boundary,N=z().width(F+M*2).height(G+M*2).css({position:"absolute",top:h(-M),left:h(-M),zIndex:290}).mousedown(v),O=d.bgColor,P=d.bgOpacity,Q,R,S,T,U,V,W=!0,X,Y,Z;e=k(E);var _=function(){function a(){var a={},b=["touchstart","touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;d<b.length;d++){var e=b[d];e="on"+e;var f=e in c;f||(c.setAttribute(e,"return;"
13
- ),f=typeof c[e]=="function"),a[b[d]]=f}return a.touchstart&&a.touchend&&a.touchmove}catch(g){return!1}}function b(){return d.touchSupport===!0||d.touchSupport===!1?d.touchSupport:a()}return{createDragger:function(a){return function(b){return b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,d.disabled?!1:a==="move"&&!d.allowMove?!1:(X=!0,n(a,l(b)),b.stopPropagation(),b.preventDefault(),!1)}},newSelection:function(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,v(a)},isSupported:a,support:b()}}(),ba=function(){function h(d){d=n(d),c=a=d[0],e=b=d[1]}function i(a){a=n(a),f=a[0]-c,g=a[1]-e,c=a[0],e=a[1]}function j(){return[f,g]}function k(d){var f=d[0],g=d[1];0>a+f&&(f-=f+a),0>b+g&&(g-=g+b),G<e+g&&(g+=G-(e+g)),F<c+f&&(f+=F-(c+f)),a+=f,c+=f,b+=g,e+=g}function l(a){var b=m();switch(a){case"ne":return[b.x2,b.y];case"nw":return[b.x,b.y];case"se":return[b.x2,b.y2];case"sw":return[b.x,b.y2]}}function m(){if(!d.aspectRatio
14
- )return p();var f=d.aspectRatio,g=d.minSize[0]/U,h=d.maxSize[0]/U,i=d.maxSize[1]/V,j=c-a,k=e-b,l=Math.abs(j),m=Math.abs(k),n=l/m,r,s,t,u;return h===0&&(h=F*10),i===0&&(i=G*10),n<f?(s=e,t=m*f,r=j<0?a-t:t+a,r<0?(r=0,u=Math.abs((r-a)/f),s=k<0?b-u:u+b):r>F&&(r=F,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>G&&(s=G,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-a<g?r=a+g:r-a>h&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):r<a&&(a-r<g?r=a-g:a-r>h&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>F&&(a-=r-F,r=F),s<0?(b-=s,s=0):s>G&&(b-=s-G,s=G),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>F&&(a[0]=F),a[1]>G&&(a[1]=G),[a[0],a[1]]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return c<a&&(e=c,f=a),d<b&&(g=d,h=b),[e,g,f,h]}function p(){var d=c-a,f=e-b,g;return Q&&Math.abs(d)>Q&&(c=d>0?a+Q:a-Q),R&&Math.abs(f)>R&&(e=f>0?b+R:b-R),T/V&&Math.abs(f)<T/V&&(e=f>0?b+T/V:b-T/V),S/U&&Math.abs(d)<S/U&&(c=d>0?a+S/U:a-S/U),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&
15
- (a-=c,c-=c),e<0&&(b-=e,e-=e),c>F&&(g=c-F,a-=g,c-=g),e>G&&(g=e-G,b-=g,e-=g),a>F&&(g=a-G,e-=g,b-=g),b>G&&(g=b-G,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),bb=function(){function f(a,b){e.left.css({height:h(b)}),e.right.css({height:h(b)})}function g(){return i(ba.getFixed())}function i(a){e.top.css({left:h(a.x),width:h(a.w),height:h(a.y)}),e.bottom.css({top:h(a.y2),left:h(a.x),width:h(a.w),height:h(G-a.y2)}),e.right.css({left:h(a.x2),width:h(F-a.x2)}),e.left.css({width:h(a.x)})}function j(){return a("<div />").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(E),g(),bc.setBgOpacity(1,0,1),I.hide(),l(d.shadeColor||d.bgColor,1),bc.isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){br(p(),a,b)}function m(){b&&(c.remove(),I.show(),b=!1,bc.isAwake()?bc.setBgOpacity(d.bgOpacity
16
- ,1,1):(bc.setBgOpacity(1,1,1),bc.disableHandles()),br(H,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bc.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("<div />").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(G),right:j().height(G),bottom:j()};return{update:g,updateRaw:i,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bc=function(){function k(b){var c=a("<div />").css({position:"absolute",opacity:d.borderOpacity}).addClass(i(b));return J.append(c),c}function l(b,c){var d=a("<div />").mousedown(r(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return _.support&&d.bind("touchstart.jcrop",_.createDragger(b)),K.append(d),d}function m(a){var b=d.handleSize;return l(a,c++).css({opacity:d.handleOpacity}).width(b).height(b).addClass(i("handle"))}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o
17
- (a){var b;for(b=0;b<a.length;b++)g[a[b]]=n(a[b])}function p(a){var b,c;for(c=0;c<a.length;c++){switch(a[c]){case"n":b="hline";break;case"s":b="hline bottom";break;case"e":b="vline right";break;case"w":b="vline"}e[a[c]]=k(b)}}function q(a){var b;for(b=0;b<a.length;b++)f[a[b]]=m(a[b])}function s(a,b){d.shade||I.css({top:h(-b),left:h(-a)}),L.css({top:h(b),left:h(a)})}function u(a,b){L.width(a).height(b)}function v(){var a=ba.getFixed();ba.setPressed([a.x,a.y]),ba.setCurrent([a.x2,a.y2]),w()}function w(a){if(b)return x(a)}function x(a){var c=ba.getFixed();u(c.w,c.h),s(c.x,c.y),d.shade&&bb.updateRaw(c),b||A(),a?d.onSelect.call(bt,t(c)):d.onChange.call(bt,t(c))}function y(a,c,e){if(!b&&!c)return;d.bgFade&&!e?E.animate({opacity:a},{queue:!1,duration:d.fadeTime}):E.css("opacity",a)}function A(){L.show(),d.shade?bb.opacity(P):y(P,!0),b=!0}function B(){F(),L.hide(),d.shade?bb.opacity(1):y(1),b=!1,d.onRelease.call(bt)}function C(){j&&K.show()}function D(){j=!0;if(d.allowResize)return K.show(),!0}function F(){j=!1,K.hide(
18
- )}function G(a){Y===a?F():D()}function H(){G(!1),v()}var b,c=370,e={},f={},g={},j=!1;d.dragEdges&&a.isArray(d.createDragbars)&&o(d.createDragbars),a.isArray(d.createHandles)&&q(d.createHandles),d.drawBorders&&a.isArray(d.createBorders)&&p(d.createBorders),a(document).bind("touchstart.jcrop-ios",function(b){a(b.currentTarget).hasClass("jcrop-tracker")&&b.stopPropagation()});var M=z().mousedown(r("move")).css({cursor:"move",position:"absolute",zIndex:360});return _.support&&M.bind("touchstart.jcrop",_.createDragger("move")),J.append(M),F(),{updateVisible:w,update:x,release:B,refresh:v,isAwake:function(){return b},setCursor:function(a){M.css("cursor",a)},enableHandles:D,enableOnly:function(){j=!0},showHandles:C,disableHandles:F,animMode:G,setBgOpacity:y,done:H}}(),bd=function(){function f(){N.css({zIndex:450}),_.support&&a(document).bind("touchmove.jcrop",k).bind("touchend.jcrop",m),e&&a(document).bind("mousemove.jcrop",h).bind("mouseup.jcrop",i)}function g(){N.css({zIndex:290}),a(document).unbind(".jcrop")}function h
19
- (a){return b(l(a)),!1}function i(a){return a.preventDefault(),a.stopPropagation(),X&&(X=!1,c(l(a)),bc.isAwake()&&d.onSelect.call(bt,t(ba.getFixed())),g(),b=function(){},c=function(){}),!1}function j(a,d){return X=!0,b=a,c=d,f(),!1}function k(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,h(a)}function m(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,i(a)}function n(a){N.css("cursor",a)}var b=function(){},c=function(){},e=d.trackDocument;return e||N.mousemove(h).mouseup(i).mouseout(i),E.before(N),{activateHandlers:j,setCursor:n}}(),be=function(){function e(){d.keySupport&&(b.show(),b.focus())}function f(a){b.hide()}function h(a,b,c){d.allowMove&&(ba.moveOffset([b,c]),bc.updateVisible(!0)),a.preventDefault(),a.stopPropagation()}function i(a){if(a.ctrlKey||a.metaKey)return!0;Z=a.shiftKey?!0:!1;var b=Z?10:1;switch(a.keyCode){case 37:h(a,-b,0);break;case 39:h(a,b,0);break;case 38:h(a,0,-b);break;case 40
20
- :h(a,0,b);break;case 27:d.allowSelect&&bc.release();break;case 9:return!0}return!1}var b=a('<input type="radio" />').css({position:"fixed",left:"-120px",width:"12px"}),c=a("<div />").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),g||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(E)):b.insertBefore(E)),{watchKeys:e}}();_.support&&N.bind("touchstart.jcrop",_.newSelection),K.hide(),bs(!0);var bt={setImage:bq,animateTo:bg,setSelect:bh,setOptions:bl,tellSelect:bj,tellScaled:bk,setClass:bf,disable:bm,enable:bn,cancel:bo,release:bc.release,destroy:bp,focus:be.watchKeys,getBounds:function(){return[F*U,G*V]},getWidgetSize:function(){return[F,G]},getScaleFactor:function(){return[U,V]},getOptions:function(){return d},ui:{holder:H,selection:L}};return a.browser.msie&&H.bind("selectstart",function(){return!1}),B.data("Jcrop",bt),bt},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if(b==="api")return a
21
- (this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:7,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges:!0,fixedSupport:!0,
22
- touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery);
7
+ (function(a){a.Jcrop=function(b,c){function i(a){return Math.round(a)+"px"}function j(a){return d.baseClass+"-"+a}function k(){return a.fx.step.hasOwnProperty("backgroundColor")}function l(b){var c=a(b).offset();return[c.left,c.top]}function m(a){return[a.pageX-e[0],a.pageY-e[1]]}function n(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function o(a,b,c){e=l(D),bc.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bc.activateHandlers(q(b),v,c);var d=_.getFixed(),f=r(a),g=_.getCorner(r(f));_.setPressed(_.getCorner(f)),_.setCurrent(g),bc.activateHandlers(p(a,d),v,c)}function p(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}_.setCurrent(c),bb.update()}}function q(a){var b=a;return bd.watchKeys
8
+ (),function(a){_.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bb.update()}}function r(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function s(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(b)),b.stopPropagation(),b.preventDefault(),!1)}}function t(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),T=a.width()/d,U=a.height()/e,a.width(d).height(e)}function u(a){return{x:a.x*T,y:a.y*U,x2:a.x2*T,y2:a.y2*U,w:a.w*T,h:a.h*U}}function v(a){var b=_.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bb.enableHandles(),bb.done()):bb.release(),bc.setCursor(d.allowSelect?"crosshair":"default")}function w(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;W=!0,e=l(D),bb.disableHandles(),bc.setCursor("crosshair");var b=m(a);return _.setPressed(b),bb.update(),bc.activateHandlers(x,v,a.type.substring
9
+ (0,5)==="touch"),bd.watchKeys(),a.stopPropagation(),a.preventDefault(),!1}function x(a){_.setCurrent(a),bb.update()}function y(){var b=a("<div></div>").addClass(j("tracker"));return g&&b.css({opacity:0,backgroundColor:"white"}),b}function be(a){G.removeClass().addClass(j("holder")).addClass(a)}function bf(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/T,e=a[1]/U,f=a[2]/T,g=a[3]/U;if(X)return;var h=_.flipCoords(c,e,f,g),i=_.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;c=k[0],e=k[1],f=k[2],g=k[3],bb.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=Math.round(c+q/100*m),k[1]=Math.round(e+q/100*n),k[2]=Math.round(f+q/100*o),k[3]=Math.round(g+q/100*p),q>=99.8&&(q=100),q<100?(bh(k),t()):(bb.done(),bb.animMode(!1),typeof b=="function"&&b.call(bs))}}();t()}function bg(a){bh([a[0]/T,a[1]/U,a[2]/T,a[3]/U]),d.onSelect.call(bs,u(_.getFixed())),bb.enableHandles()}function bh(a){_.setPressed([a[0],a[1]]),_.setCurrent([a[2],
10
+ a[3]]),bb.update()}function bi(){return u(_.getFixed())}function bj(){return _.getFixed()}function bk(a){n(a),br()}function bl(){d.disabled=!0,bb.disableHandles(),bb.setCursor("default"),bc.setCursor("default")}function bm(){d.disabled=!1,br()}function bn(){bb.done(),bc.activateHandlers(null,null)}function bo(){G.remove(),A.show(),A.css("visibility","visible"),a(b).removeData("Jcrop")}function bp(a,b){bb.release(),bl();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;D.width(e).height(f),D.attr("src",a),H.attr("src",a),t(D,g,h),E=D.width(),F=D.height(),H.width(E).height(F),M.width(E+L*2).height(F+L*2),G.width(E).height(F),ba.resize(E,F),bm(),typeof b=="function"&&b.call(bs)},c.src=a}function bq(a,b,c){var e=b||d.bgColor;d.bgFade&&k()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function br(a){d.allowResize?a?bb.enableOnly():bb.enableHandles():bb.disableHandles(),bc.setCursor(d.allowSelect?"crosshair":"default"),bb
11
+ .setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(T=d.trueSize[0]/E,U=d.trueSize[1]/F),d.hasOwnProperty("setSelect")&&(bg(d.setSelect),bb.done(),delete d.setSelect),ba.refresh(),d.bgColor!=N&&(bq(d.shade?ba.getShades():G,d.shade?d.shadeColor||d.bgColor:d.bgColor),N=d.bgColor),O!=d.bgOpacity&&(O=d.bgOpacity,d.shade?ba.refresh():bb.setBgOpacity(O)),P=d.maxSize[0]||0,Q=d.maxSize[1]||0,R=d.minSize[0]||0,S=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(D.attr("src",d.outerImage),delete d.outerImage),bb.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f=navigator.userAgent.toLowerCase(),g=/msie/.test(f),h=/msie [1-6]\./.test(f);typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),n(c);var z={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},A=a(b),B=!0;if(b.tagName=="IMG"){if(A[0].width!=0&&A[0].height!=0)A.width(A[0].width),A.height(A[0].height);else{var C=new Image;C.src=A[0].src,A.width(C.width),A.height(C.height)}var D=A.clone().removeAttr("id").
12
+ css(z).show();D.width(A.width()),D.height(A.height()),A.after(D).hide()}else D=A.css(z).show(),B=!1,d.shade===null&&(d.shade=!0);t(D,d.boxWidth,d.boxHeight);var E=D.width(),F=D.height(),G=a("<div />").width(E).height(F).addClass(j("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(A).append(D);d.addClass&&G.addClass(d.addClass);var H=a("<div />"),I=a("<div />").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),J=a("<div />").width("100%").height("100%").css("zIndex",320),K=a("<div />").css({position:"absolute",zIndex:600}).dblclick(function(){var a=_.getFixed();d.onDblClick.call(bs,a)}).insertBefore(D).append(I,J);B&&(H=a("<img />").attr("src",D.attr("src")).css(z).width(E).height(F),I.append(H)),h&&K.css({overflowY:"hidden"});var L=d.boundary,M=y().width(E+L*2).height(F+L*2).css({position:"absolute",top:i(-L),left:i(-L),zIndex:290}).mousedown(w),N=d.bgColor,O=d.bgOpacity,P,Q,R,S,T,U,V=!0,W,X,Y;e=l(D);var Z=function(){function a(){var a={},b=["touchstart"
13
+ ,"touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;d<b.length;d++){var e=b[d];e="on"+e;var f=e in c;f||(c.setAttribute(e,"return;"),f=typeof c[e]=="function"),a[b[d]]=f}return a.touchstart&&a.touchend&&a.touchmove}catch(g){return!1}}function b(){return d.touchSupport===!0||d.touchSupport===!1?d.touchSupport:a()}return{createDragger:function(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(Z.cfilter(b)),!0),b.stopPropagation(),b.preventDefault(),!1)}},newSelection:function(a){return w(Z.cfilter(a))},cfilter:function(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,a},isSupported:a,support:b()}}(),_=function(){function h(d){d=n(d),c=a=d[0],e=b=d[1]}function i(a){a=n(a),f=a[0]-c,g=a[1]-e,c=a[0],e=a[1]}function j(){return[f,g]}function k(d){var f=d[0],g=d[1];0>a+f&&(f-=f+a),0>b+g&&(g-=g+b),F<e+g&&(g+=F-(e+g)),E<c+f&&(f+=E-(c+f)),a+=f,c+=f,b+=g,e+=g}function l(a){var b=m();switch(a){case"ne":return[
14
+ b.x2,b.y];case"nw":return[b.x,b.y];case"se":return[b.x2,b.y2];case"sw":return[b.x,b.y2]}}function m(){if(!d.aspectRatio)return p();var f=d.aspectRatio,g=d.minSize[0]/T,h=d.maxSize[0]/T,i=d.maxSize[1]/U,j=c-a,k=e-b,l=Math.abs(j),m=Math.abs(k),n=l/m,r,s,t,u;return h===0&&(h=E*10),i===0&&(i=F*10),n<f?(s=e,t=m*f,r=j<0?a-t:t+a,r<0?(r=0,u=Math.abs((r-a)/f),s=k<0?b-u:u+b):r>E&&(r=E,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>F&&(s=F,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-a<g?r=a+g:r-a>h&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):r<a&&(a-r<g?r=a-g:a-r>h&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>E&&(a-=r-E,r=E),s<0?(b-=s,s=0):s>F&&(b-=s-F,s=F),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>E&&(a[0]=E),a[1]>F&&(a[1]=F),[Math.round(a[0]),Math.round(a[1])]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return c<a&&(e=c,f=a),d<b&&(g=d,h=b),[e,g,f,h]}function p(){var d=c-a,f=e-b,g;return P&&Math.abs(d)>P&&(c=d>0?a+P:a-P),Q&&Math.abs
15
+ (f)>Q&&(e=f>0?b+Q:b-Q),S/U&&Math.abs(f)<S/U&&(e=f>0?b+S/U:b-S/U),R/T&&Math.abs(d)<R/T&&(c=d>0?a+R/T:a-R/T),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&(a-=c,c-=c),e<0&&(b-=e,e-=e),c>E&&(g=c-E,a-=g,c-=g),e>F&&(g=e-F,b-=g,e-=g),a>E&&(g=a-F,e-=g,b-=g),b>F&&(g=b-F,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),ba=function(){function f(a,b){e.left.css({height:i(b)}),e.right.css({height:i(b)})}function g(){return h(_.getFixed())}function h(a){e.top.css({left:i(a.x),width:i(a.w),height:i(a.y)}),e.bottom.css({top:i(a.y2),left:i(a.x),width:i(a.w),height:i(F-a.y2)}),e.right.css({left:i(a.x2),width:i(E-a.x2)}),e.left.css({width:i(a.x)})}function j(){return a("<div />").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(D),g(),bb.setBgOpacity(1,0,1),H.hide(),l(d.shadeColor||d.bgColor,1),bb.
16
+ isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){bq(p(),a,b)}function m(){b&&(c.remove(),H.show(),b=!1,bb.isAwake()?bb.setBgOpacity(d.bgOpacity,1,1):(bb.setBgOpacity(1,1,1),bb.disableHandles()),bq(G,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bb.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("<div />").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(F),right:j().height(F),bottom:j()};return{update:g,updateRaw:h,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bb=function(){function k(b){var c=a("<div />").css({position:"absolute",opacity:d.borderOpacity}).addClass(j(b));return I.append(c),c}function l(b,c){var d=a("<div />").mousedown(s(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return Z.support&&d.bind("touchstart.jcrop",Z.createDragger(b)),J.append(d),d}function m(a){var b=d.handleSize,e=l(a,c++
17
+ ).css({opacity:d.handleOpacity}).addClass(j("handle"));return b&&e.width(b).height(b),e}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o(a){var b;for(b=0;b<a.length;b++)g[a[b]]=n(a[b])}function p(a){var b,c;for(c=0;c<a.length;c++){switch(a[c]){case"n":b="hline";break;case"s":b="hline bottom";break;case"e":b="vline right";break;case"w":b="vline"}e[a[c]]=k(b)}}function q(a){var b;for(b=0;b<a.length;b++)f[a[b]]=m(a[b])}function r(a,b){d.shade||H.css({top:i(-b),left:i(-a)}),K.css({top:i(b),left:i(a)})}function t(a,b){K.width(Math.round(a)).height(Math.round(b))}function v(){var a=_.getFixed();_.setPressed([a.x,a.y]),_.setCurrent([a.x2,a.y2]),w()}function w(a){if(b)return x(a)}function x(a){var c=_.getFixed();t(c.w,c.h),r(c.x,c.y),d.shade&&ba.updateRaw(c),b||A(),a?d.onSelect.call(bs,u(c)):d.onChange.call(bs,u(c))}function z(a,c,e){if(!b&&!c)return;d.bgFade&&!e?D.animate({opacity:a},{queue:!1,duration:d.fadeTime}):D.css("opacity",a)}function A(){K.show(),d.shade?ba.opacity(O):z(O,!0),b=!0}function B
18
+ (){F(),K.hide(),d.shade?ba.opacity(1):z(1),b=!1,d.onRelease.call(bs)}function C(){h&&J.show()}function E(){h=!0;if(d.allowResize)return J.show(),!0}function F(){h=!1,J.hide()}function G(a){a?(X=!0,F()):(X=!1,E())}function L(){G(!1),v()}var b,c=370,e={},f={},g={},h=!1;d.dragEdges&&a.isArray(d.createDragbars)&&o(d.createDragbars),a.isArray(d.createHandles)&&q(d.createHandles),d.drawBorders&&a.isArray(d.createBorders)&&p(d.createBorders),a(document).bind("touchstart.jcrop-ios",function(b){a(b.currentTarget).hasClass("jcrop-tracker")&&b.stopPropagation()});var M=y().mousedown(s("move")).css({cursor:"move",position:"absolute",zIndex:360});return Z.support&&M.bind("touchstart.jcrop",Z.createDragger("move")),I.append(M),F(),{updateVisible:w,update:x,release:B,refresh:v,isAwake:function(){return b},setCursor:function(a){M.css("cursor",a)},enableHandles:E,enableOnly:function(){h=!0},showHandles:C,disableHandles:F,animMode:G,setBgOpacity:z,done:L}}(),bc=function(){function f(b){M.css({zIndex:450}),b?a(document).bind("touchmove.jcrop"
19
+ ,k).bind("touchend.jcrop",l):e&&a(document).bind("mousemove.jcrop",h).bind("mouseup.jcrop",i)}function g(){M.css({zIndex:290}),a(document).unbind(".jcrop")}function h(a){return b(m(a)),!1}function i(a){return a.preventDefault(),a.stopPropagation(),W&&(W=!1,c(m(a)),bb.isAwake()&&d.onSelect.call(bs,u(_.getFixed())),g(),b=function(){},c=function(){}),!1}function j(a,d,e){return W=!0,b=a,c=d,f(e),!1}function k(a){return b(m(Z.cfilter(a))),!1}function l(a){return i(Z.cfilter(a))}function n(a){M.css("cursor",a)}var b=function(){},c=function(){},e=d.trackDocument;return e||M.mousemove(h).mouseup(i).mouseout(i),D.before(M),{activateHandlers:j,setCursor:n}}(),bd=function(){function e(){d.keySupport&&(b.show(),b.focus())}function f(a){b.hide()}function g(a,b,c){d.allowMove&&(_.moveOffset([b,c]),bb.updateVisible(!0)),a.preventDefault(),a.stopPropagation()}function i(a){if(a.ctrlKey||a.metaKey)return!0;Y=a.shiftKey?!0:!1;var b=Y?10:1;switch(a.keyCode){case 37:g(a,-b,0);break;case 39:g(a,b,0);break;case 38:g(a,0,-b);break;
20
+ case 40:g(a,0,b);break;case 27:d.allowSelect&&bb.release();break;case 9:return!0}return!1}var b=a('<input type="radio" />').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),c=a("<div />").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),h||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(D)):b.insertBefore(D)),{watchKeys:e}}();Z.support&&M.bind("touchstart.jcrop",Z.newSelection),J.hide(),br(!0);var bs={setImage:bp,animateTo:bf,setSelect:bg,setOptions:bk,tellSelect:bi,tellScaled:bj,setClass:be,disable:bl,enable:bm,cancel:bn,release:bb.release,destroy:bo,focus:bd.watchKeys,getBounds:function(){return[E*T,F*U]},getWidgetSize:function(){return[E,F]},getScaleFactor:function(){return[T,U]},getOptions:function(){return d},ui:{holder:G,selection:K}};return g&&G.bind("selectstart",function(){return!1}),A.data("Jcrop",bs),bs},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if(
21
+ b==="api")return a(this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges
22
+ :!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery);
@@ -1,9 +1,7 @@
1
1
  /*!
2
- * jQuery DialogExtend 1.0.1
2
+ * jQuery DialogExtend 1.1.0
3
3
  *
4
- * tvd: fixes for jQuery UI 1.9 and adjusts sizes.
5
- *
6
- * Copyright (c) 2010 Shum Ting Hin
4
+ * Copyright (c) 2013 Shum Ting Hin, Thomas von Deyen
7
5
  *
8
6
  * Licensed under MIT
9
7
  * http:// www.opensource.org/licenses/mit-license.php
@@ -12,8 +10,8 @@
12
10
  * http:// code.google.com/p/jquery-dialogextend/
13
11
  *
14
12
  * Depends:
15
- * jQuery 1.7.2
16
- * jQuery UI Dialog 1.8.22
13
+ * jQuery 1.9.1
14
+ * jQuery UI Dialog 1.10.1
17
15
  *
18
16
  */
19
17
  (function($){
@@ -137,8 +135,7 @@
137
135
  // fix dialog from scrolling
138
136
  .dialog("widget")
139
137
  .css({
140
- // ie6 does not support {position:fixed} ===> simply use {absolute}
141
- "position" : ( $.browser.msie && parseInt($.browser.version) <= 6 ) ? "absolute" : "fixed"
138
+ "position" : "fixed"
142
139
  })
143
140
  .find(".ui-dialog-content")
144
141
  // show content
@@ -181,8 +178,7 @@
181
178
  var fixedContainer = $('<div id="dialog-extend-fixed-container"></div>').appendTo("body");
182
179
  }
183
180
  $(fixedContainer).css({
184
- // ie6 does not support {position:fixed} ===> simply use {absolute}
185
- "position" : ( $.browser.mise && parseInt($.browser.version) <= 6 ) ? "absolute" : "fixed",
181
+ "position" : "fixed",
186
182
  "bottom" : 1,
187
183
  "left" : 1,
188
184
  "z-index" : 9999
@@ -288,16 +284,28 @@
288
284
  .end();
289
285
  // append other buttons to button-pane
290
286
  $(buttonPane)
291
- .append('<a class="ui-dialog-titlebar-maximize ui-corner-all" href="#"><span class="ui-icon '+settings.icons.maximize+'">maximize</span></a>')
292
- .append('<a class="ui-dialog-titlebar-restore ui-corner-all" href="#"><span class="ui-icon '+settings.icons.restore+'">restore</span></a>')
293
- .append('<a class="ui-dialog-titlebar-minimize ui-corner-all" href="#"><span class="ui-icon '+settings.icons.minimize+'">minimize</span></a>')
287
+ .append('<button class="ui-dialog-titlebar-maximize ui-corner-all ui-state-default"><span class="ui-icon '+settings.icons.maximize+'">maximize</span></button>')
288
+ .append('<button class="ui-dialog-titlebar-restore ui-corner-all ui-state-default"><span class="ui-icon '+settings.icons.restore+'">restore</span></button>')
289
+ .append('<button class="ui-dialog-titlebar-minimize ui-corner-all ui-state-default"><span class="ui-icon '+settings.icons.minimize+'">minimize</span></button>')
294
290
  // add effect to buttons
295
291
  .find(".ui-dialog-titlebar-maximize,.ui-dialog-titlebar-minimize,.ui-dialog-titlebar-restore")
296
292
  .attr("role", "button")
297
- .mouseover(function(){ $(this).addClass("ui-state-hover"); })
298
- .mouseout(function(){ $(this).removeClass("ui-state-hover"); })
299
- .focus(function(){ $(this).addClass("ui-state-focus"); })
300
- .blur(function(){ $(this).removeClass("ui-state-focus"); })
293
+ .mouseover(function(){
294
+ $(this).addClass("ui-state-hover");
295
+ $(this).removeClass("ui-state-default");
296
+ })
297
+ .mouseout(function(){
298
+ $(this).removeClass("ui-state-hover");
299
+ $(this).addClass("ui-state-default");
300
+ })
301
+ .focus(function(){
302
+ $(this).addClass("ui-state-focus");
303
+ $(this).removeClass("ui-state-default");
304
+ })
305
+ .blur(function(){
306
+ $(this).removeClass("ui-state-focus");
307
+ $(this).addClass("ui-state-default");
308
+ })
301
309
  .end()
302
310
  // default show buttons
303
311
  // set button positions
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
3
+ * Dual licensed under MIT and GPL.
4
+ * @author Ariel Flesler
5
+ * @version 1.4.5b
6
+ */
7
+ ;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
@@ -1,7 +1,7 @@
1
1
  /*
2
- * UI Tabs Paging extension - v1.2 (for jQuery 1.8.2 and jQuery UI 1.9.0)
2
+ * UI Tabs Paging extension - v1.2.2 (for jQuery 1.9.0 and jQuery UI 1.9.0)
3
3
  *
4
- * Copyright (c) 2012, http://seyfertdesign.com/jquery/ui-tabs-paging.html
4
+ * Copyright (c) 2013, http://seyfertdesign.com/jquery/ui-tabs-paging.html
5
5
  *
6
6
  * Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  * of this software and associated documentation files (the "Software"), to deal
@@ -97,7 +97,7 @@ $.extend($.ui.tabs.prototype, {
97
97
 
98
98
  // fix padding issues with buttons
99
99
  // TODO determine a better way to handle this
100
- allTabsWidth += maxDiff + ($.browser.msie?4:0) + 9;
100
+ allTabsWidth += maxDiff + 9;
101
101
 
102
102
  // if the width of all tables is greater than the container's width, calculate the pages
103
103
  if (allTabsWidth > containerWidth) {
@@ -232,7 +232,7 @@ $.extend($.ui.tabs.prototype, {
232
232
 
233
233
  // ------------- OVERRIDDEN PUBLIC FUNCTIONS -------------
234
234
  self.option = function(optionName, value) {
235
- uiTabsFuncs.option.apply(this, [optionName, value]);
235
+ var retVal = uiTabsFuncs.option.apply(this, [optionName, value]);
236
236
 
237
237
  // if "followOnActive" is true, then move page when selection changes
238
238
  if (optionName == "active")
@@ -240,7 +240,7 @@ $.extend($.ui.tabs.prototype, {
240
240
  // if paging is not initialized or it is not configured to
241
241
  // change pages when a new tab is active, then do nothing
242
242
  if (!initialized || !opts.followOnActive)
243
- return this;
243
+ return retVal;
244
244
 
245
245
  // find the new page based on index of the active tab
246
246
  for (var i in pages) {
@@ -265,7 +265,7 @@ $.extend($.ui.tabs.prototype, {
265
265
  }
266
266
  }
267
267
 
268
- return this;
268
+ return retVal;
269
269
  }
270
270
 
271
271
  self.refresh = function() {
@@ -344,4 +344,4 @@ $.extend($.ui.tabs.prototype, {
344
344
  });
345
345
 
346
346
 
347
- })(jQuery);
347
+ })(jQuery);
@@ -0,0 +1,6 @@
1
+ // keymage.js - Javascript keyboard event handling
2
+ // http://github.com/piranha/keymage
3
+ //
4
+ // (c) 2012 Alexander Solovyov
5
+ // under terms of ISC License
6
+ (function(a,b){a(function(){function m(a){var b=a.split("-"),d=b[b.length-1],e={code:f[d]};if(!e.code)throw'Unknown key "'+d+'" in keystring "'+a+'"';var g;for(var h=0;h<b.length-1;h++){d=b[h],g=c[d];if(!g)throw'Unknown modifier "'+d+'" in keystring "'+a+'"';e[g]=!0}return e}function n(a){var b="";for(var c=0;c<d.length;c++)a[d[c]]&&(b+=d[c]+"-");return b+=h[a.code],b}function o(a){var b=[],c=a.split(" ");for(var d=0;d<c.length;d++){var e=m(c[d]);e=n(e),b.push(e)}return b.original=a,b}function p(b){var c={code:b.keyCode};for(var d=0;d<a.length;d++){var e=a[d];b[e]&&(c[e.slice(0,e.length-3)]=!0)}return n(c)}function q(a,b){for(var c=0;c<b.length;c++){var d=b[c];d&&(a=a[d]);if(!a)break}return a}function s(a){if(~e.indexOf(a.keyCode))return;var b=r.slice();b.push(p(a));var c=k.split("."),d,f,g;for(var h=c.length;h>=0;h--){f=q(l,c.slice(0,h));if(!f)continue;d=!0;for(var i=0;i<b.length;i++){g=b[i];if(!f[g]){d=!1;break}f=f[g]}if(d)break}var j=c.slice(0,h).join("."),m=f.preventDefault;if(d&&!f.handlers){r=b,m&&a.preventDefault();return}if(d)for(h=0;h<f.handlers.length;h++){var n=f.handlers[h],o=n._keymage,s=n.call(o.context,a,{shortcut:o.original,scope:k,definitionScope:j});(s===!1||m)&&a.preventDefault()}r=[]}function t(a,b,c){var d=a.split("."),e=l;d=d.concat(b);for(var f=0,g=d.length;f<g;f++){var h=d[f];if(!h)continue;e=e[h]||(e[h]={}),c._keymage.preventDefault&&(e.preventDefault=!0);if(f===g-1){var i=e.handlers||(e.handlers=[]);i.push(c)}}}function u(a,c,d,e){if(c===b&&d===b)return function(b,c){return u(a,b,c)};typeof c=="function"&&(e=d,d=c,c=a,a="");var f=o(c);d._keymage=e||{},d._keymage.original=c,t(a,f,d)}var a=["shiftKey","ctrlKey","altKey","metaKey"],c={shift:"shift",ctrl:"ctrl",control:"ctrl",alt:"alt",option:"alt",win:"meta",cmd:"meta","super":"meta",meta:"meta",defmod:~navigator.userAgent.indexOf("Mac OS X")?"meta":"ctrl"},d=["shift","ctrl","alt","meta"],e=[16,17,18,91],f={backspace:8,tab:9,enter:13,"return":13,pause:19,caps:20,capslock:20,escape:27,esc:27,space:32,pgup:33,pageup:33,pgdown:34,pagedown:34,end:35,home:36,ins:45,insert:45,del:46,"delete":46,left:37,up:38,right:39,down:40,"*":106,"+":107,plus:107,"-":109,minus:109,";":186,"=":187,",":188,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},g;for(g=0;g<10;g++)f["num-"+g]=g+95;for(g=0;g<10;g++)f[g.toString()]=g+48;for(g=1;g<25;g++)f["f"+g]=g+111;for(g=65;g<91;g++)f[String.fromCharCode(g).toLowerCase()]=g;var h={};for(var i in f){var j=f[i];if(!h[j]||h[j].length<i.length)h[j]=i}var k="",l={},r=[];return u.parse=m,u.stringify=n,u.bindings=l,u.setScope=function(a){k=a?a:""},u.getScope=function(){return k},u.pushScope=function(a){return k=(k?k+".":"")+a,k},u.popScope=function(a){var b;return a?(k=k.replace(new RegExp("(^|\\.)"+a+"(\\.|$).*"),""),a):(b=k.lastIndexOf("."),a=k.slice(b+1),k=k.slice(0,b),a)},window.addEventListener("keydown",s,!1),u})})(typeof define!="undefined"?define:function(a){window.keymage=a()});
@@ -0,0 +1 @@
1
+ !function(t,e,i){var o=["webkit","Moz","ms","O"],r={},n;function a(t,i){var o=e.createElement(t||"div"),r;for(r in i)o[r]=i[r];return o}function s(t){for(var e=1,i=arguments.length;e<i;e++)t.appendChild(arguments[e]);return t}var f=function(){var t=a("style",{type:"text/css"});s(e.getElementsByTagName("head")[0],t);return t.sheet||t.styleSheet}();function l(t,e,i,o){var a=["opacity",e,~~(t*100),i,o].join("-"),s=.01+i/o*100,l=Math.max(1-(1-t)/e*(100-s),t),p=n.substring(0,n.indexOf("Animation")).toLowerCase(),u=p&&"-"+p+"-"||"";if(!r[a]){f.insertRule("@"+u+"keyframes "+a+"{"+"0%{opacity:"+l+"}"+s+"%{opacity:"+t+"}"+(s+.01)+"%{opacity:1}"+(s+e)%100+"%{opacity:"+t+"}"+"100%{opacity:"+l+"}"+"}",f.cssRules.length);r[a]=1}return a}function p(t,e){var r=t.style,n,a;if(r[e]!==i)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(a=0;a<o.length;a++){n=o[a]+e;if(r[n]!==i)return n}}function u(t,e){for(var i in e)t.style[p(t,i)||i]=e[i];return t}function c(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var r in o)if(t[r]===i)t[r]=o[r]}return t}function d(t){var e={x:t.offsetLeft,y:t.offsetTop};while(t=t.offsetParent)e.x+=t.offsetLeft,e.y+=t.offsetTop;return e}var h={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",speed:1,trail:100,opacity:1/4,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto",position:"relative"};function m(t){if(!this.spin)return new m(t);this.opts=c(t||{},m.defaults,h)}m.defaults={};c(m.prototype,{spin:function(t){this.stop();var e=this,i=e.opts,o=e.el=u(a(0,{className:i.className}),{position:i.position,width:0,zIndex:i.zIndex}),r=i.radius+i.length+i.width,s,f;if(t){t.insertBefore(o,t.firstChild||null);f=d(t);s=d(o);u(o,{left:(i.left=="auto"?f.x-s.x+(t.offsetWidth>>1):parseInt(i.left,10)+r)+"px",top:(i.top=="auto"?f.y-s.y+(t.offsetHeight>>1):parseInt(i.top,10)+r)+"px"})}o.setAttribute("aria-role","progressbar");e.lines(o,e.opts);if(!n){var l=0,p=i.fps,c=p/i.speed,h=(1-i.opacity)/(c*i.trail/100),m=c/i.lines;(function y(){l++;for(var t=i.lines;t;t--){var r=Math.max(1-(l+t*m)%c*h,i.opacity);e.opacity(o,i.lines-t,r,i)}e.timeout=e.el&&setTimeout(y,~~(1e3/p))})()}return e},stop:function(){var t=this.el;if(t){clearTimeout(this.timeout);if(t.parentNode)t.parentNode.removeChild(t);this.el=i}return this},lines:function(t,e){var i=0,o;function r(t,o){return u(a(),{position:"absolute",width:e.length+e.width+"px",height:e.width+"px",background:t,boxShadow:o,transformOrigin:"left",transform:"rotate("+~~(360/e.lines*i+e.rotate)+"deg) translate("+e.radius+"px"+",0)",borderRadius:(e.corners*e.width>>1)+"px"})}for(;i<e.lines;i++){o=u(a(),{position:"absolute",top:1+~(e.width/2)+"px",transform:e.hwaccel?"translate3d(0,0,0)":"",opacity:e.opacity,animation:n&&l(e.opacity,e.trail,i,e.lines)+" "+1/e.speed+"s linear infinite"});if(e.shadow)s(o,u(r("#000","0 0 4px "+"#000"),{top:2+"px"}));s(t,s(o,r(e.color,"0 0 1px rgba(0,0,0,.1)")))}return t},opacity:function(t,e,i){if(e<t.childNodes.length)t.childNodes[e].style.opacity=i}});(function(){function t(t,e){return a("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',e)}var e=u(a("group"),{behavior:"url(#default#VML)"});if(!p(e,"transform")&&e.adj){f.addRule(".spin-vml","behavior:url(#default#VML)");m.prototype.lines=function(e,i){var o=i.length+i.width,r=2*o;function n(){return u(t("group",{coordsize:r+" "+r,coordorigin:-o+" "+-o}),{width:r,height:r})}var a=-(i.width+i.length)*2+"px",f=u(n(),{position:"absolute",top:a,left:a}),l;function p(e,r,a){s(f,s(u(n(),{rotation:360/i.lines*e+"deg",left:~~r}),s(u(t("roundrect",{arcsize:i.corners}),{width:o,height:i.width,left:i.radius,top:-i.width>>1,filter:a}),t("fill",{color:i.color,opacity:i.opacity}),t("stroke",{opacity:0}))))}if(i.shadow)for(l=1;l<=i.lines;l++)p(l,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(l=1;l<=i.lines;l++)p(l);return s(e,f)};m.prototype.opacity=function(t,e,i,o){var r=t.firstChild;o=o.shadow&&o.lines||0;if(r&&e+o<r.childNodes.length){r=r.childNodes[e+o];r=r&&r.firstChild;r=r&&r.firstChild;if(r)r.opacity=i}}}else n=p(e,"animation")})();if(typeof define=="function"&&define.amd)define(function(){return m});else t.Spinner=m}(window,document);
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.3.1
5
- prerelease:
4
+ version: 2.6.0.rc5
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thomas von Deyen
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-04-19 00:00:00.000000000 Z
16
+ date: 2013-04-30 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -22,7 +22,7 @@ dependencies:
22
22
  requirements:
23
23
  - - ~>
24
24
  - !ruby/object:Gem::Version
25
- version: 3.2.12
25
+ version: 3.2.13
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 3.2.12
33
+ version: 3.2.13
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: devise
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -100,17 +100,17 @@ dependencies:
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  none: false
102
102
  requirements:
103
- - - '='
103
+ - - ~>
104
104
  - !ruby/object:Gem::Version
105
- version: 0.5.5
105
+ version: 0.5.7
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  none: false
110
110
  requirements:
111
- - - '='
111
+ - - ~>
112
112
  - !ruby/object:Gem::Version
113
- version: 0.5.5
113
+ version: 0.5.7
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: dragonfly
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -134,7 +134,7 @@ dependencies:
134
134
  requirements:
135
135
  - - ~>
136
136
  - !ruby/object:Gem::Version
137
- version: 0.13.0
137
+ version: 0.14.1
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
@@ -142,7 +142,7 @@ dependencies:
142
142
  requirements:
143
143
  - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: 0.13.0
145
+ version: 0.14.1
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: acts_as_ferret
148
148
  requirement: !ruby/object:Gem::Requirement
@@ -166,7 +166,7 @@ dependencies:
166
166
  requirements:
167
167
  - - ~>
168
168
  - !ruby/object:Gem::Version
169
- version: 0.1.9
169
+ version: 0.2.0
170
170
  type: :runtime
171
171
  prerelease: false
172
172
  version_requirements: !ruby/object:Gem::Requirement
@@ -174,7 +174,7 @@ dependencies:
174
174
  requirements:
175
175
  - - ~>
176
176
  - !ruby/object:Gem::Version
177
- version: 0.1.9
177
+ version: 0.2.0
178
178
  - !ruby/object:Gem::Dependency
179
179
  name: magiclabs-userstamp
180
180
  requirement: !ruby/object:Gem::Requirement
@@ -214,7 +214,7 @@ dependencies:
214
214
  requirements:
215
215
  - - ~>
216
216
  - !ruby/object:Gem::Version
217
- version: 2.1.3
217
+ version: 2.2.1
218
218
  type: :runtime
219
219
  prerelease: false
220
220
  version_requirements: !ruby/object:Gem::Requirement
@@ -222,7 +222,7 @@ dependencies:
222
222
  requirements:
223
223
  - - ~>
224
224
  - !ruby/object:Gem::Version
225
- version: 2.1.3
225
+ version: 2.2.1
226
226
  - !ruby/object:Gem::Dependency
227
227
  name: jquery-ui-rails
228
228
  requirement: !ruby/object:Gem::Requirement
@@ -239,22 +239,6 @@ dependencies:
239
239
  - - ~>
240
240
  - !ruby/object:Gem::Version
241
241
  version: 3.0.1
242
- - !ruby/object:Gem::Dependency
243
- name: attachment_magic
244
- requirement: !ruby/object:Gem::Requirement
245
- none: false
246
- requirements:
247
- - - ! '>='
248
- - !ruby/object:Gem::Version
249
- version: 0.2.1
250
- type: :runtime
251
- prerelease: false
252
- version_requirements: !ruby/object:Gem::Requirement
253
- none: false
254
- requirements:
255
- - - ! '>='
256
- - !ruby/object:Gem::Version
257
- version: 0.2.1
258
242
  - !ruby/object:Gem::Dependency
259
243
  name: sass-rails
260
244
  requirement: !ruby/object:Gem::Requirement
@@ -335,6 +319,22 @@ dependencies:
335
319
  - - ~>
336
320
  - !ruby/object:Gem::Version
337
321
  version: 1.0.10
322
+ - !ruby/object:Gem::Dependency
323
+ name: tvdeyen-handles_sortable_columns
324
+ requirement: !ruby/object:Gem::Requirement
325
+ none: false
326
+ requirements:
327
+ - - ~>
328
+ - !ruby/object:Gem::Version
329
+ version: 0.1.5
330
+ type: :runtime
331
+ prerelease: false
332
+ version_requirements: !ruby/object:Gem::Requirement
333
+ none: false
334
+ requirements:
335
+ - - ~>
336
+ - !ruby/object:Gem::Version
337
+ version: 0.1.5
338
338
  - !ruby/object:Gem::Dependency
339
339
  name: bumpy
340
340
  requirement: !ruby/object:Gem::Requirement
@@ -356,17 +356,17 @@ dependencies:
356
356
  requirement: !ruby/object:Gem::Requirement
357
357
  none: false
358
358
  requirements:
359
- - - '='
359
+ - - ~>
360
360
  - !ruby/object:Gem::Version
361
- version: 1.1.4
361
+ version: 2.0.3
362
362
  type: :development
363
363
  prerelease: false
364
364
  version_requirements: !ruby/object:Gem::Requirement
365
365
  none: false
366
366
  requirements:
367
- - - '='
367
+ - - ~>
368
368
  - !ruby/object:Gem::Version
369
- version: 1.1.4
369
+ version: 2.0.3
370
370
  - !ruby/object:Gem::Dependency
371
371
  name: factory_girl_rails
372
372
  requirement: !ruby/object:Gem::Requirement
@@ -383,22 +383,6 @@ dependencies:
383
383
  - - ! '>='
384
384
  - !ruby/object:Gem::Version
385
385
  version: '0'
386
- - !ruby/object:Gem::Dependency
387
- name: rspec-rails
388
- requirement: !ruby/object:Gem::Requirement
389
- none: false
390
- requirements:
391
- - - '='
392
- - !ruby/object:Gem::Version
393
- version: 2.12.0
394
- type: :development
395
- prerelease: false
396
- version_requirements: !ruby/object:Gem::Requirement
397
- none: false
398
- requirements:
399
- - - '='
400
- - !ruby/object:Gem::Version
401
- version: 2.12.0
402
386
  - !ruby/object:Gem::Dependency
403
387
  name: sqlite3
404
388
  requirement: !ruby/object:Gem::Requirement
@@ -465,45 +449,48 @@ files:
465
449
  - README.md
466
450
  - Rakefile
467
451
  - alchemy_cms.gemspec
468
- - app/assets/images/alchemy/ajax_loader.gif
452
+ - app/assets/fonts/alchemy-icons.eot
453
+ - app/assets/fonts/alchemy-icons.svg
454
+ - app/assets/fonts/alchemy-icons.ttf
455
+ - app/assets/fonts/alchemy-icons.woff
469
456
  - app/assets/images/alchemy/alchemy-logo.png
470
- - app/assets/images/alchemy/gui/toggle.png
471
457
  - app/assets/images/alchemy/icons.png
472
- - app/assets/images/alchemy/image_loader.gif
473
458
  - app/assets/images/alchemy/lupe.cur
474
459
  - app/assets/images/alchemy/placeholder.png
475
- - app/assets/images/alchemy/shading.png
476
460
  - app/assets/images/alchemy/swfupload/browse_button.png
477
- - app/assets/images/alchemy/tabs.gif
478
461
  - app/assets/images/alchemy/ui-icons_666666_256x240.png
479
462
  - app/assets/images/sassy-ie-overlay.png
480
- - app/assets/javascripts/alchemy/alchemy.base.js
463
+ - app/assets/javascripts/alchemy/alchemy.base.js.coffee
481
464
  - app/assets/javascripts/alchemy/alchemy.browser.js.coffee
482
465
  - app/assets/javascripts/alchemy/alchemy.buttons.js.coffee
483
466
  - app/assets/javascripts/alchemy/alchemy.custom.js
484
- - app/assets/javascripts/alchemy/alchemy.datepicker.js
467
+ - app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee
485
468
  - app/assets/javascripts/alchemy/alchemy.dirty.js
486
469
  - app/assets/javascripts/alchemy/alchemy.dragndrop.js
487
- - app/assets/javascripts/alchemy/alchemy.element_editor_selector.js
470
+ - app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee
488
471
  - app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee
489
472
  - app/assets/javascripts/alchemy/alchemy.file_progress.js
490
- - app/assets/javascripts/alchemy/alchemy.growler.js
473
+ - app/assets/javascripts/alchemy/alchemy.growler.js.coffee
491
474
  - app/assets/javascripts/alchemy/alchemy.gui.js.coffee
475
+ - app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee
492
476
  - app/assets/javascripts/alchemy/alchemy.html5.js
493
- - app/assets/javascripts/alchemy/alchemy.image_cropper.js
477
+ - app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee
494
478
  - app/assets/javascripts/alchemy/alchemy.jquery_loader.js
495
479
  - app/assets/javascripts/alchemy/alchemy.js
496
- - app/assets/javascripts/alchemy/alchemy.js_extensions.js
497
480
  - app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee
481
+ - app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee
498
482
  - app/assets/javascripts/alchemy/alchemy.menubar.js
499
483
  - app/assets/javascripts/alchemy/alchemy.onload.js.coffee
500
484
  - app/assets/javascripts/alchemy/alchemy.page_sorter.js
501
485
  - app/assets/javascripts/alchemy/alchemy.preview.js.coffee
502
- - app/assets/javascripts/alchemy/alchemy.preview_window.js
486
+ - app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee
503
487
  - app/assets/javascripts/alchemy/alchemy.routes.js.erb
488
+ - app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee
489
+ - app/assets/javascripts/alchemy/alchemy.spinner.js.coffee
490
+ - app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee
504
491
  - app/assets/javascripts/alchemy/alchemy.swf_upload.js
505
492
  - app/assets/javascripts/alchemy/alchemy.uploader.js
506
- - app/assets/javascripts/alchemy/alchemy.windows.js
493
+ - app/assets/javascripts/alchemy/alchemy.windows.js.coffee
507
494
  - app/assets/javascripts/alchemy/menubar.js
508
495
  - app/assets/javascripts/alchemy/preview.js
509
496
  - app/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js
@@ -517,14 +504,15 @@ files:
517
504
  - app/assets/stylesheets/alchemy/defaults.scss
518
505
  - app/assets/stylesheets/alchemy/elements.scss
519
506
  - app/assets/stylesheets/alchemy/errors.scss
507
+ - app/assets/stylesheets/alchemy/extends.scss
520
508
  - app/assets/stylesheets/alchemy/flash.scss
509
+ - app/assets/stylesheets/alchemy/fonts.scss
521
510
  - app/assets/stylesheets/alchemy/form_elements.scss
522
511
  - app/assets/stylesheets/alchemy/frame.scss
523
512
  - app/assets/stylesheets/alchemy/icons.scss
524
513
  - app/assets/stylesheets/alchemy/jquery-ui.scss
525
514
  - app/assets/stylesheets/alchemy/login.scss
526
515
  - app/assets/stylesheets/alchemy/menubar.css.scss
527
- - app/assets/stylesheets/alchemy/mixins.scss
528
516
  - app/assets/stylesheets/alchemy/modules.scss
529
517
  - app/assets/stylesheets/alchemy/notices.scss
530
518
  - app/assets/stylesheets/alchemy/pagination.scss
@@ -571,6 +559,7 @@ files:
571
559
  - app/helpers/alchemy/admin/essences_helper.rb
572
560
  - app/helpers/alchemy/admin/pages_helper.rb
573
561
  - app/helpers/alchemy/admin/pictures_helper.rb
562
+ - app/helpers/alchemy/admin/tags_helper.rb
574
563
  - app/helpers/alchemy/base_helper.rb
575
564
  - app/helpers/alchemy/elements_block_helper.rb
576
565
  - app/helpers/alchemy/elements_helper.rb
@@ -583,7 +572,6 @@ files:
583
572
  - app/models/alchemy/attachment.rb
584
573
  - app/models/alchemy/cell.rb
585
574
  - app/models/alchemy/clipboard.rb
586
- - app/models/alchemy/clipboard_spec.rb
587
575
  - app/models/alchemy/content.rb
588
576
  - app/models/alchemy/element.rb
589
577
  - app/models/alchemy/essence_boolean.rb
@@ -601,6 +589,9 @@ files:
601
589
  - app/models/alchemy/legacy_page_url.rb
602
590
  - app/models/alchemy/message.rb
603
591
  - app/models/alchemy/page.rb
592
+ - app/models/alchemy/page/cells.rb
593
+ - app/models/alchemy/page/elements.rb
594
+ - app/models/alchemy/page/naming.rb
604
595
  - app/models/alchemy/picture.rb
605
596
  - app/models/alchemy/site.rb
606
597
  - app/models/alchemy/tag.rb
@@ -612,11 +603,15 @@ files:
612
603
  - app/views/alchemy/admin/attachments/_attachment.html.erb
613
604
  - app/views/alchemy/admin/attachments/_file_to_assign.html.erb
614
605
  - app/views/alchemy/admin/attachments/_files_list.html.erb
606
+ - app/views/alchemy/admin/attachments/_overlay_file_list.html.erb
607
+ - app/views/alchemy/admin/attachments/_tag_list.html.erb
608
+ - app/views/alchemy/admin/attachments/archive_overlay.js.erb
615
609
  - app/views/alchemy/admin/attachments/create.js.erb
616
610
  - app/views/alchemy/admin/attachments/destroy.js.erb
617
611
  - app/views/alchemy/admin/attachments/edit.html.erb
618
612
  - app/views/alchemy/admin/attachments/index.html.erb
619
613
  - app/views/alchemy/admin/attachments/new.html.erb
614
+ - app/views/alchemy/admin/attachments/show.html.erb
620
615
  - app/views/alchemy/admin/clipboard/clear.js.erb
621
616
  - app/views/alchemy/admin/clipboard/index.html.erb
622
617
  - app/views/alchemy/admin/clipboard/insert.js.erb
@@ -714,7 +709,7 @@ files:
714
709
  - app/views/alchemy/admin/pictures/index.js.erb
715
710
  - app/views/alchemy/admin/pictures/info.html.erb
716
711
  - app/views/alchemy/admin/pictures/new.html.erb
717
- - app/views/alchemy/admin/pictures/show_in_window.html.erb
712
+ - app/views/alchemy/admin/pictures/show.html.erb
718
713
  - app/views/alchemy/admin/resources/_boolean.html.erb
719
714
  - app/views/alchemy/admin/resources/_datetime.html.erb
720
715
  - app/views/alchemy/admin/resources/_form.html.erb
@@ -724,8 +719,10 @@ files:
724
719
  - app/views/alchemy/admin/resources/_text.html.erb
725
720
  - app/views/alchemy/admin/resources/destroy.js.erb
726
721
  - app/views/alchemy/admin/resources/edit.html.erb
722
+ - app/views/alchemy/admin/resources/index.csv.erb
727
723
  - app/views/alchemy/admin/resources/index.html.erb
728
724
  - app/views/alchemy/admin/resources/new.html.erb
725
+ - app/views/alchemy/admin/sites/index.html.erb
729
726
  - app/views/alchemy/admin/tags/_radio_tag.html.erb
730
727
  - app/views/alchemy/admin/tags/_tag.html.erb
731
728
  - app/views/alchemy/admin/tags/edit.html.erb
@@ -746,6 +743,8 @@ files:
746
743
  - app/views/alchemy/base/redirect.js.erb
747
744
  - app/views/alchemy/base/remote_errors.js.erb
748
745
  - app/views/alchemy/base/update.js.erb
746
+ - app/views/alchemy/breadcrumb/_page.html.erb
747
+ - app/views/alchemy/breadcrumb/_spacer.html.erb
749
748
  - app/views/alchemy/elements/_editor_not_found.html.erb
750
749
  - app/views/alchemy/elements/_view_not_found.html.erb
751
750
  - app/views/alchemy/elements/show.html.erb
@@ -777,7 +776,8 @@ files:
777
776
  - app/views/alchemy/navigation/_renderer.html.erb
778
777
  - app/views/alchemy/notifications/admin_user_created.de.text.erb
779
778
  - app/views/alchemy/notifications/admin_user_created.en.text.erb
780
- - app/views/alchemy/notifications/registered_user_created.text.erb
779
+ - app/views/alchemy/notifications/registered_user_created.de.text.erb
780
+ - app/views/alchemy/notifications/registered_user_created.en.text.erb
781
781
  - app/views/alchemy/notifications/reset_password_instructions.de.text.erb
782
782
  - app/views/alchemy/notifications/reset_password_instructions.en.text.erb
783
783
  - app/views/alchemy/pages/show.html.erb
@@ -791,7 +791,9 @@ files:
791
791
  - app/views/alchemy/user_sessions/leave.html.erb
792
792
  - app/views/alchemy/user_sessions/new.html.erb
793
793
  - app/views/alchemy/users/new.html.erb
794
+ - app/views/kaminari/_first_page.html.erb
794
795
  - app/views/kaminari/_gap.html.erb
796
+ - app/views/kaminari/_last_page.html.erb
795
797
  - app/views/kaminari/_next_page.html.erb
796
798
  - app/views/kaminari/_page.html.erb
797
799
  - app/views/kaminari/_paginator.html.erb
@@ -812,13 +814,9 @@ files:
812
814
  - config/locales/devise.de.yml
813
815
  - config/locales/devise.en.yml
814
816
  - config/routes.rb
815
- - db/migrate/20121118000000_alchemy_two_point_four.rb
816
- - db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb
817
- - db/migrate/20121205155004_create_alchemy_sites.rb
818
- - db/migrate/20121211163003_add_public_to_alchemy_sites.rb
819
- - db/migrate/20121220102223_add_aliases_to_site.rb
820
- - db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb
821
- - db/migrate/20130121092645_migrate_to_devise.rb
817
+ - db/migrate/20130214233001_alchemy_two_point_five.rb
818
+ - db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb
819
+ - db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb
822
820
  - lib/alchemy/auth_engine.rb
823
821
  - lib/alchemy/authentication_helpers.rb
824
822
  - lib/alchemy/capistrano.rb
@@ -827,10 +825,12 @@ files:
827
825
  - lib/alchemy/errors.rb
828
826
  - lib/alchemy/essence.rb
829
827
  - lib/alchemy/ferret_search.rb
828
+ - lib/alchemy/filetypes.rb
830
829
  - lib/alchemy/i18n.rb
831
830
  - lib/alchemy/logger.rb
832
831
  - lib/alchemy/modules.rb
833
832
  - lib/alchemy/mount_point.rb
833
+ - lib/alchemy/name_conversions.rb
834
834
  - lib/alchemy/page_layout.rb
835
835
  - lib/alchemy/picture_attributes.rb
836
836
  - lib/alchemy/resource.rb
@@ -869,13 +869,12 @@ files:
869
869
  - lib/rails/generators/alchemy/scaffold/scaffold_generator.rb
870
870
  - lib/rails/generators/alchemy/scaffold/templates/page_layouts.yml.tt
871
871
  - lib/rails/templates/alchemy.rb
872
+ - lib/tasks/alchemy/convert.rake
872
873
  - lib/tasks/alchemy/db.rake
873
874
  - lib/tasks/alchemy/install.rake
874
875
  - lib/tasks/alchemy/upgrade.rake
875
876
  - lib/tasks/ferret.rake
876
877
  - script/rails
877
- - spec/alchemy_spec.rb
878
- - spec/config_spec.rb
879
878
  - spec/controllers/admin/clipboard_controller_spec.rb
880
879
  - spec/controllers/admin/contents_controller_spec.rb
881
880
  - spec/controllers/admin/elements_controller_spec.rb
@@ -901,6 +900,7 @@ files:
901
900
  - spec/dummy/app/helpers/application_helper.rb
902
901
  - spec/dummy/app/mailers/.gitkeep
903
902
  - spec/dummy/app/models/event.rb
903
+ - spec/dummy/app/models/location.rb
904
904
  - spec/dummy/app/views/alchemy/elements/_article_editor.html.erb
905
905
  - spec/dummy/app/views/alchemy/elements/_article_view.html.erb
906
906
  - spec/dummy/app/views/alchemy/elements/_headline_view.html.erb
@@ -927,13 +927,10 @@ files:
927
927
  - spec/dummy/config/initializers/wrap_parameters.rb
928
928
  - spec/dummy/config/routes.rb
929
929
  - spec/dummy/db/migrate/20121026104128_create_events.rb
930
- - spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb
931
- - spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb
932
- - spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb
933
- - spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb
934
- - spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb
935
- - spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb
936
- - spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb
930
+ - spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb
931
+ - spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb
932
+ - spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb
933
+ - spec/dummy/db/migrate/20130328101418_create_locations.rb
937
934
  - spec/dummy/db/schema.rb
938
935
  - spec/dummy/lib/assets/.gitkeep
939
936
  - spec/dummy/public/404.html
@@ -943,26 +940,28 @@ files:
943
940
  - spec/dummy/public/stylesheets/.gitkeep
944
941
  - spec/dummy/script/rails
945
942
  - spec/factories.rb
943
+ - spec/features/admin/link_overlay_spec.rb
944
+ - spec/features/admin/modules_integration_spec.rb
945
+ - spec/features/admin/pages_controller_spec.rb
946
+ - spec/features/admin/picture_library_integration_spec.rb
947
+ - spec/features/admin/resources_integration_spec.rb
948
+ - spec/features/navigation_spec.rb
949
+ - spec/features/pages_controller_spec.rb
950
+ - spec/features/picture_security_spec.rb
951
+ - spec/features/security_spec.rb
952
+ - spec/features/translation_integration_spec.rb
946
953
  - spec/helpers/admin/base_helper_spec.rb
947
954
  - spec/helpers/admin/contents_helper_spec.rb
948
955
  - spec/helpers/admin/elements_helper_spec.rb
949
956
  - spec/helpers/admin/essences_helper_spec.rb
957
+ - spec/helpers/admin/tags_helper_spec.rb
950
958
  - spec/helpers/base_helper_spec.rb
951
959
  - spec/helpers/elements_block_helper_spec.rb
952
960
  - spec/helpers/elements_helper_spec.rb
953
961
  - spec/helpers/essences_helper_spec.rb
954
962
  - spec/helpers/pages_helper_spec.rb
963
+ - spec/helpers/picture_url_helpers_spec.rb
955
964
  - spec/helpers/url_helper_spec.rb
956
- - spec/integration/admin/link_overlay_spec.rb
957
- - spec/integration/admin/modules_integration_spec.rb
958
- - spec/integration/admin/pages_controller_spec.rb
959
- - spec/integration/admin/picture_library_integration_spec.rb
960
- - spec/integration/admin/resources_integration_spec.rb
961
- - spec/integration/navigation_spec.rb
962
- - spec/integration/pages_controller_spec.rb
963
- - spec/integration/picture_security_spec.rb
964
- - spec/integration/security_spec.rb
965
- - spec/integration/translation_integration_spec.rb
966
965
  - spec/javascripts/alchemy/link_overlay_spec.js.coffee
967
966
  - spec/javascripts/alchemy_integration_spec.coffee
968
967
  - spec/javascripts/fixtures/select.html
@@ -972,6 +971,7 @@ files:
972
971
  - spec/javascripts/helpers/test_responses/test_responses.js
973
972
  - spec/javascripts/spec.css
974
973
  - spec/javascripts/spec.js
974
+ - spec/libraries/config_spec.rb
975
975
  - spec/libraries/essence_spec.rb
976
976
  - spec/libraries/resource_spec.rb
977
977
  - spec/libraries/resources_helper_spec.rb
@@ -992,27 +992,29 @@ files:
992
992
  - spec/models/resource_spec.rb
993
993
  - spec/models/site_spec.rb
994
994
  - spec/models/user_spec.rb
995
- - spec/routing_spec.rb
995
+ - spec/routing/routing_spec.rb
996
996
  - spec/spec_helper.rb
997
997
  - spec/support/80x60.png
998
998
  - spec/support/alchemy/controller_hacks.rb
999
999
  - spec/support/alchemy/specs_helpers.rb
1000
1000
  - spec/support/alchemy/test_tweaks.rb
1001
1001
  - spec/support/ci/install_phantomjs
1002
+ - spec/support/image with spaces.png
1002
1003
  - spec/support/image.png
1003
1004
  - spec/support/image2.PNG
1004
1005
  - spec/support/image3.jpeg
1005
- - spec/url_helpers_spec.rb
1006
1006
  - spec/views/essences/essence_picture_view_spec.rb
1007
1007
  - vendor/assets/images/Jcrop.gif
1008
1008
  - vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js
1009
- - vendor/assets/javascripts/jquery_plugins/jquery.dialogextend.1_0_1.js
1009
+ - vendor/assets/javascripts/jquery_plugins/jquery.dialogextend.js
1010
1010
  - vendor/assets/javascripts/jquery_plugins/jquery.html5uploader.js
1011
- - vendor/assets/javascripts/jquery_plugins/jquery.scrollTo-1.4.2-min.js
1011
+ - vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js
1012
1012
  - vendor/assets/javascripts/jquery_plugins/jquery.selectboxit.min.js
1013
1013
  - vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js
1014
1014
  - vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js
1015
1015
  - vendor/assets/javascripts/jquery_plugins/preloadCssImages.jQuery_v5.js
1016
+ - vendor/assets/javascripts/keymage.min.js
1017
+ - vendor/assets/javascripts/spin.min.js
1016
1018
  - vendor/assets/javascripts/swfupload/SWFObject License.txt
1017
1019
  - vendor/assets/javascripts/swfupload/swfupload.cookies.js
1018
1020
  - vendor/assets/javascripts/swfupload/swfupload.js
@@ -1126,12 +1128,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1126
1128
  required_rubygems_version: !ruby/object:Gem::Requirement
1127
1129
  none: false
1128
1130
  requirements:
1129
- - - ! '>='
1131
+ - - ! '>'
1130
1132
  - !ruby/object:Gem::Version
1131
- version: '0'
1132
- segments:
1133
- - 0
1134
- hash: -806389200489129591
1133
+ version: 1.3.1
1135
1134
  requirements:
1136
1135
  - ImageMagick (libmagick), v6.6 or greater.
1137
1136
  rubyforge_project:
@@ -1140,8 +1139,6 @@ signing_key:
1140
1139
  specification_version: 3
1141
1140
  summary: A powerful, userfriendly and flexible CMS for Rails 3
1142
1141
  test_files:
1143
- - spec/alchemy_spec.rb
1144
- - spec/config_spec.rb
1145
1142
  - spec/controllers/admin/clipboard_controller_spec.rb
1146
1143
  - spec/controllers/admin/contents_controller_spec.rb
1147
1144
  - spec/controllers/admin/elements_controller_spec.rb
@@ -1167,6 +1164,7 @@ test_files:
1167
1164
  - spec/dummy/app/helpers/application_helper.rb
1168
1165
  - spec/dummy/app/mailers/.gitkeep
1169
1166
  - spec/dummy/app/models/event.rb
1167
+ - spec/dummy/app/models/location.rb
1170
1168
  - spec/dummy/app/views/alchemy/elements/_article_editor.html.erb
1171
1169
  - spec/dummy/app/views/alchemy/elements/_article_view.html.erb
1172
1170
  - spec/dummy/app/views/alchemy/elements/_headline_view.html.erb
@@ -1193,13 +1191,10 @@ test_files:
1193
1191
  - spec/dummy/config/initializers/wrap_parameters.rb
1194
1192
  - spec/dummy/config/routes.rb
1195
1193
  - spec/dummy/db/migrate/20121026104128_create_events.rb
1196
- - spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb
1197
- - spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb
1198
- - spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb
1199
- - spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb
1200
- - spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb
1201
- - spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb
1202
- - spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb
1194
+ - spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb
1195
+ - spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb
1196
+ - spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb
1197
+ - spec/dummy/db/migrate/20130328101418_create_locations.rb
1203
1198
  - spec/dummy/db/schema.rb
1204
1199
  - spec/dummy/lib/assets/.gitkeep
1205
1200
  - spec/dummy/public/404.html
@@ -1209,26 +1204,28 @@ test_files:
1209
1204
  - spec/dummy/public/stylesheets/.gitkeep
1210
1205
  - spec/dummy/script/rails
1211
1206
  - spec/factories.rb
1207
+ - spec/features/admin/link_overlay_spec.rb
1208
+ - spec/features/admin/modules_integration_spec.rb
1209
+ - spec/features/admin/pages_controller_spec.rb
1210
+ - spec/features/admin/picture_library_integration_spec.rb
1211
+ - spec/features/admin/resources_integration_spec.rb
1212
+ - spec/features/navigation_spec.rb
1213
+ - spec/features/pages_controller_spec.rb
1214
+ - spec/features/picture_security_spec.rb
1215
+ - spec/features/security_spec.rb
1216
+ - spec/features/translation_integration_spec.rb
1212
1217
  - spec/helpers/admin/base_helper_spec.rb
1213
1218
  - spec/helpers/admin/contents_helper_spec.rb
1214
1219
  - spec/helpers/admin/elements_helper_spec.rb
1215
1220
  - spec/helpers/admin/essences_helper_spec.rb
1221
+ - spec/helpers/admin/tags_helper_spec.rb
1216
1222
  - spec/helpers/base_helper_spec.rb
1217
1223
  - spec/helpers/elements_block_helper_spec.rb
1218
1224
  - spec/helpers/elements_helper_spec.rb
1219
1225
  - spec/helpers/essences_helper_spec.rb
1220
1226
  - spec/helpers/pages_helper_spec.rb
1227
+ - spec/helpers/picture_url_helpers_spec.rb
1221
1228
  - spec/helpers/url_helper_spec.rb
1222
- - spec/integration/admin/link_overlay_spec.rb
1223
- - spec/integration/admin/modules_integration_spec.rb
1224
- - spec/integration/admin/pages_controller_spec.rb
1225
- - spec/integration/admin/picture_library_integration_spec.rb
1226
- - spec/integration/admin/resources_integration_spec.rb
1227
- - spec/integration/navigation_spec.rb
1228
- - spec/integration/pages_controller_spec.rb
1229
- - spec/integration/picture_security_spec.rb
1230
- - spec/integration/security_spec.rb
1231
- - spec/integration/translation_integration_spec.rb
1232
1229
  - spec/javascripts/alchemy/link_overlay_spec.js.coffee
1233
1230
  - spec/javascripts/alchemy_integration_spec.coffee
1234
1231
  - spec/javascripts/fixtures/select.html
@@ -1238,6 +1235,7 @@ test_files:
1238
1235
  - spec/javascripts/helpers/test_responses/test_responses.js
1239
1236
  - spec/javascripts/spec.css
1240
1237
  - spec/javascripts/spec.js
1238
+ - spec/libraries/config_spec.rb
1241
1239
  - spec/libraries/essence_spec.rb
1242
1240
  - spec/libraries/resource_spec.rb
1243
1241
  - spec/libraries/resources_helper_spec.rb
@@ -1258,16 +1256,16 @@ test_files:
1258
1256
  - spec/models/resource_spec.rb
1259
1257
  - spec/models/site_spec.rb
1260
1258
  - spec/models/user_spec.rb
1261
- - spec/routing_spec.rb
1259
+ - spec/routing/routing_spec.rb
1262
1260
  - spec/spec_helper.rb
1263
1261
  - spec/support/80x60.png
1264
1262
  - spec/support/alchemy/controller_hacks.rb
1265
1263
  - spec/support/alchemy/specs_helpers.rb
1266
1264
  - spec/support/alchemy/test_tweaks.rb
1267
1265
  - spec/support/ci/install_phantomjs
1266
+ - spec/support/image with spaces.png
1268
1267
  - spec/support/image.png
1269
1268
  - spec/support/image2.PNG
1270
1269
  - spec/support/image3.jpeg
1271
- - spec/url_helpers_spec.rb
1272
1270
  - spec/views/essences/essence_picture_view_spec.rb
1273
1271
  has_rdoc: