ckeditor 3.7.0.rc3 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (302) hide show
  1. data/Gemfile +3 -2
  2. data/README.rdoc +6 -2
  3. data/Rakefile +7 -0
  4. data/config/locales/pl.ckeditor.yml +8 -0
  5. data/lib/ckeditor.rb +12 -5
  6. data/lib/ckeditor/backend/dragonfly.rb +45 -0
  7. data/lib/ckeditor/backend/paperclip.rb +4 -1
  8. data/lib/ckeditor/engine.rb +3 -2
  9. data/lib/ckeditor/helpers/form_helper.rb +6 -4
  10. data/lib/ckeditor/helpers/view_helper.rb +4 -1
  11. data/lib/ckeditor/hooks/simple_form.rb +14 -25
  12. data/lib/ckeditor/utils.rb +22 -35
  13. data/lib/ckeditor/version.rb +2 -2
  14. data/lib/generators/ckeditor/install_generator.rb +5 -1
  15. data/lib/generators/ckeditor/templates/active_record/carrierwave/migration.rb +2 -2
  16. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/asset.rb +7 -0
  17. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/attachment_file.rb +7 -0
  18. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/picture.rb +12 -0
  19. data/lib/generators/ckeditor/templates/active_record/dragonfly/migration.rb +27 -0
  20. data/lib/generators/ckeditor/templates/active_record/paperclip/migration.rb +2 -2
  21. data/lib/generators/ckeditor/templates/base/carrierwave/uploaders/ckeditor_attachment_file_uploader.rb +1 -1
  22. data/lib/generators/ckeditor/templates/base/carrierwave/uploaders/ckeditor_picture_uploader.rb +1 -1
  23. data/lib/generators/ckeditor/templates/base/dragonfly/initializer.rb +26 -0
  24. data/test/dummy/config/application.rb +21 -7
  25. data/test/dummy/config/boot.rb +1 -1
  26. data/test/dummy/config/database.yml +3 -3
  27. data/test/dummy/config/environments/development.rb +8 -1
  28. data/test/dummy/config/environments/production.rb +8 -1
  29. data/test/dummy/config/environments/test.rb +4 -6
  30. data/test/dummy/config/initializers/ckeditor.rb +8 -16
  31. data/test/dummy/config/initializers/inflections.rb +5 -0
  32. data/test/dummy/log/test.log +7368 -0
  33. data/test/functional/posts_controller_test.rb +41 -0
  34. data/test/generators/install_generator_test.rb +15 -0
  35. data/test/models/attachment_file_test.rb +10 -6
  36. data/test/models/picture_test.rb +10 -6
  37. data/test/models/utils_test.rb +6 -6
  38. data/test/support/helpers.rb +5 -5
  39. data/test/test_helper.rb +7 -1
  40. data/vendor/assets/javascripts/ckeditor/CHANGES.html +72 -2
  41. data/vendor/assets/javascripts/ckeditor/INSTALL.html +2 -2
  42. data/vendor/assets/javascripts/ckeditor/LICENSE.html +2 -2
  43. data/vendor/assets/javascripts/ckeditor/adapters/jquery.js +1 -1
  44. data/vendor/assets/javascripts/ckeditor/ckeditor.js +120 -118
  45. data/vendor/assets/javascripts/ckeditor/ckeditor.pack +1 -1
  46. data/vendor/assets/javascripts/ckeditor/ckeditor_basic.js +3 -3
  47. data/vendor/assets/javascripts/ckeditor/ckeditor_basic_source.js +2 -2
  48. data/vendor/assets/javascripts/ckeditor/ckeditor_source.js +2 -2
  49. data/vendor/assets/javascripts/ckeditor/config.js +36 -4
  50. data/vendor/assets/javascripts/ckeditor/contents.css +1 -1
  51. data/vendor/assets/javascripts/ckeditor/lang/_languages.js +1 -1
  52. data/vendor/assets/javascripts/ckeditor/lang/_translationstatus.txt +25 -23
  53. data/vendor/assets/javascripts/ckeditor/lang/af.js +1 -1
  54. data/vendor/assets/javascripts/ckeditor/lang/ar.js +2 -2
  55. data/vendor/assets/javascripts/ckeditor/lang/bg.js +2 -2
  56. data/vendor/assets/javascripts/ckeditor/lang/bn.js +1 -1
  57. data/vendor/assets/javascripts/ckeditor/lang/bs.js +1 -1
  58. data/vendor/assets/javascripts/ckeditor/lang/ca.js +1 -1
  59. data/vendor/assets/javascripts/ckeditor/lang/cs.js +2 -2
  60. data/vendor/assets/javascripts/ckeditor/lang/cy.js +2 -2
  61. data/vendor/assets/javascripts/ckeditor/lang/da.js +2 -2
  62. data/vendor/assets/javascripts/ckeditor/lang/de.js +2 -2
  63. data/vendor/assets/javascripts/ckeditor/lang/el.js +2 -2
  64. data/vendor/assets/javascripts/ckeditor/lang/en-au.js +1 -1
  65. data/vendor/assets/javascripts/ckeditor/lang/en-ca.js +1 -1
  66. data/vendor/assets/javascripts/ckeditor/lang/en-gb.js +1 -1
  67. data/vendor/assets/javascripts/ckeditor/lang/en.js +1 -1
  68. data/vendor/assets/javascripts/ckeditor/lang/eo.js +2 -2
  69. data/vendor/assets/javascripts/ckeditor/lang/es.js +1 -1
  70. data/vendor/assets/javascripts/ckeditor/lang/et.js +2 -2
  71. data/vendor/assets/javascripts/ckeditor/lang/eu.js +1 -1
  72. data/vendor/assets/javascripts/ckeditor/lang/fa.js +1 -1
  73. data/vendor/assets/javascripts/ckeditor/lang/fi.js +1 -1
  74. data/vendor/assets/javascripts/ckeditor/lang/fo.js +2 -2
  75. data/vendor/assets/javascripts/ckeditor/lang/fr-ca.js +1 -1
  76. data/vendor/assets/javascripts/ckeditor/lang/fr.js +2 -2
  77. data/vendor/assets/javascripts/ckeditor/lang/gl.js +1 -1
  78. data/vendor/assets/javascripts/ckeditor/lang/gu.js +2 -2
  79. data/vendor/assets/javascripts/ckeditor/lang/he.js +1 -1
  80. data/vendor/assets/javascripts/ckeditor/lang/hi.js +2 -2
  81. data/vendor/assets/javascripts/ckeditor/lang/hr.js +2 -2
  82. data/vendor/assets/javascripts/ckeditor/lang/hu.js +1 -1
  83. data/vendor/assets/javascripts/ckeditor/lang/is.js +1 -1
  84. data/vendor/assets/javascripts/ckeditor/lang/it.js +2 -2
  85. data/vendor/assets/javascripts/ckeditor/lang/ja.js +1 -1
  86. data/vendor/assets/javascripts/ckeditor/lang/ka.js +1 -1
  87. data/vendor/assets/javascripts/ckeditor/lang/km.js +1 -1
  88. data/vendor/assets/javascripts/ckeditor/lang/ko.js +1 -1
  89. data/vendor/assets/javascripts/ckeditor/lang/lt.js +1 -1
  90. data/vendor/assets/javascripts/ckeditor/lang/lv.js +1 -1
  91. data/vendor/assets/javascripts/ckeditor/lang/mk.js +6 -0
  92. data/vendor/assets/javascripts/ckeditor/lang/mn.js +1 -1
  93. data/vendor/assets/javascripts/ckeditor/lang/ms.js +1 -1
  94. data/vendor/assets/javascripts/ckeditor/lang/nb.js +2 -2
  95. data/vendor/assets/javascripts/ckeditor/lang/nl.js +2 -2
  96. data/vendor/assets/javascripts/ckeditor/lang/no.js +2 -2
  97. data/vendor/assets/javascripts/ckeditor/lang/pl.js +2 -2
  98. data/vendor/assets/javascripts/ckeditor/lang/pt-br.js +1 -1
  99. data/vendor/assets/javascripts/ckeditor/lang/pt.js +2 -2
  100. data/vendor/assets/javascripts/ckeditor/lang/ro.js +1 -1
  101. data/vendor/assets/javascripts/ckeditor/lang/ru.js +1 -1
  102. data/vendor/assets/javascripts/ckeditor/lang/sk.js +1 -1
  103. data/vendor/assets/javascripts/ckeditor/lang/sl.js +1 -1
  104. data/vendor/assets/javascripts/ckeditor/lang/sr-latn.js +1 -1
  105. data/vendor/assets/javascripts/ckeditor/lang/sr.js +1 -1
  106. data/vendor/assets/javascripts/ckeditor/lang/sv.js +1 -1
  107. data/vendor/assets/javascripts/ckeditor/lang/th.js +1 -1
  108. data/vendor/assets/javascripts/ckeditor/lang/tr.js +2 -2
  109. data/vendor/assets/javascripts/ckeditor/lang/ug.js +6 -0
  110. data/vendor/assets/javascripts/ckeditor/lang/uk.js +2 -2
  111. data/vendor/assets/javascripts/ckeditor/lang/vi.js +2 -2
  112. data/vendor/assets/javascripts/ckeditor/lang/zh-cn.js +2 -2
  113. data/vendor/assets/javascripts/ckeditor/lang/zh.js +2 -2
  114. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
  115. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +23 -0
  116. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/cs.js +6 -0
  117. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/cy.js +6 -0
  118. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/da.js +6 -0
  119. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/de.js +6 -0
  120. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/el.js +6 -0
  121. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
  122. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/eo.js +6 -0
  123. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/fa.js +6 -0
  124. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/fi.js +6 -0
  125. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/fr.js +6 -0
  126. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/gu.js +6 -0
  127. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +2 -2
  128. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/it.js +6 -0
  129. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/mk.js +6 -0
  130. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/nb.js +6 -0
  131. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/nl.js +6 -0
  132. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/no.js +6 -0
  133. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/tr.js +6 -0
  134. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/ug.js +6 -0
  135. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/vi.js +6 -0
  136. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/lang/zh-cn.js +6 -0
  137. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +1 -1
  138. data/vendor/assets/javascripts/ckeditor/plugins/adobeair/plugin.js +1 -1
  139. data/vendor/assets/javascripts/ckeditor/plugins/ajax/plugin.js +1 -1
  140. data/vendor/assets/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +1 -1
  141. data/vendor/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +2 -2
  142. data/vendor/assets/javascripts/ckeditor/plugins/bbcode/plugin.js +1 -1
  143. data/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +2 -2
  144. data/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -3
  145. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/_translationstatus.txt +27 -0
  146. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/bg.js +6 -0
  147. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/cs.js +6 -0
  148. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/cy.js +6 -0
  149. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/da.js +6 -0
  150. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/de.js +6 -0
  151. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/el.js +6 -0
  152. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/en.js +1 -1
  153. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/eo.js +6 -0
  154. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/et.js +6 -0
  155. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/fa.js +6 -0
  156. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/fi.js +6 -0
  157. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/fr.js +6 -0
  158. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/gu.js +6 -0
  159. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/he.js +6 -0
  160. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/hr.js +6 -0
  161. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/it.js +6 -0
  162. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/nb.js +6 -0
  163. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/nl.js +6 -0
  164. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/no.js +6 -0
  165. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/pl.js +6 -0
  166. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/tr.js +6 -0
  167. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/ug.js +6 -0
  168. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/uk.js +6 -0
  169. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/vi.js +6 -0
  170. data/vendor/assets/javascripts/ckeditor/plugins/devtools/lang/zh-cn.js +6 -0
  171. data/vendor/assets/javascripts/ckeditor/plugins/devtools/plugin.js +2 -2
  172. data/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
  173. data/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +1 -1
  174. data/vendor/assets/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +1 -1
  175. data/vendor/assets/javascripts/ckeditor/plugins/docprops/plugin.js +1 -1
  176. data/vendor/assets/javascripts/ckeditor/plugins/embed/lang/el.js +9 -0
  177. data/vendor/assets/javascripts/ckeditor/plugins/embed/plugin.js +1 -1
  178. data/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +1 -1
  179. data/vendor/assets/javascripts/ckeditor/plugins/flash/dialogs/flash.js +1 -1
  180. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/button.js +1 -1
  181. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +1 -1
  182. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/form.js +1 -1
  183. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +1 -1
  184. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +1 -1
  185. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/select.js +1 -1
  186. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +1 -1
  187. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +1 -1
  188. data/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +1 -1
  189. data/vendor/assets/javascripts/ckeditor/plugins/iframedialog/plugin.js +1 -1
  190. data/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +9 -9
  191. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +1 -1
  192. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +5 -5
  193. data/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -1
  194. data/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +1 -1
  195. data/vendor/assets/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -1
  196. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +1 -1
  197. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/_translationstatus.txt +26 -0
  198. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/bg.js +6 -0
  199. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/cs.js +6 -0
  200. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/cy.js +6 -0
  201. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/da.js +6 -0
  202. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/de.js +6 -0
  203. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/el.js +6 -0
  204. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +1 -1
  205. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/eo.js +6 -0
  206. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/et.js +6 -0
  207. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/fa.js +6 -0
  208. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/fi.js +6 -0
  209. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/fr.js +6 -0
  210. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +1 -1
  211. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/hr.js +6 -0
  212. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/it.js +6 -0
  213. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/nb.js +6 -0
  214. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/nl.js +6 -0
  215. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/no.js +6 -0
  216. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/pl.js +6 -0
  217. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/tr.js +6 -0
  218. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/ug.js +6 -0
  219. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/uk.js +6 -0
  220. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/vi.js +6 -0
  221. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/lang/zh-cn.js +6 -0
  222. data/vendor/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +2 -2
  223. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +1 -1
  224. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
  225. data/vendor/assets/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +1 -1
  226. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +1 -1
  227. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/_translationstatus.txt +19 -0
  228. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/cs.js +6 -0
  229. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/cy.js +6 -0
  230. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/de.js +6 -0
  231. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/en.js +1 -1
  232. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/eo.js +6 -0
  233. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/et.js +6 -0
  234. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/fa.js +6 -0
  235. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/fi.js +6 -0
  236. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/fr.js +6 -0
  237. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/hr.js +6 -0
  238. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/it.js +6 -0
  239. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/nb.js +6 -0
  240. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/nl.js +6 -0
  241. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/no.js +6 -0
  242. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/tr.js +6 -0
  243. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/ug.js +6 -0
  244. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/lang/zh-cn.js +6 -0
  245. data/vendor/assets/javascripts/ckeditor/plugins/styles/styles/default.js +1 -1
  246. data/vendor/assets/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +1 -1
  247. data/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +5 -5
  248. data/vendor/assets/javascripts/ckeditor/plugins/tableresize/plugin.js +1 -1
  249. data/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +3 -3
  250. data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +1 -1
  251. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +1 -1
  252. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +1 -1
  253. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/_translationstatus.txt +27 -0
  254. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/bg.js +6 -0
  255. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/cs.js +6 -0
  256. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/cy.js +6 -0
  257. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/da.js +6 -0
  258. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/de.js +6 -0
  259. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/el.js +6 -0
  260. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/en.js +1 -1
  261. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/eo.js +6 -0
  262. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/et.js +6 -0
  263. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/fa.js +6 -0
  264. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/fi.js +6 -0
  265. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/fr.js +6 -0
  266. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/he.js +1 -1
  267. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/hr.js +6 -0
  268. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/it.js +6 -0
  269. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/mk.js +6 -0
  270. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/nb.js +6 -0
  271. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/nl.js +6 -0
  272. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/no.js +6 -0
  273. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/pl.js +6 -0
  274. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/tr.js +6 -0
  275. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/ug.js +6 -0
  276. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/uk.js +6 -0
  277. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/vi.js +6 -0
  278. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/lang/zh-cn.js +6 -0
  279. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/plugin.js +2 -2
  280. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +1 -1
  281. data/vendor/assets/javascripts/ckeditor/plugins/uicolor/yui/yui.js +1 -1
  282. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
  283. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  284. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
  285. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +1 -1
  286. data/vendor/assets/javascripts/ckeditor/plugins/xml/plugin.js +1 -1
  287. data/vendor/assets/javascripts/ckeditor/skins/kama/dialog.css +1 -1
  288. data/vendor/assets/javascripts/ckeditor/skins/kama/editor.css +2 -2
  289. data/vendor/assets/javascripts/ckeditor/skins/kama/skin.js +1 -1
  290. data/vendor/assets/javascripts/ckeditor/skins/kama/templates.css +1 -1
  291. data/vendor/assets/javascripts/ckeditor/skins/office2003/dialog.css +1 -1
  292. data/vendor/assets/javascripts/ckeditor/skins/office2003/editor.css +2 -2
  293. data/vendor/assets/javascripts/ckeditor/skins/office2003/skin.js +1 -1
  294. data/vendor/assets/javascripts/ckeditor/skins/office2003/templates.css +1 -1
  295. data/vendor/assets/javascripts/ckeditor/skins/v2/dialog.css +1 -1
  296. data/vendor/assets/javascripts/ckeditor/skins/v2/editor.css +1 -1
  297. data/vendor/assets/javascripts/ckeditor/skins/v2/skin.js +1 -1
  298. data/vendor/assets/javascripts/ckeditor/skins/v2/templates.css +1 -1
  299. data/vendor/assets/javascripts/ckeditor/themes/default/theme.js +1 -1
  300. metadata +130 -13
  301. data/test/dummy/db/migrate/20110705195648_create_ckeditor_assets.rb +0 -26
  302. data/test/integration/posts_test.rb +0 -41
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem "rails", "3.1.3"
5
+ gem "rails", "3.2.3"
6
6
 
7
7
  platforms :mri_18 do
8
8
  group :test do
@@ -24,8 +24,9 @@ platforms :ruby do
24
24
  end
25
25
 
26
26
  group :active_record do
27
- gem "paperclip"
27
+ gem "paperclip", "~> 3.0.3"
28
28
  gem "carrierwave"
29
+ gem "dragonfly"
29
30
  gem "mini_magick"
30
31
  end
31
32
 
data/README.rdoc CHANGED
@@ -16,7 +16,7 @@ the results users have when publishing it. It brings to the web common editing f
16
16
 
17
17
  Rails 3.2:
18
18
 
19
- gem "ckeditor", "3.7.0.rc3"
19
+ gem "ckeditor", "3.7.0"
20
20
 
21
21
  Rails <= 3.0:
22
22
 
@@ -64,6 +64,10 @@ Autoload ckeditor models folder (application.rb):
64
64
 
65
65
  == Usage
66
66
 
67
+ Mount engine in your routes (config/routes.rb):
68
+
69
+ mount Ckeditor::Engine => "/ckeditor"
70
+
67
71
  Include ckeditor javascripts rails 3.2:
68
72
 
69
73
  //= require ckeditor/init
@@ -127,7 +131,7 @@ Jquery sample:
127
131
 
128
132
  === SimpleForm integration
129
133
 
130
- <%= form.ckeditor :content, :label => false, :input_html => { :toolbar => 'Full' } %>
134
+ <%= form.input :content, :as => :ckeditor, :label => false, :input_html => { :toolbar => 'Full' } %>
131
135
 
132
136
  === Default scope
133
137
 
data/Rakefile CHANGED
@@ -46,6 +46,13 @@ Rake::TestTask.new("test:models") do |t|
46
46
  t.verbose = false
47
47
  end
48
48
 
49
+ Rake::TestTask.new("test:functional") do |t|
50
+ t.libs << 'lib'
51
+ t.libs << 'test'
52
+ t.pattern = 'test/functional/*_test.rb'
53
+ t.verbose = false
54
+ end
55
+
49
56
  task :default => :test
50
57
 
51
58
  RDoc::Task.new do |rdoc|
@@ -0,0 +1,8 @@
1
+ pl:
2
+ ckeditor:
3
+ page_title: "CKEditor Menadżer Plików"
4
+ confirm_delete: "Usunąć plik?"
5
+ buttons:
6
+ cancel: "Anuluj"
7
+ upload: "Wyślij"
8
+ delete: "Skasuj"
data/lib/ckeditor.rb CHANGED
@@ -21,6 +21,7 @@ module Ckeditor
21
21
  module Backend
22
22
  autoload :Paperclip, 'ckeditor/backend/paperclip'
23
23
  autoload :CarrierWave, 'ckeditor/backend/carrierwave'
24
+ autoload :Dragonfly, 'ckeditor/backend/dragonfly'
24
25
  end
25
26
 
26
27
  # Allowed image file types for upload.
@@ -37,6 +38,10 @@ module Ckeditor
37
38
  mattr_accessor :relative_path
38
39
  @@relative_path = '/assets/ckeditor'
39
40
 
41
+ # Ckeditor assets for precompilation
42
+ mattr_accessor :assets
43
+ @@assets = nil
44
+
40
45
  # Default way to setup Ckeditor. Run rails generate ckeditor to create
41
46
  # a fresh initializer with all configuration values.
42
47
  def self.setup
@@ -48,12 +53,14 @@ module Ckeditor
48
53
  end
49
54
 
50
55
  def self.assets
51
- Dir[root_path.join('vendor/assets/javascripts/ckeditor/**', '*.{js,css}')].inject([]) do |list, path|
52
- unless path.include?("/ckeditor/filebrowser/")
53
- list << Pathname.new(path).relative_path_from(root_path.join('vendor/assets/javascripts'))
56
+ @@assets ||= begin
57
+ Dir[root_path.join('vendor/assets/javascripts/ckeditor/**', '*.{js,css}')].inject([]) do |list, path|
58
+ unless path.include?("/ckeditor/filebrowser/")
59
+ list << Pathname.new(path).relative_path_from(root_path.join('vendor/assets/javascripts'))
60
+ end
61
+
62
+ list
54
63
  end
55
-
56
- list
57
64
  end
58
65
  end
59
66
 
@@ -0,0 +1,45 @@
1
+ module Ckeditor
2
+ module Backend
3
+ module Dragonfly
4
+ def self.included(base)
5
+ base.send(:include, InstanceMethods)
6
+ base.send(:extend, ClassMethods)
7
+ end
8
+
9
+ module ClassMethods
10
+ def attachment_file_types
11
+ @attachment_file_types ||= Ckeditor.attachment_file_types.map(&:to_sym).tap do |formats|
12
+ # This is not ideal but Dragonfly doesn't return double
13
+ # extensions. Having said that, the other backends
14
+ # currently don't use attachment_file_types at all.
15
+ [ :bz2, :gz, :lzma, :xz ].each do |f|
16
+ formats << f if formats.include?("tar.#{f}".to_sym)
17
+ end
18
+ end
19
+ end
20
+
21
+ def image_file_types
22
+ @image_file_types ||= Ckeditor.image_file_types.map(&:to_sym)
23
+ end
24
+ end
25
+
26
+ module InstanceMethods
27
+ delegate :url, :path, :size, :image?, :width, :height, :to => :data
28
+
29
+ alias_attribute :data_file_name, :data_name
30
+ alias_attribute :data_content_type, :data_mime_type
31
+ alias_attribute :data_file_size, :data_size
32
+
33
+ private
34
+
35
+ def url_thumb_options
36
+ if data.basename.present?
37
+ { :basename => "thumb_#{data.basename}" }
38
+ else
39
+ {}
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -21,7 +21,10 @@ module Ckeditor
21
21
 
22
22
  module InstanceMethods
23
23
  def geometry
24
- @geometry ||= ::Paperclip::Geometry.from_file(data.to_file)
24
+ @geometry ||= begin
25
+ file = data.respond_to?(:queued_for_write) ? data.queued_for_write[:original] : data.to_file
26
+ ::Paperclip::Geometry.from_file(file)
27
+ end
25
28
  end
26
29
 
27
30
  protected
@@ -24,12 +24,13 @@ module Ckeditor
24
24
  end
25
25
 
26
26
  initializer "ckeditor.hooks" do
27
- if Object.const_defined?("Formtastic")
27
+ # Don't load the hook for Formtastic < 2.0.0 that (it crashes), apparently, didn't define a Formtastic::Inputs.
28
+ if Object.const_defined?("Formtastic") && Formtastic.const_defined?("Inputs")
28
29
  require "ckeditor/hooks/formtastic"
29
30
  end
30
31
 
31
32
  if Object.const_defined?("SimpleForm")
32
- ::SimpleForm::FormBuilder.send :include, Ckeditor::Hooks::SimpleFormBuilder
33
+ require "ckeditor/hooks/simple_form"
33
34
  end
34
35
  end
35
36
  end
@@ -8,16 +8,18 @@ module Ckeditor
8
8
 
9
9
  def cktext_area(object_name, method, options = {})
10
10
  options = { :language => I18n.locale.to_s }.merge(options)
11
- input_html = (options.delete(:input_html) || {})
12
- hash = input_html.stringify_keys
11
+ input_html = (options.delete(:input_html) || {}).stringify_keys
12
+ js_content_for_section = options.delete(:js_content_for)
13
13
 
14
14
  instance_tag = ActionView::Base::InstanceTag.new(object_name, method, self, options.delete(:object))
15
- instance_tag.send(:add_default_name_and_id, hash)
15
+ instance_tag.send(:add_default_name_and_id, input_html)
16
16
 
17
17
  output_buffer = ActiveSupport::SafeBuffer.new
18
18
  output_buffer << instance_tag.to_text_area_tag(input_html)
19
- output_buffer << javascript_tag(Utils.js_replace(hash['id'], options))
20
19
 
20
+ js = Utils.js_replace(input_html['id'], options)
21
+
22
+ output_buffer << (js_content_for_section ? content_for(js_content_for_section, js) : javascript_tag(js))
21
23
  output_buffer
22
24
  end
23
25
  end
@@ -7,11 +7,14 @@ module Ckeditor
7
7
  element_id = sanitize_to_id(name)
8
8
  options = { :language => I18n.locale.to_s }.merge(options)
9
9
  input_html = { :id => element_id }.merge( options.delete(:input_html) || {} )
10
+ js_content_for_section = options.delete(:js_content_for)
10
11
 
11
12
  output_buffer = ActiveSupport::SafeBuffer.new
12
13
  output_buffer << text_area_tag(name, content, input_html)
13
- output_buffer << javascript_tag(Utils.js_replace(element_id, options))
14
14
 
15
+ js = Utils.js_replace(element_id, options)
16
+
17
+ output_buffer << (js_content_for_section ? content_for(js_content_for_section, js) : javascript_tag(js))
15
18
  output_buffer
16
19
  end
17
20
  end
@@ -1,28 +1,17 @@
1
- module Ckeditor
2
- module Hooks
3
- module SimpleFormBuilder
4
- class CkeditorInput < ::SimpleForm::Inputs::Base
5
- def input
6
- @builder.send(:cktext_area, attribute_name, input_html_options)
7
- end
8
- end
9
-
10
- def self.included(base)
11
- base.send(:include, InstanceMethods)
12
- end
13
-
14
- module InstanceMethods
15
- def ckeditor(attribute_name, options={}, &block)
16
- column = find_attribute_column(attribute_name)
17
- input_type = default_input_type(attribute_name, column, options)
18
-
19
- if block_given?
20
- SimpleForm::Inputs::BlockInput.new(self, attribute_name, column, input_type, options, &block).render
21
- else
22
- CkeditorInput.new(self, attribute_name, column, input_type, options).render
23
- end
24
- end
25
- end
1
+ module Ckeditor::Hooks::SimpleForm
2
+ class CkeditorInput < ::SimpleForm::Inputs::Base
3
+ def input
4
+ @builder.cktext_area(attribute_name, input_html_options)
26
5
  end
27
6
  end
28
7
  end
8
+ ::SimpleForm::FormBuilder.map_type :ckeditor, :to => Ckeditor::Hooks::SimpleForm::CkeditorInput
9
+
10
+ # TODO: remove this after a while, SimpleForm::FormBuilder#ckeditor is deprecated.
11
+ class SimpleForm::FormBuilder
12
+ def ckeditor(attribute_name, options={}, &block)
13
+ warn "[DEPRECATION] calling f.ckeditor(:#{attribute_name}, ...) is deprecated, call f.input(:#{attribute_name}, :as => :ckeditor, #{options.to_s[1..-1]}) #{Kernel.caller.first}"
14
+ options[:as] = :ckeditor
15
+ self.input(attribute_name, options, &block)
16
+ end
17
+ end
@@ -1,6 +1,18 @@
1
1
  # encoding: utf-8
2
+ require 'active_support/json/encoding'
3
+
2
4
  module Ckeditor
3
5
  module Utils
6
+ class JavascriptCode < String
7
+ def to_json(options = nil)
8
+ self
9
+ end
10
+
11
+ def as_json(options = nil)
12
+ ActiveSupport::JSON::Variable.new(to_s).freeze
13
+ end
14
+ end
15
+
4
16
  class << self
5
17
  def escape_single_quotes(str)
6
18
  str.gsub('\\','\0\0').gsub('</','<\/').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }
@@ -14,16 +26,12 @@ module Ckeditor
14
26
  end
15
27
 
16
28
  def js_replace(dom_id, options = {})
17
- js_options = applay_options(options)
18
- js = ["if (CKEDITOR.instances['#{dom_id}']) {CKEDITOR.remove(CKEDITOR.instances['#{dom_id}']);}"]
19
-
20
- if js_options.blank?
21
- js << "CKEDITOR.replace('#{dom_id}');"
22
- else
23
- js << "CKEDITOR.replace('#{dom_id}', { #{js_options} });"
24
- end
29
+ js_options = ActiveSupport::JSON.encode(options)
25
30
 
26
- js.join
31
+ js = ["if (CKEDITOR.instances['#{dom_id}']) {CKEDITOR.remove(CKEDITOR.instances['#{dom_id}']);}"]
32
+ js << "CKEDITOR.replace('#{dom_id}', #{js_options});"
33
+
34
+ "$(document).ready(function(){ #{js.join} });".html_safe
27
35
  end
28
36
 
29
37
  def js_fileuploader(uploader_type, options = {})
@@ -31,40 +39,19 @@ module Ckeditor
31
39
 
32
40
  case uploader_type.to_s.downcase
33
41
  when "image" then
34
- options[:action] = "^EDITOR.config.filebrowserImageUploadUrl"
42
+ options[:action] = JavascriptCode.new("EDITOR.config.filebrowserImageUploadUrl")
35
43
  options[:allowedExtensions] = Ckeditor.image_file_types
36
44
  when "flash" then
37
- options[:action] = "^EDITOR.config.filebrowserFlashUploadUrl"
45
+ options[:action] = JavascriptCode.new("EDITOR.config.filebrowserFlashUploadUrl")
38
46
  options[:allowedExtensions] = ["swf"]
39
47
  else
40
- options[:action] = "^EDITOR.config.filebrowserUploadUrl"
48
+ options[:action] = JavascriptCode.new("EDITOR.config.filebrowserUploadUrl")
41
49
  options[:allowedExtensions] = Ckeditor.attachment_file_types
42
50
  end
43
51
 
44
- js_options = applay_options(options)
45
-
46
- "$(document).ready(function(){ new qq.FileUploaderInput({ #{js_options} }); });".html_safe
47
- end
48
-
49
- def applay_options(options)
50
- str = []
51
-
52
- options.each do |key, value|
53
- item = case value
54
- when String then
55
- value.split(//).first == '^' ? value.slice(1..-1) : "'#{value}'"
56
- when Hash then
57
- "{ #{applay_options(value)} }"
58
- when Array then
59
- arr = value.collect { |v| "'#{v}'" }
60
- "[ #{arr.join(',')} ]"
61
- else value
62
- end
63
-
64
- str << %Q{"#{key}": #{item}}
65
- end
52
+ js_options = ActiveSupport::JSON.encode(options)
66
53
 
67
- str.sort.join(',')
54
+ "$(document).ready(function(){ new qq.FileUploaderInput(#{js_options}); });".html_safe
68
55
  end
69
56
 
70
57
  def filethumb(filename)
@@ -1,6 +1,6 @@
1
1
  module Ckeditor
2
2
  module Version
3
- GEM = "3.7.0.rc3".freeze
4
- EDITOR = "3.6.2".freeze
3
+ GEM = "3.7.0".freeze
4
+ EDITOR = "3.6.3".freeze
5
5
  end
6
6
  end
@@ -13,7 +13,7 @@ module Ckeditor
13
13
  :desc => "Backend processor for upload support"
14
14
 
15
15
  class_option :backend, :type => :string, :default => 'paperclip',
16
- :desc => "Paperclip (by default) or carrierwave"
16
+ :desc => "paperclip (default), carrierwave, or dragonfly"
17
17
 
18
18
  def self.source_root
19
19
  @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
@@ -26,6 +26,10 @@ module Ckeditor
26
26
  # copy configuration
27
27
  def copy_initializer
28
28
  template "ckeditor.rb", "config/initializers/ckeditor.rb"
29
+
30
+ if backend == "dragonfly"
31
+ template File.join("base", "dragonfly", "initializer.rb"), "config/initializers/ckeditor_dragonfly.rb"
32
+ end
29
33
  end
30
34
 
31
35
  def mount_engine
@@ -10,8 +10,8 @@ class CreateCkeditorAssets < ActiveRecord::Migration
10
10
  t.string :type, :limit => 30
11
11
 
12
12
  # Uncomment it to save images dimensions, if your need it
13
- # t.integer :width
14
- # t.integer :height
13
+ t.integer :width
14
+ t.integer :height
15
15
 
16
16
  t.timestamps
17
17
  end
@@ -0,0 +1,7 @@
1
+ class Ckeditor::Asset < ActiveRecord::Base
2
+ include Ckeditor::Orm::ActiveRecord::AssetBase
3
+ include Ckeditor::Backend::Dragonfly
4
+
5
+ ckeditor_file_accessor :data
6
+ validates_presence_of :data
7
+ end
@@ -0,0 +1,7 @@
1
+ class Ckeditor::AttachmentFile < Ckeditor::Asset
2
+ validates_property :format, :of => :data, :in => attachment_file_types unless attachment_file_types.empty?
3
+
4
+ def url_thumb
5
+ Ckeditor::Utils.filethumb(filename)
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ class Ckeditor::Picture < Ckeditor::Asset
2
+ validates_property :format, :of => :data, :in => image_file_types unless image_file_types.empty?
3
+ validates_property :image?, :of => :data, :as => true, :message => :invalid
4
+
5
+ def url_content
6
+ data.thumb("800x800>").url
7
+ end
8
+
9
+ def url_thumb
10
+ data.thumb("118x100#").url(url_thumb_options)
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ class CreateCkeditorAssets < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :ckeditor_assets do |t|
4
+ t.string :data_uid, :null => false
5
+ t.string :data_name, :null => false
6
+ t.string :data_mime_type
7
+ t.integer :data_size
8
+
9
+ t.integer :assetable_id
10
+ t.string :assetable_type, :limit => 30
11
+ t.string :type, :limit => 30
12
+
13
+ # Uncomment these to save image dimensions, if your need them.
14
+ t.integer :data_width
15
+ t.integer :data_height
16
+
17
+ t.timestamps
18
+ end
19
+
20
+ add_index "ckeditor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_ckeditor_assetable_type"
21
+ add_index "ckeditor_assets", ["assetable_type", "assetable_id"], :name => "idx_ckeditor_assetable"
22
+ end
23
+
24
+ def self.down
25
+ drop_table :ckeditor_assets
26
+ end
27
+ end