rich 0.0.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (382) hide show
  1. data/README.rdoc +85 -17
  2. data/app/assets/images/rich/document-thumb.png +0 -0
  3. data/app/assets/images/rich/files.png +0 -0
  4. data/app/assets/images/rich/images.png +0 -0
  5. data/app/assets/images/rich/rich.png +0 -0
  6. data/app/assets/images/rich/view-grid.png +0 -0
  7. data/app/assets/images/rich/view-list.png +0 -0
  8. data/app/assets/javascripts/rich/base.js +1 -1
  9. data/app/assets/javascripts/rich/browser/filebrowser.js +43 -7
  10. data/app/assets/javascripts/rich/browser/uploader.js +14 -4
  11. data/app/assets/javascripts/rich/editor/rich_editor.js.erb +14 -0
  12. data/app/assets/javascripts/rich/editor/rich_picker.js +37 -0
  13. data/app/assets/stylesheets/rich/application.css.scss +79 -8
  14. data/app/controllers/rich/files_controller.rb +29 -9
  15. data/app/helpers/rich/files_helper.rb +9 -0
  16. data/app/inputs/rich_input.rb +3 -1
  17. data/app/inputs/rich_picker_input.rb +28 -0
  18. data/app/models/rich/rich_file.rb +75 -0
  19. data/app/views/rails_admin/main/_form_rich_picker.html.haml +9 -0
  20. data/app/views/rails_admin/main/_form_rich_text.html.haml +1 -1
  21. data/app/views/rich/files/_file.html.erb +11 -0
  22. data/app/views/rich/files/destroy.js.erb +1 -1
  23. data/app/views/rich/files/index.html.erb +11 -6
  24. data/app/views/rich/files/index.js.erb +1 -1
  25. data/app/views/rich/files/show.html.erb +1 -1
  26. data/config/locales/en.yml +14 -0
  27. data/config/locales/nl.yml +14 -0
  28. data/db/migrate/20111201095829_refactor_image_to_file.rb +12 -0
  29. data/lib/generators/rich/install/install_generator.rb +1 -1
  30. data/lib/generators/rich/install/templates/rich.rb.erb +24 -1
  31. data/lib/rich.rb +72 -9
  32. data/lib/rich/integrations/legacy_formtastic.rb +30 -1
  33. data/lib/rich/rails_admin/config/fields/types/rich_editor.rb +24 -0
  34. data/lib/rich/rails_admin/config/fields/types/rich_picker.rb +24 -0
  35. data/lib/rich/version.rb +1 -1
  36. data/lib/tasks/rich_tasks.rake +8 -2
  37. data/test/dummy/app/admin/posts.rb +1 -1
  38. data/test/dummy/app/assets/stylesheets/active_admin.css.scss +1 -1
  39. data/test/dummy/app/views/posts/_formtastic_form.html.erb +1 -1
  40. data/test/dummy/db/migrate/20111201102914_refactor_image_to_file.rb +12 -0
  41. data/test/dummy/db/schema.rb +7 -6
  42. data/test/dummy/log/development.log +20754 -0
  43. data/test/dummy/log/production.log +85 -0
  44. data/test/dummy/tmp/cache/assets/BDC/DF0/sprockets%2F556859632756792340573f0b7d7937d4 +0 -0
  45. data/test/dummy/tmp/cache/assets/C1F/C60/sprockets%2F7b73e1441b6f7263843099067b02b373 +9268 -0
  46. data/test/dummy/tmp/cache/assets/C30/5E0/sprockets%2Fd046349704d63c4f7853d970b1457397 +0 -0
  47. data/test/dummy/tmp/cache/assets/C49/500/sprockets%2F72473c15cf2e294b25b1823e82954031 +0 -0
  48. data/test/dummy/tmp/cache/assets/C4C/210/sprockets%2Fd5b6577c132f039977bb7f2561202250 +0 -0
  49. data/test/dummy/tmp/cache/assets/C52/310/sprockets%2Ff762b28ba923692a96b2f13464470741 +0 -0
  50. data/test/dummy/tmp/cache/assets/C59/540/sprockets%2F52900d0447866f0a89713df578bb9314 +0 -0
  51. data/test/dummy/tmp/cache/assets/C7D/C40/sprockets%2Fc99034ce618e1228e662c007671f2a53 +0 -0
  52. data/test/dummy/tmp/cache/assets/C7F/FF0/sprockets%2F82f2b657d820136e754f0803a44a078f +0 -0
  53. data/test/dummy/tmp/cache/assets/C85/380/sprockets%2F53a7b57361807c68e79e068a40273c0e +0 -0
  54. data/test/dummy/tmp/cache/assets/C86/890/sprockets%2F02721682e0d48a5588bd271564d6af95 +0 -0
  55. data/test/dummy/tmp/cache/assets/C8A/CB0/sprockets%2F40f88a2196119159fe653124ef537c5e +0 -0
  56. data/test/dummy/tmp/cache/assets/C8C/9D0/sprockets%2F8b92e270ee72a59828b93834f64403b3 +0 -0
  57. data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
  58. data/test/dummy/tmp/cache/assets/C8E/810/sprockets%2F4d893143373812f4f7ec8a566575b42d +11769 -0
  59. data/test/dummy/tmp/cache/assets/C9D/900/sprockets%2Fc14438207a3237290e68a48b23adbb24 +0 -0
  60. data/test/dummy/tmp/cache/assets/C9D/AD0/sprockets%2F9534922958d0e57f02ca7a68bb887878 +0 -0
  61. data/test/dummy/tmp/cache/assets/C9E/C60/sprockets%2F2533ccfb67e257141e36362e252da032 +0 -0
  62. data/test/dummy/tmp/cache/assets/CA3/A50/sprockets%2F1138d3a48560705a7e596ab7bd02253b +0 -0
  63. data/test/dummy/tmp/cache/assets/CA8/010/sprockets%2F3822fe6ee82705342f2d141f13e5018d +0 -0
  64. data/test/dummy/tmp/cache/assets/CAA/210/sprockets%2F4b2006e8a7b0be91f6825c455218552e +0 -0
  65. data/test/dummy/tmp/cache/assets/CAA/4C0/sprockets%2F5b64d12f9a13a72a8495fc5154c72720 +0 -0
  66. data/test/dummy/tmp/cache/assets/CAE/440/sprockets%2F31dc3464893dd5a7734a257022bf9a37 +0 -0
  67. data/test/dummy/tmp/cache/assets/CAF/F40/sprockets%2F120428867690edf2aacb690455b7941b +0 -0
  68. data/test/dummy/tmp/cache/assets/CB0/600/sprockets%2F721bd25e8fdb60735b9076b6004d8672 +0 -0
  69. data/test/dummy/tmp/cache/assets/CB0/9C0/sprockets%2F70533e8bf04740f964137b3a7d1ef580 +0 -0
  70. data/test/dummy/tmp/cache/assets/CB0/F40/sprockets%2F539d1dd471483a311391ef9c03474cf6 +0 -0
  71. data/test/dummy/tmp/cache/assets/CBE/A80/sprockets%2F60bb9087aed9745744925f6ce01525d9 +0 -0
  72. data/test/dummy/tmp/cache/assets/CC0/EE0/sprockets%2Fcf58860c06a91287b88fec141c768661 +0 -0
  73. data/test/dummy/tmp/cache/assets/CC2/680/sprockets%2F246dc8445ce003f6b944c6c1796769d7 +0 -0
  74. data/test/dummy/tmp/cache/assets/CC6/910/sprockets%2Fdf1992311ede6a7259c057589a7b6984 +0 -0
  75. data/test/dummy/tmp/cache/assets/CC7/220/sprockets%2Fd066c004d1fd26ae76a61303a7a18145 +0 -0
  76. data/test/dummy/tmp/cache/assets/CC9/FB0/sprockets%2Fb265a0c8713c462a3dab42a043592c84 +307 -0
  77. data/test/dummy/tmp/cache/assets/CCC/800/sprockets%2F655e3dff9911f7527f1787fd951c4471 +0 -0
  78. data/test/dummy/tmp/cache/assets/CCE/3D0/sprockets%2F7c053a0e37e4109846266a0a686acb0a +0 -0
  79. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  80. data/test/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385 +0 -0
  81. data/test/dummy/tmp/cache/assets/CDC/C20/sprockets%2F3371b9d597c9e502ffda24060240ac87 +0 -0
  82. data/test/dummy/tmp/cache/assets/CDE/720/sprockets%2Fc5b9143c5e46515e7453e0592b0fa57c +0 -0
  83. data/test/dummy/tmp/cache/assets/CDF/090/sprockets%2F548c7b3eb20c97746a1e776b10923bd4 +0 -0
  84. data/test/dummy/tmp/cache/assets/CE0/F70/sprockets%2F5f626eb3d0e9861907861afe5612a00f +0 -0
  85. data/test/dummy/tmp/cache/assets/CE1/450/sprockets%2Fadebe57961c73b59a91430d19030686d +0 -0
  86. data/test/dummy/tmp/cache/assets/CE3/4D0/sprockets%2F19e11e8ad7217476a1e8b184ee290f09 +0 -0
  87. data/test/dummy/tmp/cache/assets/CE4/D20/sprockets%2F7a924cdc374439e3f1f48d1d527b3219 +0 -0
  88. data/test/dummy/tmp/cache/assets/CE5/5B0/sprockets%2F9ba69a933006592e5570cf6e60a86b2e +0 -0
  89. data/test/dummy/tmp/cache/assets/CE8/6E0/sprockets%2F8923777ce0d4b72fb555e68172a2cb64 +0 -0
  90. data/test/dummy/tmp/cache/assets/CE9/260/sprockets%2F20e1d59afc58e2ba50296184927fd568 +0 -0
  91. data/test/dummy/tmp/cache/assets/CE9/B80/sprockets%2F5b2c5115ef4f940777455ffec4f26073 +0 -0
  92. data/test/dummy/tmp/cache/assets/CEA/440/sprockets%2F8b65d70b39a1927cb624378db39f08f3 +0 -0
  93. data/test/dummy/tmp/cache/assets/CEC/1A0/sprockets%2F87fdead6014b961bb870b5931890d677 +0 -0
  94. data/test/dummy/tmp/cache/assets/CEE/110/sprockets%2F9c44152dd57a39d850579fabc8692f40 +0 -0
  95. data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
  96. data/test/dummy/tmp/cache/assets/CF4/B80/sprockets%2F79b2eff4a92bc95d9490229d2737176d +0 -0
  97. data/test/dummy/tmp/cache/assets/CF5/FF0/sprockets%2F32d199874dd68096ea89a599ab51f20e +0 -0
  98. data/test/dummy/tmp/cache/assets/CF6/9E0/sprockets%2Ff3c0e6e191993ce3d97cb35929d18197 +0 -0
  99. data/test/dummy/tmp/cache/assets/CFA/FF0/sprockets%2Fa6545f61c7de6879eb67484098a462cf +0 -0
  100. data/test/dummy/tmp/cache/assets/CFF/D50/sprockets%2F5550c747d02b158061172ceb65bc6dbb +0 -0
  101. data/test/dummy/tmp/cache/assets/D01/100/sprockets%2Fc75ebeede3097141291c1070d9d8100b +0 -0
  102. data/test/dummy/tmp/cache/assets/D01/560/sprockets%2F04a744ea7118f43a7a27c24bcd642e71 +0 -0
  103. data/test/dummy/tmp/cache/assets/D01/980/sprockets%2F47c7e52f43c37ea9a1731f0400c393aa +0 -0
  104. data/test/dummy/tmp/cache/assets/D03/830/sprockets%2Fa883e61c251d3594df4b1124ed4390aa +0 -0
  105. data/test/dummy/tmp/cache/assets/D09/620/sprockets%2Fa6d2b19ed539a48b468f02d4f2102e45 +0 -0
  106. data/test/dummy/tmp/cache/assets/D0C/C50/sprockets%2F3625e72a23ca59eb4f502a18a854fb86 +0 -0
  107. data/test/dummy/tmp/cache/assets/D0E/970/sprockets%2Ff4346553df4bcb0293ec44436ceb7445 +0 -0
  108. data/test/dummy/tmp/cache/assets/D0F/670/sprockets%2F2ca830c5963fe95210485673db1ede1e +0 -0
  109. data/test/dummy/tmp/cache/assets/D0F/990/sprockets%2Ff5faa1c930c6257f1866de553d1309c4 +0 -0
  110. data/test/dummy/tmp/cache/assets/D11/D20/sprockets%2Fcac21eac42152981882bf9e489316af4 +0 -0
  111. data/test/dummy/tmp/cache/assets/D14/100/sprockets%2F7e25f5a9675206617b385bcacee2c428 +0 -0
  112. data/test/dummy/tmp/cache/assets/D14/B10/sprockets%2Ff38863f0920a58989fac3b39b01a8ae0 +0 -0
  113. data/test/dummy/tmp/cache/assets/D15/F40/sprockets%2F83d1a8006e470e79f75592d63bdedc04 +0 -0
  114. data/test/dummy/tmp/cache/assets/D16/2E0/sprockets%2F8d4a269edb493c2533fc8900fce71670 +377 -0
  115. data/test/dummy/tmp/cache/assets/D19/CB0/sprockets%2Fcac38332595f72fe9156b55d1f55c92b +0 -0
  116. data/test/dummy/tmp/cache/assets/D19/E50/sprockets%2F76c630d6dbc0fdb45dc92c6919912585 +0 -0
  117. data/test/dummy/tmp/cache/assets/D1F/840/sprockets%2F3f6d2f8168b95fd5064838cfb05c5d54 +151 -0
  118. data/test/dummy/tmp/cache/assets/D2B/F50/sprockets%2Fe26eda13a54cd6200413fd8245a5e36b +0 -0
  119. data/test/dummy/tmp/cache/assets/D2D/C50/sprockets%2Fb754067a20e1232dd039ba2a7bb79b6e +0 -0
  120. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  121. data/test/dummy/tmp/cache/assets/D34/5C0/sprockets%2F904c9b8fddca30f8ac0061367513f2d2 +0 -0
  122. data/test/dummy/tmp/cache/assets/D37/480/sprockets%2F101629fc7aaf58f0f21aa7f976d2b313 +0 -0
  123. data/test/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db +0 -0
  124. data/test/dummy/tmp/cache/assets/D38/680/sprockets%2F60a41a53a3c2d1b9fecd7564d1b58576 +0 -0
  125. data/test/dummy/tmp/cache/assets/D3B/9D0/sprockets%2Fbe23efc42b103a6190e6b77e0aa86888 +0 -0
  126. data/test/dummy/tmp/cache/assets/D3B/C70/sprockets%2Ff704fd927eb4b431ebbb078964ad1082 +0 -0
  127. data/test/dummy/tmp/cache/assets/D3C/B00/sprockets%2Fd53dbcc52e2c652b4497a294950a7a5d +374 -0
  128. data/test/dummy/tmp/cache/assets/D3D/050/sprockets%2Fb7e69babfa0dff58209608f29b552030 +0 -0
  129. data/test/dummy/tmp/cache/assets/D3D/E80/sprockets%2Fa0d6f8e7278aef19b2336504eca13c93 +0 -0
  130. data/test/dummy/tmp/cache/assets/D40/7E0/sprockets%2Fb6a18ca76fb24ff0c70582a662279ec5 +0 -0
  131. data/test/dummy/tmp/cache/assets/D40/890/sprockets%2Fb5f7db789c0a7be80044024f44b9b9a5 +0 -0
  132. data/test/dummy/tmp/cache/assets/D41/F40/sprockets%2F796e91edd36a9a6525ddf19120e0a92a +0 -0
  133. data/test/dummy/tmp/cache/assets/D43/3D0/sprockets%2F8ada471f7421754fee5fbf924129fc02 +0 -0
  134. data/test/dummy/tmp/cache/assets/D44/910/sprockets%2F996b6126fafeeda6ada2b06912997071 +0 -0
  135. data/test/dummy/tmp/cache/assets/D45/740/sprockets%2F8c6505fad3328da88838a2038f1cee7b +0 -0
  136. data/test/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24 +0 -0
  137. data/test/dummy/tmp/cache/assets/D48/C10/sprockets%2Fec51b108f6592519a995dbe35e933eac +0 -0
  138. data/test/dummy/tmp/cache/assets/D4D/C00/sprockets%2Fe86d496cf8d0e8428d8b31932f61cd2a +0 -0
  139. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  140. data/test/dummy/tmp/cache/assets/D50/D70/sprockets%2F13297c9f3a654ebe511fc93c9c7d974c +0 -0
  141. data/test/dummy/tmp/cache/assets/D50/F20/sprockets%2Fcf6ca517cd1745586b9190ffd974d53d +0 -0
  142. data/test/dummy/tmp/cache/assets/D51/0E0/sprockets%2F7c2fe2f837656b4be38c13cc949de744 +0 -0
  143. data/test/dummy/tmp/cache/assets/D53/AD0/sprockets%2Fd2a61d9e43bef9b3da304613b31151aa +0 -0
  144. data/test/dummy/tmp/cache/assets/D54/C50/sprockets%2F011c250cecb491f0716c2d35db11d5ef +0 -0
  145. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +2892 -0
  146. data/test/dummy/tmp/cache/assets/D56/060/sprockets%2F3cc85144bd659faafd4ba12514a04a41 +0 -0
  147. data/test/dummy/tmp/cache/assets/D58/3E0/sprockets%2Fc24b0c6ca152dc28e8d957a036d10bc1 +0 -0
  148. data/test/dummy/tmp/cache/assets/D58/8C0/sprockets%2Fd09d3bf86be5ae1a3d698a89d5937765 +11772 -0
  149. data/test/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461 +0 -0
  150. data/test/dummy/tmp/cache/assets/D59/FD0/sprockets%2Ff3ed2c82c99fe2e39994837f0aa8346d +0 -0
  151. data/test/dummy/tmp/cache/assets/D5A/DA0/sprockets%2Fd1c25b1bd44d0def57ce592c912100f1 +0 -0
  152. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  153. data/test/dummy/tmp/cache/assets/D68/3B0/sprockets%2Fe0ac076b844e6c350abc027feb685e91 +0 -0
  154. data/test/dummy/tmp/cache/assets/D69/3A0/sprockets%2Fc2e8be30894dbf2c5ae343b31d4581a9 +573 -0
  155. data/test/dummy/tmp/cache/assets/D6B/1F0/sprockets%2F00c187e6cd48781decdecbd7852441a0 +0 -0
  156. data/test/dummy/tmp/cache/assets/D6D/950/sprockets%2Fb9497be057cbca0f3561346f1b9e3c6a +0 -0
  157. data/test/dummy/tmp/cache/assets/D6E/210/sprockets%2F359f7abf641c19fbd07d5b1574f1db43 +21419 -0
  158. data/test/dummy/tmp/cache/assets/D6F/5B0/sprockets%2Fc0a3a580c584caaa292d939c2d999b2f +0 -0
  159. data/test/dummy/tmp/cache/assets/D70/1D0/sprockets%2F1920e0a4ad06e9d71d89f3cecd56084e +0 -0
  160. data/test/dummy/tmp/cache/assets/D70/620/sprockets%2Fb7a0b3fec35d697aaa981766c325d9b1 +0 -0
  161. data/test/dummy/tmp/cache/assets/D76/CF0/sprockets%2F7ec2368edb7eb22a3fd702a4272e9e89 +0 -0
  162. data/test/dummy/tmp/cache/assets/D77/020/sprockets%2Fad98cede2e30585e158452e7cd60ab86 +1248 -0
  163. data/test/dummy/tmp/cache/assets/D77/1C0/sprockets%2F1bf243b62a7f5d6ac4869d168f8f12fc +0 -0
  164. data/test/dummy/tmp/cache/assets/D77/720/sprockets%2F290ce7610778fe1fcd773c5a0f15dce9 +0 -0
  165. data/test/dummy/tmp/cache/assets/D78/5E0/sprockets%2Fd8e4db6d4b7de69d0d28f4a627124f81 +0 -0
  166. data/test/dummy/tmp/cache/assets/D7A/110/sprockets%2F9bb282830e134ce5eff5c3f880be48f5 +0 -0
  167. data/test/dummy/tmp/cache/assets/D7C/B80/sprockets%2Fe00c543f5cfb7825e52c7bf6d299cf38 +0 -0
  168. data/test/dummy/tmp/cache/assets/D80/150/sprockets%2F7afe167cbf94db99ac6b348b7119666b +0 -0
  169. data/test/dummy/tmp/cache/assets/D80/6E0/sprockets%2F69e017aaae756eafe9df386c5048a587 +0 -0
  170. data/test/dummy/tmp/cache/assets/D80/CD0/sprockets%2Fe77d6be07ff62e4fc47e35d4c04d8853 +0 -0
  171. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +9856 -0
  172. data/test/dummy/tmp/cache/assets/D89/1E0/sprockets%2F7ff9a89d965da98dae31182c3776ec3c +0 -0
  173. data/{app/assets/javascripts/rich/editor/rich_finder.js → test/dummy/tmp/cache/assets/D89/D60/sprockets%2F3f311ef8cee787d7b7c3816c8be3e877} +0 -0
  174. data/test/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a +0 -0
  175. data/test/dummy/tmp/cache/assets/D93/890/sprockets%2F033c6ea07a61dbd408ba2bf8e99b518a +8 -0
  176. data/test/dummy/tmp/cache/assets/D99/8B0/sprockets%2F751a6a4f71b2d265b1a2ba69fe74da9e +0 -0
  177. data/test/dummy/tmp/cache/assets/D99/D70/sprockets%2Ff9bd12f1c79a65cab71c8864b2bb7c02 +0 -0
  178. data/test/dummy/tmp/cache/assets/D9C/A50/sprockets%2Fcbb2164ecd3fee434313cf6a874c71e8 +0 -0
  179. data/test/dummy/tmp/cache/assets/D9C/CD0/sprockets%2Fc85016e7bbd4f3adbb7635d01f85d39b +0 -0
  180. data/test/dummy/tmp/cache/assets/D9E/8A0/sprockets%2F0a7eeed4a8f1f8254832ab05ebc45f84 +0 -0
  181. data/test/dummy/tmp/cache/assets/DA2/F30/sprockets%2F44366f00cea4ca9d9aec7871db971c2f +0 -0
  182. data/test/dummy/tmp/cache/assets/DA5/970/sprockets%2F4f833dc8b08deda7bb67ec9c3252539a +0 -0
  183. data/test/dummy/tmp/cache/assets/DAC/680/sprockets%2F97a78e23ce5e82b751cd7cc583dfa55b +0 -0
  184. data/test/dummy/tmp/cache/assets/DBF/180/sprockets%2F19427ba0edb6b1c15eaaf43afd73e617 +15 -0
  185. data/test/dummy/tmp/cache/assets/DC1/330/sprockets%2F0ca5e4ab25ba6b584b50c681b2e2f8ef +0 -0
  186. data/test/dummy/tmp/cache/assets/DCD/050/sprockets%2F96e3d58bfbeb0b900f3b37cd320a9fc9 +0 -0
  187. data/test/dummy/tmp/cache/assets/DD6/330/sprockets%2F7ca77285ccddf7fdab491480fde7c151 +0 -0
  188. data/test/dummy/tmp/cache/assets/DD7/B50/sprockets%2F7effa89c4b23ab60109f969a9a66ccbc +0 -0
  189. data/test/dummy/tmp/cache/assets/DD8/2D0/sprockets%2Fc7f10cddd3a3cdccc64580ca85795f99 +0 -0
  190. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  191. data/test/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb +0 -0
  192. data/test/dummy/tmp/cache/assets/DDE/960/sprockets%2Ff3399fed917fb2a6f8ff71d4d1ae21b9 +0 -0
  193. data/test/dummy/tmp/cache/assets/DDE/C10/sprockets%2Fccddf7e521c7c7579f81ce8bcdf24616 +0 -0
  194. data/test/dummy/tmp/cache/assets/DEE/140/sprockets%2F9e7b9f2cc1e4af0aac3a2c630a6823bf +0 -0
  195. data/test/dummy/tmp/cache/assets/DF7/EE0/sprockets%2F661abfd8ab8ddb966ccded48ca100623 +0 -0
  196. data/test/dummy/tmp/cache/assets/DFA/FD0/sprockets%2Fae353fbfac66799b1b2b673cd0ee2dd2 +0 -0
  197. data/test/dummy/tmp/cache/assets/DFD/D40/sprockets%2Fe7a99039c5f62b2b81b1e2acdbfea79a +0 -0
  198. data/test/dummy/tmp/cache/assets/DFF/4D0/sprockets%2F0d7eae306cc4e83ae549e96b1b6da8db +0 -0
  199. data/test/dummy/tmp/cache/assets/E01/310/sprockets%2F2d73ac8ade85dac6e5a4cb8fe134e394 +9271 -0
  200. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  201. data/test/dummy/tmp/cache/assets/E06/920/sprockets%2F6baa37d1c26468aef4fe5fe4bf982fa3 +0 -0
  202. data/test/dummy/tmp/cache/assets/E07/B90/sprockets%2Faa8bbd5ec66e8551cb8f02e6f91ccf66 +0 -0
  203. data/test/dummy/tmp/cache/assets/E14/000/sprockets%2F22de1e18f579a2be86d077ff4f9eefec +0 -0
  204. data/test/dummy/tmp/cache/assets/E27/CE0/sprockets%2Fc6c0de9a6e495bc2d4cbaca6ce7f4331 +0 -0
  205. data/test/dummy/tmp/cache/assets/E2F/E90/sprockets%2Ff4b19e42c92a93dcaaec9fe6eae4081d +0 -0
  206. data/test/dummy/tmp/cache/assets/E32/900/sprockets%2F6b0ca247dcd97ca99e7c26becfcc08a6 +0 -0
  207. data/test/dummy/tmp/cache/assets/E96/8E0/sprockets%2Ff79a30eddcef5bc36a0f9b173fcdeee9 +0 -0
  208. data/test/dummy/tmp/cache/sass/0e3c39d5b08eff892689c4479cf5186a9f2f0f7c/_button.scssc +638 -0
  209. data/test/dummy/tmp/cache/sass/0e3c39d5b08eff892689c4479cf5186a9f2f0f7c/_font-family.scssc +0 -0
  210. data/test/dummy/tmp/cache/sass/0e3c39d5b08eff892689c4479cf5186a9f2f0f7c/_html5-input-types.scssc +0 -0
  211. data/test/dummy/tmp/cache/sass/0e3c39d5b08eff892689c4479cf5186a9f2f0f7c/_position.scssc +0 -0
  212. data/test/dummy/tmp/cache/sass/0e3c39d5b08eff892689c4479cf5186a9f2f0f7c/_timing-functions.scssc +0 -0
  213. data/test/dummy/tmp/cache/sass/10a2955f213af1d8238dbb23fd738e9a4b6227d9/_bourbon.scssc +0 -0
  214. data/test/dummy/tmp/cache/sass/1695f59014a98620e6303adfb5b409c258c2b87a/_dashboard.scssc +0 -0
  215. data/test/dummy/tmp/cache/sass/1695f59014a98620e6303adfb5b409c258c2b87a/_logged_out.scssc +0 -0
  216. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_animation.scssc +0 -0
  217. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_appearance.scssc +0 -0
  218. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_background-image.scssc +0 -0
  219. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_background-size.scssc +0 -0
  220. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_border-image.scssc +0 -0
  221. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_border-radius.scssc +0 -0
  222. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_box-shadow.scssc +0 -0
  223. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_box-sizing.scssc +0 -0
  224. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_columns.scssc +0 -0
  225. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_flex-box.scssc +0 -0
  226. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_inline-block.scssc +0 -0
  227. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_linear-gradient.scssc +0 -0
  228. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_radial-gradient.scssc +0 -0
  229. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_transform.scssc +0 -0
  230. data/test/dummy/tmp/cache/sass/2052157e4566f95baa2b8c7fde16b94c779312ff/_transition.scssc +0 -0
  231. data/test/dummy/tmp/cache/sass/22e569f5f9a6a46172ce6b667e520ff898b354e6/_footer.scssc +0 -0
  232. data/test/dummy/tmp/cache/sass/22e569f5f9a6a46172ce6b667e520ff898b354e6/_main_structure.scssc +0 -0
  233. data/test/dummy/tmp/cache/sass/22e569f5f9a6a46172ce6b667e520ff898b354e6/_title_bar.scssc +0 -0
  234. data/test/dummy/tmp/cache/sass/3dd666eb272786a803aea8ddaa457a8eb0afd8f8/_base.css.scssc +0 -0
  235. data/test/dummy/tmp/cache/sass/3dd666eb272786a803aea8ddaa457a8eb0afd8f8/_forms.css.scssc +0 -0
  236. data/test/dummy/tmp/cache/sass/3dd666eb272786a803aea8ddaa457a8eb0afd8f8/_header.css.scssc +0 -0
  237. data/test/dummy/tmp/cache/sass/3dd666eb272786a803aea8ddaa457a8eb0afd8f8/_mixins.css.scssc +0 -0
  238. data/test/dummy/tmp/cache/sass/3dd666eb272786a803aea8ddaa457a8eb0afd8f8/_typography.css.scssc +0 -0
  239. data/test/dummy/tmp/cache/sass/463698979fe84b26be7fc6c518f754b41fb9510f/_dashboard.scssc +0 -0
  240. data/test/dummy/tmp/cache/sass/463698979fe84b26be7fc6c518f754b41fb9510f/_logged_out.scssc +0 -0
  241. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_deprecated-webkit-gradient.scssc +0 -0
  242. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_grid-width.scssc +0 -0
  243. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_linear-gradient.scssc +0 -0
  244. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_modular-scale.scssc +0 -0
  245. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_radial-gradient.scssc +0 -0
  246. data/test/dummy/tmp/cache/sass/48ab97917cfe839fea6deb0ddbb38dd815e0a960/_tint-shade.scssc +0 -0
  247. data/test/dummy/tmp/cache/sass/49b692ec63c6b33a530aef3af5b8060898046589/_base.css.scssc +0 -0
  248. data/test/dummy/tmp/cache/sass/49b692ec63c6b33a530aef3af5b8060898046589/_forms.css.scssc +0 -0
  249. data/test/dummy/tmp/cache/sass/49b692ec63c6b33a530aef3af5b8060898046589/_header.css.scssc +0 -0
  250. data/test/dummy/tmp/cache/sass/49b692ec63c6b33a530aef3af5b8060898046589/_mixins.css.scssc +0 -0
  251. data/test/dummy/tmp/cache/sass/49b692ec63c6b33a530aef3af5b8060898046589/_typography.css.scssc +0 -0
  252. data/test/dummy/tmp/cache/sass/4cb736fd6bac26f99664803c8f4f333a6e0de9cf/_dashboard.scssc +0 -0
  253. data/test/dummy/tmp/cache/sass/4cb736fd6bac26f99664803c8f4f333a6e0de9cf/_logged_out.scssc +0 -0
  254. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_all.css.scssc +0 -0
  255. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_buttons.css.scssc +0 -0
  256. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_gradients.css.scssc +0 -0
  257. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_icons.css.scssc +0 -0
  258. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_reset.css.scssc +0 -0
  259. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_rounded.css.scssc +0 -0
  260. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_sections.css.scssc +0 -0
  261. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_shadows.css.scssc +0 -0
  262. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_typography.scssc +0 -0
  263. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_utilities.scssc +0 -0
  264. data/test/dummy/tmp/cache/sass/51bc76c03527c3455c1815476436728e492a5a2b/_variables.css.scssc +0 -0
  265. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_blank_slates.scssc +0 -0
  266. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_breadcrumbs.scssc +0 -0
  267. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_buttons.scssc +0 -0
  268. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_columns.scssc +0 -0
  269. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_comments.css.scssc +0 -0
  270. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_date_picker.css.scssc +0 -0
  271. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_flash_messages.css.scssc +0 -0
  272. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_grid.scssc +0 -0
  273. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_links.scssc +0 -0
  274. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_pagination.scssc +0 -0
  275. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_panels.scssc +0 -0
  276. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_scopes.scssc +0 -0
  277. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_status_tags.scssc +0 -0
  278. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_table_tools.css.scssc +0 -0
  279. data/test/dummy/tmp/cache/sass/5e81f95379950dbb011f401338a8ee3d990fc77f/_tables.css.scssc +0 -0
  280. data/test/dummy/tmp/cache/sass/5fd23df437e14f32fee2c52fb09015cdd110836c/_footer.scssc +0 -0
  281. data/test/dummy/tmp/cache/sass/5fd23df437e14f32fee2c52fb09015cdd110836c/_main_structure.scssc +0 -0
  282. data/test/dummy/tmp/cache/sass/5fd23df437e14f32fee2c52fb09015cdd110836c/_title_bar.scssc +0 -0
  283. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_deprecated-webkit-gradient.scssc +0 -0
  284. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_golden-ratio.scssc +0 -0
  285. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_grid-width.scssc +0 -0
  286. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_linear-gradient.scssc +0 -0
  287. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_radial-gradient.scssc +0 -0
  288. data/test/dummy/tmp/cache/sass/703f15c9c6546cca07f487d1186fb5d02de8b6c5/_tint-shade.scssc +0 -0
  289. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_blank_slates.scssc +0 -0
  290. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_breadcrumbs.scssc +0 -0
  291. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_buttons.scssc +0 -0
  292. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_comments.css.scssc +0 -0
  293. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_date_picker.css.scssc +0 -0
  294. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_flash_messages.css.scssc +0 -0
  295. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_grid.scssc +0 -0
  296. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_links.scssc +0 -0
  297. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_pagination.scssc +0 -0
  298. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_panels.scssc +0 -0
  299. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_scopes.scssc +0 -0
  300. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_status_tags.scssc +0 -0
  301. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_table_tools.css.scssc +0 -0
  302. data/test/dummy/tmp/cache/sass/78328cc8e9854f9821a766ecd76f095329f1749b/_tables.css.scssc +0 -0
  303. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_all.css.scssc +0 -0
  304. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_buttons.css.scssc +0 -0
  305. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_gradients.css.scssc +0 -0
  306. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_icons.css.scssc +0 -0
  307. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_reset.css.scssc +0 -0
  308. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_rounded.css.scssc +0 -0
  309. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_sections.css.scssc +0 -0
  310. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_shadows.css.scssc +0 -0
  311. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_typography.scssc +0 -0
  312. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_utilities.scssc +0 -0
  313. data/test/dummy/tmp/cache/sass/8f51fabb78df2b702c75ea6594ee1099c7dc8da0/_variables.css.scssc +0 -0
  314. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_all.css.scssc +0 -0
  315. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_buttons.css.scssc +0 -0
  316. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_gradients.css.scssc +0 -0
  317. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_icons.css.scssc +0 -0
  318. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_reset.css.scssc +0 -0
  319. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_rounded.css.scssc +0 -0
  320. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_sections.css.scssc +0 -0
  321. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_shadows.css.scssc +0 -0
  322. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_typography.scssc +0 -0
  323. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_utilities.scssc +0 -0
  324. data/test/dummy/tmp/cache/sass/900283fe42de098688469c0764ce87c913cf0386/_variables.css.scssc +0 -0
  325. data/test/dummy/tmp/cache/sass/9ca9a22eff91c4261249b7b40e957b81799629ba/application.css.scssc +0 -0
  326. data/test/dummy/tmp/cache/sass/9fa1a2d9195a64ca73dc2fbf42b5468fc9babf48/active_admin.css.scssc +0 -0
  327. data/test/dummy/tmp/cache/sass/af81c0a06ae64eac58d6fabd339317f7c443c9c4/_base.css.scssc +0 -0
  328. data/test/dummy/tmp/cache/sass/af81c0a06ae64eac58d6fabd339317f7c443c9c4/_forms.css.scssc +0 -0
  329. data/test/dummy/tmp/cache/sass/af81c0a06ae64eac58d6fabd339317f7c443c9c4/_header.css.scssc +0 -0
  330. data/test/dummy/tmp/cache/sass/af81c0a06ae64eac58d6fabd339317f7c443c9c4/_mixins.css.scssc +0 -0
  331. data/test/dummy/tmp/cache/sass/af81c0a06ae64eac58d6fabd339317f7c443c9c4/_typography.css.scssc +0 -0
  332. data/test/dummy/tmp/cache/sass/be977c0269905fe534e0bb091dc0901510980c8d/_footer.scssc +0 -0
  333. data/test/dummy/tmp/cache/sass/be977c0269905fe534e0bb091dc0901510980c8d/_main_structure.scssc +0 -0
  334. data/test/dummy/tmp/cache/sass/be977c0269905fe534e0bb091dc0901510980c8d/_title_bar.scssc +0 -0
  335. data/test/dummy/tmp/cache/sass/c467ab1ac00bb4b33ddebfbc4207f8cc0f9e61bc/reset.css.scssc +0 -0
  336. data/test/dummy/tmp/cache/sass/d0ba40e1941e7614af17ce773f6a0c6f4d48d4a4/_button.scssc +0 -0
  337. data/test/dummy/tmp/cache/sass/d0ba40e1941e7614af17ce773f6a0c6f4d48d4a4/_font-family.scssc +0 -0
  338. data/test/dummy/tmp/cache/sass/d0ba40e1941e7614af17ce773f6a0c6f4d48d4a4/_html5-input-types.scssc +0 -0
  339. data/test/dummy/tmp/cache/sass/d0ba40e1941e7614af17ce773f6a0c6f4d48d4a4/_position.scssc +0 -0
  340. data/test/dummy/tmp/cache/sass/d0ba40e1941e7614af17ce773f6a0c6f4d48d4a4/_timing-functions.scssc +0 -0
  341. data/test/dummy/tmp/cache/sass/d158931e7bf4cc8eaac25646a5f3a4e59f963996/_bourbon.scssc +0 -0
  342. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_blank_slates.scssc +0 -0
  343. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_breadcrumbs.scssc +0 -0
  344. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_buttons.scssc +0 -0
  345. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_comments.css.scssc +0 -0
  346. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_date_picker.css.scssc +0 -0
  347. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_flash_messages.css.scssc +0 -0
  348. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_grid.scssc +0 -0
  349. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_links.scssc +0 -0
  350. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_pagination.scssc +0 -0
  351. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_panels.scssc +0 -0
  352. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_scopes.scssc +0 -0
  353. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_status_tags.scssc +0 -0
  354. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_table_tools.css.scssc +0 -0
  355. data/test/dummy/tmp/cache/sass/e1b301b6cd0417fb99354322dcb906c476d8da91/_tables.css.scssc +0 -0
  356. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_animation.scssc +0 -0
  357. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_appearance.scssc +0 -0
  358. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_background-image.scssc +0 -0
  359. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_background-size.scssc +0 -0
  360. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_border-image.scssc +0 -0
  361. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_border-radius.scssc +0 -0
  362. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_box-shadow.scssc +0 -0
  363. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_box-sizing.scssc +0 -0
  364. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_columns.scssc +0 -0
  365. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_flex-box.scssc +0 -0
  366. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_inline-block.scssc +0 -0
  367. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_linear-gradient.scssc +0 -0
  368. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_radial-gradient.scssc +0 -0
  369. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_transform.scssc +0 -0
  370. data/test/dummy/tmp/cache/sass/eba3ca22a8b076d7d501c6d0d064b5f19be8656d/_transition.scssc +0 -0
  371. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/dialogs/mediaembed.html +14 -0
  372. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/images/icon.gif +0 -0
  373. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/MediaEmbed/plugin.js +61 -0
  374. data/vendor/assets/ckeditor/ckeditor-contrib/plugins/richfile/plugin.js +84 -0
  375. metadata +680 -28
  376. data/app/assets/javascripts/rich/editor/rich_editor.js +0 -52
  377. data/app/inputs/rich_asset_input.rb +0 -17
  378. data/app/models/rich/rich_image.rb +0 -68
  379. data/app/views/rich/files/_image.html.erb +0 -10
  380. data/lib/rich/integrations/rails_admin_editor.rb +0 -20
  381. data/test/dummy/db/development.sqlite3 +0 -0
  382. data/test/dummy/db/production.sqlite3 +0 -0
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = Rich
2
2
 
3
- Rich is an opinionated implementation of CKEditor for Rails 3.1. It includes a stripped down toolbar, simplified dialogs and a custom file manager.
3
+ {<img src="https://github.com/bastiaanterhorst/rich/raw/master/app/assets/images/rich/rich.png" />}[https://github.com/bastiaanterhorst/rich/] Rich is an opinionated implementation of CKEditor for Rails 3.1 and up. It includes a stripped down toolbar, simplified dialogs and a custom file manager. The file manager can also be used separate from CKEditor.
4
4
 
5
5
  Presently, Rich integrates with Active Admin, Rails Admin and vanilla Formtastic (versions 1 and 2).
6
6
 
@@ -10,10 +10,14 @@ Presently, Rich integrates with Active Admin, Rails Admin and vanilla Formtastic
10
10
  2. Sensible defaults. We don't want our users to insert tables, smilies or other frivolities that will do nothing but ruin a lovingly crafted design.
11
11
  3. Make it easy to customize these defaults.
12
12
  4. Implement a usable (and easily configurable) file manager that serves up images that fit your specific design.
13
- 5. A good upload experience, but no flash.
13
+ 5. A good upload experience (multiple uploads, progress bars, pure html/js).
14
14
 
15
15
  It should be noted that while a major point of this project was to remove many things from CKEditor, all that stuff is still in there and can be easily re-enabled.
16
16
 
17
+ == Dependency Status
18
+
19
+ {<img src="https://gemnasium.com/bastiaanterhorst/rich.png" />}[https://gemnasium.com/bastiaanterhorst/rich/]
20
+
17
21
  == Quick install
18
22
 
19
23
  Rich is available as a Ruby Gem, which makes installation very easy.
@@ -50,7 +54,8 @@ In your formtastic form, use <tt>:as => :rich</tt> to insert Rich. Like so:
50
54
  <%= f.inputs do %>
51
55
  <%= f.input :name %>
52
56
  <%= f.input :title %>
53
- <%= f.input :body, :as => :rich, :editor => { :defaultStyle => "myCrazyPaperclipStyle" } %>
57
+ <%= f.input :featured_image, :as => :rich_picker %>
58
+ <%= f.input :body, :as => :rich, :config => { :default_style => "myCrazyPaperclipStyle" } %>
54
59
  <% end %>
55
60
  <%= f.buttons do %>
56
61
  <%= f.commit_button %>
@@ -64,7 +69,8 @@ Since Active Admin actually uses Formtastic, you can use it with Rich out of the
64
69
  form do |f|
65
70
  f.inputs "Basic info" do
66
71
  f.input :title
67
- f.input :body, :as => :rich, :editor => { :width => '76%', :height => '400px' }
72
+ f.input :featured_image, :as => :rich_picker, :config => { :style => 'width: 400px !important;' }
73
+ f.input :body, :as => :rich, :config => { :width => '76%', :height => '400px' }
68
74
  end
69
75
  f.buttons
70
76
  end
@@ -77,12 +83,7 @@ If you're annoyed by the fact that the Rich editor overlaps the field label (I w
77
83
 
78
84
  === Rails Admin
79
85
 
80
- To use Rich in your RA forms, first add the following lines to your <tt>/config/initializers/rails_admin.rb</tt>.
81
-
82
- require 'rich/integrations/rails_admin_editor'
83
- RailsAdmin::Config::Fields::Types::register(Rich::Integrations::RailsAdmin::RichEditor)
84
-
85
- This will enable the <tt>rich_editor</tt> field type. You can use this field as follows:
86
+ To use Rich in your RA forms, use the following in your initializer:
86
87
 
87
88
  config.model Post do
88
89
  edit do
@@ -94,6 +95,16 @@ This will enable the <tt>rich_editor</tt> field type. You can use this field as
94
95
  end
95
96
  end
96
97
  end
98
+
99
+ To use the image picker on a string field, do this:
100
+
101
+ field :title, :rich_picker do
102
+ config({
103
+ :type => 'image',
104
+ :allowed_styles => [:original],
105
+ :view_mode => "list"
106
+ })
107
+ end
97
108
 
98
109
  == Screenshots
99
110
 
@@ -105,11 +116,11 @@ This is the file manager.
105
116
 
106
117
  == Rich in production mode
107
118
 
108
- Rich works fine in production mode, as long as you make sure to precompile your assets. Rich extends the <tt>assets:precompile</tt> task to make sure the full CKEditor source tree is copied to your assets folder. So make sure you precompile your assets before starting production mode (something you most likely are doing anyway).
119
+ Rich works just fine in production mode. To accomodate the structure of the CKEditor source, Rich extends the <tt>assets:precompile</tt> task to make sure the full CKEditor source tree is copied to your assets folder. So the following works as you would expect:
109
120
 
110
121
  rake assets:precompile
111
122
 
112
- Rich will also clean up these CKEditor files when you clean your assets. So the following works as expected.
123
+ Rich will also clean up these CKEditor files when you clean your assets. Like this:
113
124
 
114
125
  rake assets:clean
115
126
 
@@ -122,9 +133,15 @@ Although generally not necessary, the underlying Rich tasks can be invoked direc
122
133
 
123
134
  Take a look at the generated <tt>rich.rb</tt> initializer and – if you want to dig deeper – the Rich sourcecode. The initializer guides you through the most important settings and configuration options.
124
135
 
136
+ === Localization
137
+
138
+ Localization should be automatic. Rich uses the currently set locale (<tt>I18n.locale</tt>) for it's editor and file browser.
139
+
125
140
  === CKEditor configuration
126
141
 
127
- Rich attempts to provide you with a sensible set of buttons and capabilities. But of course, you might disagree. To that end, you can configure CKEditor through the <tt>editor</tt> directive, either globally through the initializer, or per editor instance as an option.
142
+ Rich attempts to provide you with a sensible set of buttons and capabilities. But of course, you might disagree. To that end, you can configure CKEditor through the <tt>config</tt> directive, either globally through the initializer, or per editor instance as an option.
143
+
144
+ Rich also includes a few settings that manipulate CKEditor settings, but are a bit easier to use. For example, you can set <tt>:allow_embeds</tt> to <tt>true</tt> to load a media embed plugin (think Youtube, Vimeo, etc.)
128
145
 
129
146
  === Editor styles
130
147
 
@@ -138,12 +155,56 @@ When you change styles after uploading files, you will need to re-process those
138
155
 
139
156
  rake rich:refresh_assets
140
157
 
158
+ === Using the file manager without CKEditor
159
+
160
+ Besides from within the editor, the file manager can also be used on it's own. See the <tt>rich_picker</tt> examples above. One important thing to note is that this requires a string field on the receiving object. A direct connection to the <tt>Rich::RichFile</tt> object is not supported at this time.
161
+
162
+ === Non-image uploads
163
+
164
+ To enable uploads of non-image files, set the following in your Rich initializer:
165
+
166
+ # enable document uploads. default is false.
167
+ config.allow_document_uploads = true
168
+ # restrict the type of files that can be uploaded. defaults to :all for no restrictions.
169
+ config.allowed_document_types = ['application/pdf']
170
+
171
+ This will enable a new button on your CKEditor toolbar where you can upload regular files. Keep in mind that even if an image is uploaded through this method, it will not go through any processing you might have set up for your images.
172
+
173
+ Non-image uploads also work from within the file picker. A Rails Admin example:
174
+
175
+ field :title, :rich_picker do
176
+ config({
177
+ :type => 'file',
178
+ :allowed_styles => [:original] #only original makes sense for non-images
179
+ })
180
+ end
181
+
182
+ === Media embedding (Youtube, Vimeo, etc.)
183
+
184
+ Set <tt>:allow_embeds</tt> to <tt>true</tt> to enable an extra button on the CKEditor toolbar that enables you to insert embed code. This works by virtue of the MediaEmbed plugin for CKEditor. It's not pretty, but it works.
185
+
186
+ === Scoping (filtering in the file manager)
187
+
188
+ It is possible to scope any files available in the file manager to the current object you are editing. This works by associating your objects type and its <tt>id</tt> with any uploaded files.
189
+
190
+ To enable scoping for a Rich editor or picker, simply pass in the <tt>:scoped</tt> option and set it to <tt>true</tt>. A Rails Admin example:
191
+
192
+ field :body, :rich_editor do
193
+ config({
194
+ :scoped => true
195
+ })
196
+ end
197
+
198
+ Note that it is up to you to determine if scoping is possible. For example, a new object has no id yet, so there is nothing to scope to (yet). You could hide Rich in that case, until the object has been saved. If you do enable Rich but there is no id to scope to, Rich will disable scoping until an id has been set. This will effectively hide any files previously uploaded (before the save), which is most likely not what you want. So think twice about using this option, and implement it correctly when you do.
199
+
200
+ Also note that this is not secure. At all. It is purely meant as a convenience to save you from wading through tons of irrelevant files. If need to hide files from prying eyes, you need something else.
201
+
141
202
  == Planned features
142
203
 
143
- * Scoping assets to other objects
144
- * Drag & drop uploading
145
- * separate form control to select/upload images without CKEditor
146
- * localization support
204
+ * drag & drop uploading
205
+ * finding/filtering assets
206
+ * live image cropping
207
+ * live image rotation
147
208
 
148
209
  == Inspiration
149
210
 
@@ -153,9 +214,16 @@ When you change styles after uploading files, you will need to re-process those
153
214
 
154
215
  == Tools used
155
216
 
217
+ * Ckeditor - http://ckeditor.com/
156
218
  * Valum's FileUploader - https://github.com/valums/file-uploader
157
219
  * Rack Raw Upload - https://github.com/newbamboo/rack-raw-upload
158
220
  * Paperclip - https://github.com/thoughtbot/paperclip
221
+ * Silk icons - http://www.famfamfam.com/lab/icons/silk/
222
+ * Iconic icons - http://somerandomdude.com/work/iconic/
223
+
224
+ == Contributing
225
+
226
+ Your contributions (small and large) are very welcome! Please fork the project, make your changes and send me a pull request. If you are considering adding new functionality, or if you found a bug, please open an issue on Github first.
159
227
 
160
228
  == Copyright
161
229
 
Binary file
Binary file
Binary file
@@ -3,4 +3,4 @@
3
3
  //= require ckeditor/ckeditor
4
4
  //= require ckeditor/adapters/jquery
5
5
  //= require rich/editor/rich_editor
6
- //= require rich/editor/rich_finder
6
+ //= require rich/editor/rich_picker
@@ -9,7 +9,8 @@ rich.Browser = function(){
9
9
  insertionModeMany: false,
10
10
  currentPage: 1,
11
11
  loading: false,
12
- reachedBottom: false
12
+ reachedBottom: false,
13
+ viewModeGrid: true
13
14
  };
14
15
 
15
16
  };
@@ -17,13 +18,13 @@ rich.Browser = function(){
17
18
  rich.Browser.prototype = {
18
19
 
19
20
  initialize: function() {
20
-
21
21
  // intialize styles
22
22
  this.initStyles($.QueryString["allowed_styles"], $.QueryString["default_style"]);
23
23
 
24
24
  // initialize image insertion mode
25
25
  this._options.insertionModeMany = ($.QueryString["insert_many"]=="true")?true:false;
26
26
  this.toggleInsertionMode(false);
27
+ this.toggleViewMode(false);
27
28
  },
28
29
 
29
30
  initStyles: function(opt, def) {
@@ -33,6 +34,11 @@ rich.Browser.prototype = {
33
34
  });
34
35
 
35
36
  browser.selectStyle(def);
37
+
38
+ if(opt.length < 2) {
39
+ $('#styles').hide();
40
+ browser.selectStyle(opt[0]);
41
+ }
36
42
  },
37
43
 
38
44
  setLoading: function(loading) {
@@ -50,7 +56,7 @@ rich.Browser.prototype = {
50
56
  this._options.currentStyle = name;
51
57
  $('#styles li').removeClass('selected');
52
58
  $('#style-'+name).addClass('selected');
53
- },
59
+ },
54
60
 
55
61
  toggleInsertionMode: function(switchMode) {
56
62
  if(switchMode==true) this._options.insertionModeMany = !this._options.insertionModeMany;
@@ -63,14 +69,37 @@ rich.Browser.prototype = {
63
69
  $('#insert-many').hide();
64
70
  }
65
71
  },
72
+
73
+ toggleViewMode: function(switchMode) {
74
+ if(switchMode==true) {
75
+ this._options.viewModeGrid = !this._options.viewModeGrid;
76
+ } else {
77
+ this._options.viewModeGrid = ($.QueryString["viewMode"]=="grid") ? false : true;
78
+ }
79
+
80
+ if(this._options.viewModeGrid == true) {
81
+ $('#view-grid').hide();
82
+ $('#view-list').show();
83
+ $('#items').addClass('list');
84
+ } else {
85
+ $('#view-grid').show();
86
+ $('#view-list').hide();
87
+ $('#items').removeClass('list');
88
+ }
89
+ },
66
90
 
67
91
  selectItem: function(item) {
68
92
  var url = $(item).data('uris')[this._options.currentStyle];
69
93
  var id = $(item).data('rich-asset-id');
70
94
  var type = $(item).data('rich-asset-type');
95
+ var name = $(item).data('rich-asset-name');
96
+
71
97
 
72
- // differentiate between CKEditor browsing and direct asset selection
73
- window.opener.CKEDITOR.tools.callFunction($.QueryString["CKEditorFuncNum"], url, id);
98
+ if($.QueryString["CKEditor"]=='picker') {
99
+ window.opener.assetPicker.setAsset($.QueryString["dom_id"], url)
100
+ } else {
101
+ window.opener.CKEDITOR.tools.callFunction($.QueryString["CKEditorFuncNum"], url, id, name);
102
+ }
74
103
 
75
104
  // wait a short while before closing the window or regaining focus
76
105
  var self = this;
@@ -118,10 +147,10 @@ var browser;
118
147
  $(function(){
119
148
 
120
149
  browser = new rich.Browser();
121
- new rich.Uploader();
122
-
123
150
  browser.initialize();
124
151
 
152
+ new rich.Uploader();
153
+
125
154
  // hook up insert mode switching
126
155
  $('#insert-one, #insert-many').click(function(e){
127
156
  browser.toggleInsertionMode(true);
@@ -129,6 +158,13 @@ $(function(){
129
158
  return false;
130
159
  });
131
160
 
161
+ // hook up insert view switching
162
+ $('#view-grid, #view-list').click(function(e){
163
+ browser.toggleViewMode(true);
164
+ e.preventDefault();
165
+ return false;
166
+ });
167
+
132
168
  // hook up style selection
133
169
  $('#styles li').click(function(e){
134
170
  browser.selectStyle($(this).data('rich-style'));
@@ -6,7 +6,11 @@ rich.Uploader = function(){
6
6
 
7
7
  this._options = {
8
8
  uploadButtonId: 'upload',
9
- insertionPoint: 'uploadBlock'
9
+ insertionPoint: 'uploadBlock',
10
+ uploadType: $.QueryString["type"],
11
+ scoped: $.QueryString["scoped"],
12
+ scope_type: $.QueryString["scope_type"],
13
+ scope_id: $.QueryString["scope_id"]
10
14
  };
11
15
 
12
16
  // create the qq uploader
@@ -15,8 +19,13 @@ rich.Uploader = function(){
15
19
  button: document.getElementById(self._options.uploadButtonId),
16
20
  multiple: true,
17
21
  maxConnections: 3,
18
- action: $("#new_rich_rich_image").attr("action"),
19
- params: { authenticity_token: $("input[name='authenticity_token']").attr("value") },
22
+ action: $("#new_rich_file").attr("action"),
23
+ params: { authenticity_token: $("input[name='authenticity_token']").attr("value"),
24
+ simplified_type: this._options.uploadType,
25
+ scoped: this._options.scoped,
26
+ scope_type: this._options.scope_type,
27
+ scope_id: this._options.scope_id
28
+ },
20
29
  debug: true,
21
30
  onComplete: function(id, fileName, responseJSON) { self.uploadComplete(id, fileName, responseJSON); },
22
31
  onSubmit: function(id, fileName) { self.uploadSubmit(id, fileName); },
@@ -37,7 +46,8 @@ rich.Uploader.prototype = {
37
46
  });
38
47
  } else {
39
48
  $('#up'+id+' .spinner').first().addClass("error");
40
- $('#up'+id+' .spinner').first().removeClass("spinning");
49
+ $('#up'+id+' .spinner').first().removeClass("spinning");
50
+ $('#up'+id+' .progress-bar').first().remove();
41
51
  }
42
52
  },
43
53
 
@@ -0,0 +1,14 @@
1
+ // CKEditor plugin configuration
2
+
3
+ function addQueryString( url, params ) {
4
+ var queryString = [];
5
+ if (!params) return url;
6
+ else {
7
+ for (var i in params) queryString.push(i + "=" + encodeURIComponent( params[i]));
8
+ }
9
+ return url + ( ( url.indexOf( "?" ) != -1 ) ? "&" : "?" ) + queryString.join( "&" );
10
+ }
11
+
12
+ // load external plugins
13
+ CKEDITOR.plugins.addExternal('MediaEmbed', '<%= asset_path('ckeditor-contrib/plugins/MediaEmbed/') %>');
14
+ CKEDITOR.plugins.addExternal('richfile', '<%= asset_path('ckeditor-contrib/plugins/richfile/') %>');
@@ -0,0 +1,37 @@
1
+ // Direct asset picker
2
+
3
+ var rich = rich || {};
4
+ rich.AssetPicker = function(){
5
+
6
+ };
7
+
8
+ rich.AssetPicker.prototype = {
9
+
10
+ showFinder: function(dom_id, options){
11
+ // open a popup
12
+ var params = {};
13
+ params.CKEditor = 'picker'; // this is not CKEditor
14
+ params.default_style = options.default_style;
15
+ params.allowed_styles = options.allowed_styles;
16
+ params.insert_many = options.insert_many;
17
+ params.type = options.type || "image";
18
+ params.viewMode = options.view_mode || "grid";
19
+ params.scoped = options.scoped || false;
20
+ if(params.scoped == true) {
21
+ params.scope_type = options.scope_type
22
+ params.scope_id = options.scope_id;
23
+ }
24
+ params.dom_id = dom_id;
25
+ var url = addQueryString(options.richBrowserUrl, params );
26
+ window.open(url, 'filebrowser', "width=860,height=500")
27
+ },
28
+
29
+ setAsset: function(dom_id, asset){
30
+ $(dom_id).val(asset);
31
+ $(dom_id).siblings('img.rich-image-preview').first().attr({src: asset});
32
+ }
33
+
34
+ };
35
+
36
+ // Rich Asset input
37
+ var assetPicker = new rich.AssetPicker();
@@ -87,16 +87,18 @@ header {
87
87
  margin-left: 20px;
88
88
  }
89
89
 
90
- #insert-toggle {
90
+ #insert-toggle, #view-toggle {
91
91
  float: right;
92
92
  height: $headerHeight;
93
93
  overflow: hidden;
94
- margin: 0 $margin 0 5px;
95
- padding-left: 25px;
96
- background: image-url('rich/menu-dash.png') no-repeat left center;
94
+ margin: 0 $margin/2 0 0;
97
95
  }
98
96
 
99
- #insert-many, #insert-one {
97
+ #view-toggle {
98
+ margin: 0 $margin 0 0;
99
+ }
100
+
101
+ #insert-many, #insert-one, #view-list, #view-grid {
100
102
  display: block;
101
103
  width: 16px;
102
104
  height: $headerHeight;
@@ -112,6 +114,15 @@ header {
112
114
  background-image: image-url('rich/insert-one.png');
113
115
  }
114
116
 
117
+ #view-grid {
118
+ background-image: image-url('rich/view-grid.png');
119
+ }
120
+
121
+ #view-list {
122
+ background-image: image-url('rich/view-list.png');
123
+ }
124
+
125
+ // Default thumbnail view
115
126
  #items {
116
127
  list-style: none;
117
128
  margin: 0 0 0 $margin;
@@ -233,7 +244,66 @@ header {
233
244
  background-position: 0 -32px;
234
245
  }
235
246
 
236
-
247
+ }
248
+
249
+ // Condensed list view
250
+ #items.list {
251
+
252
+ li {
253
+ width: auto;
254
+ height: 32px;
255
+ float: none;
256
+ margin-bottom: 16px;
257
+
258
+ img, .placeholder {
259
+ height: 32px;
260
+ width: 32px;
261
+ float: left;
262
+ margin-right: 16px;
263
+ line-height: 32px;
264
+ border: none;
265
+ }
266
+
267
+ .spinner {
268
+ margin: 0;
269
+ }
270
+
271
+ .progress .progress-bar {
272
+ background: $light;
273
+ height: 4px;
274
+ float: left;
275
+ @include rounded;
276
+ margin-top: 28px;
277
+ }
278
+
279
+
280
+ p {
281
+ color: $dark;
282
+ font-size: 14px;
283
+ width: auto;
284
+ height: 32px;
285
+ line-height: 32px;
286
+ float: left;
287
+ cursor: default;
288
+ }
289
+
290
+ .delete {
291
+ position: relative;
292
+ float: left;
293
+ text-indent: -9999px;
294
+ margin: 8px 0 0 0;
295
+ width:$margin;
296
+ height: $margin;
297
+ background: image-url('rich/x-red.png') no-repeat right ($margin / 2 - 5);
298
+ opacity: 0.1;
299
+ }
300
+
301
+ #uploadBlock:hover .placeholder .spinner {
302
+ background-position: 0 0px;
303
+ }
304
+
305
+ }
306
+
237
307
  }
238
308
 
239
309
  .clickable:hover {
@@ -244,8 +314,9 @@ header {
244
314
  ul.scopes {
245
315
 
246
316
  list-style: none;
247
- margin: 0 0 0 ($margin/4*3);
248
- padding: 0;
317
+ margin: 0 15px 0 ($margin/4*3);
318
+ padding: 0 10px 0 0;
319
+ background: image-url('rich/menu-dash.png') no-repeat right 23px;
249
320
  float: right;
250
321
 
251
322
  li {