active_admin_jcrop 0.0.2.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/app/assets/javascripts/active_admin_jcrop/crop_modal.js.coffee +50 -0
  5. data/app/assets/stylesheets/active_admin_jcrop/crop_modal.css +11 -0
  6. data/app/views/active_admin_jcrop/_jcrop_modal.html.erb +13 -0
  7. data/lib/active_admin_jcrop.rb +8 -0
  8. data/lib/active_admin_jcrop/version.rb +3 -0
  9. data/lib/asset_engine.rb +5 -0
  10. data/lib/asset_engine/carrier_wave.rb +66 -0
  11. data/lib/asset_engine/paperclip.rb +86 -0
  12. data/lib/dsl.rb +16 -0
  13. data/lib/engine.rb +8 -0
  14. data/lib/formtastic/inputs/jcrop_input.rb +26 -0
  15. data/lib/image_helper.rb +21 -0
  16. data/lib/orm.rb +43 -0
  17. data/lib/railtie.rb +20 -0
  18. data/test/active_admin_jcrop_test.rb +7 -0
  19. data/test/dummy/README.rdoc +28 -0
  20. data/test/dummy/Rakefile +6 -0
  21. data/test/dummy/app/admin/admin_user.rb +28 -0
  22. data/test/dummy/app/admin/dashboard.rb +33 -0
  23. data/test/dummy/app/admin/post.rb +12 -0
  24. data/test/dummy/app/assets/javascripts/active_admin.js.coffee +1 -0
  25. data/test/dummy/app/assets/javascripts/application.js +13 -0
  26. data/test/dummy/app/assets/stylesheets/active_admin.css.scss +17 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/test/dummy/app/controllers/application_controller.rb +5 -0
  29. data/test/dummy/app/helpers/application_helper.rb +2 -0
  30. data/test/dummy/app/models/admin_user.rb +6 -0
  31. data/test/dummy/app/models/post.rb +3 -0
  32. data/test/dummy/app/uploaders/image_uploader.rb +53 -0
  33. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  34. data/test/dummy/bin/bundle +3 -0
  35. data/test/dummy/bin/rails +4 -0
  36. data/test/dummy/bin/rake +4 -0
  37. data/test/dummy/config.ru +4 -0
  38. data/test/dummy/config/application.rb +23 -0
  39. data/test/dummy/config/boot.rb +5 -0
  40. data/test/dummy/config/database.yml +18 -0
  41. data/test/dummy/config/environment.rb +5 -0
  42. data/test/dummy/config/environments/development.rb +37 -0
  43. data/test/dummy/config/environments/production.rb +83 -0
  44. data/test/dummy/config/environments/test.rb +39 -0
  45. data/test/dummy/config/initializers/active_admin.rb +243 -0
  46. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  47. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  48. data/test/dummy/config/initializers/devise.rb +256 -0
  49. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/test/dummy/config/initializers/inflections.rb +16 -0
  51. data/test/dummy/config/initializers/mime_types.rb +4 -0
  52. data/test/dummy/config/initializers/session_store.rb +3 -0
  53. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  54. data/test/dummy/config/locales/devise.en.yml +59 -0
  55. data/test/dummy/config/locales/en.yml +23 -0
  56. data/test/dummy/config/routes.rb +58 -0
  57. data/test/dummy/config/secrets.yml +22 -0
  58. data/test/dummy/db/migrate/20140609195344_create_posts.rb +10 -0
  59. data/test/dummy/db/migrate/20140609200814_create_active_admin_comments.rb +19 -0
  60. data/test/dummy/db/migrate/20140609202215_devise_create_admin_users.rb +48 -0
  61. data/test/dummy/db/schema.rb +56 -0
  62. data/test/dummy/log/development.log +34910 -0
  63. data/test/dummy/public/404.html +67 -0
  64. data/test/dummy/public/422.html +67 -0
  65. data/test/dummy/public/500.html +66 -0
  66. data/test/dummy/public/favicon.ico +0 -0
  67. data/test/dummy/public/uploads/post/image/1/caminhao.jpeg +0 -0
  68. data/test/dummy/public/uploads/post/image/1/thumb_caminhao.jpeg +0 -0
  69. data/test/dummy/public/uploads/tmp/1402854070-53359-7950/caminhao.jpeg +0 -0
  70. data/test/dummy/public/uploads/tmp/1402854070-53359-7950/thumb_caminhao.jpeg +0 -0
  71. data/test/dummy/public/uploads/tmp/1402854510-53557-6949/caminhao.jpeg +0 -0
  72. data/test/dummy/public/uploads/tmp/1402854510-53557-6949/thumb_caminhao.jpeg +0 -0
  73. data/test/dummy/public/uploads/tmp/1402854728-53655-1717/caminhao.jpeg +0 -0
  74. data/test/dummy/public/uploads/tmp/1402854728-53655-1717/thumb_caminhao.jpeg +0 -0
  75. data/test/dummy/public/uploads/tmp/1402855138-53797-0268/caminhao.jpeg +0 -0
  76. data/test/dummy/public/uploads/tmp/1402855138-53797-0268/thumb_caminhao.jpeg +0 -0
  77. data/test/dummy/public/uploads/tmp/1402856174-54150-2897/caminhao.jpeg +0 -0
  78. data/test/dummy/public/uploads/tmp/1402856174-54150-2897/thumb_caminhao.jpeg +0 -0
  79. data/test/dummy/public/uploads/tmp/1402856561-54391-5701/caminhao.jpeg +0 -0
  80. data/test/dummy/public/uploads/tmp/1402856561-54391-5701/thumb_caminhao.jpeg +0 -0
  81. data/test/dummy/public/uploads/tmp/1402884860-59723-5663/caminhao.jpeg +0 -0
  82. data/test/dummy/public/uploads/tmp/1402884860-59723-5663/thumb_caminhao.jpeg +0 -0
  83. data/test/dummy/test/fixtures/admin_users.yml +11 -0
  84. data/test/dummy/test/fixtures/posts.yml +9 -0
  85. data/test/dummy/test/models/admin_user_test.rb +7 -0
  86. data/test/dummy/test/models/post_test.rb +7 -0
  87. data/test/dummy/tmp/cache/assets/development/sprockets/01cc28ef6cf61e838f8df3854de4e76b +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sprockets/04815176b18d23ced953077cdab6c799 +0 -0
  89. data/test/dummy/tmp/cache/assets/development/sprockets/05329eaf5e8ad8c55f7356cd6f1a208d +0 -0
  90. data/test/dummy/tmp/cache/assets/development/sprockets/09b3ba6de4c7b276240b56d755d22193 +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sprockets/0c410be62a5a11fa5bd31553203370c9 +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sprockets/11666820d5c80bd008d64048ad423cf2 +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sprockets/153271d97599450d4419ff64c0096e7a +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/198ca7c8448aa0272e8b33c7c8f7f85b +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/1c328d420a3818d37452e98c6001b467 +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/1ce4a7570f4520b8014c358d0e417201 +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/1d7d77c0ef36a03c1a532428dc56fb43 +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/1e7ffade48952c7cdfc8672bad4eb410 +0 -0
  99. data/test/dummy/tmp/cache/assets/development/sprockets/2469f5828ec5a821a8e3a1fa52f62ecc +0 -0
  100. data/test/dummy/tmp/cache/assets/development/sprockets/280b1fab7672e0fd9bb4f1578ca14a9c +0 -0
  101. data/test/dummy/tmp/cache/assets/development/sprockets/2894eb75de440448b3c40d69d7c3daf1 +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sprockets/2de35a92daa792d65be049f319e98640 +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/2e6efe9c42b17ddcbc206cb7029a6435 +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sprockets/37ac2b1140ba52b9c49281dfaaeb0a5c +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/39d5b668acdaf4ac39dfbec7998c6088 +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sprockets/3dbddfc04cc1ce845cea75a5d053eb78 +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sprockets/3f8d2b3750a2c4a35e2fc80119be599b +0 -0
  108. data/test/dummy/tmp/cache/assets/development/sprockets/4168e815a6e3b7f527bae1357a3b4a88 +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/42599e7e19d0844f558bf6755147af8a +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/43f5bd66cd4b99ca8a25a3a3585dc10f +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/4806b0909dd0f9ef46c0f8529c16d0cb +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/49366e6a8a305846f3b6e35412b622be +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/4abf4453141fa8280d3e92b9d6f95893 +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sprockets/4e10e25ed23161425328c0e86fd2d964 +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/4f3ac0b41fcb58bba41dd8990f521960 +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/50868216b236752b04eac5d3ee00f04c +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/517db557c9ab037fe61fcc4135e67a97 +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sprockets/51a626ab0064c74348ca0076f2464081 +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sprockets/5248fc2c7af1008d55cc8c390c5aadfd +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/52ec38bf0b8162c3a0b60334179fd9d8 +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sprockets/542ba2c861120c117755b256e75fc931 +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sprockets/58242bae329210944c12eef4b21e74fc +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sprockets/586f47ea7b97a5a0c2864cafc7fa681a +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sprockets/59f28a7fdd955b2eb441b3ede79d6634 +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/5e5c38446431a684f7d95b931dd29845 +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sprockets/5e978a23006b9bf0e8cb8e01af6b830e +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sprockets/63f0e112cc9f52fcc19a660011424d4d +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sprockets/63f701be894a406a83f338a15dbbff5b +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/66ecbfb3aaaec21a5dd4da1c53b09474 +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/6e600d6b6e57393c380d4f34b7e462c1 +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/7058e63d0f91885601240f901d028889 +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sprockets/7863b5114d0b7761ee50ab47927118ee +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sprockets/79a9f34b9b567a41a3c023f6c31b6251 +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sprockets/7aa6ca65af176c54e4e7c93c8eee5a7f +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sprockets/7f8b2599f8306c1dc7d1e3e5b9deded8 +0 -0
  136. data/test/dummy/tmp/cache/assets/development/sprockets/81dd6767e418fdc1ab0263c94cd79d8b +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sprockets/8247e64103aa55a761ab0f354ff45c16 +0 -0
  138. data/test/dummy/tmp/cache/assets/development/sprockets/82a4b11f94b10449d88fc04cf6df3a18 +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sprockets/82a8bc708c97f88caaf13018bf6b279d +0 -0
  140. data/test/dummy/tmp/cache/assets/development/sprockets/83054e22209abf270f4394486dd2629b +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/833571bbb8aac2c2d7ead0bb6c360747 +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sprockets/8546b8d3c7ef5ea3e50ac4a872f661cb +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sprockets/857ecd2092cee11f740b3cf2e373ad2a +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sprockets/8636ac646366920af1a3b008b51ceed1 +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sprockets/86a0e6da188e8b595d42390ae7c686d9 +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sprockets/870b072c21a14943e77df52a2cda1b73 +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sprockets/8811d2e446647a23d3edf4b867ad0c02 +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sprockets/88197c7050fe981f868afc887b2ce0ba +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/887d9abab3188ec82c44b8c157617ca7 +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/88887cda2e4b689f7b1af350c003d0d2 +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/88b9d244297285b4704261b08355377c +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/8a7d09231ebe79adabff0fbb009fea25 +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/8a88e7d4780f75cec7a24872a705b76b +0 -0
  154. data/test/dummy/tmp/cache/assets/development/sprockets/8bd0b3620014ec125304f9605c337077 +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/8d39cc657ceec60e0d5ea1fa37e5e1a0 +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/8f2e727a35967938c7f3368ad0e1fd17 +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/9181c05dfda585ad6bf9ddb219eb15a1 +0 -0
  158. data/test/dummy/tmp/cache/assets/development/sprockets/921e258c04378d5f0ecf0f3ee547195e +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/95682c5bcf707ffdac00772b90de8e9d +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/963d3f2d23c24941fe0b9c0231b8849d +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/99f0365331f36952dca860bcc6e8fd4a +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/9b9cde87d5e9f732acdc4fb18077c71d +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/9ba436ceb3644f8f052f05eeff94a880 +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/9f495611485125fd9772059d732fd3ec +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/a60a6f908e1d257971c558b8c6db7ae5 +0 -0
  166. data/test/dummy/tmp/cache/assets/development/sprockets/a6b936ad9b28fb786d3135a007e5d5b8 +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/a6eedf5e824ca04685c9da227f406b8f +0 -0
  168. data/test/dummy/tmp/cache/assets/development/sprockets/a759d4068225951d142110473dd6c8b3 +0 -0
  169. data/test/dummy/tmp/cache/assets/development/sprockets/aae43c2efd29f832dccb299bfa566e44 +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sprockets/abafd28d094dec608d1a73ec02e75c34 +0 -0
  171. data/test/dummy/tmp/cache/assets/development/sprockets/ae3ffb8f5a8c49bb8253a13ef5d1d2a4 +0 -0
  172. data/test/dummy/tmp/cache/assets/development/sprockets/af888b78046ad78708407984ecb3c8a6 +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sprockets/b09cd2d5bea8a15151b6022c038dda5c +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sprockets/b461b3c64042d0c6dbaf73e92275300e +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sprockets/b4948b52a9f8e7cdd8a77902409545c0 +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sprockets/c1de6e9cb5f12e4481b52b1cf8d38d31 +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sprockets/c6698cd7d2263b8d2095648c2ac0fe79 +0 -0
  178. data/test/dummy/tmp/cache/assets/development/sprockets/c72957ff133a3fd942c3ab9960d1d423 +0 -0
  179. data/test/dummy/tmp/cache/assets/development/sprockets/c8c8162f2a41f8578ba98c9a1f37e46b +0 -0
  180. data/test/dummy/tmp/cache/assets/development/sprockets/c962852af3d1e3dc670690c90a7b070e +0 -0
  181. data/test/dummy/tmp/cache/assets/development/sprockets/ca13fe06919030ff6b989ec199d70a44 +0 -0
  182. data/test/dummy/tmp/cache/assets/development/sprockets/cb1fc3f2ce1b7f41695e590c097b311b +0 -0
  183. data/test/dummy/tmp/cache/assets/development/sprockets/cc6dcaa815625d7d4b57e3972e144bda +0 -0
  184. data/test/dummy/tmp/cache/assets/development/sprockets/ccbc9b9b1eb80fbb7865bc756ce55b87 +0 -0
  185. data/test/dummy/tmp/cache/assets/development/sprockets/ce5e8cfd00d9fb6c6fde000c5e03662d +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sprockets/cfc55116cc6269b60cf1be77557f0fa0 +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/d295569fa361346a1980638387ef138b +0 -0
  188. data/test/dummy/tmp/cache/assets/development/sprockets/d46eab415cde36a1cf5eace3991cf63a +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/d7e88e6d648deff48df25b735ddc1826 +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/db631d9298c9a2f7e02011d47fd3ccca +0 -0
  191. data/test/dummy/tmp/cache/assets/development/sprockets/e1f04589fe51a214b3d97f4b9d693db2 +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/e41a3d9a4ba0bd341c8da19fb9e53cca +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/e574af4ac554c85b5795e56916e5264e +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/e641d229c53e2926a5ed4ab6ce79eada +0 -0
  195. data/test/dummy/tmp/cache/assets/development/sprockets/e73b7841ac8e835c29aeb4fc4bf27e40 +0 -0
  196. data/test/dummy/tmp/cache/assets/development/sprockets/e88a13629d2c3498c801d061a01f6bf1 +0 -0
  197. data/test/dummy/tmp/cache/assets/development/sprockets/ed9f0de1b65ae8d7ef89087c83728461 +0 -0
  198. data/test/dummy/tmp/cache/assets/development/sprockets/f0f4cedded536278ec7f580408e6e60f +0 -0
  199. data/test/dummy/tmp/cache/assets/development/sprockets/f156de297b7d2034db1844f92f4f92ba +0 -0
  200. data/test/dummy/tmp/cache/assets/development/sprockets/f2f4ef8251bfbaced240dfbd93538a90 +0 -0
  201. data/test/dummy/tmp/cache/assets/development/sprockets/f655e2d083e4e5fc8b2c6a8064178998 +0 -0
  202. data/test/dummy/tmp/cache/assets/development/sprockets/f6667183705babbc5a9efea96e26953b +0 -0
  203. data/test/dummy/tmp/cache/assets/development/sprockets/f669eeb6c0059dbcab647979cad28c4b +0 -0
  204. data/test/dummy/tmp/cache/assets/development/sprockets/f985e5d99fd0dcf330b2a243b63c71f8 +0 -0
  205. data/test/dummy/tmp/cache/assets/development/sprockets/fa4cfa52c2f50e31e33e69d54e6694dc +0 -0
  206. data/test/dummy/tmp/cache/assets/development/sprockets/fb8b186d5bf0307f86f65fc787d2adeb +0 -0
  207. data/test/dummy/tmp/cache/assets/development/sprockets/fd2f0ae1c70d86cc45823b51d707e220 +0 -0
  208. data/test/dummy/tmp/cache/assets/development/sprockets/ff328cfd9b51b215b0db24b8bb3c63f4 +0 -0
  209. data/test/test_helper.rb +15 -0
  210. metadata +543 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1b507737de7d3ae760a816e3e0778e075514966b
4
+ data.tar.gz: 073e037afd29c16b7c68289bcaa1730a24c5e43e
5
+ SHA512:
6
+ metadata.gz: 2e48052bdca036eab391e30e89a7d10fe9156549af27b0bea381d2698a016623f4d499e896d1263b50f2bf5a805e6b289d81cf7346c60b232f62832b84180f39
7
+ data.tar.gz: 83d3e2432b49608279955da2e901140f886f82fe18f423d41840138c30a9e9489845c0d3b6befbb719b654e02c5468bdeb2ddfd747ba35a63a20a48e80a568b4
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,32 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'ActiveAdminJcrop'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+
18
+
19
+
20
+ Bundler::GemHelper.install_tasks
21
+
22
+ require 'rake/testtask'
23
+
24
+ Rake::TestTask.new(:test) do |t|
25
+ t.libs << 'lib'
26
+ t.libs << 'test'
27
+ t.pattern = 'test/**/*_test.rb'
28
+ t.verbose = false
29
+ end
30
+
31
+
32
+ task default: :test
@@ -0,0 +1,50 @@
1
+ window.active_admin_jcrop =
2
+ start: ->
3
+ if $('.crop_modal_open').length
4
+ $('.crop_modal_open').click ->
5
+ content = $(this).parent().find('.crop_modal_content').clone()
6
+ image = content.find('img.cropping_image')
7
+ active_admin_jcrop.cropper =
8
+ object_class: image.data('objectClass')
9
+ object_id: image.data('objectId')
10
+ crop_field: image.data('cropField')
11
+ jcropper_url: image.data('jcropperUrl')
12
+
13
+ $(content).appendTo('body').dialog
14
+ width: content.width()
15
+ height: content.height() + 100
16
+ modal: true
17
+ position: {
18
+ my: "center",
19
+ at: "center",
20
+ of: window
21
+ }
22
+ buttons:
23
+ 'Crop Image': ->
24
+
25
+ cropper = active_admin_jcrop.cropper
26
+ $.ajax
27
+ type: 'PUT'
28
+ url: cropper.jcropper_url
29
+ data:
30
+ image_data: cropper
31
+ success: ->
32
+ console.log('nois')
33
+ error: ->
34
+ alert('There was an error while cropping the image')
35
+ $(@).dialog('close')
36
+ Cancel: ->
37
+ $(@).dialog('close').remove()
38
+
39
+ image.Jcrop
40
+ onSelect: update_cropper
41
+ onChange: update_cropper
42
+
43
+ update_cropper = (coords) ->
44
+ active_admin_jcrop.cropper.crop_x = coords.x
45
+ active_admin_jcrop.cropper.crop_y = coords.y
46
+ active_admin_jcrop.cropper.crop_w = coords.w
47
+ active_admin_jcrop.cropper.crop_h = coords.h
48
+
49
+ $ ->
50
+ active_admin_jcrop.start()
@@ -0,0 +1,11 @@
1
+ .crop_modal_content {
2
+ display: none;
3
+ overflow: scroll;
4
+ width: 1000px;
5
+ height: 600px ;
6
+ }
7
+
8
+ .ui-dialog
9
+ {
10
+ position:fixed;
11
+ }
@@ -0,0 +1,13 @@
1
+ <%= link_to "Crop Image", "#" , class: "button crop_modal_open" %>
2
+
3
+ <%= content_tag :div, class: "crop_modal_content" do %>
4
+ <center>
5
+ <%= image_tag object.send(field).url, class: 'cropping_image', data: {
6
+ object_class: object.class.to_s.downcase,
7
+ object_id: object.id,
8
+ crop_field: field,
9
+ jcropper_url: send("jcropper_admin_#{object.class.to_s.downcase}_path")
10
+ }
11
+ %>
12
+ </center>
13
+ <% end %>
@@ -0,0 +1,8 @@
1
+ require "activeadmin"
2
+ require "dsl"
3
+ require 'asset_engine'
4
+ require 'orm'
5
+ require "formtastic/inputs/jcrop_input"
6
+ require "engine"
7
+ require "railtie"
8
+ require 'image_helper'
@@ -0,0 +1,3 @@
1
+ module ActiveAdminJcrop
2
+ VERSION = "0.0.2.alpha"
3
+ end
@@ -0,0 +1,5 @@
1
+ if Gem::Specification::find_all_by_name('carrierwave').any?
2
+ require 'asset_engine/carrier_wave'
3
+ elsif Gem::Specification::find_all_by_name('paperclip').any?
4
+ require 'asset_engine/paperclip'
5
+ end
@@ -0,0 +1,66 @@
1
+ module ActiveAdminJcrop
2
+ module AssetEngine
3
+ class <<self
4
+ def thumbnail_names(obj, field)
5
+ obj.class.uploaders[field.to_sym].versions.keys
6
+ end
7
+
8
+ def crop!(obj, field)
9
+ obj.send(field).recreate_versions!
10
+ end
11
+ end
12
+
13
+ module CarrierWave
14
+ def active_admin_crop
15
+ return unless model.active_admin_cropping?
16
+ manipulate! do |img|
17
+ ::ActiveAdminJcrop::ImageHelper.crop(img, model.crop_w, model.crop_h, model.crop_x, model.crop_y)
18
+ img
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ module CarrierWave
26
+ module Mount
27
+ module Extension
28
+ def self.included(base)
29
+ base.uploaders.each do |name, klass|
30
+ klass.send :include, ActiveAdminJcrop::AssetEngine::CarrierWave
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ module ActiveAdmin
38
+ module Config
39
+ module Fields
40
+ module Types
41
+ module UploaderMethods
42
+
43
+ def self.included(base)
44
+ base.register_instance_option(:cache_method) do
45
+ "#{name}_cache"
46
+ end
47
+
48
+ base.register_instance_option(:thumb_method) do
49
+ @thumb_method ||= ((versions = bindings[:object].send(name).versions.keys).find{|k| k.in?([:thumb, :thumbnail, 'thumb', 'thumbnail'])} || versions.first.to_s)
50
+ end
51
+
52
+ base.register_instance_option(:delete_method) do
53
+ "remove_#{name}"
54
+ end
55
+ end
56
+
57
+ def resource_url(thumb = false)
58
+ return nil unless (uploader = bindings[:object].send(name)).present?
59
+ thumb.present? ? uploader.send(thumb).url : uploader.url
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,86 @@
1
+ module ActiveAdminJcrop
2
+ module AssetEngine
3
+ class <<self
4
+ def thumbnail_names(obj, field)
5
+ obj.send(field).styles.keys
6
+ end
7
+
8
+ def crop!(obj, field)
9
+ obj.send(field).reprocess!
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ module Paperclip
16
+
17
+ module NewClassMethods
18
+ def has_attached_file(*args)
19
+ super
20
+
21
+ self.attachment_definitions.each do |name, options|
22
+ options[:processors] ||= []
23
+ options[:processors] << :active_admin_jcropper
24
+ end
25
+ end
26
+ end
27
+
28
+ module ClassMethods
29
+ def self.extended(base)
30
+ super
31
+ base.send :extend, ::Paperclip::NewClassMethods
32
+ end
33
+ end
34
+
35
+ class ActiveAdminJcropper < Thumbnail
36
+ def transformation_command
37
+ if @attachment.instance.active_admin_cropping?
38
+ ary = super
39
+ if i = ary.index('-crop')
40
+ ary.delete_at i+1
41
+ ary.delete_at i
42
+ end
43
+ ['-crop', crop_params] + ary
44
+ else
45
+ super
46
+ end
47
+ end
48
+
49
+ def crop_params
50
+ target = @attachment.instance
51
+ "'#{target.crop_w.to_i}x#{target.crop_h.to_i}+#{target.crop_x.to_i}+#{target.crop_y.to_i}'"
52
+ end
53
+ end
54
+
55
+ end
56
+
57
+ module ActiveAdmin
58
+ module Config
59
+ module Fields
60
+ module Types
61
+ module UploaderMethods
62
+
63
+ def self.included(base)
64
+ base.register_instance_option(:cache_method) do
65
+ nil
66
+ end
67
+
68
+ base.register_instance_option(:thumb_method) do
69
+ @thumb_method ||= ((styles = bindings[:object].send(name).styles.keys).find{|k| k.in?([:thumb, :thumbnail, 'thumb', 'thumbnail'])} || styles.first.to_s)
70
+ end
71
+
72
+ base.register_instance_option(:delete_method) do
73
+ nil
74
+ end
75
+ end
76
+
77
+ def resource_url(thumb = false)
78
+ return nil unless (attachment = bindings[:object].send(name)).present?
79
+ thumb.present? ? attachment.url(thumb) : attachment.url
80
+ end
81
+
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,16 @@
1
+ module ActiveAdminJcrop
2
+ module DSL
3
+
4
+ def jcropable
5
+ member_action :jcropper, method: :put do
6
+ resource.active_admin_crop! params[:image_data]
7
+
8
+ respond_to do |format|
9
+ format.js { render json: true }
10
+ end
11
+ end
12
+ end
13
+
14
+
15
+ end
16
+ end
@@ -0,0 +1,8 @@
1
+ module ActiveAdminJcrop
2
+ class Engine < ::Rails::Engine
3
+
4
+ initializer "ActiveAdmin precompile hook" do |app|
5
+ app.config.assets.precompile += ['active_admin_jcrop/crop_modal.js', 'active_admin_jcrop/crop_modal.css', "active_admin_jcrop/jquery.color.js", "active_admin_jcrop/jquery.Jcrop.min.js", 'active_admin_jcrop/jquery.Jcrop.min.css']
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,26 @@
1
+ module Formtastic
2
+ module Inputs
3
+ class JcropInput < ::Formtastic::Inputs::FileInput
4
+ include Base
5
+
6
+ def to_html
7
+ input_wrapping do
8
+ label_html <<
9
+ builder.file_field(method, input_html_options) <<
10
+ jcrop_feature
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def jcrop_feature
17
+ if @object.send(method).present?
18
+ template.render(partial: "active_admin_jcrop/jcrop_modal", locals: {field: method, object: @object})
19
+ else
20
+ ''
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ module ActiveAdminJcrop
2
+ module ImageHelper
3
+
4
+ class <<self
5
+ def crop(img, w, h, x, y)
6
+ processor = img.class.name =~ /^MiniMagick/ ? 'minimagick' : 'rmagick'
7
+ send("#{processor}_crop", img, w, h, x, y)
8
+ end
9
+
10
+ def minimagick_crop(img, w, h, x, y)
11
+ geometry = "#{w}x#{h}+#{x}+#{y}"
12
+ img.crop geometry
13
+ end
14
+
15
+ def rmagick_crop(img, w, h, x, y)
16
+ img.crop! x.to_i, y.to_i, w.to_i, h.to_i
17
+ end
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,43 @@
1
+ module ActiveAdminJcrop
2
+ module Orm
3
+ module Extension
4
+
5
+ CropFields = [:crop_x, :crop_y, :crop_w, :crop_h, :crop_field]
6
+
7
+ def self.included(base)
8
+ base.send :attr_accessor, *CropFields
9
+ end
10
+
11
+ def active_admin_cropping?
12
+ CropFields.all? {|f| send(f).present?}
13
+ end
14
+
15
+ def active_admin_crop!(params)
16
+ if defined?(::CarrierWave)
17
+ require 'asset_engine/carrier_wave'
18
+ elsif defined?(::Paperclip)
19
+ require 'asset_engine/paperclip'
20
+ end
21
+
22
+ CropFields.each {|f| self.send "#{f}=", params[f] }
23
+
24
+ ::ActiveAdminJcrop::AssetEngine.crop!(self, self.crop_field) if self.active_admin_cropping?
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+
31
+ if defined?(::ActiveRecord)
32
+ ::ActiveRecord::Base.send(:include, ::ActiveAdminJcrop::Orm::Extension)
33
+ end
34
+
35
+ if defined?(::Mongoid)
36
+ module Mongoid
37
+ module Document
38
+ def self.included(base)
39
+ base.send(:include, ::ActiveAdminJcrop::Orm::Extension)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,20 @@
1
+ class ActiveAdminJcropRailtie < Rails::Railtie
2
+ initializer "active_admin_jcrop_railtie.configure_rails_initialization" do
3
+ ActiveAdmin::DSL.send(:include, ActiveAdminJcrop::DSL)
4
+ ActiveAdmin.setup do |config|
5
+ [ 'active_admin_jcrop/crop_modal',
6
+ "active_admin_jcrop/jquery.color",
7
+ "active_admin_jcrop/jquery.Jcrop.min"
8
+ ].each do |js|
9
+ config.register_javascript js
10
+ end
11
+
12
+ [ "active_admin_jcrop/crop_modal",
13
+ 'active_admin_jcrop/jquery.Jcrop.min'
14
+ ].each do |css|
15
+ config.register_stylesheet css
16
+ end
17
+
18
+ end
19
+ end
20
+ end