imperavi-rails 0.0.3.beta → 0.0.4.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. data/README.md +33 -29
  2. data/app/assets/javascripts/imperavi-rails/imperavi/redactor.js +317 -405
  3. data/app/assets/stylesheets/imperavi-rails/imperavi/redactor.css.scss +1 -1
  4. data/app/views/imperavi_rails/imperavi/image_edit.html.erb +1 -1
  5. data/lib/imperavi-rails/controller_methods.rb +35 -0
  6. data/lib/imperavi-rails/version.rb +1 -1
  7. data/lib/imperavi-rails.rb +9 -3
  8. data/spec/dummy/db/development.sqlite3 +0 -0
  9. data/spec/dummy/log/development.log +12384 -0
  10. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_44_32_721_6.jpg +0 -0
  11. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_44_32_721_6.jpg.meta +4 -0
  12. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_45_23_25_5.jpg +0 -0
  13. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_45_23_25_5.jpg.meta +4 -0
  14. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_45_49_374_15744.jpg +0 -0
  15. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_45_49_374_15744.jpg.meta +3 -0
  16. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_50_20_902_4.jpg +0 -0
  17. data/spec/dummy/public/system/dragonfly/development/2012/02/03/14_50_20_902_4.jpg.meta +4 -0
  18. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_22_15_373_5.jpg +0 -0
  19. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_22_15_373_5.jpg.meta +4 -0
  20. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_22_40_820_5.jpg +0 -0
  21. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_22_40_820_5.jpg.meta +4 -0
  22. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_23_30_325_3.jpg +0 -0
  23. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_23_30_325_3.jpg.meta +4 -0
  24. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_23_57_376_4.jpg +0 -0
  25. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_23_57_376_4.jpg.meta +4 -0
  26. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_26_27_220_5.jpg +0 -0
  27. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_26_27_220_5.jpg.meta +4 -0
  28. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_26_57_55_6.jpg +0 -0
  29. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_26_57_55_6.jpg.meta +4 -0
  30. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_27_58_370_5.jpg +0 -0
  31. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_27_58_370_5.jpg.meta +4 -0
  32. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_07_700_5.jpg +0 -0
  33. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_07_700_5.jpg.meta +4 -0
  34. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_19_327_4.jpg +0 -0
  35. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_19_327_4.jpg.meta +4 -0
  36. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_53_813_4.jpg +0 -0
  37. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_29_53_813_4.jpg.meta +4 -0
  38. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_30_13_242_5.jpg +0 -0
  39. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_30_13_242_5.jpg.meta +4 -0
  40. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_30_19_927_6.jpg +0 -0
  41. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_30_19_927_6.jpg.meta +4 -0
  42. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_14_355_5.jpg +0 -0
  43. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_14_355_5.jpg.meta +4 -0
  44. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_19_371_1.jpg +0 -0
  45. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_19_371_1.jpg.meta +4 -0
  46. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_28_432_15750.jpg +0 -0
  47. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_28_432_15750.jpg.meta +3 -0
  48. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_39_821_15720.jpg +0 -0
  49. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_39_821_15720.jpg.meta +3 -0
  50. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_47_624_4.jpg +0 -0
  51. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_31_47_624_4.jpg.meta +4 -0
  52. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_33_26_155_5.jpg +0 -0
  53. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_33_26_155_5.jpg.meta +4 -0
  54. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_29_787_2_small.jpg +0 -0
  55. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_29_787_2_small.jpg.meta +3 -0
  56. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_35_450_6.jpg +0 -0
  57. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_35_450_6.jpg.meta +4 -0
  58. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_41_340_15744.jpg +0 -0
  59. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_34_41_340_15744.jpg.meta +3 -0
  60. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_38_14_325_5.jpg +0 -0
  61. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_38_14_325_5.jpg.meta +4 -0
  62. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_06_883_6.jpg +0 -0
  63. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_06_883_6.jpg.meta +4 -0
  64. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_18_915_6.jpg +0 -0
  65. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_18_915_6.jpg.meta +4 -0
  66. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_46_86_15744.jpg +0 -0
  67. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_45_46_86_15744.jpg.meta +3 -0
  68. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_47_24_195_3.jpg +0 -0
  69. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_47_24_195_3.jpg.meta +4 -0
  70. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_47_46_83_5.jpg +0 -0
  71. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_47_46_83_5.jpg.meta +4 -0
  72. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_51_18_603_15720.jpg +0 -0
  73. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_51_18_603_15720.jpg.meta +3 -0
  74. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_51_57_666_6.jpg +0 -0
  75. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_51_57_666_6.jpg.meta +4 -0
  76. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_53_25_938_6.jpg +0 -0
  77. data/spec/dummy/public/system/dragonfly/development/2012/02/17/19_53_25_938_6.jpg.meta +4 -0
  78. data/spec/dummy/tmp/cache/assets/CA9/BC0/sprockets%2F85d8b987b980454101a1236fdec2c220 +0 -0
  79. data/spec/dummy/tmp/cache/assets/CBE/FC0/sprockets%2Ff5431a64e341b062b7530132a5c1ea5a +2306 -1667
  80. data/spec/dummy/tmp/cache/assets/CC5/C10/sprockets%2F7c81f5c40dc9b87819488e127f487a04 +447 -369
  81. data/spec/dummy/tmp/cache/assets/CD5/530/sprockets%2F8d4c18bd4851f107c450a2c782301f8b +53 -0
  82. data/spec/dummy/tmp/cache/assets/CD7/EF0/sprockets%2Fc22597dc7c74137ba100f08542fec580 +76 -0
  83. data/spec/dummy/tmp/cache/assets/D09/DB0/sprockets%2F5ad1bbd0a458985447fac962fb121264 +188 -0
  84. data/spec/dummy/tmp/cache/assets/D1A/AB0/sprockets%2F05ea78f209b93ef03f29e933625b7fa5 +305 -1
  85. data/spec/dummy/tmp/cache/assets/D33/480/sprockets%2Fec072121b559132efe7d07cac0e991a5 +106 -0
  86. data/spec/dummy/tmp/cache/assets/D38/5D0/sprockets%2F7913f60d743aeb957af7a0ca5a20059d +0 -0
  87. data/spec/dummy/tmp/cache/assets/D43/830/sprockets%2Fe09848481135db1a4a5c783a7dc94fbd +50 -0
  88. data/spec/dummy/tmp/cache/assets/D59/260/sprockets%2Fd513a46ce8d83f003a733cb306dfe01a +317 -406
  89. data/spec/dummy/tmp/cache/assets/D64/190/sprockets%2Ffdfa1bbf71247a2b9ef0b97732603e02 +0 -0
  90. data/spec/dummy/tmp/cache/assets/D66/200/sprockets%2Fb343cda49d5d41a82c10a8f06d986bd2 +45 -0
  91. data/spec/dummy/tmp/cache/assets/D6B/980/sprockets%2F56c37f49f60073a401fcbd529dcaa74e +222 -0
  92. data/spec/dummy/tmp/cache/assets/D6D/AF0/sprockets%2F5a1aa4e3f7d7008e775019dfef3282cc +97 -0
  93. data/spec/dummy/tmp/cache/assets/D76/560/sprockets%2Fe0c5141697a090ffb74c9412e6dd7fef +50 -0
  94. data/spec/dummy/tmp/cache/assets/D95/E80/sprockets%2F844edf25b78967cbe9cf3e969c37c6c7 +0 -0
  95. data/spec/dummy/tmp/cache/assets/D96/230/sprockets%2F63e1b63e2b03d0bd6aaebd27c9973e91 +248 -1
  96. data/spec/dummy/tmp/cache/assets/D9B/E30/sprockets%2Fd87c8ca46743542cace533cfe91ae1d0 +437 -365
  97. data/spec/dummy/tmp/cache/assets/D9B/FF0/sprockets%2Fd8bbace39747d4af921e0534736baea3 +125 -0
  98. data/spec/dummy/tmp/cache/assets/DA2/970/sprockets%2F0d4ef1d42ee3e36fedcd979b3506525b +881 -1
  99. data/spec/dummy/tmp/cache/assets/DA8/F60/sprockets%2Fbb2cd57d63160c94d622ef9d91ccef68 +5 -5
  100. data/spec/dummy/tmp/cache/assets/DAC/140/sprockets%2F7a814a5598eaaaccf7ab7895f5663ad5 +89 -0
  101. data/spec/dummy/tmp/cache/assets/DB7/F90/sprockets%2Faf8cc6b28a790c7e3bd686e8ab9973c8 +0 -0
  102. data/spec/dummy/tmp/cache/assets/DBB/960/sprockets%2Fe20156d5decfaaea9d1e09f14a100f19 +16 -0
  103. data/spec/dummy/tmp/cache/sass/bc54e898614d486bf9338d646e8cd056915d4779/redactor.css.scssc +0 -0
  104. data/spec/dummy/tmp/dragonfly/cache/body/01/8b80e42551d33aed663f5757b3e4d3789383e6 +2359 -0
  105. data/spec/dummy/tmp/dragonfly/cache/body/02/3133eaaddaa68515039bc51e11b3bca2ad3f23 +986 -0
  106. data/spec/dummy/tmp/dragonfly/cache/body/03/13c061439229cdbd19215cbd1cf0e26441fac2 +713 -0
  107. data/spec/dummy/tmp/dragonfly/cache/body/05/024188cd40feb026eb8ccd15985d890ba9c84e +643 -0
  108. data/spec/dummy/tmp/dragonfly/cache/body/06/e22ab9a18784ce1f20e09401ee38b9672860d9 +697 -0
  109. data/spec/dummy/tmp/dragonfly/cache/body/07/f49938e6a88e40d2d6fd9fc613578396148e1d +1014 -0
  110. data/spec/dummy/tmp/dragonfly/cache/body/08/8e8a8fc07862b6f7f1bb3d065c44a796a1b959 +489 -0
  111. data/spec/dummy/tmp/dragonfly/cache/body/09/7fc6a9593ea7b3a9992dd166cdc87cf0e06afc +2341 -0
  112. data/spec/dummy/tmp/dragonfly/cache/body/09/c8b9529699d7f44fc6e314c992ea222ecf891a +926 -0
  113. data/spec/dummy/tmp/dragonfly/cache/body/0a/eae45805608cdebd81ace3ac272d43ef8c581a +517 -0
  114. data/spec/dummy/tmp/dragonfly/cache/body/0f/33cebc2562a1ba143494c74b572a7f569c398e +0 -0
  115. data/spec/dummy/tmp/dragonfly/cache/body/12/f3e9f5435e64b368b805b0f6e2e5b04763e0e9 +713 -0
  116. data/spec/dummy/tmp/dragonfly/cache/body/13/02bfc481015a6a0abeb3bd17a166b761ba8a47 +626 -0
  117. data/spec/dummy/tmp/dragonfly/cache/body/14/132bf3af2f923b66a62826ebe1dd001f0ba183 +0 -0
  118. data/spec/dummy/tmp/dragonfly/cache/body/16/3001f75355d109f24b59f690f7ba71c2616261 +2343 -0
  119. data/spec/dummy/tmp/dragonfly/cache/body/16/7a17ea4c64e37f9f0aa5e773501ee5131bb2af +552 -0
  120. data/spec/dummy/tmp/dragonfly/cache/body/18/1ddbad5715e03f6bcaeb409ca55a8f1f1c2b76 +1000 -0
  121. data/spec/dummy/tmp/dragonfly/cache/body/18/dc1d281e1b27f8e29a5d3ea3192ee5ab92c8fe +1721 -0
  122. data/spec/dummy/tmp/dragonfly/cache/body/19/244efbcbf0ed096cc80addb39d1139782691e4 +701 -0
  123. data/spec/dummy/tmp/dragonfly/cache/body/1b/09d865c098ccb9e1bb1783281f8f18ab22f49c +1016 -0
  124. data/spec/dummy/tmp/dragonfly/cache/body/1b/5baeb3d8b21ebdd6d60357437ea9b4ddefa49a +537 -0
  125. data/spec/dummy/tmp/dragonfly/cache/body/1b/f3995977d56cd70d334227ffae3858fdb3e1d4 +1011 -0
  126. data/spec/dummy/tmp/dragonfly/cache/body/1c/8c49d20e2ca7ccea3c7124923f2d6ff715400c +538 -0
  127. data/spec/dummy/tmp/dragonfly/cache/body/1e/3ce5b58c37f23053d85f581ff49d15ad1a498a +674 -0
  128. data/spec/dummy/tmp/dragonfly/cache/body/1f/de9c96ae1b545cb125a43f6c81fe6f15851ac7 +546 -0
  129. data/spec/dummy/tmp/dragonfly/cache/body/20/5d43e6adae0bf766e830109660e59dfd97a776 +646 -0
  130. data/spec/dummy/tmp/dragonfly/cache/body/20/9dd05484ee6eca030ee50cf71b912a67089c79 +2339 -0
  131. data/spec/dummy/tmp/dragonfly/cache/body/21/bdc0c588b6d2ddbbcc9b76fe749c38f0ef2f41 +872 -0
  132. data/spec/dummy/tmp/dragonfly/cache/body/22/f0e133e63c81c43643026aa5cbb3712bfa929e +708 -0
  133. data/spec/dummy/tmp/dragonfly/cache/body/24/f7da13054199d224537d7530367474f292c85a +2359 -0
  134. data/spec/dummy/tmp/dragonfly/cache/body/27/0ac007b4441579233e425f3e7a36887eb4298e +986 -0
  135. data/spec/dummy/tmp/dragonfly/cache/body/28/c775213c7f72c870045887887893831bbb9083 +1006 -0
  136. data/spec/dummy/tmp/dragonfly/cache/body/2a/602d5bf47ce3c3e1fbd540f3659acdf8488b84 +2341 -0
  137. data/spec/dummy/tmp/dragonfly/cache/body/2c/79dceb2787a90f7da9a43673db8d1f1922a379 +641 -0
  138. data/spec/dummy/tmp/dragonfly/cache/body/2d/016dc3e8be00f46455041e5187159762a1a72b +535 -0
  139. data/spec/dummy/tmp/dragonfly/cache/body/2d/40a96b71b5c4be6ea5de082c5c468b923df113 +626 -0
  140. data/spec/dummy/tmp/dragonfly/cache/body/2f/2077afd991927df732811e002d532f34a62c86 +0 -0
  141. data/spec/dummy/tmp/dragonfly/cache/body/30/7cdb90b26de71fedb1774d7b7fe630e77cf34f +1011 -0
  142. data/spec/dummy/tmp/dragonfly/cache/body/33/43ee3681542a52fec318884c34cdc6233aec90 +2359 -0
  143. data/spec/dummy/tmp/dragonfly/cache/body/34/d994dfa8a8a2cf1dddcfcb9d7d43839f798a66 +1007 -0
  144. data/spec/dummy/tmp/dragonfly/cache/body/36/1acb61b84bbb2e3b1fe7cb28e1ca0bb2ebc147 +1721 -0
  145. data/spec/dummy/tmp/dragonfly/cache/body/37/0de185ac6803197940a4aca2ee4cb6cd97aa25 +700 -0
  146. data/spec/dummy/tmp/dragonfly/cache/body/39/36d756ac37cbfd7995a8413c5b813623f8c1d6 +496 -0
  147. data/spec/dummy/tmp/dragonfly/cache/body/39/c79f94952d16de5de0ec59089d381ace6e386e +1029 -0
  148. data/spec/dummy/tmp/dragonfly/cache/body/3f/457b87cdc17162db48461cf72c87457ebe753b +1011 -0
  149. data/spec/dummy/tmp/dragonfly/cache/body/40/d745dd4044031ccd76b4f5a8ad46e3c16ea8c0 +915 -0
  150. data/spec/dummy/tmp/dragonfly/cache/body/43/1a5a2dc62c3b453378dad049c48fcf36928f53 +2342 -0
  151. data/spec/dummy/tmp/dragonfly/cache/body/43/abfe6e68d8603f92084533b5f94fb717bc2b02 +700 -0
  152. data/spec/dummy/tmp/dragonfly/cache/body/44/65e89dffc7531e6479a00711d7bf430c56754f +2359 -0
  153. data/spec/dummy/tmp/dragonfly/cache/body/47/1092abd16e44c60537ac674b871481ca6d108e +489 -0
  154. data/spec/dummy/tmp/dragonfly/cache/body/47/befec7e863f30488d1c9a72619411e3c311eea +552 -0
  155. data/spec/dummy/tmp/dragonfly/cache/body/48/4af0743c55ececa9e2b3477a666492914d5a25 +700 -0
  156. data/spec/dummy/tmp/dragonfly/cache/body/48/5935b1ceed38545d44989a5464049018f63ecd +926 -0
  157. data/spec/dummy/tmp/dragonfly/cache/body/4a/db06a6fda9b3fbe12beb6816390a4fd61e4491 +667 -0
  158. data/spec/dummy/tmp/dragonfly/cache/body/4b/088deec20739cb75b3d8e2ca591171b342026d +862 -0
  159. data/spec/dummy/tmp/dragonfly/cache/body/4b/ea67064045b150fdd661d9b25fe1c447df7570 +703 -0
  160. data/spec/dummy/tmp/dragonfly/cache/body/50/8888bca37caef9e8ecf9434f304d1ab2cc820a +538 -0
  161. data/spec/dummy/tmp/dragonfly/cache/body/54/862500a3c1ce6a605de340ded6051d9d6c96dc +880 -0
  162. data/spec/dummy/tmp/dragonfly/cache/body/55/a3a5731c805bf0c5deda35500598030e91caf7 +2358 -0
  163. data/spec/dummy/tmp/dragonfly/cache/body/56/50f6edaa5e2fe07797333404d13fe63360f72c +0 -0
  164. data/spec/dummy/tmp/dragonfly/cache/body/56/dfa139236a6fcecf0fdd13308a17d03666d223 +2361 -0
  165. data/spec/dummy/tmp/dragonfly/cache/body/58/d135dda5118408bf76a2b381ac0d482276ee97 +546 -0
  166. data/spec/dummy/tmp/dragonfly/cache/body/59/0b00b9579bdc8d199e42d68cc83ee72ba6036a +712 -0
  167. data/spec/dummy/tmp/dragonfly/cache/body/59/c6cdda1534cfeb69aed8a295fa36aa0b34d9ac +882 -0
  168. data/spec/dummy/tmp/dragonfly/cache/body/5c/c982746925609ae2ddd24d20e9f96247006dc3 +883 -0
  169. data/spec/dummy/tmp/dragonfly/cache/body/5f/033e3fda7f0149729cdeba2807ccad0ce6ea32 +1016 -0
  170. data/spec/dummy/tmp/dragonfly/cache/body/5f/95bdb3eb07339f50a73c3e2c38d619b2321902 +2361 -0
  171. data/spec/dummy/tmp/dragonfly/cache/body/60/92cdccc969bab02d35b702148409d59276ec8e +703 -0
  172. data/spec/dummy/tmp/dragonfly/cache/body/62/d3974c45b38586ded0f6adefcefeb4e25aea08 +2357 -0
  173. data/spec/dummy/tmp/dragonfly/cache/body/63/9cff6d42d49aaded2e3201d0b311fb0c4d5af5 +872 -0
  174. data/spec/dummy/tmp/dragonfly/cache/body/65/b3251b1348841946320cd8ac140a7a10a07de5 +894 -0
  175. data/spec/dummy/tmp/dragonfly/cache/body/66/59b5c1535bed3649f05f378f9a935a9369a14f +2341 -0
  176. data/spec/dummy/tmp/dragonfly/cache/body/67/8611d272ec29fc5cb7a63a709a12f47da63fbd +538 -0
  177. data/spec/dummy/tmp/dragonfly/cache/body/68/9bc64959e48ba446c2a48a48952d4e6e422bee +2334 -0
  178. data/spec/dummy/tmp/dragonfly/cache/body/6a/0be367e94b672cef188ef8c3261ed63fa59e6d +701 -0
  179. data/spec/dummy/tmp/dragonfly/cache/body/6a/1642bac93ee93e5ca10af933c39f6db9e15508 +0 -0
  180. data/spec/dummy/tmp/dragonfly/cache/body/6a/4558d01c325e63bfe9abe3df6b1255e51a20e6 +703 -0
  181. data/spec/dummy/tmp/dragonfly/cache/body/6b/8df0f17fd3ce7a7e551e91f30909a847a2abee +734 -0
  182. data/spec/dummy/tmp/dragonfly/cache/body/6b/90cf2c21e1934876d420d2524fe5216c5e7bf1 +551 -0
  183. data/spec/dummy/tmp/dragonfly/cache/body/6d/d8a547a0125a1da2df83e6b2f4c36631a1bd2f +538 -0
  184. data/spec/dummy/tmp/dragonfly/cache/body/6e/a8d288ea6931b9277121b209ac32959b717029 +882 -0
  185. data/spec/dummy/tmp/dragonfly/cache/body/6f/b27a907116ff2fa7a668b30d49b65885a09022 +1016 -0
  186. data/spec/dummy/tmp/dragonfly/cache/body/71/01bff740c639a7b8383a5e247ece9552656acb +708 -0
  187. data/spec/dummy/tmp/dragonfly/cache/body/73/7752ee519e2ee8c13b4c9165fb98c19a874843 +882 -0
  188. data/spec/dummy/tmp/dragonfly/cache/body/74/c9b1fca6f96048f555aed33ddb5c5240839f62 +793 -0
  189. data/spec/dummy/tmp/dragonfly/cache/body/75/01f0f946848c6b910634bed2a58e748dd0a4d2 +986 -0
  190. data/spec/dummy/tmp/dragonfly/cache/body/75/15881fe428cd4b04438de4e03ba3acc7cd789e +642 -0
  191. data/spec/dummy/tmp/dragonfly/cache/body/77/02b8ae247e83a86e819b150375bd2971911635 +882 -0
  192. data/spec/dummy/tmp/dragonfly/cache/body/79/0ba4208b6b095e78b15c6f2c4ef04b9e568fdf +976 -0
  193. data/spec/dummy/tmp/dragonfly/cache/body/7a/40b3b7e48d2fb4f8dc6b9ce3b2c6414cd3db4b +638 -0
  194. data/spec/dummy/tmp/dragonfly/cache/body/7a/44fbc7caa954feca99ae14cdd31700f3bc01ca +0 -0
  195. data/spec/dummy/tmp/dragonfly/cache/body/81/1412d99f15c17d9a52618013667ddc6acbb5e7 +560 -0
  196. data/spec/dummy/tmp/dragonfly/cache/body/82/bb0ce1f6b156348edb5d054b09681adbb1541c +638 -0
  197. data/spec/dummy/tmp/dragonfly/cache/body/82/f4aef50c7d0580ce3de59af781988f8c027e31 +0 -0
  198. data/spec/dummy/tmp/dragonfly/cache/body/84/3bafbd4a01aaae5795b68c2a21561fd78e8bfb +0 -0
  199. data/spec/dummy/tmp/dragonfly/cache/body/84/61cb5340e22fb0e266e5276613f5b218b793c0 +774 -0
  200. data/spec/dummy/tmp/dragonfly/cache/body/87/452e47dc8c565d70543b6a8b3aeeeafef5ede6 +1008 -0
  201. data/spec/dummy/tmp/dragonfly/cache/body/8e/6921af9cd9a9aa0cb4a521be98d497ff7fdeaf +700 -0
  202. data/spec/dummy/tmp/dragonfly/cache/body/8e/d1fec3f23b9477057019f581847f7f8b2051c3 +0 -0
  203. data/spec/dummy/tmp/dragonfly/cache/body/8f/e7d4976bf7e183cf4f6ab9409f8503351dad3c +709 -0
  204. data/spec/dummy/tmp/dragonfly/cache/body/90/1abfe79ed8fa57b0f367b8d6cc284742d74bd9 +703 -0
  205. data/spec/dummy/tmp/dragonfly/cache/body/93/fe1fa30d5fe0cb493dd11ea6eaee9201b50cd8 +712 -0
  206. data/spec/dummy/tmp/dragonfly/cache/body/94/7a175f9de08b84499763ba6cc25f6911ef315e +913 -0
  207. data/spec/dummy/tmp/dragonfly/cache/body/98/2828d5b0867095317a017415955ef31a50dbc5 +1014 -0
  208. data/spec/dummy/tmp/dragonfly/cache/body/98/f06faf5cfff9a92b4d99d400523e1f1551742e +1007 -0
  209. data/spec/dummy/tmp/dragonfly/cache/body/99/2dab09135d5fcbaa2c2b833a8284cb56be5c26 +1014 -0
  210. data/spec/dummy/tmp/dragonfly/cache/body/99/b545fe8ab3b930d8997fd75bb08feea0c9754d +915 -0
  211. data/spec/dummy/tmp/dragonfly/cache/body/9a/ff030c94bb0fbe5d9fbb8cf6865236cb7d74b2 +217 -0
  212. data/spec/dummy/tmp/dragonfly/cache/body/9f/8083640216ee29b9e8b4f10990f33d94aa352c +2360 -0
  213. data/spec/dummy/tmp/dragonfly/cache/body/9f/f4d177f296f259ff4ef3ddb38583daaf7c4dad +1011 -0
  214. data/spec/dummy/tmp/dragonfly/cache/body/a0/13144afc0d13219dad65508b046b9e0693a22b +926 -0
  215. data/spec/dummy/tmp/dragonfly/cache/body/a1/44a32dab1df021f54bf212d2a401b7fc69a2d8 +882 -0
  216. data/spec/dummy/tmp/dragonfly/cache/body/a2/7996e882d74e2e2c590fbfee8a8842b43f5c5e +1014 -0
  217. data/spec/dummy/tmp/dragonfly/cache/body/a2/e9ac7eba6c9ac611ec0cb7f26cbe0711b4b59c +694 -0
  218. data/spec/dummy/tmp/dragonfly/cache/body/a3/cd2fc5aabd1c551bba7f290844b8d89c94ab1e +523 -0
  219. data/spec/dummy/tmp/dragonfly/cache/body/a4/1a483a32348565e7afc810f49f55c1a9cbcd5d +707 -0
  220. data/spec/dummy/tmp/dragonfly/cache/body/a5/ddf1a8e968d20390ab06c94b19eb69a1e81ad7 +908 -0
  221. data/spec/dummy/tmp/dragonfly/cache/body/a6/f516919f720c81c119adadf1693ea44e5b90fe +490 -0
  222. data/spec/dummy/tmp/dragonfly/cache/body/a8/5137398b4d62aacbb0921f50eb9f62e7ec8de4 +0 -0
  223. data/spec/dummy/tmp/dragonfly/cache/body/a8/fb555a7e2420a17ce30758861ac3de784677eb +1011 -0
  224. data/spec/dummy/tmp/dragonfly/cache/body/b0/9703b98c965449cfbff801b8482e5c2c9b1b50 +954 -0
  225. data/spec/dummy/tmp/dragonfly/cache/body/b1/4c0f9e41101026eff8ebdc3fc9eae61c25372b +700 -0
  226. data/spec/dummy/tmp/dragonfly/cache/body/b3/d870794114f8ce678eeeddb0616abbea93ec7b +562 -0
  227. data/spec/dummy/tmp/dragonfly/cache/body/b4/1d331b6f64144bdee2ab598fd7f5ed2bcb6c3c +0 -0
  228. data/spec/dummy/tmp/dragonfly/cache/body/b4/84edbbb2dae5a5fc1cbfc8c8d3517bd1466a1b +2359 -0
  229. data/spec/dummy/tmp/dragonfly/cache/body/b5/52eaf4b5bac5fcf8667e5fb74f4b1c61984b0e +537 -0
  230. data/spec/dummy/tmp/dragonfly/cache/body/b6/9ec86cf5018fe63297e409da6638450c5041d2 +0 -0
  231. data/spec/dummy/tmp/dragonfly/cache/body/b7/31c759f6bf5b6adc13874d8ccf325a1715bf33 +882 -0
  232. data/spec/dummy/tmp/dragonfly/cache/body/b8/84c73fced17e1cb4f2efc18ed4f81789e5a622 +0 -0
  233. data/spec/dummy/tmp/dragonfly/cache/body/b9/43df43ad225c99d420cdb7e5d7714c2876273f +1007 -0
  234. data/spec/dummy/tmp/dragonfly/cache/body/b9/b4cb4d1647df4ec458ef3cc18782261a46bef2 +641 -0
  235. data/spec/dummy/tmp/dragonfly/cache/body/ba/1c57461ee48afadc870fca415b0e2aeaec3f4a +882 -0
  236. data/spec/dummy/tmp/dragonfly/cache/body/be/d14e3b72d93bfc0cace752edf21f5cc2af8949 +2358 -0
  237. data/spec/dummy/tmp/dragonfly/cache/body/c1/0767685a05c93f5e79a81ec5016820d7068afd +281 -0
  238. data/spec/dummy/tmp/dragonfly/cache/body/c3/5f95670b5171f06b0c450331c20ce59d44d5bd +537 -0
  239. data/spec/dummy/tmp/dragonfly/cache/body/c3/c76755904506b55cc288baed5e8f3ae767e1f9 +908 -0
  240. data/spec/dummy/tmp/dragonfly/cache/body/c7/48859071d0c1e701557a2b59181ae9d40b4c1c +1029 -0
  241. data/spec/dummy/tmp/dragonfly/cache/body/cc/e21614b70000b7a45bf382a696dfdf2e78811f +1029 -0
  242. data/spec/dummy/tmp/dragonfly/cache/body/cd/daa343d969732d44b9018e9e8403d758c1075b +2334 -0
  243. data/spec/dummy/tmp/dragonfly/cache/body/cd/dbba7b01cfb5eabf3c3b557d3cc1c7eeac9157 +523 -0
  244. data/spec/dummy/tmp/dragonfly/cache/body/d0/654133544a02cf512cdbe78256f913d684ee32 +894 -0
  245. data/spec/dummy/tmp/dragonfly/cache/body/d4/42ed09f48e3e24cd3cd958c9e0865df054419b +1029 -0
  246. data/spec/dummy/tmp/dragonfly/cache/body/d6/1eefad56108f5a8e1fa7aa72ff9b9f9cd633fc +538 -0
  247. data/spec/dummy/tmp/dragonfly/cache/body/d6/d1ac8848c469cd9094fa75b7528e0f5b6b632e +496 -0
  248. data/spec/dummy/tmp/dragonfly/cache/body/d7/899077450ebef4fdc0e9bb929825299f54457f +697 -0
  249. data/spec/dummy/tmp/dragonfly/cache/body/d9/f0d58e806b8697218740130d2ca12b3b86d6ef +1007 -0
  250. data/spec/dummy/tmp/dragonfly/cache/body/da/378953b0532aa6da1fa92abeeae89199ef8227 +1006 -0
  251. data/spec/dummy/tmp/dragonfly/cache/body/da/7c689c2f3a69f6770b63b71a8e71b6a1a28b37 +967 -0
  252. data/spec/dummy/tmp/dragonfly/cache/body/da/e26a3a67f1a9ea2332232ea28c90082c0e3bad +963 -0
  253. data/spec/dummy/tmp/dragonfly/cache/body/dc/abdd743fd3e9d7bd5647abeb86e66a3e6f9597 +0 -0
  254. data/spec/dummy/tmp/dragonfly/cache/body/e0/85f72a9f92bfadac77ceb40b9dcce7f1d0c0b4 +712 -0
  255. data/spec/dummy/tmp/dragonfly/cache/body/e1/f71dadeca1e7e8044d7ffe33168a41cf4b915e +712 -0
  256. data/spec/dummy/tmp/dragonfly/cache/body/e3/5e3eeacd0fa04028277861a7e20aca055126bf +705 -0
  257. data/spec/dummy/tmp/dragonfly/cache/body/e7/71af29ca1fb912746c2a8c252ce2dbda293797 +0 -0
  258. data/spec/dummy/tmp/dragonfly/cache/body/eb/d3df10f28dd5eb3361f2dea07bce8f31883cb4 +562 -0
  259. data/spec/dummy/tmp/dragonfly/cache/body/f2/0000c07c049d6b02b83c134a47f79d25c8f884 +1006 -0
  260. data/spec/dummy/tmp/dragonfly/cache/body/f3/81eaa388ae0115314da5ef3dff86dde481f6ea +1011 -0
  261. data/spec/dummy/tmp/dragonfly/cache/body/f4/f597679294dfce3758a1e23f8739ddadb7a07a +905 -0
  262. data/spec/dummy/tmp/dragonfly/cache/body/f6/5638ff81bbc2e264c25be9224311d5b88e199e +696 -0
  263. data/spec/dummy/tmp/dragonfly/cache/body/f8/4c49b7e7f1df8b9bf194c8e4f238965275a470 +638 -0
  264. data/spec/dummy/tmp/dragonfly/cache/body/f8/bce7bef222715dce37713e4b658bb432746046 +642 -0
  265. data/spec/dummy/tmp/dragonfly/cache/body/fb/4bbd9bd1b55ea5c5f029a98429cbe84fecbd56 +1029 -0
  266. data/spec/dummy/tmp/dragonfly/cache/body/fe/83a325403c35319d9539703bf8b707c48cbb81 +700 -0
  267. data/spec/dummy/tmp/dragonfly/cache/meta/0b/a9c9bfcc4c3c931157c0740283f9879ffbc80e +0 -0
  268. data/spec/dummy/tmp/dragonfly/cache/meta/16/82dfe14b1caadf556cccc78e6742ecba3c8f50 +0 -0
  269. data/spec/dummy/tmp/dragonfly/cache/meta/18/2807a34d96c2dc102f1c7f2c2fe2a3dea0152a +0 -0
  270. data/spec/dummy/tmp/dragonfly/cache/meta/1b/df42876b5661f82d4041d818e787e2f58949e7 +0 -0
  271. data/spec/dummy/tmp/dragonfly/cache/meta/1d/f723c27427056dd58a506f1e4f15020442098e +0 -0
  272. data/spec/dummy/tmp/dragonfly/cache/meta/22/66939b783406813e2f0a76f3a2f29473675994 +0 -0
  273. data/spec/dummy/tmp/dragonfly/cache/meta/23/4f7740cb6118c7c530ce379339a99828a75ef3 +0 -0
  274. data/spec/dummy/tmp/dragonfly/cache/meta/26/25fc31c2b02071c5c60621d36793dc55fdb33c +0 -0
  275. data/spec/dummy/tmp/dragonfly/cache/meta/29/717968cc2fa016a4911e7161b6423235f36c87 +0 -0
  276. data/spec/dummy/tmp/dragonfly/cache/meta/2d/83e1c5e84c02b8fee05b62d483999bfaba7be0 +0 -0
  277. data/spec/dummy/tmp/dragonfly/cache/meta/2d/b7fe2b8774fa388daa3c8370f34052119b4222 +0 -0
  278. data/spec/dummy/tmp/dragonfly/cache/meta/2d/fe381b58b48b16278672bd61db736e4e920955 +0 -0
  279. data/spec/dummy/tmp/dragonfly/cache/meta/32/e0d3566d2be50daabce5a94c515f772050829b +0 -0
  280. data/spec/dummy/tmp/dragonfly/cache/meta/38/5bb4a3ceace256ca114fc14a3c5ae12ec83fb0 +0 -0
  281. data/spec/dummy/tmp/dragonfly/cache/meta/39/b52b68255f54efe8cb853fd153088f94a7661a +0 -0
  282. data/spec/dummy/tmp/dragonfly/cache/meta/3e/0173e72157b702c4926d190389540028b0ae1d +0 -0
  283. data/spec/dummy/tmp/dragonfly/cache/meta/52/a111bad2ef8c87af7f55baf0ffc5cdefc446e4 +0 -0
  284. data/spec/dummy/tmp/dragonfly/cache/meta/55/32c60f25996b8e8a9fdf7125956c5204fa8792 +0 -0
  285. data/spec/dummy/tmp/dragonfly/cache/meta/64/61f1782e6f9ec4e6416c0aec429529ea70a1a1 +0 -0
  286. data/spec/dummy/tmp/dragonfly/cache/meta/66/b6e26427e56a9f9ade00d4cf5d615679f0f7a7 +0 -0
  287. data/spec/dummy/tmp/dragonfly/cache/meta/66/f44aba1428593600ff0e47ea6aa54362e39a59 +0 -0
  288. data/spec/dummy/tmp/dragonfly/cache/meta/6d/f4ba8735866613f9b640f6a0cc8e4583eba1f9 +0 -0
  289. data/spec/dummy/tmp/dragonfly/cache/meta/78/d74c0cd05a77c0c06acb622761d30c9ea00bb3 +0 -0
  290. data/spec/dummy/tmp/dragonfly/cache/meta/7a/6033b3a3f17fbddc765d138d39de24f94f0965 +0 -0
  291. data/spec/dummy/tmp/dragonfly/cache/meta/7a/d6666861b23fcf6c7ea45d61810fdb1c14d9d0 +0 -0
  292. data/spec/dummy/tmp/dragonfly/cache/meta/80/5841ac20acdd8dd41460c8346294abc5c4dd8f +0 -0
  293. data/spec/dummy/tmp/dragonfly/cache/meta/83/5df7873207b08f78fd9d690e5a0b759242b937 +0 -0
  294. data/spec/dummy/tmp/dragonfly/cache/meta/83/696c30e03b7215b60e076bc528c8829ddcc516 +0 -0
  295. data/spec/dummy/tmp/dragonfly/cache/meta/83/b01df8c183f9586aff3f30bd22f4c24793c52b +0 -0
  296. data/spec/dummy/tmp/dragonfly/cache/meta/85/289eb541e97e28d96dacfd07c314be3beb566a +0 -0
  297. data/spec/dummy/tmp/dragonfly/cache/meta/8c/1a23bf2dd650d0327255a5fe948c325d350107 +0 -0
  298. data/spec/dummy/tmp/dragonfly/cache/meta/8f/5281faf3f227ef4bbbd3b644cc9eafc86ff9b1 +0 -0
  299. data/spec/dummy/tmp/dragonfly/cache/meta/91/0922a2bd8308a75961dac5733d4907df678f65 +0 -0
  300. data/spec/dummy/tmp/dragonfly/cache/meta/92/8e4f3f982b856114506c590c291dea7f0c29d7 +0 -0
  301. data/spec/dummy/tmp/dragonfly/cache/meta/92/99ecbc80a7e8abcc02a36d9c3365b23b1a5b1a +0 -0
  302. data/spec/dummy/tmp/dragonfly/cache/meta/98/00e4dc8c2a89849e9d3cb8dd37f8c45d744dd3 +0 -0
  303. data/spec/dummy/tmp/dragonfly/cache/meta/9d/4531b3a9ffdee2c2b2b485675e8b055a2de25f +0 -0
  304. data/spec/dummy/tmp/dragonfly/cache/meta/a2/5920380e48276ad6f8bc26fb9a4a527db839c8 +0 -0
  305. data/spec/dummy/tmp/dragonfly/cache/meta/b7/407b5584752ca5298158a78be896bf810dd4e0 +0 -0
  306. data/spec/dummy/tmp/dragonfly/cache/meta/b7/ae83f0c4d7b4849a78af8830c31ffe4b166b52 +0 -0
  307. data/spec/dummy/tmp/dragonfly/cache/meta/d2/458b4acc8a67ee57346f1f4ebfa0f0e4bb4ea3 +0 -0
  308. data/spec/dummy/tmp/dragonfly/cache/meta/d5/341018026448c1d4f56801bd7ddb8380e1a73c +0 -0
  309. data/spec/dummy/tmp/dragonfly/cache/meta/e7/6d1dc2d45d19440e781f6c5d00f39d8aeb4da1 +0 -0
  310. data/spec/dummy/tmp/dragonfly/cache/meta/ee/fe74949a8c2a0bbc077385a12944d9f98a12e0 +0 -0
  311. data/spec/dummy/tmp/dragonfly/cache/meta/ef/d71b44567b90c7f85e9bd0576e4b7e55bd3565 +0 -0
  312. data/spec/dummy/tmp/dragonfly/cache/meta/f9/67ac04386c59253bd80f4034d18af166cc5691 +0 -0
  313. data/spec/dummy/tmp/sass-cache/6e61637ec8d1d247724328e8c4a6704fe36b468e/_hacks.scssc +0 -0
  314. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_border-radius.scssc +0 -0
  315. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_box-shadow.scssc +0 -0
  316. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_gradient.scssc +0 -0
  317. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_images.scssc +0 -0
  318. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_inline-block.scssc +0 -0
  319. data/spec/dummy/tmp/sass-cache/77824dc1336af71703311a2e58b21a32c1511e63/_shared.scssc +0 -0
  320. data/spec/dummy/tmp/sass-cache/bc54e898614d486bf9338d646e8cd056915d4779/buttons.css.scssc +0 -0
  321. data/spec/dummy/tmp/sass-cache/bc54e898614d486bf9338d646e8cd056915d4779/redactor.css.scssc +0 -0
  322. data/spec/dummy/tmp/sass-cache/d1a1c9c63df53223abb80676ef7dcc16c1375c54/_support.scssc +0 -0
  323. metadata +605 -20
  324. data/spec/dummy/tmp/pids/server.pid +0 -1
@@ -0,0 +1,880 @@
1
+ $.fn.ImperaviLanguages = {
2
+ ru : {
3
+ html : 'Код',
4
+
5
+ // Styles dropdown menu
6
+ styles : {
7
+ name : 'Стили',
8
+ paragraph : 'Параграф',
9
+ quote : 'Цитата',
10
+ code : 'Код',
11
+ h2 : 'Заголовок 2',
12
+ h3 : 'Заголовок 3',
13
+ h4 : 'Заголовок 4',
14
+ h5 : 'Заголовок 5',
15
+ h6 : 'Заголовок 6',
16
+ },
17
+
18
+ // Formatting dropdown menu
19
+ format : {
20
+ name : 'Формат',
21
+ bold : 'Полужирный',
22
+ italic : 'Наклонный',
23
+ sup : 'Надстрочный',
24
+ sub : 'Надстрочный',
25
+ strike : 'Зачеркнутый',
26
+ remove : 'Очистить форматирование'
27
+ },
28
+
29
+ // Lists dropdown menu
30
+ lists : {
31
+ name : 'Списки',
32
+ unordered : 'Обычный список',
33
+ ordered : 'Нумерованный список',
34
+ outdent : 'Уменьшить отступ',
35
+ indent : 'Увеличить отступ'
36
+ },
37
+
38
+ // Working with images
39
+ image : {
40
+ name : 'Изображение',
41
+ download : 'Скачать изображение',
42
+ text : 'Текст',
43
+ mailto : 'Эл. почта',
44
+ web : 'URL',
45
+ title : 'Подсказка',
46
+ buttons : {
47
+ save : 'Сохранить',
48
+ cancel : 'Отменить',
49
+ insert : 'Вставить',
50
+ remove : 'Удалить'
51
+ },
52
+ align : {
53
+ name : 'Обтекание текстом',
54
+ none : 'нет',
55
+ left : 'слева',
56
+ right : 'справа'
57
+ }
58
+ },
59
+
60
+ // Insert and format tables
61
+ table : {
62
+ name : 'Таблица',
63
+ insert : 'Вставить таблицу',
64
+ remove : 'Удалить таблицу',
65
+ row: {
66
+ name : 'Строки',
67
+ above : 'Добавить строку сверху',
68
+ below : 'Добавить строку снизу',
69
+ remove : 'Удалить строку'
70
+ },
71
+ column : {
72
+ name : 'Столбцы',
73
+ left : 'Добавить столбец слева',
74
+ right : 'Добавить столбец справа',
75
+ remove : 'Удалить столбец',
76
+ },
77
+ header : {
78
+ add : 'Добавить заголовок',
79
+ remove : 'Удалить заголовок'
80
+ }
81
+ },
82
+
83
+ // Insert video from youtube etc
84
+ video : {
85
+ name : 'Видео',
86
+ code : 'Код видео ролика'
87
+ },
88
+
89
+ // Insert or remove hyperlink to a file
90
+ file : {
91
+ name : 'Файл',
92
+ upload : 'Загрузить',
93
+ download : 'Скачать',
94
+ choose : 'Выбрать',
95
+ or_choose : 'Или выберите',
96
+ drop : 'Перетащите файл сюда'
97
+ },
98
+
99
+ // Insert or remove hyperlink
100
+ hyperlink : 'Ссылка'
101
+ }
102
+ }
103
+ ;
104
+ $.fn.ImperaviToolbarDefault = {
105
+ html : true,
106
+
107
+ // Styles dropdown menu
108
+ // TODO: User styles here. Move all to format section from here
109
+ styles : {
110
+ paragraph : true,
111
+ quote : true,
112
+ code : true,
113
+ h2 : true,
114
+ h3 : true,
115
+ h4 : true,
116
+ h5 : true,
117
+ h6 : true
118
+ },
119
+
120
+ // Formatting dropdown menu
121
+ format : {
122
+ bold : true,
123
+ italic : true,
124
+ sup : true,
125
+ sub : true,
126
+ strike : true,
127
+ remove : true
128
+ },
129
+
130
+ // Lists dropdown menu
131
+ lists : {
132
+ unordered : true,
133
+ ordered : true,
134
+ outdent : true,
135
+ indent : true
136
+ },
137
+
138
+ // Working with images
139
+ image : true,
140
+
141
+ // Insert and format tables
142
+ table : {
143
+ insert : true,
144
+ remove : true,
145
+ header : {
146
+ add : true,
147
+ remove : true
148
+ },
149
+ row : {
150
+ above : true,
151
+ below : true,
152
+ remove : true
153
+ },
154
+ column : {
155
+ left : true,
156
+ right : true,
157
+ remove : true
158
+ }
159
+ },
160
+
161
+ // Insert video from youtube etc
162
+ video : true,
163
+
164
+ // Insert or remove hyperlink to a file
165
+ file : true,
166
+
167
+ // Insert or remove hyperlink
168
+ hyperlink : true
169
+ }
170
+ ;
171
+ (function( $ ) {
172
+ $.fn.ImperaviActionDelegator = function(o) { this.initialize() }
173
+
174
+ $.fn.ImperaviActionDelegator.prototype = {
175
+ initialize: function() {},
176
+
177
+ delegateButtonClick: function(button, iframe) {
178
+ switch (button.attr('rel')) {
179
+ case 'indent':
180
+ case 'outdent':
181
+ alert('yay!')
182
+ break;
183
+ case 'video':
184
+ new $.fn.ImperaviPluginVideo
185
+ break;
186
+ case 'image':
187
+ new $.fn.ImperaviPluginImage
188
+ break;
189
+ case 'hyperlink':
190
+ new $.fn.ImperaviPluginHyperlink
191
+ break;
192
+ case 'file':
193
+ new $.fn.ImperaviPluginFile
194
+ break;
195
+ default:
196
+ return button
197
+ break;
198
+ }
199
+ }
200
+ }
201
+ })(jQuery);
202
+ // Internationalization
203
+ (function( $ ) {
204
+ $.fn.ImperaviI18n = function(o) {
205
+ var o = $.extend({
206
+ locale : 'en'
207
+ }, o)
208
+
209
+ this.initialize(o)
210
+ }
211
+
212
+ $.fn.ImperaviI18n.prototype = {
213
+ o : null,
214
+ locales : null,
215
+
216
+ initialize: function(o) {
217
+ this.o = $.extend({ locale : $.fn.ImperaviOptions().options.locale }, o)
218
+ this.locales = $.fn.ImperaviLanguages[this.o.locale]
219
+ },
220
+
221
+ t: function(key) {
222
+
223
+ }
224
+ }
225
+ })(jQuery);
226
+ (function( $ ) {
227
+ $.fn.ImperaviPluginVideo = function(o) { this.initialize(o) }
228
+
229
+ $.fn.ImperaviPluginVideo.prototype = {
230
+ initialize: function(o) {
231
+ this.o = o
232
+
233
+ this.dialog = new $.fn.ImperaviDialog({
234
+ title : 'Insert video',
235
+ width : 600,
236
+ height : 300,
237
+ onOkay : function() {
238
+ alert(this.el.find('textarea').val())
239
+ this.hide()
240
+ }
241
+ })
242
+
243
+ this.dialog.show()
244
+ this.dialog.el.addClass('imperavi-plugin-video')
245
+ this.build()
246
+ },
247
+
248
+ build: function() {
249
+ var textarea = $(document.createElement('textarea'))
250
+ this.dialog.setContent(textarea)
251
+ }
252
+ }
253
+ })(jQuery);
254
+ (function( $ ) {
255
+ $.fn.ImperaviPluginImage = function(o) { this.initialize(o) }
256
+
257
+ $.fn.ImperaviPluginImage.prototype = {
258
+ initialize: function(o) {
259
+ this.o = o
260
+
261
+ this.dialog = new $.fn.ImperaviDialog({
262
+ title : 'Insert image',
263
+ width : 800,
264
+ height : 600,
265
+ onOkay : function() {
266
+ //alert(this.el.find('textarea').val())
267
+ this.hide()
268
+ }
269
+ })
270
+
271
+ this.dialog.show()
272
+ this.dialog.el.addClass('imperavi-plugin-image')
273
+ this.build()
274
+ },
275
+
276
+ build: function() {
277
+ this.tabs_area = this.build_tabs_area()
278
+
279
+ this.pick_tab = this.build_tab('Pick image', '')
280
+ .appendTo(this.tabs_area)
281
+ .addClass('current')
282
+ .click($.proxy(function(e){ this.set_current_tab(e) }, this))
283
+
284
+ this.upload_tab = this.build_tab('Upload image', '')
285
+ .appendTo(this.tabs_area)
286
+ .click($.proxy(function(e){ this.set_current_tab(e) }, this))
287
+
288
+ this.link_tab = this.build_tab('Link to image', '')
289
+ .appendTo(this.tabs_area)
290
+ .click($.proxy(function(e){ this.set_current_tab(e) }, this))
291
+
292
+ this.dialog.setContent(this.tabs_area)
293
+
294
+
295
+ // Fast and dirty
296
+ //$('article.tabs section > h3')
297
+ //[this.pick_tab, this.upload_tab, this.link_tab].click(function(){
298
+ //$('article.tabs section').removeClass('current');
299
+ //$(this)
300
+ //.closest('section').addClass('current');
301
+ //alert('yay')
302
+ //});
303
+ },
304
+
305
+ build_tabs_area: function() {
306
+ var article = $(document.createElement('article'))
307
+ .addClass('imperavi-tabs')
308
+
309
+ return article
310
+ },
311
+
312
+ build_tab: function(title, content) {
313
+ var section = $(document.createElement('section'))
314
+ var heading = $(document.createElement('h3'))
315
+ .html(title)
316
+ .appendTo(section)
317
+
318
+ var content = $(document.createElement('div'))
319
+ .appendTo(section)
320
+ .html(content)
321
+
322
+ return section
323
+ },
324
+
325
+ set_current_tab: function(e) {
326
+ e.preventDefault();
327
+ alert('ok')
328
+ }
329
+ }
330
+ })(jQuery);
331
+ (function( $ ) {
332
+ $.fn.ImperaviPluginHyperlink = function(o) { this.initialize(o) }
333
+
334
+ $.fn.ImperaviPluginHyperlink.prototype = {
335
+ initialize: function(o) {
336
+ this.o = o
337
+
338
+ this.dialog = new $.fn.ImperaviDialog({
339
+ title : 'Insert hyperlink',
340
+ width : 450,
341
+ height : 237,
342
+ onRemove : function() {
343
+ alert('fuck yeah!')
344
+ this.hide()
345
+ },
346
+ onOkay : function() {
347
+ alert('fuck')
348
+ this.hide()
349
+ }
350
+ })
351
+
352
+ this.dialog.show()
353
+ this.dialog.el.addClass('imperavi-plugin-hyperlink')
354
+ this.dialog.addButton('Remove', 'remove')
355
+ this.build()
356
+ },
357
+
358
+ build: function() {
359
+ var wrapper = $(document.createElement('div'))
360
+ var url = this.build_input('Url', 'url').appendTo(wrapper)
361
+ var caption = this.build_input('Title', 'title').appendTo(wrapper)
362
+
363
+ this.dialog.setContent(wrapper)
364
+ },
365
+
366
+ build_input: function(title, name) {
367
+ var wrapper = $(document.createElement('div'))
368
+ .addClass('field')
369
+
370
+ var label = $(document.createElement('label'))
371
+ .attr('for', name)
372
+ .html(title)
373
+ .appendTo(wrapper)
374
+
375
+ var url = $(document.createElement('input'))
376
+ .attr('type', 'text')
377
+ .attr('name', name)
378
+ .attr('id', name)
379
+ .appendTo(wrapper)
380
+
381
+ return wrapper
382
+ }
383
+ }
384
+ })(jQuery);
385
+ (function( $ ) {
386
+ $.fn.ImperaviPluginFile = function(o) { this.initialize(o) }
387
+
388
+ $.fn.ImperaviPluginFile.prototype = {
389
+ initialize: function(o) {
390
+ this.o = o
391
+
392
+ this.dialog = new $.fn.ImperaviDialog({
393
+ title : 'Attach file',
394
+ width : 450,
395
+ height : 237,
396
+ onRemove : function() {
397
+ alert('fuck yeah!')
398
+ this.hide()
399
+ },
400
+ onOkay : function() {
401
+ alert('fuck')
402
+ this.hide()
403
+ }
404
+ })
405
+
406
+ this.dialog.show()
407
+ this.dialog.el.addClass('imperavi-plugin-file')
408
+ this.dialog.addButton('Remove', 'remove')
409
+ this.build()
410
+ },
411
+
412
+ build: function() {
413
+ var wrapper = $(document.createElement('div'))
414
+ var file = this.build_input('File', 'attachment').appendTo(wrapper)
415
+ //var caption = this.build_input('Title', 'title').appendTo(wrapper)
416
+
417
+ this.dialog.setContent(wrapper)
418
+ },
419
+
420
+ build_input: function(title, name) {
421
+ var wrapper = $(document.createElement('div'))
422
+ .addClass('field')
423
+
424
+ var label = $(document.createElement('label'))
425
+ .attr('for', name)
426
+ .html(title)
427
+ .appendTo(wrapper)
428
+
429
+ var file = $(document.createElement('input'))
430
+ .attr('type', 'file')
431
+ .attr('name', name)
432
+ .attr('id', name)
433
+ .appendTo(wrapper)
434
+
435
+ return wrapper
436
+ }
437
+ }
438
+ })(jQuery);
439
+ // TODO: add custom events
440
+ // - onShow
441
+ // - onClose
442
+ // - onBuilt
443
+ // - onContentLoaded
444
+ // - onOkay
445
+ // - onCancel
446
+
447
+ (function( $ ) {
448
+ $.fn.ImperaviDialog = function(o) {
449
+ var o = $.extend({
450
+ onOkay : function() { this.hide() },
451
+ onCancel : function() { this.hide() },
452
+ onClose : function(e) { this.close(e) },
453
+ onBuilt : function() {},
454
+ onLoad : function() {}
455
+ }, o)
456
+
457
+ this.initialize(o)
458
+ }
459
+
460
+ $.fn.ImperaviDialog.prototype = {
461
+ el : null,
462
+ o : null,
463
+ overlay : null,
464
+
465
+ initialize: function(o) {
466
+ // Retrieve user options passed to imperavi
467
+ this.o = $.extend($.fn.ImperaviOptions().options.dialog, o)
468
+ },
469
+
470
+ build: function() {
471
+ // Build dialog just once
472
+ if (this.el) return;
473
+
474
+ // Create overlay
475
+ this.overlay = new $.fn.ImperaviOverlay()
476
+
477
+ // Dialog window
478
+ this.el = $(document.createElement('div'))
479
+ .attr('id', 'imperavi-dialog')
480
+ .appendTo($('body'));
481
+
482
+ this.container = $(document.createElement('div'))
483
+ .attr('id', 'imperavi-dialog-container')
484
+ .appendTo(this.el);
485
+
486
+ // Close button
487
+ this.closeBtn = $(document.createElement('a'))
488
+ .attr('href', 'javascript:;')
489
+ .html('×')
490
+ .attr('id', 'imperavi-dialog-close')
491
+ .appendTo(this.container);
492
+
493
+ // Dialog title
494
+ this.title = $(document.createElement('h1'))
495
+ .attr('id', 'imperavi-dialog-title')
496
+ .appendTo(this.container);
497
+
498
+ // Dialog content
499
+ this.article = $(document.createElement('article'))
500
+ .attr('id', 'imperavi-dialog-content')
501
+ .appendTo(this.container);
502
+
503
+ // Buttons panel
504
+ this.buttons_wrapper = $(document.createElement('div'))
505
+ .attr('id', 'imperavi-dialog-buttons-wrapper')
506
+ .appendTo(this.container);
507
+
508
+ this.buttons = $(document.createElement('div'))
509
+ .attr('id', 'imperavi-dialog-buttons')
510
+ .appendTo(this.buttons_wrapper);
511
+
512
+ this.okay_button = this.addButton('Okay', 'okay')
513
+ this.cancel_button = this.addButton('Cancel', 'cancel')
514
+
515
+ // Set default size
516
+ this.setSize(this.o.width, this.o.height)
517
+
518
+ // Set default title
519
+ this.setTitle(this.o.title)
520
+
521
+ this.o.onBuilt.call(this)
522
+ },
523
+
524
+ addButton: function(caption, name) {
525
+ var callbackName = 'on' + name.charAt(0).toUpperCase() + name.slice(1)
526
+
527
+ return $(document.createElement('a'))
528
+ .attr('id', 'imperavi-dialog-' + name)
529
+ .attr('href', 'javascript:;')
530
+ .html(caption)
531
+ .click($.proxy(function(){ this.o[callbackName].call(this) }, this))
532
+ .appendTo(this.buttons);
533
+ },
534
+
535
+ addEvents: function() {
536
+ var onCloseCallback = $.proxy(function(e){ this.o.onClose.call(this, e) }, this)
537
+
538
+ $(document).keyup(function(e) { onCloseCallback(e) })
539
+ this.closeBtn.click(function(e) { onCloseCallback(e) })
540
+ this.overlay.el.click(function(e) { onCloseCallback(e) })
541
+ },
542
+
543
+ removeEvents: function() {
544
+ var onCloseCallback = $.proxy(function(e){ this.o.onClose.call(this, e) }, this)
545
+
546
+ $(document).unbind('keyup', onCloseCallback)
547
+ this.closeBtn.unbind('click', onCloseCallback)
548
+ this.overlay.el.unbind('click', onCloseCallback)
549
+ },
550
+
551
+ setSize: function(width, height) {
552
+ this.el.css({
553
+ width : width + 'px',
554
+ height : height + 'px',
555
+ marginTop : '-' + height / 2 + 'px',
556
+ marginLeft : '-' + width / 2 + 'px'
557
+ }).fadeIn('fast');
558
+
559
+ this.container.css({
560
+ width : width + 'px',
561
+ height : height + 'px',
562
+ })
563
+ },
564
+
565
+ setTitle: function(title) {
566
+ this.title.html(title)
567
+ },
568
+
569
+ setContent: function(content) {
570
+ this.article.html(content)
571
+ },
572
+
573
+ // TODO Load content via ajax
574
+ loadContent: function(url) {
575
+ this.setContent('')
576
+ this.o.onLoad.call(this)
577
+ },
578
+
579
+ cleanUp: function() {
580
+ this.removeEvents()
581
+ this.setContent('')
582
+ this.setTitle('')
583
+ },
584
+
585
+ show: function() {
586
+ this.build()
587
+ this.overlay.show()
588
+ this.el.show()
589
+ this.addEvents()
590
+ },
591
+
592
+ hide: function() {
593
+ this.el.hide()
594
+ this.overlay.hide()
595
+ this.cleanUp()
596
+ },
597
+
598
+ close: function(e) {
599
+ if (e.keyCode == 27 || e.type == 'click')
600
+ this.hide()
601
+ }
602
+ }
603
+ })(jQuery);
604
+ (function( $ ) {
605
+ $.fn.ImperaviOverlay = function(o) { this.initialize(o) }
606
+
607
+ $.fn.ImperaviOverlay.prototype = {
608
+ el : null,
609
+
610
+ initialize: function(o) {
611
+ this.o = o
612
+ },
613
+
614
+ build: function() {
615
+ if (this.el) return;
616
+
617
+ this.el = $(document.createElement('div'))
618
+ .attr('id', 'imperavi-overlay')
619
+ .appendTo($('body'));
620
+ },
621
+
622
+ show: function() {
623
+ this.build()
624
+ this.el.show()
625
+ },
626
+
627
+ hide: function() {
628
+ this.el.hide()
629
+ }
630
+ }
631
+ })(jQuery);
632
+ (function( $ ) {
633
+ $.fn.ImperaviIframe = function(textarea, o) { this.initialize(textarea, o) }
634
+
635
+ $.fn.ImperaviIframe.prototype = {
636
+ textarea : null,
637
+ wrapper : null,
638
+ el : null,
639
+
640
+ initialize: function(textarea, o) {
641
+ this.textarea = textarea
642
+ this.o = o
643
+
644
+ this.textarea.hide();
645
+
646
+ this.build()
647
+ this.populate()
648
+ this.enable(true)
649
+ },
650
+
651
+ // Build Iframe object and stuff
652
+ build: function() {
653
+ this.wrapper = $(document.createElement('div'))
654
+ .addClass('imperavi')
655
+ .insertAfter(this.textarea)
656
+
657
+ this.el = $(document.createElement('iframe'))
658
+ .appendTo(this.wrapper)
659
+ .css({ width : this.textarea.outerWidth(), height : this.textarea.outerHeight() })
660
+ },
661
+
662
+ populate: function() {
663
+ html = '<!DOCTYPE html>'
664
+ html += '<head><meta charset="utf-8" />'
665
+ //html += '<link rel="stylesheet" href="/assets/wysiwyg.css?body=1" />'
666
+ //html += '<script src="/assets/mootools.js?body=1"></script>'
667
+ html += '</head><html><body>' + this.textarea.val()
668
+ html += '</body></html>'
669
+
670
+ this.doc().open();
671
+ this.doc().write(html);
672
+ this.doc().close();
673
+ },
674
+
675
+ enableObjects: function() {
676
+ if (!$.browser.mozilla) return;
677
+
678
+ //this.doc().execCommand('styleWithCSS', false, false)
679
+ //this.doc().execCommand('enableObjectResizing', false, false)
680
+ //this.doc().execCommand('enableInlineTableEditing', false, false)
681
+ },
682
+
683
+ observe: function() {
684
+
685
+ },
686
+
687
+ enable: function(status) {
688
+ // Located here for Chrome support
689
+ this.doc().designMode = status ? 'on' : 'off';
690
+
691
+ this.el.load($.proxy(function() {
692
+ this.enableObjects();
693
+ this.observe();
694
+ }, this));
695
+ },
696
+
697
+ doc: function() {
698
+ return this.el.get(0).contentDocument || this.el.get(0).contentWindow.document
699
+ }
700
+ }
701
+ })(jQuery);
702
+ (function( $ ) {
703
+ $.fn.ImperaviIframeResizer = function(iframe, o) { this.initialize(iframe, o) }
704
+
705
+ $.fn.ImperaviIframeResizer.prototype = {
706
+ iframe : null,
707
+ el : null,
708
+
709
+ initialize: function(iframe, o) {
710
+ this.iframe = iframe
711
+ this.o = o
712
+
713
+ this.build()
714
+ },
715
+
716
+ build: function() {
717
+ this.el = $(document.createElement('div'))
718
+ .addClass('imperavi-resizer')
719
+ .insertAfter(this.iframe.el)
720
+
721
+ this.el.append($(document.createElement('div')))
722
+ }
723
+ }
724
+ })(jQuery);
725
+ (function( $ ) {
726
+ $.fn.ImperaviToolbar = function(iframe, o) {
727
+ var o = $.extend({
728
+ onButtonClick : function(button) {},
729
+ }, o)
730
+
731
+ this.initialize(iframe, o)
732
+ }
733
+
734
+ $.fn.ImperaviToolbar.prototype = {
735
+ iframe : null,
736
+ el : null,
737
+
738
+ initialize: function(iframe, o) {
739
+ this.iframe = iframe
740
+ this.o = o
741
+ this.x = $.fn.ImperaviToolbarDefault // TODO make it pretty
742
+ this.l = $.fn.ImperaviLanguages.ru // TODO make it pretty
743
+
744
+ this.build()
745
+ },
746
+
747
+ // Build Toolbar object
748
+ build: function() {
749
+ this.el = $(document.createElement('ul'))
750
+ .insertBefore(this.iframe.el);
751
+
752
+ $.each(this.x, $.proxy(function(key, value) {
753
+ // Buttons with dropdown
754
+ if (typeof value == 'object') {
755
+ this.el.append(this.addDropdown(key, value))
756
+ } else if (typeof value == 'boolean' && value == true) {
757
+ var title = typeof this.l[key] == 'object' ? this.l[key].name : this.l[key]
758
+ this.el.append(this.addButton(key, title, null))
759
+ }
760
+ }, this));
761
+ },
762
+
763
+ addButton: function(name, title, caption) {
764
+ var li = $(document.createElement('li')).addClass('button-' + name)
765
+ var a = $(document.createElement('a'))
766
+ .attr('href', 'javascript:;')
767
+ .attr('rel', name)
768
+ .attr('title', title)
769
+ .appendTo(li)
770
+ // This executes a custom callback on button click
771
+ .click($.proxy(function(){ this.o.onButtonClick.call(this, a) }, this))
772
+
773
+ var span = $(document.createElement('span'))
774
+ .html(caption)
775
+ .appendTo(a);
776
+
777
+ return li.append(a)
778
+ },
779
+
780
+ addDropdown: function(name, items) {
781
+ var button = this.addButton(name, this.l[name].name, null)
782
+ var ul = $(document.createElement('ul'))
783
+
784
+ button.addClass('has-dropdown')
785
+
786
+ // Add dropdown items
787
+ $.each(items, $.proxy(function(key, value) {
788
+ if (typeof value == 'object') {
789
+ var separator = true
790
+
791
+ $.each(value, $.proxy(function(key2, value2) {
792
+ if (value2 == true) {
793
+ var item = this.addButton(key2, null, this.l[name][key][key2])
794
+ if (separator) item.addClass('separator')
795
+
796
+ ul.append(item)
797
+ separator = false
798
+ }
799
+ }, this));
800
+ } else if (typeof value == 'boolean' && value == true) {
801
+ ul.append( this.addButton(key, null, this.l[name][key]) )
802
+ }
803
+ }, this));
804
+
805
+ return button.append(ul)
806
+ }
807
+ }
808
+ })(jQuery);
809
+ (function( $ ) {
810
+ $.fn.imperavi = function(o) {
811
+ // Editor options
812
+ var o = $.extend({
813
+ locale : 'ru', // TODO replace with $.fn.ImperaviLanguage
814
+ resizer : $.fn.ImperaviIframeResizer,
815
+ dialog : $.fn.ImperaviDialog,
816
+ overlay : $.fn.ImperaviOverlay,
817
+ iframe : $.fn.ImperaviIframe,
818
+ toolbar : $.fn.ImperaviToolbar,
819
+ delegator : $.fn.ImperaviActionDelegator,
820
+ options : {
821
+ dialog : {
822
+ title : 'Default title',
823
+ width : 500,
824
+ height : 300
825
+ }
826
+ }
827
+ }, o)
828
+
829
+ // Global options
830
+ $.fn.ImperaviOptions = function() { return o }
831
+
832
+ // Main object
833
+ $.fn.Imperavi = function(el) { this.initialize(el) }
834
+
835
+ $.fn.Imperavi.prototype = {
836
+ textarea : null,
837
+ iframe : null,
838
+ toolbar : null,
839
+ resizer : null,
840
+ delegator : null,
841
+
842
+ // Initialize imperavi
843
+ initialize: function(el) {
844
+ this.textarea = $(el)
845
+ this.build()
846
+ this.autosave()
847
+ },
848
+
849
+ build: function() {
850
+ // Delegate action to another object
851
+ this.delegator = new o.delegator
852
+
853
+ // Create iframe
854
+ this.iframe = new o.iframe(this.textarea, o)
855
+
856
+ // Create editor resizer
857
+ this.resizer = new o.resizer(this.iframe, o)
858
+
859
+ // Create toolbar
860
+ this.toolbar = new o.toolbar(this.iframe, {
861
+ onButtonClick : $.proxy(function(button) {
862
+ this.delegator.delegateButtonClick(button, this.iframe)
863
+ }, this)
864
+ })
865
+ },
866
+
867
+ autosave: function() {
868
+ // TODO: implement
869
+ }
870
+ }
871
+
872
+ // Apply imperavi for each selected element
873
+ return this.each(function() {
874
+ new $.fn.Imperavi(this)
875
+ })
876
+ }
877
+ })(jQuery);
878
+
879
+
880
+