active_admin_jcrop 0.0.2.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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