base2_ckeditor 4.0.7

Sign up to get free protection for your applications and to get access to all the features.
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'