alchemy_cms 2.5.3.1 → 2.6.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (331) hide show
  1. data/.gitignore +1 -1
  2. data/.travis.yml +5 -13
  3. data/Gemfile +6 -3
  4. data/README.md +3 -2
  5. data/alchemy_cms.gemspec +22 -22
  6. data/app/assets/fonts/alchemy-icons.eot +0 -0
  7. data/app/assets/fonts/alchemy-icons.svg +54 -0
  8. data/app/assets/fonts/alchemy-icons.ttf +0 -0
  9. data/app/assets/fonts/alchemy-icons.woff +0 -0
  10. data/app/assets/images/alchemy/icons.png +0 -0
  11. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +151 -0
  12. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +3 -2
  13. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +31 -0
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +1 -1
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +98 -0
  16. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +23 -24
  17. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +27 -0
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +11 -8
  19. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +32 -0
  20. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +46 -0
  21. data/app/assets/javascripts/alchemy/alchemy.js +8 -2
  22. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +5 -4
  23. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +49 -0
  24. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +3 -0
  25. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +71 -0
  26. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +61 -0
  27. data/app/assets/javascripts/alchemy/alchemy.spinner.js.coffee +35 -0
  28. data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +11 -0
  29. data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +278 -0
  30. data/app/assets/stylesheets/alchemy/admin.css.scss +2 -0
  31. data/app/assets/stylesheets/alchemy/archive.scss +109 -65
  32. data/app/assets/stylesheets/alchemy/base.scss +16 -188
  33. data/app/assets/stylesheets/alchemy/dashboard.scss +2 -2
  34. data/app/assets/stylesheets/alchemy/defaults.scss +2 -1
  35. data/app/assets/stylesheets/alchemy/elements.scss +58 -94
  36. data/app/assets/stylesheets/alchemy/errors.scss +2 -2
  37. data/app/assets/stylesheets/alchemy/{mixins.scss → extends.scss} +104 -80
  38. data/app/assets/stylesheets/alchemy/flash.scss +4 -6
  39. data/app/assets/stylesheets/alchemy/fonts.scss +46 -0
  40. data/app/assets/stylesheets/alchemy/form_elements.scss +46 -45
  41. data/app/assets/stylesheets/alchemy/frame.scss +20 -15
  42. data/app/assets/stylesheets/alchemy/icons.scss +22 -9
  43. data/app/assets/stylesheets/alchemy/jquery-ui.scss +476 -399
  44. data/app/assets/stylesheets/alchemy/login.scss +1 -1
  45. data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -1
  46. data/app/assets/stylesheets/alchemy/notices.scss +5 -5
  47. data/app/assets/stylesheets/alchemy/pagination.scss +25 -13
  48. data/app/assets/stylesheets/alchemy/search.scss +29 -17
  49. data/app/assets/stylesheets/alchemy/sitemap.scss +41 -36
  50. data/app/assets/stylesheets/alchemy/tables.scss +102 -50
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +18 -16
  52. data/app/assets/stylesheets/alchemy/toolbar.scss +84 -24
  53. data/app/assets/stylesheets/alchemy/upload.scss +14 -9
  54. data/app/assets/stylesheets/alchemy/variables.scss +1 -0
  55. data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +18 -21
  56. data/app/controllers/alchemy/admin/attachments_controller.rb +29 -39
  57. data/app/controllers/alchemy/admin/base_controller.rb +3 -9
  58. data/app/controllers/alchemy/admin/clipboard_controller.rb +1 -1
  59. data/app/controllers/alchemy/admin/contents_controller.rb +1 -1
  60. data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
  61. data/app/controllers/alchemy/admin/elements_controller.rb +3 -3
  62. data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
  63. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +5 -5
  64. data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
  65. data/app/controllers/alchemy/admin/pages_controller.rb +18 -16
  66. data/app/controllers/alchemy/admin/pictures_controller.rb +11 -10
  67. data/app/controllers/alchemy/admin/resources_controller.rb +87 -14
  68. data/app/controllers/alchemy/admin/tags_controller.rb +3 -3
  69. data/app/controllers/alchemy/admin/trash_controller.rb +3 -3
  70. data/app/controllers/alchemy/admin/users_controller.rb +6 -11
  71. data/app/controllers/alchemy/attachments_controller.rb +8 -9
  72. data/app/controllers/alchemy/base_controller.rb +17 -10
  73. data/app/controllers/alchemy/pages_controller.rb +7 -19
  74. data/app/controllers/alchemy/passwords_controller.rb +15 -3
  75. data/app/controllers/alchemy/user_sessions_controller.rb +5 -4
  76. data/app/controllers/alchemy/users_controller.rb +1 -1
  77. data/app/helpers/alchemy/admin/attachments_helper.rb +2 -2
  78. data/app/helpers/alchemy/admin/base_helper.rb +62 -90
  79. data/app/helpers/alchemy/admin/elements_helper.rb +13 -5
  80. data/app/helpers/alchemy/admin/essences_helper.rb +3 -5
  81. data/app/helpers/alchemy/admin/pages_helper.rb +6 -3
  82. data/app/helpers/alchemy/admin/tags_helper.rb +60 -0
  83. data/app/helpers/alchemy/base_helper.rb +16 -20
  84. data/app/helpers/alchemy/elements_helper.rb +7 -11
  85. data/app/helpers/alchemy/essences_helper.rb +2 -2
  86. data/app/helpers/alchemy/pages_helper.rb +31 -69
  87. data/app/helpers/alchemy/url_helper.rb +11 -3
  88. data/app/models/alchemy/attachment.rb +73 -45
  89. data/app/models/alchemy/cell.rb +1 -1
  90. data/app/models/alchemy/content.rb +20 -9
  91. data/app/models/alchemy/element.rb +9 -7
  92. data/app/models/alchemy/page.rb +15 -248
  93. data/app/models/alchemy/page/cells.rb +71 -0
  94. data/app/models/alchemy/page/elements.rb +147 -0
  95. data/app/models/alchemy/page/naming.rb +90 -0
  96. data/app/models/alchemy/picture.rb +18 -13
  97. data/app/models/alchemy/tag.rb +1 -1
  98. data/app/models/alchemy/user.rb +38 -6
  99. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -7
  100. data/app/views/alchemy/admin/attachments/_attachment.html.erb +17 -12
  101. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -8
  102. data/app/views/alchemy/admin/attachments/_files_list.html.erb +20 -12
  103. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +11 -0
  104. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +31 -0
  105. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +4 -0
  106. data/app/views/alchemy/admin/attachments/edit.html.erb +8 -7
  107. data/app/views/alchemy/admin/attachments/index.html.erb +19 -12
  108. data/app/views/alchemy/admin/attachments/new.html.erb +2 -2
  109. data/app/views/alchemy/admin/attachments/show.html.erb +3 -0
  110. data/app/views/alchemy/admin/contents/_missing.html.erb +4 -4
  111. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  112. data/app/views/alchemy/admin/contents/new.html.erb +6 -3
  113. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  114. data/app/views/alchemy/admin/dashboard/_users.html.erb +1 -1
  115. data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
  116. data/app/views/alchemy/admin/dashboard/info.html.erb +16 -13
  117. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  118. data/app/views/alchemy/admin/elements/_element_foot.html.erb +4 -4
  119. data/app/views/alchemy/admin/elements/_element_head.html.erb +1 -7
  120. data/app/views/alchemy/admin/elements/_elements_select.html.erb +2 -2
  121. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -4
  122. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  123. data/app/views/alchemy/admin/elements/create.js.erb +2 -2
  124. data/app/views/alchemy/admin/elements/fold.js.erb +3 -6
  125. data/app/views/alchemy/admin/elements/new.html.erb +1 -1
  126. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  127. data/app/views/alchemy/admin/elements/trash.js.erb +1 -1
  128. data/app/views/alchemy/admin/elements/update.js.erb +2 -2
  129. data/app/views/alchemy/admin/essence_files/edit.html.erb +4 -4
  130. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +17 -18
  131. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +2 -2
  132. data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -0
  133. data/app/views/alchemy/admin/languages/_form.html.erb +12 -10
  134. data/app/views/alchemy/admin/languages/_language.html.erb +2 -1
  135. data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
  136. data/app/views/alchemy/admin/languages/index.html.erb +15 -15
  137. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +6 -6
  138. data/app/views/alchemy/admin/layoutpages/index.html.erb +41 -40
  139. data/app/views/alchemy/admin/pages/_contactform_links.html.erb +4 -4
  140. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +6 -6
  141. data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
  142. data/app/views/alchemy/admin/pages/_file_link.html.erb +3 -3
  143. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  144. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -1
  145. data/app/views/alchemy/admin/pages/_page.html.erb +13 -13
  146. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +2 -4
  147. data/app/views/alchemy/admin/pages/_sitemap.html.erb +5 -0
  148. data/app/views/alchemy/admin/pages/configure.html.erb +7 -7
  149. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  150. data/app/views/alchemy/admin/pages/edit.html.erb +23 -30
  151. data/app/views/alchemy/admin/pages/index.html.erb +34 -23
  152. data/app/views/alchemy/admin/pages/new.html.erb +1 -1
  153. data/app/views/alchemy/admin/pages/sort.js.erb +1 -1
  154. data/app/views/alchemy/admin/partials/_flash_upload.html.erb +2 -3
  155. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
  156. data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
  157. data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -2
  158. data/app/views/alchemy/admin/pictures/_archive.html.erb +7 -7
  159. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  160. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +6 -6
  161. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +4 -4
  162. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  163. data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -8
  164. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +9 -14
  165. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +27 -25
  166. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +3 -1
  167. data/app/views/alchemy/admin/pictures/index.html.erb +49 -42
  168. data/app/views/alchemy/admin/pictures/new.html.erb +2 -2
  169. data/app/views/alchemy/admin/pictures/show.html.erb +11 -0
  170. data/app/views/alchemy/admin/resources/_boolean.html.erb +2 -2
  171. data/app/views/alchemy/admin/resources/_datetime.html.erb +2 -2
  172. data/app/views/alchemy/admin/resources/_form.html.erb +9 -8
  173. data/app/views/alchemy/admin/resources/_resource.html.erb +15 -21
  174. data/app/views/alchemy/admin/resources/_string.html.erb +2 -2
  175. data/app/views/alchemy/admin/resources/_table.html.erb +11 -13
  176. data/app/views/alchemy/admin/resources/_text.html.erb +2 -2
  177. data/app/views/alchemy/admin/resources/index.csv.erb +13 -0
  178. data/app/views/alchemy/admin/resources/index.html.erb +24 -15
  179. data/app/views/alchemy/admin/sites/index.html.erb +23 -0
  180. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +1 -1
  181. data/app/views/alchemy/admin/tags/_tag.html.erb +2 -1
  182. data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
  183. data/app/views/alchemy/admin/tags/index.html.erb +16 -11
  184. data/app/views/alchemy/admin/tags/new.html.erb +3 -3
  185. data/app/views/alchemy/admin/trash/clear.js.coffee +1 -1
  186. data/app/views/alchemy/admin/users/_table.html.erb +12 -5
  187. data/app/views/alchemy/admin/users/_user.html.erb +16 -16
  188. data/app/views/alchemy/admin/users/index.html.erb +28 -16
  189. data/app/views/alchemy/breadcrumb/_page.html.erb +15 -0
  190. data/app/views/alchemy/breadcrumb/_spacer.html.erb +1 -0
  191. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  192. data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -16
  193. data/app/views/alchemy/essences/_essence_file_view.html.erb +8 -9
  194. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +3 -6
  195. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +9 -8
  196. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -5
  197. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +2 -2
  198. data/app/views/alchemy/navigation/_link.html.erb +7 -7
  199. data/app/views/alchemy/navigation/_renderer.html.erb +29 -36
  200. data/app/views/alchemy/notifications/admin_user_created.de.text.erb +5 -1
  201. data/app/views/alchemy/notifications/admin_user_created.en.text.erb +5 -1
  202. data/app/views/alchemy/notifications/registered_user_created.de.text.erb +13 -0
  203. data/app/views/alchemy/notifications/registered_user_created.en.text.erb +13 -0
  204. data/app/views/alchemy/search/_result.html.erb +4 -6
  205. data/app/views/alchemy/search/_results.html.erb +4 -5
  206. data/app/views/alchemy/user_sessions/leave.html.erb +1 -1
  207. data/app/views/alchemy/user_sessions/new.html.erb +2 -2
  208. data/app/views/kaminari/_first_page.html.erb +11 -0
  209. data/app/views/kaminari/_gap.html.erb +1 -1
  210. data/app/views/kaminari/_last_page.html.erb +11 -0
  211. data/app/views/kaminari/_next_page.html.erb +2 -2
  212. data/app/views/kaminari/_page.html.erb +1 -1
  213. data/app/views/kaminari/_paginator.html.erb +2 -0
  214. data/app/views/kaminari/_prev_page.html.erb +2 -2
  215. data/app/views/layouts/alchemy/admin.html.erb +4 -5
  216. data/config/alchemy/config.yml +8 -12
  217. data/config/authorization_rules.rb +4 -3
  218. data/config/initializers/dragonfly.rb +20 -12
  219. data/config/locales/alchemy.de.yml +20 -15
  220. data/config/locales/alchemy.en.yml +15 -10
  221. data/config/locales/devise.de.yml +1 -0
  222. data/config/routes.rb +3 -3
  223. data/{spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb → db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  224. data/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  225. data/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  226. data/lib/alchemy/capistrano.rb +10 -8
  227. data/lib/alchemy/errors.rb +7 -0
  228. data/lib/alchemy/filetypes.rb +33 -0
  229. data/lib/alchemy/i18n.rb +9 -1
  230. data/lib/alchemy/name_conversions.rb +28 -0
  231. data/lib/alchemy/page_layout.rb +5 -3
  232. data/lib/alchemy/resource.rb +132 -29
  233. data/lib/alchemy/resources_helper.rb +81 -12
  234. data/lib/alchemy/upgrader.rb +14 -276
  235. data/lib/alchemy/version.rb +1 -1
  236. data/lib/alchemy_cms.rb +17 -2
  237. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +1 -1
  238. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -1
  239. data/lib/tasks/alchemy/convert.rake +39 -0
  240. data/lib/tasks/alchemy/install.rake +4 -6
  241. data/lib/tasks/alchemy/upgrade.rake +18 -1
  242. data/spec/controllers/admin/clipboard_controller_spec.rb +4 -4
  243. data/spec/controllers/admin/elements_controller_spec.rb +23 -23
  244. data/spec/controllers/admin/pages_controller_spec.rb +15 -0
  245. data/spec/controllers/admin/resources_controller_spec.rb +1 -11
  246. data/spec/controllers/admin/trash_controller_spec.rb +9 -9
  247. data/spec/controllers/attachments_controller_spec.rb +3 -3
  248. data/spec/controllers/elements_controller_spec.rb +2 -2
  249. data/spec/controllers/pages_controller_spec.rb +160 -129
  250. data/spec/controllers/pictures_controller_spec.rb +2 -2
  251. data/spec/controllers/user_sessions_controller_spec.rb +3 -3
  252. data/spec/controllers/users_controller_spec.rb +2 -2
  253. data/spec/dummy/app/models/event.rb +2 -2
  254. data/spec/dummy/app/models/location.rb +4 -0
  255. data/spec/dummy/app/views/layouts/application.html.erb +6 -42
  256. data/spec/dummy/config/routes.rb +1 -1
  257. data/spec/dummy/db/migrate/20121026104128_create_events.rb +0 -1
  258. data/{db/migrate/20121118000000_alchemy_two_point_four.rb → spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  259. data/spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  260. data/spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  261. data/spec/dummy/db/migrate/20130328101418_create_locations.rb +9 -0
  262. data/spec/dummy/db/schema.rb +15 -6
  263. data/spec/factories.rb +4 -4
  264. data/spec/{integration → features}/admin/link_overlay_spec.rb +0 -0
  265. data/spec/{integration → features}/admin/modules_integration_spec.rb +1 -1
  266. data/spec/{integration → features}/admin/pages_controller_spec.rb +9 -4
  267. data/spec/{integration → features}/admin/picture_library_integration_spec.rb +5 -5
  268. data/spec/{integration → features}/admin/resources_integration_spec.rb +1 -1
  269. data/spec/{integration → features}/navigation_spec.rb +0 -0
  270. data/spec/{integration → features}/pages_controller_spec.rb +42 -112
  271. data/spec/{integration → features}/picture_security_spec.rb +2 -2
  272. data/spec/{integration → features}/security_spec.rb +7 -7
  273. data/spec/{integration → features}/translation_integration_spec.rb +0 -0
  274. data/spec/helpers/admin/base_helper_spec.rb +0 -50
  275. data/spec/helpers/admin/tags_helper_spec.rb +53 -0
  276. data/spec/helpers/base_helper_spec.rb +19 -3
  277. data/spec/helpers/pages_helper_spec.rb +92 -44
  278. data/spec/{url_helpers_spec.rb → helpers/picture_url_helpers_spec.rb} +7 -7
  279. data/spec/helpers/url_helper_spec.rb +92 -72
  280. data/spec/{config_spec.rb → libraries/config_spec.rb} +0 -0
  281. data/spec/libraries/resource_spec.rb +215 -76
  282. data/spec/libraries/resources_helper_spec.rb +70 -28
  283. data/spec/models/attachment_spec.rb +75 -9
  284. data/spec/models/clipboard_spec.rb +1 -1
  285. data/spec/models/element_spec.rb +7 -0
  286. data/spec/models/page_spec.rb +144 -25
  287. data/spec/models/picture_spec.rb +5 -5
  288. data/spec/models/resource_spec.rb +47 -10
  289. data/spec/models/user_spec.rb +115 -3
  290. data/spec/{routing_spec.rb → routing/routing_spec.rb} +8 -20
  291. data/spec/spec_helper.rb +5 -6
  292. data/spec/support/alchemy/specs_helpers.rb +1 -1
  293. data/spec/support/ci/install_phantomjs +1 -1
  294. data/spec/support/image with spaces.png +0 -0
  295. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +18 -18
  296. data/vendor/assets/javascripts/jquery_plugins/{jquery.dialogextend.1_0_1.js → jquery.dialogextend.js} +25 -17
  297. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +7 -0
  298. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +7 -7
  299. data/vendor/assets/javascripts/keymage.min.js +6 -0
  300. data/vendor/assets/javascripts/spin.min.js +1 -0
  301. metadata +122 -124
  302. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  303. data/app/assets/images/alchemy/gui/toggle.png +0 -0
  304. data/app/assets/images/alchemy/image_loader.gif +0 -0
  305. data/app/assets/images/alchemy/shading.png +0 -0
  306. data/app/assets/images/alchemy/tabs.gif +0 -0
  307. data/app/assets/javascripts/alchemy/alchemy.base.js +0 -172
  308. data/app/assets/javascripts/alchemy/alchemy.datepicker.js +0 -47
  309. data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +0 -91
  310. data/app/assets/javascripts/alchemy/alchemy.growler.js +0 -46
  311. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js +0 -60
  312. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +0 -15
  313. data/app/assets/javascripts/alchemy/alchemy.preview_window.js +0 -97
  314. data/app/assets/javascripts/alchemy/alchemy.windows.js +0 -321
  315. data/app/models/alchemy/clipboard_spec.rb +0 -0
  316. data/app/views/alchemy/admin/pictures/show_in_window.html.erb +0 -8
  317. data/app/views/alchemy/notifications/registered_user_created.text.erb +0 -11
  318. data/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  319. data/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  320. data/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  321. data/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  322. data/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  323. data/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  324. data/spec/alchemy_spec.rb +0 -7
  325. data/spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  326. data/spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  327. data/spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  328. data/spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  329. data/spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  330. data/spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  331. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo-1.4.2-min.js +0 -11
@@ -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: