base2_ckeditor 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +39 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +240 -0
  5. data/Rakefile +66 -0
  6. data/app/assets/javascripts/ckeditor/application.js +5 -0
  7. data/app/assets/javascripts/ckeditor/config.js +92 -0
  8. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_add.jpg +0 -0
  9. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_add.png +0 -0
  10. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_del.png +0 -0
  11. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_more.gif +0 -0
  12. data/app/assets/javascripts/ckeditor/filebrowser/images/preloader.gif +0 -0
  13. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/avi.gif +0 -0
  14. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/ckfnothumb.gif +0 -0
  15. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/doc.gif +0 -0
  16. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/docx.gif +0 -0
  17. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/exe.gif +0 -0
  18. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/gz.gif +0 -0
  19. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/htm.gif +0 -0
  20. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/jpg.gif +0 -0
  21. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/mp3.gif +0 -0
  22. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/mpg.gif +0 -0
  23. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/pdf.gif +0 -0
  24. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/psd.gif +0 -0
  25. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/rar.gif +0 -0
  26. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/swf.gif +0 -0
  27. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/tar.gif +0 -0
  28. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/txt.gif +0 -0
  29. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/unknown.gif +0 -0
  30. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/wmv.gif +0 -0
  31. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/xls.gif +0 -0
  32. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/xlsx.gif +0 -0
  33. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/zip.gif +0 -0
  34. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/application.js.erb +220 -0
  35. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/fileuploader.js +1301 -0
  36. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/jquery.min.js +4 -0
  37. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/jquery.tmpl.min.js +10 -0
  38. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/rails.js +373 -0
  39. data/app/assets/javascripts/ckeditor/filebrowser/stylesheets/uploader.css.erb +118 -0
  40. data/app/assets/javascripts/ckeditor/init.js.erb +16 -0
  41. data/app/assets/javascripts/ckeditor/override.js.erb +21 -0
  42. data/app/assets/stylesheets/ckeditor/application.css +6 -0
  43. data/app/controllers/ckeditor/application_controller.rb +27 -0
  44. data/app/controllers/ckeditor/attachment_files_controller.rb +28 -0
  45. data/app/controllers/ckeditor/pictures_controller.rb +28 -0
  46. data/app/helpers/ckeditor/application_helper.rb +11 -0
  47. data/app/views/ckeditor/attachment_files/index.html.erb +15 -0
  48. data/app/views/ckeditor/pictures/index.html.erb +15 -0
  49. data/app/views/ckeditor/shared/_asset.html.erb +20 -0
  50. data/app/views/ckeditor/shared/_asset_tmpl.html.erb +22 -0
  51. data/app/views/layouts/ckeditor/application.html.erb +30 -0
  52. data/config/locales/cs.ckeditor.yml +8 -0
  53. data/config/locales/de.ckeditor.yml +8 -0
  54. data/config/locales/el-GR.cdkeditor.yml +8 -0
  55. data/config/locales/en.ckeditor.yml +8 -0
  56. data/config/locales/es.ckeditor.yml +8 -0
  57. data/config/locales/fr.ckeditor.yml +8 -0
  58. data/config/locales/hu.ckeditor.yml +8 -0
  59. data/config/locales/it.ckeditor.yml +8 -0
  60. data/config/locales/nl.ckeditor.yml +8 -0
  61. data/config/locales/pl.ckeditor.yml +8 -0
  62. data/config/locales/pt-BR.ckeditor.yml +8 -0
  63. data/config/locales/pt-PT.ckeditor.yml +8 -0
  64. data/config/locales/ru.ckeditor.yml +8 -0
  65. data/config/locales/sv-SE.ckeditor.yml +8 -0
  66. data/config/locales/uk.ckeditor.yml +8 -0
  67. data/config/locales/zh-CN.ckeditor.yml +8 -0
  68. data/config/routes.rb +4 -0
  69. data/lib/ckeditor.rb +184 -0
  70. data/lib/ckeditor/backend/carrierwave.rb +64 -0
  71. data/lib/ckeditor/backend/dragonfly.rb +45 -0
  72. data/lib/ckeditor/backend/paperclip.rb +56 -0
  73. data/lib/ckeditor/engine.rb +38 -0
  74. data/lib/ckeditor/helpers/controllers.rb +34 -0
  75. data/lib/ckeditor/helpers/form_builder.rb +11 -0
  76. data/lib/ckeditor/helpers/form_helper.rb +11 -0
  77. data/lib/ckeditor/helpers/view_helper.rb +11 -0
  78. data/lib/ckeditor/hooks/cancan.rb +46 -0
  79. data/lib/ckeditor/hooks/formtastic.rb +12 -0
  80. data/lib/ckeditor/hooks/simple_form.rb +20 -0
  81. data/lib/ckeditor/http.rb +90 -0
  82. data/lib/ckeditor/orm/active_record.rb +24 -0
  83. data/lib/ckeditor/orm/base.rb +50 -0
  84. data/lib/ckeditor/orm/mongoid.rb +41 -0
  85. data/lib/ckeditor/text_area.rb +52 -0
  86. data/lib/ckeditor/utils.rb +87 -0
  87. data/lib/ckeditor/version.rb +6 -0
  88. data/lib/generators/ckeditor/install_generator.rb +83 -0
  89. data/lib/generators/ckeditor/templates/active_record/carrierwave/ckeditor/asset.rb +7 -0
  90. data/lib/generators/ckeditor/templates/active_record/carrierwave/ckeditor/attachment_file.rb +7 -0
  91. data/lib/generators/ckeditor/templates/active_record/carrierwave/ckeditor/picture.rb +7 -0
  92. data/lib/generators/ckeditor/templates/active_record/carrierwave/migration.rb +26 -0
  93. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/asset.rb +7 -0
  94. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/attachment_file.rb +7 -0
  95. data/lib/generators/ckeditor/templates/active_record/dragonfly/ckeditor/picture.rb +12 -0
  96. data/lib/generators/ckeditor/templates/active_record/dragonfly/migration.rb +27 -0
  97. data/lib/generators/ckeditor/templates/active_record/paperclip/ckeditor/asset.rb +4 -0
  98. data/lib/generators/ckeditor/templates/active_record/paperclip/ckeditor/attachment_file.rb +12 -0
  99. data/lib/generators/ckeditor/templates/active_record/paperclip/ckeditor/picture.rb +13 -0
  100. data/lib/generators/ckeditor/templates/active_record/paperclip/migration.rb +26 -0
  101. data/lib/generators/ckeditor/templates/base/carrierwave/uploaders/ckeditor_attachment_file_uploader.rb +36 -0
  102. data/lib/generators/ckeditor/templates/base/carrierwave/uploaders/ckeditor_picture_uploader.rb +47 -0
  103. data/lib/generators/ckeditor/templates/base/dragonfly/initializer.rb +26 -0
  104. data/lib/generators/ckeditor/templates/ckeditor.rb +23 -0
  105. data/lib/generators/ckeditor/templates/mongoid/carrierwave/ckeditor/asset.rb +7 -0
  106. data/lib/generators/ckeditor/templates/mongoid/carrierwave/ckeditor/attachment_file.rb +7 -0
  107. data/lib/generators/ckeditor/templates/mongoid/carrierwave/ckeditor/picture.rb +7 -0
  108. data/lib/generators/ckeditor/templates/mongoid/paperclip/ckeditor/asset.rb +5 -0
  109. data/lib/generators/ckeditor/templates/mongoid/paperclip/ckeditor/attachment_file.rb +12 -0
  110. data/lib/generators/ckeditor/templates/mongoid/paperclip/ckeditor/picture.rb +13 -0
  111. data/test/ckeditor_test.rb +66 -0
  112. data/test/controllers/attachment_files_controller_test.rb +63 -0
  113. data/test/controllers/pictures_controller_test.rb +64 -0
  114. data/test/dummy/Rakefile +7 -0
  115. data/test/dummy/app/assets/javascripts/application.js +11 -0
  116. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  117. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  118. data/test/dummy/app/controllers/application_controller.rb +4 -0
  119. data/test/dummy/app/controllers/posts_controller.rb +83 -0
  120. data/test/dummy/app/helpers/application_helper.rb +2 -0
  121. data/test/dummy/app/helpers/posts_helper.rb +2 -0
  122. data/test/dummy/app/models/post.rb +17 -0
  123. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  124. data/test/dummy/app/views/posts/_form.html.erb +30 -0
  125. data/test/dummy/app/views/posts/edit.html.erb +6 -0
  126. data/test/dummy/app/views/posts/index.html.erb +27 -0
  127. data/test/dummy/app/views/posts/new.html.erb +5 -0
  128. data/test/dummy/app/views/posts/show.html.erb +5 -0
  129. data/test/dummy/config.ru +4 -0
  130. data/test/dummy/config/application.rb +63 -0
  131. data/test/dummy/config/boot.rb +10 -0
  132. data/test/dummy/config/database.yml +25 -0
  133. data/test/dummy/config/environment.rb +5 -0
  134. data/test/dummy/config/environments/development.rb +37 -0
  135. data/test/dummy/config/environments/production.rb +67 -0
  136. data/test/dummy/config/environments/test.rb +37 -0
  137. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  138. data/test/dummy/config/initializers/ckeditor.rb +10 -0
  139. data/test/dummy/config/initializers/inflections.rb +15 -0
  140. data/test/dummy/config/initializers/mime_types.rb +5 -0
  141. data/test/dummy/config/initializers/secret_token.rb +7 -0
  142. data/test/dummy/config/initializers/session_store.rb +8 -0
  143. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  144. data/test/dummy/config/locales/en.yml +5 -0
  145. data/test/dummy/config/mongoid.yml +2 -0
  146. data/test/dummy/config/routes.rb +6 -0
  147. data/test/dummy/db/migrate/20110623120047_create_posts.rb +14 -0
  148. data/test/dummy/log/test.log +288 -0
  149. data/test/dummy/public/404.html +26 -0
  150. data/test/dummy/public/422.html +26 -0
  151. data/test/dummy/public/500.html +26 -0
  152. data/test/dummy/public/favicon.ico +0 -0
  153. data/test/dummy/script/rails +6 -0
  154. data/test/dummy/test/fixtures/files/rails.png +0 -0
  155. data/test/dummy/test/fixtures/files/rails.tar.gz +0 -0
  156. data/test/functional/posts_controller_test.rb +41 -0
  157. data/test/generators/install_generator_test.rb +97 -0
  158. data/test/integration/navigation_test.rb +7 -0
  159. data/test/models/attachment_file_test.rb +22 -0
  160. data/test/models/picture_test.rb +21 -0
  161. data/test/models/utils_test.rb +19 -0
  162. data/test/orm/active_record.rb +1 -0
  163. data/test/orm/mongoid.rb +6 -0
  164. data/test/support/controller_hooks.rb +27 -0
  165. data/test/support/helpers.rb +30 -0
  166. data/test/support/integration_case.rb +5 -0
  167. data/test/support/raw_post.rb +9 -0
  168. data/test/support/routes.txt +4 -0
  169. data/test/test_helper.rb +38 -0
  170. data/test/tmp/app/models/ckeditor/asset.rb +5 -0
  171. data/test/tmp/app/models/ckeditor/attachment_file.rb +12 -0
  172. data/test/tmp/app/models/ckeditor/picture.rb +13 -0
  173. data/test/tmp/config/initializers/ckeditor.rb +23 -0
  174. data/test/tmp/config/routes.rb +6 -0
  175. data/vendor/assets/javascripts/ckeditor/CHANGES.md +342 -0
  176. data/vendor/assets/javascripts/ckeditor/LICENSE.md +1264 -0
  177. data/vendor/assets/javascripts/ckeditor/README.md +39 -0
  178. data/vendor/assets/javascripts/ckeditor/adapters/jquery.js +10 -0
  179. data/vendor/assets/javascripts/ckeditor/build-config.js +167 -0
  180. data/vendor/assets/javascripts/ckeditor/ckeditor.js +973 -0
  181. data/vendor/assets/javascripts/ckeditor/config.js +10 -0
  182. data/vendor/assets/javascripts/ckeditor/contents.css +106 -0
  183. data/vendor/assets/javascripts/ckeditor/lang/en.js +5 -0
  184. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
  185. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  186. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
  187. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +7 -0
  188. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  189. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  190. data/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
  191. data/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +13 -0
  192. data/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  193. data/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +9 -0
  194. data/vendor/assets/javascripts/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
  195. data/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +24 -0
  196. data/vendor/assets/javascripts/ckeditor/plugins/flash/dialogs/flash.js +24 -0
  197. data/vendor/assets/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  198. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/button.js +8 -0
  199. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +8 -0
  200. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/form.js +8 -0
  201. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +8 -0
  202. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +8 -0
  203. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/select.js +20 -0
  204. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +8 -0
  205. data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +10 -0
  206. data/vendor/assets/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  207. data/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
  208. data/vendor/assets/javascripts/ckeditor/plugins/icons_hidpi.png +0 -0
  209. data/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +10 -0
  210. data/vendor/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  211. data/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +43 -0
  212. data/vendor/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
  213. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +8 -0
  214. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +37 -0
  215. data/vendor/assets/javascripts/ckeditor/plugins/link/images/anchor.png +0 -0
  216. data/vendor/assets/javascripts/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  217. data/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +10 -0
  218. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
  219. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon.png +0 -0
  220. data/vendor/assets/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  221. data/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +31 -0
  222. data/vendor/assets/javascripts/ckeditor/plugins/preview/preview.html +10 -0
  223. data/vendor/assets/javascripts/ckeditor/plugins/scayt/LICENSE.md +28 -0
  224. data/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +25 -0
  225. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +20 -0
  226. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  227. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  228. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  229. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  230. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  231. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  232. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  233. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  234. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  235. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  236. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  237. data/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  238. data/vendor/assets/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +10 -0
  239. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  240. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angel_smile.png +0 -0
  241. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  242. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/angry_smile.png +0 -0
  243. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  244. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/broken_heart.png +0 -0
  245. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  246. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/confused_smile.png +0 -0
  247. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  248. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/cry_smile.png +0 -0
  249. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  250. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/devil_smile.png +0 -0
  251. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  252. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/embarrassed_smile.gif +0 -0
  253. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/embarrassed_smile.png +0 -0
  254. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  255. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/envelope.png +0 -0
  256. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  257. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/heart.png +0 -0
  258. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  259. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/kiss.png +0 -0
  260. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  261. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/lightbulb.png +0 -0
  262. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  263. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/omg_smile.png +0 -0
  264. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  265. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/regular_smile.png +0 -0
  266. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  267. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/sad_smile.png +0 -0
  268. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  269. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/shades_smile.png +0 -0
  270. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  271. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/teeth_smile.png +0 -0
  272. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  273. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_down.png +0 -0
  274. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  275. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_up.png +0 -0
  276. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/tongue_smile.gif +0 -0
  277. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/tongue_smile.png +0 -0
  278. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  279. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  280. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png +0 -0
  281. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  282. data/vendor/assets/javascripts/ckeditor/plugins/smiley/images/wink_smile.png +0 -0
  283. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  284. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  285. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
  286. data/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +21 -0
  287. data/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -0
  288. data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +84 -0
  289. data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +10 -0
  290. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  291. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  292. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  293. data/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  294. data/vendor/assets/javascripts/ckeditor/plugins/wsc/LICENSE.md +28 -0
  295. data/vendor/assets/javascripts/ckeditor/plugins/wsc/README.md +25 -0
  296. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
  297. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmp.html +118 -0
  298. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  299. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
  300. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +67 -0
  301. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
  302. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog.css +5 -0
  303. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie.css +5 -0
  304. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie7.css +5 -0
  305. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie8.css +5 -0
  306. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  307. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_opera.css +5 -0
  308. data/vendor/assets/javascripts/ckeditor/skins/moono/editor.css +5 -0
  309. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_gecko.css +5 -0
  310. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie.css +5 -0
  311. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie7.css +5 -0
  312. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie8.css +5 -0
  313. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_iequirks.css +5 -0
  314. data/vendor/assets/javascripts/ckeditor/skins/moono/icons.png +0 -0
  315. data/vendor/assets/javascripts/ckeditor/skins/moono/icons_hidpi.png +0 -0
  316. data/vendor/assets/javascripts/ckeditor/skins/moono/images/arrow.png +0 -0
  317. data/vendor/assets/javascripts/ckeditor/skins/moono/images/close.png +0 -0
  318. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  319. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  320. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  321. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  322. data/vendor/assets/javascripts/ckeditor/skins/moono/images/lock-open.png +0 -0
  323. data/vendor/assets/javascripts/ckeditor/skins/moono/images/lock.png +0 -0
  324. data/vendor/assets/javascripts/ckeditor/skins/moono/images/refresh.png +0 -0
  325. data/vendor/assets/javascripts/ckeditor/skins/moono/readme.md +51 -0
  326. data/vendor/assets/javascripts/ckeditor/styles.js +111 -0
  327. metadata +460 -0
@@ -0,0 +1,16 @@
1
+ //= require_self
2
+ //= require ckeditor/ckeditor
3
+
4
+ (function() {
5
+ if (typeof window['CKEDITOR_BASEPATH'] === "undefined" || window['CKEDITOR_BASEPATH'] === null) {
6
+ window['CKEDITOR_BASEPATH'] = "<%= asset_path('ckeditor') %>/";
7
+ }
8
+ }).call(this);
9
+
10
+ function ck_load() {
11
+ $('.ckeditor').each(function(){
12
+ CKEDITOR.replace( $(this).attr('name') );
13
+ });
14
+ }
15
+
16
+ $(document).on('page:load', ck_load);
@@ -0,0 +1,21 @@
1
+ window['CKEDITOR_BASEPATH'] = "/assets/ckeditor/";
2
+
3
+ window.CKEDITOR_ASSETS_MAPPING = {
4
+ <% Rails.application.assets.each_logical_path(->(path){ path =~ /ckeditor/ && path != 'ckeditor/override.js' }) do |asset| %>
5
+ "<%= asset %>": "<%= asset_path(asset) %>",
6
+ <% end %>
7
+ }
8
+
9
+ window.CKEDITOR_GETURL = function( resource ) {
10
+ // If this is not a full or absolute path.
11
+ if ( resource.indexOf( ':/' ) == -1 && resource.indexOf( '/' ) !== 0 )
12
+ resource = this.basePath + resource;
13
+
14
+ // Add the timestamp, except for directories.
15
+ if ( resource.charAt( resource.length - 1 ) != '/' ){
16
+ var url = resource.match( /^(.*?:\/\/[^\/]*)\/assets\/(.+)/ );
17
+ if(url) resource = url[1] + (CKEDITOR_ASSETS_MAPPING[url[2]] || '/assets/' + url[2]);
18
+ }
19
+
20
+ return resource;
21
+ }
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
5
+ *= require ckeditor/filebrowser/stylesheets/uploader.css
6
+ */
@@ -0,0 +1,27 @@
1
+ class Ckeditor::ApplicationController < ::ApplicationController
2
+ respond_to :html, :json
3
+ layout 'ckeditor/application'
4
+
5
+ before_filter :find_asset, :only => [:destroy]
6
+ before_filter :ckeditor_authorize!
7
+ before_filter :authorize_resource
8
+
9
+ protected
10
+
11
+ def respond_with_asset(asset)
12
+ file = params[:CKEditor].blank? ? params[:qqfile] : params[:upload]
13
+ asset.data = Ckeditor::Http.normalize_param(file, request)
14
+
15
+ callback = ckeditor_before_create_asset(asset)
16
+
17
+ if callback && asset.save
18
+ body = params[:CKEditor].blank? ? asset.to_json(:only=>[:id, :type]) : %Q"<script type='text/javascript'>
19
+ window.parent.CKEDITOR.tools.callFunction(#{params[:CKEditorFuncNum]}, '#{config.relative_url_root}#{Ckeditor::Utils.escape_single_quotes(asset.url_content)}');
20
+ </script>"
21
+
22
+ render :text => body
23
+ else
24
+ render :nothing => true
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ class Ckeditor::AttachmentFilesController < Ckeditor::ApplicationController
2
+
3
+ def index
4
+ @attachments = Ckeditor.attachment_file_adapter.find_all(ckeditor_attachment_files_scope)
5
+ respond_with(@attachments)
6
+ end
7
+
8
+ def create
9
+ @attachment = Ckeditor.attachment_file_model.new
10
+ respond_with_asset(@attachment)
11
+ end
12
+
13
+ def destroy
14
+ @attachment.destroy
15
+ respond_with(@attachment, :location => attachment_files_path)
16
+ end
17
+
18
+ protected
19
+
20
+ def find_asset
21
+ @attachment = Ckeditor.attachment_file_adapter.get!(params[:id])
22
+ end
23
+
24
+ def authorize_resource
25
+ model = (@attachment || Ckeditor.attachment_file_model)
26
+ @authorization_adapter.try(:authorize, params[:action], model)
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ class Ckeditor::PicturesController < Ckeditor::ApplicationController
2
+
3
+ def index
4
+ @pictures = Ckeditor.picture_adapter.find_all(ckeditor_pictures_scope)
5
+ respond_with(@pictures)
6
+ end
7
+
8
+ def create
9
+ @picture = Ckeditor.picture_model.new
10
+ respond_with_asset(@picture)
11
+ end
12
+
13
+ def destroy
14
+ @picture.destroy
15
+ respond_with(@picture, :location => pictures_path)
16
+ end
17
+
18
+ protected
19
+
20
+ def find_asset
21
+ @picture = Ckeditor.picture_adapter.get!(params[:id])
22
+ end
23
+
24
+ def authorize_resource
25
+ model = (@picture || Ckeditor.picture_model)
26
+ @authorization_adapter.try(:authorize, params[:action], model)
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ module Ckeditor::ApplicationHelper
2
+ def assets_pipeline_enabled?
3
+ if Gem::Version.new(::Rails.version.to_s) >= Gem::Version.new('4.0.0')
4
+ defined?(Sprockets::Rails)
5
+ elsif Gem::Version.new(::Rails.version.to_s) >= Gem::Version.new('3.0.0')
6
+ Rails.application.config.assets.enabled
7
+ else
8
+ false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ <div id="fileupload" class="gal-holder">
2
+ <div class="gal-item">
3
+ <div class="fileupload-button gal-upload-holder">
4
+ <%= link_to I18n.t(:upload, :scope => [:ckeditor, :buttons]), 'javascript:void(0)', :class => "add" %>
5
+ </div>
6
+ </div>
7
+
8
+ <div class="fileupload-list">
9
+ <%= render :partial => 'ckeditor/shared/asset', :collection => @attachments %>
10
+ </div>
11
+ </div>
12
+
13
+ <script type="text/javascript">
14
+ <%= Ckeditor::Utils.js_fileuploader('attachments') %>
15
+ </script>
@@ -0,0 +1,15 @@
1
+ <div id="fileupload" class="gal-holder">
2
+ <div class="gal-item">
3
+ <div class="fileupload-button gal-upload-holder">
4
+ <%= link_to I18n.t(:upload, :scope => [:ckeditor, :buttons]), 'javascript:void(0)', :class => "add" %>
5
+ </div>
6
+ </div>
7
+
8
+ <div class="fileupload-list">
9
+ <%= render :partial => 'ckeditor/shared/asset', :collection => @pictures %>
10
+ </div>
11
+ </div>
12
+
13
+ <script type="text/javascript">
14
+ <%= Ckeditor::Utils.js_fileuploader('image') %>
15
+ </script>
@@ -0,0 +1,20 @@
1
+ <%= content_tag(:div, :id => dom_id(asset), :class => "gal-item", :"data-url" => image_path(asset.url_content)) do %>
2
+ <%= link_to image_tag('ckeditor/filebrowser/images/gal_del.png',
3
+ :title => I18n.t('ckeditor.buttons.delete')),
4
+ polymorphic_path(asset, :format => :json),
5
+ :remote => true,
6
+ :method => :delete,
7
+ :confirm => t('ckeditor.confirm_delete'),
8
+ :class => "fileupload-cancel gal-del" %>
9
+
10
+ <div class="fileupload-file gal-inner-holder">
11
+ <div class="img"><%= image_tag(asset.url_thumb, :title => asset.filename) %></div>
12
+ <div class="img-data">
13
+ <div class="img-name"><%= asset.filename %></div>
14
+ <div class="time-size">
15
+ <div class="time"><%= asset.format_created_at %></div>
16
+ <div class="fileupload-size size"><%= number_to_human_size(asset.size) if asset.size %></div>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ <% end %>
@@ -0,0 +1,22 @@
1
+ <script id="fileupload_tmpl" type="text/x-jquery-tmpl">
2
+ <div id="asset_${id}" class="gal-item" data-url="${url_content}">
3
+ <%= link_to image_tag('ckeditor/filebrowser/images/gal_del.png',
4
+ :title => I18n.t('ckeditor.buttons.delete')),
5
+ "/ckeditor/${controller}/${id}.json",
6
+ :remote => true,
7
+ :method => :delete,
8
+ :confirm => t('ckeditor.confirm_delete'),
9
+ :class => "fileupload-cancel gal-del" %>
10
+
11
+ <div class="fileupload-file gal-inner-holder">
12
+ <div class="img"><img src="${url_thumb}" title="${filename}"></div>
13
+ <div class="img-data">
14
+ <div class="img-name">${filename}</div>
15
+ <div class="time-size">
16
+ <div class="time">${format_created_at}</div>
17
+ <div class="fileupload-size size">${size}</div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </script>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <meta name="robots" content="noindex, nofollow">
6
+ <%= csrf_meta_tag %>
7
+ <title><%= I18n.t('page_title', :scope => [:ckeditor]) %></title>
8
+
9
+ <% if assets_pipeline_enabled? -%>
10
+ <%= stylesheet_link_tag "ckeditor/application" %>
11
+ <%= javascript_include_tag "ckeditor/application" %>
12
+ <% else -%>
13
+ <link href="/javascripts/ckeditor/filebrowser/stylesheets/uploader.css" type="text/css" rel="stylesheet">
14
+ <% ["jquery.js", "jquery.tmpl.js", "fileuploader.js", "rails.js", "application.js"].each do |js| -%>
15
+ <script src="/javascripts/ckeditor/filebrowser/javascripts/<%= js %>" type="text/javascript"></script>
16
+ <% end -%>
17
+ <% end -%>
18
+
19
+ <script type="text/javascript">
20
+ var CKEditorFuncNum = $.QueryString["CKEditorFuncNum"];
21
+ var CKEditorName = $.QueryString["CKEditor"];
22
+ var CKEDITOR = window.opener.CKEDITOR;
23
+ var EDITOR = CKEDITOR.instances[CKEditorName];
24
+ </script>
25
+ </head>
26
+ <body>
27
+ <%= yield %>
28
+ <%= render :partial => 'ckeditor/shared/asset_tmpl' %>
29
+ </body>
30
+ </html>
@@ -0,0 +1,8 @@
1
+ cs:
2
+ ckeditor:
3
+ page_title: "CKEditor Správce souborů"
4
+ confirm_delete: "Smazat soubor ?"
5
+ buttons:
6
+ cancel: "Zrušit"
7
+ upload: "Nahrát"
8
+ delete: "Smazat"
@@ -0,0 +1,8 @@
1
+ de:
2
+ ckeditor:
3
+ page_title: "CKEditor Dateimanager"
4
+ confirm_delete: "Datei löschen?"
5
+ buttons:
6
+ cancel: "Abbrechen"
7
+ upload: "Hochladen"
8
+ delete: "Löschen"
@@ -0,0 +1,8 @@
1
+ "el-GR":
2
+ ckeditor:
3
+ page_title: "CKEditor Διαχείρηση Αρχείων"
4
+ confirm_delete: "Διαγραφή αρχείου;"
5
+ buttons:
6
+ cancel: "Ακύρωση"
7
+ upload: "Μεταφόρτωση"
8
+ delete: "Διαγραφή"
@@ -0,0 +1,8 @@
1
+ en:
2
+ ckeditor:
3
+ page_title: "CKEditor Files Manager"
4
+ confirm_delete: "Delete file?"
5
+ buttons:
6
+ cancel: "Cancel"
7
+ upload: "Upload"
8
+ delete: "Delete"
@@ -0,0 +1,8 @@
1
+ es:
2
+ ckeditor:
3
+ page_title: "Administrador de Archivos CKEditor"
4
+ confirm_delete: "¿Borrar archivo?"
5
+ buttons:
6
+ cancel: "Cancelar"
7
+ upload: "Subir"
8
+ delete: "Borrar"
@@ -0,0 +1,8 @@
1
+ fr:
2
+ ckeditor:
3
+ page_title: "CKEditor - Gestionnaire de fichiers"
4
+ confirm_delete: "Supprimer le fichier ?"
5
+ buttons:
6
+ cancel: "Annuler"
7
+ upload: "Ajouter"
8
+ delete: "Supprimer"
@@ -0,0 +1,8 @@
1
+ hu:
2
+ ckeditor:
3
+ page_title: "CKEditor fájlkezelő"
4
+ confirm_delete: "Biztosan töröljük a fájlt?"
5
+ buttons:
6
+ cancel: "Mégsem"
7
+ upload: "Feltöltés"
8
+ delete: "Törlés"
@@ -0,0 +1,8 @@
1
+ it:
2
+ ckeditor:
3
+ page_title: "CKEditor Files Manager"
4
+ confirm_delete: "Cancellare il file?"
5
+ buttons:
6
+ cancel: "Annulla"
7
+ upload: "Carica"
8
+ delete: "Elimina"
@@ -0,0 +1,8 @@
1
+ nl:
2
+ ckeditor:
3
+ page_title: "CKEditor Files Manager"
4
+ confirm_delete: "Delete file?"
5
+ buttons:
6
+ cancel: "Cancel"
7
+ upload: "Upload"
8
+ delete: "Delete"
@@ -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"
@@ -0,0 +1,8 @@
1
+ "pt-BR":
2
+ ckeditor:
3
+ page_title: "Gerenciador de arquivos do CKEditor"
4
+ confirm_delete: "Apagar arquivo?"
5
+ buttons:
6
+ cancel: "Cancelar"
7
+ upload: "Enviar"
8
+ delete: "Apagar"
@@ -0,0 +1,8 @@
1
+ "pt-PT":
2
+ ckeditor:
3
+ page_title: "Gestor de arquivos do CKEditor"
4
+ confirm_delete: "Apagar arquivo?"
5
+ buttons:
6
+ cancel: "Cancelar"
7
+ upload: "Enviar"
8
+ delete: "Apagar"
@@ -0,0 +1,8 @@
1
+ ru:
2
+ ckeditor:
3
+ page_title: "CKEditor Загрузка файлов"
4
+ confirm_delete: "Удалить файл?"
5
+ buttons:
6
+ cancel: "Отмена"
7
+ upload: "Загрузить"
8
+ delete: "Удалить"
@@ -0,0 +1,8 @@
1
+ "sv-SE":
2
+ ckeditor:
3
+ page_title: "CKEditor filhanterare"
4
+ confirm_delete: "Ta bort fil?"
5
+ buttons:
6
+ cancel: "Avbryt"
7
+ upload: "Ladda upp"
8
+ delete: "Ta bort"
@@ -0,0 +1,8 @@
1
+ uk:
2
+ ckeditor:
3
+ page_title: "CKEditor Завантаження файлів"
4
+ confirm_delete: "Видалити файл?"
5
+ buttons:
6
+ cancel: "Відміна"
7
+ upload: "Завантажити"
8
+ delete: "Видалити"
@@ -0,0 +1,8 @@
1
+ zh-CN:
2
+ ckeditor:
3
+ page_title: "CKEditor - 文件管理"
4
+ confirm_delete: "删除文件?"
5
+ buttons:
6
+ cancel: "取消"
7
+ upload: "上传"
8
+ delete: "删除"
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ Ckeditor::Engine.routes.draw do
2
+ resources :pictures, :only => [:index, :create, :destroy]
3
+ resources :attachment_files, :only => [:index, :create, :destroy]
4
+ end
data/lib/ckeditor.rb ADDED
@@ -0,0 +1,184 @@
1
+ require 'orm_adapter'
2
+ require 'pathname'
3
+
4
+ module Ckeditor
5
+ autoload :Utils, 'ckeditor/utils'
6
+ autoload :Http, 'ckeditor/http'
7
+ autoload :TextArea, 'ckeditor/text_area'
8
+
9
+ module Helpers
10
+ autoload :ViewHelper, 'ckeditor/helpers/view_helper'
11
+ autoload :FormHelper, 'ckeditor/helpers/form_helper'
12
+ autoload :FormBuilder, 'ckeditor/helpers/form_builder'
13
+ autoload :Controllers, 'ckeditor/helpers/controllers'
14
+ end
15
+
16
+ module Hooks
17
+ autoload :SimpleFormBuilder, 'ckeditor/hooks/simple_form'
18
+ autoload :CanCanAuthorization, 'ckeditor/hooks/cancan'
19
+ end
20
+
21
+ module Backend
22
+ autoload :Paperclip, 'ckeditor/backend/paperclip'
23
+ autoload :CarrierWave, 'ckeditor/backend/carrierwave'
24
+ autoload :Dragonfly, 'ckeditor/backend/dragonfly'
25
+ end
26
+
27
+ IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/pjpeg', 'image/tiff', 'image/x-png']
28
+
29
+ DEFAULT_AUTHORIZE = Proc.new {}
30
+
31
+ AUTHORIZATION_ADAPTERS = {}
32
+
33
+ DEFAULT_CURRENT_USER = Proc.new do
34
+ request.env["warden"].try(:user) || respond_to?(:current_user) && current_user
35
+ end
36
+
37
+ # Allowed image file types for upload.
38
+ # Set to nil or [] (empty array) for all file types
39
+ mattr_accessor :image_file_types
40
+ @@image_file_types = ["jpg", "jpeg", "png", "gif", "tiff"]
41
+
42
+ # Allowed attachment file types for upload.
43
+ # Set to nil or [] (empty array) for all file types
44
+ mattr_accessor :attachment_file_types
45
+ @@attachment_file_types = ["doc", "docx", "xls", "odt", "ods", "pdf", "rar", "zip", "tar", "tar.gz", "swf"]
46
+
47
+ # Ckeditor files destination path
48
+ mattr_accessor :relative_path
49
+ @@relative_path = '/assets/ckeditor'
50
+
51
+ # Ckeditor assets for precompilation
52
+ mattr_accessor :assets
53
+ @@assets = nil
54
+
55
+ # Turn on/off filename parameterize
56
+ mattr_accessor :parameterize_filenames
57
+ @@parameterize_filenames = true
58
+
59
+ # Model classes
60
+ @@picture_model = nil
61
+ @@attachment_file_model = nil
62
+
63
+ # Default way to setup Ckeditor. Run rails generate ckeditor to create
64
+ # a fresh initializer with all configuration values.
65
+ #
66
+ # @example
67
+ # Ckeditor.setup do |config|
68
+ # config.parameterize_filenames = false
69
+ # config.attachment_file_types += ["xml"]
70
+ # end
71
+ #
72
+ def self.setup
73
+ yield self
74
+ end
75
+
76
+ def self.root_path
77
+ @root_path ||= Pathname.new(File.dirname(File.expand_path('../', __FILE__)))
78
+ end
79
+
80
+ # All css and js files from ckeditor folder
81
+ def self.assets
82
+ @@assets ||= Utils.select_assets("ckeditor", "vendor/assets/javascripts") << "ckeditor/init.js"
83
+ end
84
+
85
+ def self.picture_model(&block)
86
+ if block_given?
87
+ self.picture_model = block
88
+ else
89
+ @@picture_model_class ||= begin
90
+ if @@picture_model.respond_to? :call
91
+ @@picture_model.call
92
+ else
93
+ @@picture_model || Ckeditor::Picture
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+ def self.picture_model=(value)
100
+ @@picture_model_class = nil
101
+ @@picture_model = value
102
+ end
103
+
104
+ def self.picture_adapter
105
+ picture_model.to_adapter
106
+ end
107
+
108
+ def self.attachment_file_model(&block)
109
+ if block_given?
110
+ self.attachment_file_model = block
111
+ else
112
+ @@attachment_file_model_class ||= begin
113
+ if @@attachment_file_model.respond_to? :call
114
+ @@attachment_file_model.call
115
+ else
116
+ @@attachment_file_model || Ckeditor::AttachmentFile
117
+ end
118
+ end
119
+ end
120
+ end
121
+
122
+ def self.attachment_file_model=(value)
123
+ @@attachment_file_model_class = nil
124
+ @@attachment_file_model = value
125
+ end
126
+
127
+ def self.attachment_file_adapter
128
+ attachment_file_model.to_adapter
129
+ end
130
+
131
+ # Setup authorization to be run as a before filter
132
+ # This is run inside the controller instance so you can setup any authorization you need to.
133
+ #
134
+ # By default, there is no authorization.
135
+ #
136
+ # @example Custom
137
+ # Ckeditor.setup do |config|
138
+ # config.authorize_with do
139
+ # redirect_to root_path unless warden.user.is_admin?
140
+ # end
141
+ # end
142
+ #
143
+ # To use an authorization adapter, pass the name of the adapter. For example,
144
+ # to use with CanCan[https://github.com/ryanb/cancan], pass it like this.
145
+ #
146
+ # @example CanCan
147
+ # Ckeditor.setup do |config|
148
+ # config.authorize_with :cancan
149
+ # end
150
+ #
151
+ def self.authorize_with(*args, &block)
152
+ extension = args.shift
153
+
154
+ if extension
155
+ @authorize = Proc.new {
156
+ @authorization_adapter = Ckeditor::AUTHORIZATION_ADAPTERS[extension].new(*([self] + args).compact)
157
+ }
158
+ else
159
+ @authorize = block if block
160
+ end
161
+
162
+ @authorize || DEFAULT_AUTHORIZE
163
+ end
164
+
165
+ # Setup a different method to determine the current user or admin logged in.
166
+ # This is run inside the controller instance and made available as a helper.
167
+ #
168
+ # By default, request.env["warden"].user or current_user will be used.
169
+ #
170
+ # @example Custom
171
+ # Ckeditor.setup do |config|
172
+ # config.current_user_method do
173
+ # current_account
174
+ # end
175
+ # end
176
+ #
177
+ def self.current_user_method(&block)
178
+ @current_user = block if block
179
+ @current_user || DEFAULT_CURRENT_USER
180
+ end
181
+ end
182
+
183
+ require 'ckeditor/engine'
184
+ require 'ckeditor/version'