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,967 @@
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
+ onRemove : function() {
266
+ alert('fuck yeah!')
267
+ this.hide()
268
+ },
269
+ onOkay : function() {
270
+ this.hide()
271
+ }
272
+ })
273
+
274
+ this.dialog.show()
275
+ this.dialog.el.addClass('imperavi-plugin-image')
276
+ this.build()
277
+ },
278
+
279
+ build: function() {
280
+ // Add 'remove' button
281
+ this.removeButton = this.dialog.addButton('Remove', 'remove')
282
+ this.removeButton.hide();
283
+
284
+ // Create tabs and content for tabs
285
+ this.tabsArea = this.buildTabsArea()
286
+
287
+ this.pickTab = this.buildTab('Pick image', this.buildPickTabContent())
288
+ .appendTo(this.tabsArea)
289
+ .addClass('current')
290
+
291
+ this.uploadTab = this.buildTab('Upload image', this.buildUploadTabContent())
292
+ .appendTo(this.tabsArea)
293
+
294
+ this.dialog.setContent(this.tabsArea)
295
+ this.switchTabs();
296
+ },
297
+
298
+ // Build tabs container
299
+ buildTabsArea: function() {
300
+ var article = $(document.createElement('article'))
301
+ .addClass('imperavi-tabs')
302
+
303
+ return article
304
+ },
305
+
306
+ // Add another one tab
307
+ buildTab: function(title, content) {
308
+ var section = $(document.createElement('section'))
309
+ var heading = $(document.createElement('h3'))
310
+ .html(title)
311
+ .addClass('imperavi-tab')
312
+ .appendTo(section)
313
+
314
+ var content = $(document.createElement('div'))
315
+ .appendTo(section)
316
+ .html(content)
317
+
318
+ return section
319
+ },
320
+
321
+ // Switch between tabs
322
+ switchTabs: function() {
323
+ var currentTab = this.pickTab
324
+
325
+ this.tabsArea.on('click', '.imperavi-tab', function(e){
326
+ e.preventDefault();
327
+
328
+ if (currentTab.length) {
329
+ currentTab.removeClass('current')
330
+ }
331
+
332
+ currentTab = $(this).closest('section').addClass('current')
333
+ })
334
+ },
335
+
336
+ buildPickTabContent: function() {
337
+
338
+ },
339
+
340
+ buildUploadTabContent: function() {
341
+ // Create wrapper
342
+ var wrapper = $(document.createElement('div'))
343
+ .attr('id', 'upload-wrapper')
344
+
345
+ // Create place for thumbnail
346
+ var thumbnail = $(document.createElement('figure'))
347
+ .addClass('thumbnail')
348
+ .appendTo(wrapper)
349
+
350
+ var caption = $(document.createElement('span'))
351
+ .html('No image yet')
352
+ .appendTo(thumbnail)
353
+
354
+ // Choose image from disk
355
+ var imageLocal = this.buildInput('Choose image from disk', 'image', 'file')
356
+ .appendTo(wrapper)
357
+
358
+ // Image url
359
+ var imageUrl = this.buildInput('or specify link to image', 'image-url', 'text')
360
+ .appendTo(wrapper)
361
+
362
+ // Image position
363
+ var imagePos = this.buildPositionSelect().appendTo(wrapper)
364
+
365
+ return wrapper
366
+ },
367
+
368
+ buildInput: function(title, name, type) {
369
+ var wrapper = $(document.createElement('div'))
370
+ .addClass('field')
371
+
372
+ var label = $(document.createElement('label'))
373
+ .attr('for', name)
374
+ .html(title)
375
+ .appendTo(wrapper)
376
+
377
+ var url = $(document.createElement('input'))
378
+ .attr('type', type)
379
+ .attr('name', name)
380
+ .attr('id', name)
381
+ .appendTo(wrapper)
382
+
383
+ return wrapper
384
+ },
385
+
386
+ buildPositionSelect: function() {
387
+ var wrapper = $(document.createElement('div'))
388
+ .addClass('field')
389
+
390
+ var label = $(document.createElement('label'))
391
+ .attr('for', 'image-position')
392
+ .html('Image position')
393
+ .appendTo(wrapper)
394
+
395
+ var select = $(document.createElement('select'))
396
+ .attr('id', 'image-position')
397
+ .attr('name', 'image-position')
398
+ .appendTo(wrapper)
399
+
400
+ // Create select options
401
+ var options = {
402
+ none : 'None',
403
+ left : 'To left',
404
+ right : 'To right'
405
+ }
406
+
407
+ $.each(options, function(value, caption) {
408
+ $(document.createElement('option'))
409
+ .attr('value', value)
410
+ .html(caption)
411
+ .appendTo(select)
412
+ })
413
+
414
+ return wrapper
415
+ }
416
+ }
417
+ })(jQuery);
418
+ (function( $ ) {
419
+ $.fn.ImperaviPluginHyperlink = function(o) { this.initialize(o) }
420
+
421
+ $.fn.ImperaviPluginHyperlink.prototype = {
422
+ initialize: function(o) {
423
+ this.o = o
424
+
425
+ this.dialog = new $.fn.ImperaviDialog({
426
+ title : 'Insert hyperlink',
427
+ width : 450,
428
+ height : 237,
429
+ onRemove : function() {
430
+ alert('fuck yeah!')
431
+ this.hide()
432
+ },
433
+ onOkay : function() {
434
+ alert('fuck')
435
+ this.hide()
436
+ }
437
+ })
438
+
439
+ this.dialog.show()
440
+ this.dialog.el.addClass('imperavi-plugin-hyperlink')
441
+ this.dialog.addButton('Remove', 'remove')
442
+ this.build()
443
+ },
444
+
445
+ build: function() {
446
+ var wrapper = $(document.createElement('div'))
447
+ var url = this.build_input('Url', 'url').appendTo(wrapper)
448
+ var caption = this.build_input('Title', 'title').appendTo(wrapper)
449
+
450
+ this.dialog.setContent(wrapper)
451
+ },
452
+
453
+ build_input: function(title, name) {
454
+ var wrapper = $(document.createElement('div'))
455
+ .addClass('field')
456
+
457
+ var label = $(document.createElement('label'))
458
+ .attr('for', name)
459
+ .html(title)
460
+ .appendTo(wrapper)
461
+
462
+ var url = $(document.createElement('input'))
463
+ .attr('type', 'text')
464
+ .attr('name', name)
465
+ .attr('id', name)
466
+ .appendTo(wrapper)
467
+
468
+ return wrapper
469
+ }
470
+ }
471
+ })(jQuery);
472
+ (function( $ ) {
473
+ $.fn.ImperaviPluginFile = function(o) { this.initialize(o) }
474
+
475
+ $.fn.ImperaviPluginFile.prototype = {
476
+ initialize: function(o) {
477
+ this.o = o
478
+
479
+ this.dialog = new $.fn.ImperaviDialog({
480
+ title : 'Attach file',
481
+ width : 450,
482
+ height : 237,
483
+ onRemove : function() {
484
+ alert('fuck yeah!')
485
+ this.hide()
486
+ },
487
+ onOkay : function() {
488
+ alert('fuck')
489
+ this.hide()
490
+ }
491
+ })
492
+
493
+ this.dialog.show()
494
+ this.dialog.el.addClass('imperavi-plugin-file')
495
+ this.dialog.addButton('Remove', 'remove')
496
+ this.build()
497
+ },
498
+
499
+ build: function() {
500
+ var wrapper = $(document.createElement('div'))
501
+ var file = this.build_input('File', 'attachment').appendTo(wrapper)
502
+ //var caption = this.build_input('Title', 'title').appendTo(wrapper)
503
+
504
+ this.dialog.setContent(wrapper)
505
+ },
506
+
507
+ build_input: function(title, name) {
508
+ var wrapper = $(document.createElement('div'))
509
+ .addClass('field')
510
+
511
+ var label = $(document.createElement('label'))
512
+ .attr('for', name)
513
+ .html(title)
514
+ .appendTo(wrapper)
515
+
516
+ var file = $(document.createElement('input'))
517
+ .attr('type', 'file')
518
+ .attr('name', name)
519
+ .attr('id', name)
520
+ .appendTo(wrapper)
521
+
522
+ return wrapper
523
+ }
524
+ }
525
+ })(jQuery);
526
+ // TODO: add custom events
527
+ // - onShow
528
+ // - onClose
529
+ // - onBuilt
530
+ // - onContentLoaded
531
+ // - onOkay
532
+ // - onCancel
533
+
534
+ (function( $ ) {
535
+ $.fn.ImperaviDialog = function(o) {
536
+ var o = $.extend({
537
+ onOkay : function() { this.hide() },
538
+ onCancel : function() { this.hide() },
539
+ onClose : function(e) { this.close(e) },
540
+ onBuilt : function() {},
541
+ onLoad : function() {}
542
+ }, o)
543
+
544
+ this.initialize(o)
545
+ }
546
+
547
+ $.fn.ImperaviDialog.prototype = {
548
+ el : null,
549
+ o : null,
550
+ overlay : null,
551
+
552
+ initialize: function(o) {
553
+ // Retrieve user options passed to imperavi
554
+ this.o = $.extend($.fn.ImperaviOptions().options.dialog, o)
555
+ },
556
+
557
+ build: function() {
558
+ // Build dialog just once
559
+ if (this.el) return;
560
+
561
+ // Create overlay
562
+ this.overlay = new $.fn.ImperaviOverlay()
563
+
564
+ // Dialog window
565
+ this.el = $(document.createElement('div'))
566
+ .attr('id', 'imperavi-dialog')
567
+ .appendTo($('body'));
568
+
569
+ this.container = $(document.createElement('div'))
570
+ .attr('id', 'imperavi-dialog-container')
571
+ .appendTo(this.el);
572
+
573
+ // Close button
574
+ this.closeBtn = $(document.createElement('a'))
575
+ .attr('href', 'javascript:;')
576
+ .html('×')
577
+ .attr('id', 'imperavi-dialog-close')
578
+ .appendTo(this.container);
579
+
580
+ // Dialog title
581
+ this.title = $(document.createElement('h1'))
582
+ .attr('id', 'imperavi-dialog-title')
583
+ .appendTo(this.container);
584
+
585
+ // Dialog content
586
+ this.article = $(document.createElement('article'))
587
+ .attr('id', 'imperavi-dialog-content')
588
+ .appendTo(this.container);
589
+
590
+ // Buttons panel
591
+ this.buttons_wrapper = $(document.createElement('div'))
592
+ .attr('id', 'imperavi-dialog-buttons-wrapper')
593
+ .appendTo(this.container);
594
+
595
+ this.buttons = $(document.createElement('div'))
596
+ .attr('id', 'imperavi-dialog-buttons')
597
+ .appendTo(this.buttons_wrapper);
598
+
599
+ this.okay_button = this.addButton('Okay', 'okay')
600
+ this.cancel_button = this.addButton('Cancel', 'cancel')
601
+
602
+ // Set default size
603
+ this.setSize(this.o.width, this.o.height)
604
+
605
+ // Set default title
606
+ this.setTitle(this.o.title)
607
+
608
+ this.o.onBuilt.call(this)
609
+ },
610
+
611
+ addButton: function(caption, name) {
612
+ var callbackName = 'on' + name.charAt(0).toUpperCase() + name.slice(1)
613
+
614
+ return $(document.createElement('a'))
615
+ .attr('id', 'imperavi-dialog-' + name)
616
+ .attr('href', 'javascript:;')
617
+ .html(caption)
618
+ .click($.proxy(function(){ this.o[callbackName].call(this) }, this))
619
+ .appendTo(this.buttons);
620
+ },
621
+
622
+ addEvents: function() {
623
+ var onCloseCallback = $.proxy(function(e){ this.o.onClose.call(this, e) }, this)
624
+
625
+ $(document).keyup(function(e) { onCloseCallback(e) })
626
+ this.closeBtn.click(function(e) { onCloseCallback(e) })
627
+ this.overlay.el.click(function(e) { onCloseCallback(e) })
628
+ },
629
+
630
+ removeEvents: function() {
631
+ var onCloseCallback = $.proxy(function(e){ this.o.onClose.call(this, e) }, this)
632
+
633
+ $(document).unbind('keyup', onCloseCallback)
634
+ this.closeBtn.unbind('click', onCloseCallback)
635
+ this.overlay.el.unbind('click', onCloseCallback)
636
+ },
637
+
638
+ setSize: function(width, height) {
639
+ this.el.css({
640
+ width : width + 'px',
641
+ height : height + 'px',
642
+ marginTop : '-' + height / 2 + 'px',
643
+ marginLeft : '-' + width / 2 + 'px'
644
+ }).fadeIn('fast');
645
+
646
+ this.container.css({
647
+ width : width + 'px',
648
+ height : height + 'px',
649
+ })
650
+ },
651
+
652
+ setTitle: function(title) {
653
+ this.title.html(title)
654
+ },
655
+
656
+ setContent: function(content) {
657
+ this.article.html(content)
658
+ },
659
+
660
+ // TODO Load content via ajax
661
+ loadContent: function(url) {
662
+ this.setContent('')
663
+ this.o.onLoad.call(this)
664
+ },
665
+
666
+ cleanUp: function() {
667
+ this.removeEvents()
668
+ this.setContent('')
669
+ this.setTitle('')
670
+ },
671
+
672
+ show: function() {
673
+ this.build()
674
+ this.overlay.show()
675
+ this.el.show()
676
+ this.addEvents()
677
+ },
678
+
679
+ hide: function() {
680
+ this.el.hide()
681
+ this.overlay.hide()
682
+ this.cleanUp()
683
+ },
684
+
685
+ close: function(e) {
686
+ if (e.keyCode == 27 || e.type == 'click')
687
+ this.hide()
688
+ }
689
+ }
690
+ })(jQuery);
691
+ (function( $ ) {
692
+ $.fn.ImperaviOverlay = function(o) { this.initialize(o) }
693
+
694
+ $.fn.ImperaviOverlay.prototype = {
695
+ el : null,
696
+
697
+ initialize: function(o) {
698
+ this.o = o
699
+ },
700
+
701
+ build: function() {
702
+ if (this.el) return;
703
+
704
+ this.el = $(document.createElement('div'))
705
+ .attr('id', 'imperavi-overlay')
706
+ .appendTo($('body'));
707
+ },
708
+
709
+ show: function() {
710
+ this.build()
711
+ this.el.show()
712
+ },
713
+
714
+ hide: function() {
715
+ this.el.hide()
716
+ }
717
+ }
718
+ })(jQuery);
719
+ (function( $ ) {
720
+ $.fn.ImperaviIframe = function(textarea, o) { this.initialize(textarea, o) }
721
+
722
+ $.fn.ImperaviIframe.prototype = {
723
+ textarea : null,
724
+ wrapper : null,
725
+ el : null,
726
+
727
+ initialize: function(textarea, o) {
728
+ this.textarea = textarea
729
+ this.o = o
730
+
731
+ this.textarea.hide();
732
+
733
+ this.build()
734
+ this.populate()
735
+ this.enable(true)
736
+ },
737
+
738
+ // Build Iframe object and stuff
739
+ build: function() {
740
+ this.wrapper = $(document.createElement('div'))
741
+ .addClass('imperavi')
742
+ .insertAfter(this.textarea)
743
+
744
+ this.el = $(document.createElement('iframe'))
745
+ .appendTo(this.wrapper)
746
+ .css({ width : this.textarea.outerWidth(), height : this.textarea.outerHeight() })
747
+ },
748
+
749
+ populate: function() {
750
+ html = '<!DOCTYPE html>'
751
+ html += '<head><meta charset="utf-8" />'
752
+ //html += '<link rel="stylesheet" href="/assets/wysiwyg.css?body=1" />'
753
+ //html += '<script src="/assets/mootools.js?body=1"></script>'
754
+ html += '</head><html><body>' + this.textarea.val()
755
+ html += '</body></html>'
756
+
757
+ this.doc().open();
758
+ this.doc().write(html);
759
+ this.doc().close();
760
+ },
761
+
762
+ enableObjects: function() {
763
+ if (!$.browser.mozilla) return;
764
+
765
+ //this.doc().execCommand('styleWithCSS', false, false)
766
+ //this.doc().execCommand('enableObjectResizing', false, false)
767
+ //this.doc().execCommand('enableInlineTableEditing', false, false)
768
+ },
769
+
770
+ observe: function() {
771
+
772
+ },
773
+
774
+ enable: function(status) {
775
+ // Located here for Chrome support
776
+ this.doc().designMode = status ? 'on' : 'off';
777
+
778
+ this.el.load($.proxy(function() {
779
+ this.enableObjects();
780
+ this.observe();
781
+ }, this));
782
+ },
783
+
784
+ doc: function() {
785
+ return this.el.get(0).contentDocument || this.el.get(0).contentWindow.document
786
+ }
787
+ }
788
+ })(jQuery);
789
+ (function( $ ) {
790
+ $.fn.ImperaviIframeResizer = function(iframe, o) { this.initialize(iframe, o) }
791
+
792
+ $.fn.ImperaviIframeResizer.prototype = {
793
+ iframe : null,
794
+ el : null,
795
+
796
+ initialize: function(iframe, o) {
797
+ this.iframe = iframe
798
+ this.o = o
799
+
800
+ this.build()
801
+ },
802
+
803
+ build: function() {
804
+ this.el = $(document.createElement('div'))
805
+ .addClass('imperavi-resizer')
806
+ .insertAfter(this.iframe.el)
807
+
808
+ this.el.append($(document.createElement('div')))
809
+ }
810
+ }
811
+ })(jQuery);
812
+ (function( $ ) {
813
+ $.fn.ImperaviToolbar = function(iframe, o) {
814
+ var o = $.extend({
815
+ onButtonClick : function(button) {},
816
+ }, o)
817
+
818
+ this.initialize(iframe, o)
819
+ }
820
+
821
+ $.fn.ImperaviToolbar.prototype = {
822
+ iframe : null,
823
+ el : null,
824
+
825
+ initialize: function(iframe, o) {
826
+ this.iframe = iframe
827
+ this.o = o
828
+ this.x = $.fn.ImperaviToolbarDefault // TODO make it pretty
829
+ this.l = $.fn.ImperaviLanguages.ru // TODO make it pretty
830
+
831
+ this.build()
832
+ },
833
+
834
+ // Build Toolbar object
835
+ build: function() {
836
+ this.el = $(document.createElement('ul'))
837
+ .insertBefore(this.iframe.el);
838
+
839
+ $.each(this.x, $.proxy(function(key, value) {
840
+ // Buttons with dropdown
841
+ if (typeof value == 'object') {
842
+ this.el.append(this.addDropdown(key, value))
843
+ } else if (typeof value == 'boolean' && value == true) {
844
+ var title = typeof this.l[key] == 'object' ? this.l[key].name : this.l[key]
845
+ this.el.append(this.addButton(key, title, null))
846
+ }
847
+ }, this));
848
+ },
849
+
850
+ addButton: function(name, title, caption) {
851
+ var li = $(document.createElement('li')).addClass('button-' + name)
852
+ var a = $(document.createElement('a'))
853
+ .attr('href', 'javascript:;')
854
+ .attr('rel', name)
855
+ .attr('title', title)
856
+ .appendTo(li)
857
+ // This executes a custom callback on button click
858
+ .click($.proxy(function(){ this.o.onButtonClick.call(this, a) }, this))
859
+
860
+ var span = $(document.createElement('span'))
861
+ .html(caption)
862
+ .appendTo(a);
863
+
864
+ return li.append(a)
865
+ },
866
+
867
+ addDropdown: function(name, items) {
868
+ var button = this.addButton(name, this.l[name].name, null)
869
+ var ul = $(document.createElement('ul'))
870
+
871
+ button.addClass('has-dropdown')
872
+
873
+ // Add dropdown items
874
+ $.each(items, $.proxy(function(key, value) {
875
+ if (typeof value == 'object') {
876
+ var separator = true
877
+
878
+ $.each(value, $.proxy(function(key2, value2) {
879
+ if (value2 == true) {
880
+ var item = this.addButton(key2, null, this.l[name][key][key2])
881
+ if (separator) item.addClass('separator')
882
+
883
+ ul.append(item)
884
+ separator = false
885
+ }
886
+ }, this));
887
+ } else if (typeof value == 'boolean' && value == true) {
888
+ ul.append( this.addButton(key, null, this.l[name][key]) )
889
+ }
890
+ }, this));
891
+
892
+ return button.append(ul)
893
+ }
894
+ }
895
+ })(jQuery);
896
+ (function( $ ) {
897
+ $.fn.imperavi = function(o) {
898
+ // Editor options
899
+ var o = $.extend({
900
+ locale : 'ru', // TODO replace with $.fn.ImperaviLanguage
901
+ resizer : $.fn.ImperaviIframeResizer,
902
+ dialog : $.fn.ImperaviDialog,
903
+ overlay : $.fn.ImperaviOverlay,
904
+ iframe : $.fn.ImperaviIframe,
905
+ toolbar : $.fn.ImperaviToolbar,
906
+ delegator : $.fn.ImperaviActionDelegator,
907
+ options : {
908
+ dialog : {
909
+ title : 'Default title',
910
+ width : 500,
911
+ height : 300
912
+ }
913
+ }
914
+ }, o)
915
+
916
+ // Global options
917
+ $.fn.ImperaviOptions = function() { return o }
918
+
919
+ // Main object
920
+ $.fn.Imperavi = function(el) { this.initialize(el) }
921
+
922
+ $.fn.Imperavi.prototype = {
923
+ textarea : null,
924
+ iframe : null,
925
+ toolbar : null,
926
+ resizer : null,
927
+ delegator : null,
928
+
929
+ // Initialize imperavi
930
+ initialize: function(el) {
931
+ this.textarea = $(el)
932
+ this.build()
933
+ this.autosave()
934
+ },
935
+
936
+ build: function() {
937
+ // Delegate action to another object
938
+ this.delegator = new o.delegator
939
+
940
+ // Create iframe
941
+ this.iframe = new o.iframe(this.textarea, o)
942
+
943
+ // Create editor resizer
944
+ this.resizer = new o.resizer(this.iframe, o)
945
+
946
+ // Create toolbar
947
+ this.toolbar = new o.toolbar(this.iframe, {
948
+ onButtonClick : $.proxy(function(button) {
949
+ this.delegator.delegateButtonClick(button, this.iframe)
950
+ }, this)
951
+ })
952
+ },
953
+
954
+ autosave: function() {
955
+ // TODO: implement
956
+ }
957
+ }
958
+
959
+ // Apply imperavi for each selected element
960
+ return this.each(function() {
961
+ new $.fn.Imperavi(this)
962
+ })
963
+ }
964
+ })(jQuery);
965
+
966
+
967
+