ckeditor 3.6.2 → 3.6.3

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 (713) hide show
  1. data/README.rdoc +10 -2
  2. data/app/views/ckeditor/attachment_files/index.html.erb +1 -1
  3. data/app/views/ckeditor/pictures/index.html.erb +1 -1
  4. data/app/views/ckeditor/shared/_asset.html.erb +2 -1
  5. data/app/views/ckeditor/shared/_asset_tmpl.html.erb +2 -1
  6. data/app/views/layouts/ckeditor.html.erb +14 -7
  7. data/config/locales/es.ckeditor.yml +8 -0
  8. data/lib/ckeditor.rb +17 -0
  9. data/lib/ckeditor/utils.rb +1 -1
  10. data/lib/ckeditor/version.rb +1 -1
  11. data/lib/generators/ckeditor/install_generator.rb +7 -4
  12. data/lib/generators/ckeditor/templates/ckeditor.rb +3 -0
  13. data/lib/generators/ckeditor/templates/ckeditor/config.js +2 -2
  14. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/javascripts/application.js +3 -2
  15. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/stylesheets/uploader.css +11 -13
  16. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/dialogs/attachment.js +1 -1
  17. data/test/ckeditor_test.rb +14 -0
  18. data/test/dummy/db/test.sqlite3 +0 -0
  19. data/test/dummy/log/test.log +6076 -8817
  20. data/test/generators/install_generator_test.rb +13 -0
  21. data/test/tmp/app/models/ckeditor/asset.rb +5 -0
  22. data/test/tmp/app/models/ckeditor/attachment_file.rb +15 -0
  23. data/test/tmp/app/models/ckeditor/picture.rb +13 -0
  24. metadata +161 -1534
  25. data/test/dummy/log/development.log +0 -818
  26. data/test/dummy/log/production.log +0 -0
  27. data/test/dummy/log/server.log +0 -0
  28. data/test/dummy/public/ckeditor_assets/attachments/4e53723cde2f151212000001/rails_tar.gz +0 -0
  29. data/test/dummy/public/ckeditor_assets/attachments/4e537333de2f15123b000001/rails_tar.gz +0 -0
  30. data/test/dummy/public/ckeditor_assets/attachments/4e537621de2f1514e9000001/rails_tar.gz +0 -0
  31. data/test/dummy/public/ckeditor_assets/attachments/4e53766ade2f15152c000001/rails_tar.gz +0 -0
  32. data/test/dummy/public/ckeditor_assets/attachments/4e53781ede2f1515b7000001/rails.tar.gz +0 -0
  33. data/test/dummy/public/ckeditor_assets/attachments/4e537849de2f151651000001/rails_tar.gz +0 -0
  34. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/content_rails.png +0 -0
  35. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/original_rails.png +0 -0
  36. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/thumb_rails.png +0 -0
  37. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/content_rails.png +0 -0
  38. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/original_rails.png +0 -0
  39. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/thumb_rails.png +0 -0
  40. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/content_rails.png +0 -0
  41. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/original_rails.png +0 -0
  42. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/thumb_rails.png +0 -0
  43. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/content_rails.png +0 -0
  44. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/original_rails.png +0 -0
  45. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/thumb_rails.png +0 -0
  46. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/content_rails.png +0 -0
  47. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/rails.png +0 -0
  48. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/thumb_rails.png +0 -0
  49. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/content_rails.png +0 -0
  50. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/original_rails.png +0 -0
  51. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/thumb_rails.png +0 -0
  52. data/test/dummy/public/uploads/tmp/20110823-1231-4694-7541/rails.png +0 -0
  53. data/test/dummy/public/uploads/tmp/20110823-1232-4702-5501/rails.png +0 -0
  54. data/test/dummy/public/uploads/tmp/20110823-1245-5487-0966/rails.png +0 -0
  55. data/test/dummy/public/uploads/tmp/20110823-1245-5487-1597/rails.tar.gz +0 -0
  56. data/test/dummy/public/uploads/tmp/20110823-1245-5487-3892/rails.tar.gz +0 -0
  57. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5787/rails.tar.gz +0 -0
  58. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5790/rails.png +0 -0
  59. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6435/rails.png +0 -0
  60. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6978/rails.png +0 -0
  61. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7226/rails.tar.gz +0 -0
  62. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7290/rails.tar.gz +0 -0
  63. data/test/dummy/public/uploads/tmp/20110823-1245-5487-9279/rails.png +0 -0
  64. data/test/tmp/config/initializers/ckeditor.rb +0 -18
  65. data/test/tmp/public/javascripts/ckeditor/CHANGES.html +0 -1367
  66. data/test/tmp/public/javascripts/ckeditor/INSTALL.html +0 -92
  67. data/test/tmp/public/javascripts/ckeditor/LICENSE.html +0 -1327
  68. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/application.xml +0 -32
  69. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/run.bat +0 -9
  70. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/run.sh +0 -8
  71. data/test/tmp/public/javascripts/ckeditor/_samples/adobeair/sample.html +0 -45
  72. data/test/tmp/public/javascripts/ckeditor/_samples/ajax.html +0 -98
  73. data/test/tmp/public/javascripts/ckeditor/_samples/api.html +0 -192
  74. data/test/tmp/public/javascripts/ckeditor/_samples/api_dialog.html +0 -198
  75. data/test/tmp/public/javascripts/ckeditor/_samples/api_dialog/my_dialog.js +0 -28
  76. data/test/tmp/public/javascripts/ckeditor/_samples/asp/index.html +0 -103
  77. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  78. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  79. data/test/tmp/public/javascripts/ckeditor/_samples/assets/output_xhtml.css +0 -204
  80. data/test/tmp/public/javascripts/ckeditor/_samples/assets/parsesample.css +0 -70
  81. data/test/tmp/public/javascripts/ckeditor/_samples/assets/swfobject.js +0 -18
  82. data/test/tmp/public/javascripts/ckeditor/_samples/autogrow.html +0 -107
  83. data/test/tmp/public/javascripts/ckeditor/_samples/bbcode.html +0 -125
  84. data/test/tmp/public/javascripts/ckeditor/_samples/devtools.html +0 -94
  85. data/test/tmp/public/javascripts/ckeditor/_samples/divreplace.html +0 -154
  86. data/test/tmp/public/javascripts/ckeditor/_samples/enterkey.html +0 -115
  87. data/test/tmp/public/javascripts/ckeditor/_samples/fullpage.html +0 -82
  88. data/test/tmp/public/javascripts/ckeditor/_samples/index.html +0 -116
  89. data/test/tmp/public/javascripts/ckeditor/_samples/jqueryadapter.html +0 -99
  90. data/test/tmp/public/javascripts/ckeditor/_samples/output_for_flash.html +0 -275
  91. data/test/tmp/public/javascripts/ckeditor/_samples/output_html.html +0 -285
  92. data/test/tmp/public/javascripts/ckeditor/_samples/output_xhtml.html +0 -177
  93. data/test/tmp/public/javascripts/ckeditor/_samples/php/index.html +0 -47
  94. data/test/tmp/public/javascripts/ckeditor/_samples/placeholder.html +0 -81
  95. data/test/tmp/public/javascripts/ckeditor/_samples/readonly.html +0 -91
  96. data/test/tmp/public/javascripts/ckeditor/_samples/replacebyclass.html +0 -64
  97. data/test/tmp/public/javascripts/ckeditor/_samples/replacebycode.html +0 -97
  98. data/test/tmp/public/javascripts/ckeditor/_samples/sample.css +0 -163
  99. data/test/tmp/public/javascripts/ckeditor/_samples/sample.js +0 -65
  100. data/test/tmp/public/javascripts/ckeditor/_samples/sharedspaces.html +0 -153
  101. data/test/tmp/public/javascripts/ckeditor/_samples/skins.html +0 -110
  102. data/test/tmp/public/javascripts/ckeditor/_samples/stylesheetparser.html +0 -93
  103. data/test/tmp/public/javascripts/ckeditor/_samples/tableresize.html +0 -115
  104. data/test/tmp/public/javascripts/ckeditor/_samples/ui_color.html +0 -129
  105. data/test/tmp/public/javascripts/ckeditor/_samples/ui_languages.html +0 -134
  106. data/test/tmp/public/javascripts/ckeditor/_source/adapters/jquery.js +0 -306
  107. data/test/tmp/public/javascripts/ckeditor/_source/core/_bootstrap.js +0 -87
  108. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor.js +0 -141
  109. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor_base.js +0 -227
  110. data/test/tmp/public/javascripts/ckeditor/_source/core/ckeditor_basic.js +0 -238
  111. data/test/tmp/public/javascripts/ckeditor/_source/core/command.js +0 -209
  112. data/test/tmp/public/javascripts/ckeditor/_source/core/commanddefinition.js +0 -129
  113. data/test/tmp/public/javascripts/ckeditor/_source/core/config.js +0 -431
  114. data/test/tmp/public/javascripts/ckeditor/_source/core/dataprocessor.js +0 -65
  115. data/test/tmp/public/javascripts/ckeditor/_source/core/dom.js +0 -20
  116. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/comment.js +0 -32
  117. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/document.js +0 -251
  118. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/documentfragment.js +0 -49
  119. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/domobject.js +0 -258
  120. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/element.js +0 -1681
  121. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/elementpath.js +0 -119
  122. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/event.js +0 -145
  123. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/node.js +0 -695
  124. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/nodelist.js +0 -26
  125. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/range.js +0 -2032
  126. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/rangelist.js +0 -213
  127. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/text.js +0 -128
  128. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/walker.js +0 -462
  129. data/test/tmp/public/javascripts/ckeditor/_source/core/dom/window.js +0 -96
  130. data/test/tmp/public/javascripts/ckeditor/_source/core/dtd.js +0 -266
  131. data/test/tmp/public/javascripts/ckeditor/_source/core/editor.js +0 -1059
  132. data/test/tmp/public/javascripts/ckeditor/_source/core/editor_basic.js +0 -186
  133. data/test/tmp/public/javascripts/ckeditor/_source/core/env.js +0 -291
  134. data/test/tmp/public/javascripts/ckeditor/_source/core/event.js +0 -342
  135. data/test/tmp/public/javascripts/ckeditor/_source/core/eventInfo.js +0 -120
  136. data/test/tmp/public/javascripts/ckeditor/_source/core/focusmanager.js +0 -152
  137. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser.js +0 -224
  138. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/basicwriter.js +0 -145
  139. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/cdata.js +0 -43
  140. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/comment.js +0 -60
  141. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/element.js +0 -308
  142. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/filter.js +0 -288
  143. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/fragment.js +0 -497
  144. data/test/tmp/public/javascripts/ckeditor/_source/core/htmlparser/text.js +0 -55
  145. data/test/tmp/public/javascripts/ckeditor/_source/core/lang.js +0 -157
  146. data/test/tmp/public/javascripts/ckeditor/_source/core/loader.js +0 -240
  147. data/test/tmp/public/javascripts/ckeditor/_source/core/plugindefinition.js +0 -83
  148. data/test/tmp/public/javascripts/ckeditor/_source/core/plugins.js +0 -103
  149. data/test/tmp/public/javascripts/ckeditor/_source/core/resourcemanager.js +0 -238
  150. data/test/tmp/public/javascripts/ckeditor/_source/core/scriptloader.js +0 -180
  151. data/test/tmp/public/javascripts/ckeditor/_source/core/skins.js +0 -184
  152. data/test/tmp/public/javascripts/ckeditor/_source/core/themes.js +0 -19
  153. data/test/tmp/public/javascripts/ckeditor/_source/core/tools.js +0 -763
  154. data/test/tmp/public/javascripts/ckeditor/_source/core/ui.js +0 -128
  155. data/test/tmp/public/javascripts/ckeditor/_source/lang/_languages.js +0 -84
  156. data/test/tmp/public/javascripts/ckeditor/_source/lang/_translationstatus.txt +0 -61
  157. data/test/tmp/public/javascripts/ckeditor/_source/lang/af.js +0 -812
  158. data/test/tmp/public/javascripts/ckeditor/_source/lang/ar.js +0 -812
  159. data/test/tmp/public/javascripts/ckeditor/_source/lang/bg.js +0 -812
  160. data/test/tmp/public/javascripts/ckeditor/_source/lang/bn.js +0 -812
  161. data/test/tmp/public/javascripts/ckeditor/_source/lang/bs.js +0 -812
  162. data/test/tmp/public/javascripts/ckeditor/_source/lang/ca.js +0 -812
  163. data/test/tmp/public/javascripts/ckeditor/_source/lang/cs.js +0 -812
  164. data/test/tmp/public/javascripts/ckeditor/_source/lang/cy.js +0 -812
  165. data/test/tmp/public/javascripts/ckeditor/_source/lang/da.js +0 -812
  166. data/test/tmp/public/javascripts/ckeditor/_source/lang/de.js +0 -812
  167. data/test/tmp/public/javascripts/ckeditor/_source/lang/el.js +0 -812
  168. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-au.js +0 -812
  169. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-ca.js +0 -812
  170. data/test/tmp/public/javascripts/ckeditor/_source/lang/en-gb.js +0 -812
  171. data/test/tmp/public/javascripts/ckeditor/_source/lang/en.js +0 -812
  172. data/test/tmp/public/javascripts/ckeditor/_source/lang/eo.js +0 -812
  173. data/test/tmp/public/javascripts/ckeditor/_source/lang/es.js +0 -812
  174. data/test/tmp/public/javascripts/ckeditor/_source/lang/et.js +0 -812
  175. data/test/tmp/public/javascripts/ckeditor/_source/lang/eu.js +0 -812
  176. data/test/tmp/public/javascripts/ckeditor/_source/lang/fa.js +0 -812
  177. data/test/tmp/public/javascripts/ckeditor/_source/lang/fi.js +0 -812
  178. data/test/tmp/public/javascripts/ckeditor/_source/lang/fo.js +0 -812
  179. data/test/tmp/public/javascripts/ckeditor/_source/lang/fr-ca.js +0 -812
  180. data/test/tmp/public/javascripts/ckeditor/_source/lang/fr.js +0 -812
  181. data/test/tmp/public/javascripts/ckeditor/_source/lang/gl.js +0 -812
  182. data/test/tmp/public/javascripts/ckeditor/_source/lang/gu.js +0 -812
  183. data/test/tmp/public/javascripts/ckeditor/_source/lang/he.js +0 -812
  184. data/test/tmp/public/javascripts/ckeditor/_source/lang/hi.js +0 -812
  185. data/test/tmp/public/javascripts/ckeditor/_source/lang/hr.js +0 -812
  186. data/test/tmp/public/javascripts/ckeditor/_source/lang/hu.js +0 -812
  187. data/test/tmp/public/javascripts/ckeditor/_source/lang/is.js +0 -812
  188. data/test/tmp/public/javascripts/ckeditor/_source/lang/it.js +0 -812
  189. data/test/tmp/public/javascripts/ckeditor/_source/lang/ja.js +0 -812
  190. data/test/tmp/public/javascripts/ckeditor/_source/lang/ka.js +0 -812
  191. data/test/tmp/public/javascripts/ckeditor/_source/lang/km.js +0 -812
  192. data/test/tmp/public/javascripts/ckeditor/_source/lang/ko.js +0 -812
  193. data/test/tmp/public/javascripts/ckeditor/_source/lang/lt.js +0 -812
  194. data/test/tmp/public/javascripts/ckeditor/_source/lang/lv.js +0 -812
  195. data/test/tmp/public/javascripts/ckeditor/_source/lang/mn.js +0 -812
  196. data/test/tmp/public/javascripts/ckeditor/_source/lang/ms.js +0 -812
  197. data/test/tmp/public/javascripts/ckeditor/_source/lang/nb.js +0 -812
  198. data/test/tmp/public/javascripts/ckeditor/_source/lang/nl.js +0 -812
  199. data/test/tmp/public/javascripts/ckeditor/_source/lang/no.js +0 -812
  200. data/test/tmp/public/javascripts/ckeditor/_source/lang/pl.js +0 -812
  201. data/test/tmp/public/javascripts/ckeditor/_source/lang/pt-br.js +0 -811
  202. data/test/tmp/public/javascripts/ckeditor/_source/lang/pt.js +0 -812
  203. data/test/tmp/public/javascripts/ckeditor/_source/lang/ro.js +0 -812
  204. data/test/tmp/public/javascripts/ckeditor/_source/lang/ru.js +0 -812
  205. data/test/tmp/public/javascripts/ckeditor/_source/lang/sk.js +0 -812
  206. data/test/tmp/public/javascripts/ckeditor/_source/lang/sl.js +0 -812
  207. data/test/tmp/public/javascripts/ckeditor/_source/lang/sr-latn.js +0 -812
  208. data/test/tmp/public/javascripts/ckeditor/_source/lang/sr.js +0 -812
  209. data/test/tmp/public/javascripts/ckeditor/_source/lang/sv.js +0 -811
  210. data/test/tmp/public/javascripts/ckeditor/_source/lang/th.js +0 -812
  211. data/test/tmp/public/javascripts/ckeditor/_source/lang/tr.js +0 -811
  212. data/test/tmp/public/javascripts/ckeditor/_source/lang/uk.js +0 -812
  213. data/test/tmp/public/javascripts/ckeditor/_source/lang/vi.js +0 -812
  214. data/test/tmp/public/javascripts/ckeditor/_source/lang/zh-cn.js +0 -812
  215. data/test/tmp/public/javascripts/ckeditor/_source/lang/zh.js +0 -812
  216. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +0 -222
  217. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/en.js +0 -108
  218. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/he.js +0 -216
  219. data/test/tmp/public/javascripts/ckeditor/_source/plugins/a11yhelp/plugin.js +0 -47
  220. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/dialogs/about.js +0 -76
  221. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  222. data/test/tmp/public/javascripts/ckeditor/_source/plugins/about/plugin.js +0 -24
  223. data/test/tmp/public/javascripts/ckeditor/_source/plugins/adobeair/plugin.js +0 -228
  224. data/test/tmp/public/javascripts/ckeditor/_source/plugins/ajax/plugin.js +0 -152
  225. data/test/tmp/public/javascripts/ckeditor/_source/plugins/autogrow/plugin.js +0 -88
  226. data/test/tmp/public/javascripts/ckeditor/_source/plugins/basicstyles/plugin.js +0 -101
  227. data/test/tmp/public/javascripts/ckeditor/_source/plugins/bbcode/plugin.js +0 -931
  228. data/test/tmp/public/javascripts/ckeditor/_source/plugins/bidi/plugin.js +0 -334
  229. data/test/tmp/public/javascripts/ckeditor/_source/plugins/blockquote/plugin.js +0 -305
  230. data/test/tmp/public/javascripts/ckeditor/_source/plugins/button/plugin.js +0 -290
  231. data/test/tmp/public/javascripts/ckeditor/_source/plugins/clipboard/dialogs/paste.js +0 -223
  232. data/test/tmp/public/javascripts/ckeditor/_source/plugins/clipboard/plugin.js +0 -453
  233. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colorbutton/plugin.js +0 -294
  234. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +0 -340
  235. data/test/tmp/public/javascripts/ckeditor/_source/plugins/colordialog/plugin.js +0 -15
  236. data/test/tmp/public/javascripts/ckeditor/_source/plugins/contextmenu/plugin.js +0 -177
  237. data/test/tmp/public/javascripts/ckeditor/_source/plugins/devtools/lang/en.js +0 -16
  238. data/test/tmp/public/javascripts/ckeditor/_source/plugins/devtools/plugin.js +0 -173
  239. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialog/dialogDefinition.js +0 -1166
  240. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialog/plugin.js +0 -3289
  241. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialogadvtab/plugin.js +0 -207
  242. data/test/tmp/public/javascripts/ckeditor/_source/plugins/dialogui/plugin.js +0 -1541
  243. data/test/tmp/public/javascripts/ckeditor/_source/plugins/div/dialogs/div.js +0 -535
  244. data/test/tmp/public/javascripts/ckeditor/_source/plugins/div/plugin.js +0 -121
  245. data/test/tmp/public/javascripts/ckeditor/_source/plugins/docprops/dialogs/docprops.js +0 -686
  246. data/test/tmp/public/javascripts/ckeditor/_source/plugins/docprops/plugin.js +0 -22
  247. data/test/tmp/public/javascripts/ckeditor/_source/plugins/domiterator/plugin.js +0 -361
  248. data/test/tmp/public/javascripts/ckeditor/_source/plugins/editingblock/plugin.js +0 -275
  249. data/test/tmp/public/javascripts/ckeditor/_source/plugins/elementspath/plugin.js +0 -218
  250. data/test/tmp/public/javascripts/ckeditor/_source/plugins/enterkey/plugin.js +0 -413
  251. data/test/tmp/public/javascripts/ckeditor/_source/plugins/entities/plugin.js +0 -250
  252. data/test/tmp/public/javascripts/ckeditor/_source/plugins/fakeobjects/plugin.js +0 -175
  253. data/test/tmp/public/javascripts/ckeditor/_source/plugins/filebrowser/plugin.js +0 -524
  254. data/test/tmp/public/javascripts/ckeditor/_source/plugins/find/dialogs/find.js +0 -903
  255. data/test/tmp/public/javascripts/ckeditor/_source/plugins/find/plugin.js +0 -47
  256. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/dialogs/flash.js +0 -673
  257. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  258. data/test/tmp/public/javascripts/ckeditor/_source/plugins/flash/plugin.js +0 -154
  259. data/test/tmp/public/javascripts/ckeditor/_source/plugins/floatpanel/plugin.js +0 -428
  260. data/test/tmp/public/javascripts/ckeditor/_source/plugins/font/plugin.js +0 -234
  261. data/test/tmp/public/javascripts/ckeditor/_source/plugins/format/plugin.js +0 -197
  262. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/button.js +0 -118
  263. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/checkbox.js +0 -153
  264. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/form.js +0 -177
  265. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +0 -100
  266. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/radio.js +0 -135
  267. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/select.js +0 -558
  268. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textarea.js +0 -114
  269. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textfield.js +0 -199
  270. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  271. data/test/tmp/public/javascripts/ckeditor/_source/plugins/forms/plugin.js +0 -288
  272. data/test/tmp/public/javascripts/ckeditor/_source/plugins/horizontalrule/plugin.js +0 -48
  273. data/test/tmp/public/javascripts/ckeditor/_source/plugins/htmldataprocessor/plugin.js +0 -595
  274. data/test/tmp/public/javascripts/ckeditor/_source/plugins/htmlwriter/plugin.js +0 -319
  275. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/dialogs/iframe.js +0 -229
  276. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/images/placeholder.png +0 -0
  277. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframe/plugin.js +0 -87
  278. data/test/tmp/public/javascripts/ckeditor/_source/plugins/iframedialog/plugin.js +0 -188
  279. data/test/tmp/public/javascripts/ckeditor/_source/plugins/image/dialogs/image.js +0 -1406
  280. data/test/tmp/public/javascripts/ckeditor/_source/plugins/image/plugin.js +0 -81
  281. data/test/tmp/public/javascripts/ckeditor/_source/plugins/indent/plugin.js +0 -461
  282. data/test/tmp/public/javascripts/ckeditor/_source/plugins/justify/plugin.js +0 -253
  283. data/test/tmp/public/javascripts/ckeditor/_source/plugins/keystrokes/plugin.js +0 -225
  284. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/dialogs/anchor.js +0 -144
  285. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/dialogs/link.js +0 -1424
  286. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  287. data/test/tmp/public/javascripts/ckeditor/_source/plugins/link/plugin.js +0 -374
  288. data/test/tmp/public/javascripts/ckeditor/_source/plugins/list/plugin.js +0 -734
  289. data/test/tmp/public/javascripts/ckeditor/_source/plugins/listblock/plugin.js +0 -268
  290. data/test/tmp/public/javascripts/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +0 -225
  291. data/test/tmp/public/javascripts/ckeditor/_source/plugins/liststyle/plugin.js +0 -66
  292. data/test/tmp/public/javascripts/ckeditor/_source/plugins/maximize/plugin.js +0 -352
  293. data/test/tmp/public/javascripts/ckeditor/_source/plugins/menu/plugin.js +0 -541
  294. data/test/tmp/public/javascripts/ckeditor/_source/plugins/menubutton/plugin.js +0 -98
  295. data/test/tmp/public/javascripts/ckeditor/_source/plugins/newpage/plugin.js +0 -54
  296. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  297. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pagebreak/plugin.js +0 -164
  298. data/test/tmp/public/javascripts/ckeditor/_source/plugins/panel/plugin.js +0 -403
  299. data/test/tmp/public/javascripts/ckeditor/_source/plugins/panelbutton/plugin.js +0 -144
  300. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastefromword/filter/default.js +0 -1367
  301. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastefromword/plugin.js +0 -141
  302. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +0 -67
  303. data/test/tmp/public/javascripts/ckeditor/_source/plugins/pastetext/plugin.js +0 -98
  304. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +0 -71
  305. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/lang/en.js +0 -16
  306. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/lang/he.js +0 -16
  307. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/placeholder.gif +0 -0
  308. data/test/tmp/public/javascripts/ckeditor/_source/plugins/placeholder/plugin.js +0 -171
  309. data/test/tmp/public/javascripts/ckeditor/_source/plugins/popup/plugin.js +0 -64
  310. data/test/tmp/public/javascripts/ckeditor/_source/plugins/preview/plugin.js +0 -109
  311. data/test/tmp/public/javascripts/ckeditor/_source/plugins/print/plugin.js +0 -42
  312. data/test/tmp/public/javascripts/ckeditor/_source/plugins/removeformat/plugin.js +0 -185
  313. data/test/tmp/public/javascripts/ckeditor/_source/plugins/resize/plugin.js +0 -168
  314. data/test/tmp/public/javascripts/ckeditor/_source/plugins/richcombo/plugin.js +0 -381
  315. data/test/tmp/public/javascripts/ckeditor/_source/plugins/save/plugin.js +0 -56
  316. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/options.js +0 -537
  317. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +0 -71
  318. data/test/tmp/public/javascripts/ckeditor/_source/plugins/scayt/plugin.js +0 -964
  319. data/test/tmp/public/javascripts/ckeditor/_source/plugins/selection/plugin.js +0 -1601
  320. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  321. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  322. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  323. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  324. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  325. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  326. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  327. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  328. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  329. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  330. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  331. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showblocks/plugin.js +0 -160
  332. data/test/tmp/public/javascripts/ckeditor/_source/plugins/showborders/plugin.js +0 -207
  333. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/dialogs/smiley.js +0 -224
  334. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  335. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  336. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  337. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  338. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  339. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  340. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  341. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  342. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  343. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  344. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  345. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  346. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  347. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  348. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  349. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  350. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  351. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  352. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  353. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  354. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  355. data/test/tmp/public/javascripts/ckeditor/_source/plugins/smiley/plugin.js +0 -94
  356. data/test/tmp/public/javascripts/ckeditor/_source/plugins/sourcearea/plugin.js +0 -209
  357. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +0 -350
  358. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/lang/en.js +0 -89
  359. data/test/tmp/public/javascripts/ckeditor/_source/plugins/specialchar/plugin.js +0 -70
  360. data/test/tmp/public/javascripts/ckeditor/_source/plugins/styles/plugin.js +0 -1696
  361. data/test/tmp/public/javascripts/ckeditor/_source/plugins/styles/styles/default.js +0 -88
  362. data/test/tmp/public/javascripts/ckeditor/_source/plugins/stylescombo/plugin.js +0 -218
  363. data/test/tmp/public/javascripts/ckeditor/_source/plugins/stylesheetparser/plugin.js +0 -148
  364. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tab/plugin.js +0 -367
  365. data/test/tmp/public/javascripts/ckeditor/_source/plugins/table/dialogs/table.js +0 -602
  366. data/test/tmp/public/javascripts/ckeditor/_source/plugins/table/plugin.js +0 -78
  367. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tableresize/plugin.js +0 -443
  368. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +0 -525
  369. data/test/tmp/public/javascripts/ckeditor/_source/plugins/tabletools/plugin.js +0 -1194
  370. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/dialogs/templates.js +0 -234
  371. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/plugin.js +0 -99
  372. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/default.js +0 -94
  373. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  374. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  375. data/test/tmp/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  376. data/test/tmp/public/javascripts/ckeditor/_source/plugins/toolbar/plugin.js +0 -545
  377. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +0 -205
  378. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/lang/en.js +0 -15
  379. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/lang/he.js +0 -15
  380. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/plugin.js +0 -37
  381. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  382. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  383. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  384. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  385. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  386. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +0 -15
  387. data/test/tmp/public/javascripts/ckeditor/_source/plugins/uicolor/yui/yui.js +0 -71
  388. data/test/tmp/public/javascripts/ckeditor/_source/plugins/undo/plugin.js +0 -580
  389. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +0 -49
  390. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  391. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.css +0 -82
  392. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.js +0 -192
  393. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wsc/plugin.js +0 -33
  394. data/test/tmp/public/javascripts/ckeditor/_source/plugins/wysiwygarea/plugin.js +0 -1351
  395. data/test/tmp/public/javascripts/ckeditor/_source/plugins/xml/plugin.js +0 -170
  396. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/dialog.css +0 -943
  397. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/editor.css +0 -25
  398. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/elementspath.css +0 -73
  399. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons.css +0 -366
  400. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons.png +0 -0
  401. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  402. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  403. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  404. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  405. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  406. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  407. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  408. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  409. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  410. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/mainui.css +0 -203
  411. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/menu.css +0 -232
  412. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/panel.css +0 -217
  413. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/presets.css +0 -49
  414. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/reset.css +0 -84
  415. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/richcombo.css +0 -287
  416. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/skin.js +0 -236
  417. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/templates.css +0 -88
  418. data/test/tmp/public/javascripts/ckeditor/_source/skins/kama/toolbar.css +0 -407
  419. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/dialog.css +0 -844
  420. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/editor.css +0 -25
  421. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/elementspath.css +0 -74
  422. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons.css +0 -363
  423. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons.png +0 -0
  424. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  425. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  426. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  427. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  428. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  429. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  430. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  431. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  432. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/mainui.css +0 -153
  433. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/menu.css +0 -229
  434. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/panel.css +0 -212
  435. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/presets.css +0 -49
  436. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/reset.css +0 -84
  437. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/richcombo.css +0 -309
  438. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/skin.js +0 -74
  439. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/templates.css +0 -87
  440. data/test/tmp/public/javascripts/ckeditor/_source/skins/office2003/toolbar.css +0 -522
  441. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/dialog.css +0 -861
  442. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/editor.css +0 -25
  443. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/elementspath.css +0 -74
  444. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons.css +0 -363
  445. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons.png +0 -0
  446. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  447. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  448. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  449. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  450. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  451. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  452. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  453. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  454. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  455. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/mainui.css +0 -162
  456. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/menu.css +0 -232
  457. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/panel.css +0 -212
  458. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/presets.css +0 -50
  459. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/reset.css +0 -84
  460. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/richcombo.css +0 -302
  461. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/skin.js +0 -70
  462. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/templates.css +0 -87
  463. data/test/tmp/public/javascripts/ckeditor/_source/skins/v2/toolbar.css +0 -465
  464. data/test/tmp/public/javascripts/ckeditor/_source/themes/default/theme.js +0 -395
  465. data/test/tmp/public/javascripts/ckeditor/adapters/jquery.js +0 -6
  466. data/test/tmp/public/javascripts/ckeditor/ckeditor.js +0 -147
  467. data/test/tmp/public/javascripts/ckeditor/ckeditor.pack +0 -211
  468. data/test/tmp/public/javascripts/ckeditor/ckeditor_basic.js +0 -8
  469. data/test/tmp/public/javascripts/ckeditor/ckeditor_basic_source.js +0 -20
  470. data/test/tmp/public/javascripts/ckeditor/ckeditor_source.js +0 -25
  471. data/test/tmp/public/javascripts/ckeditor/config.js +0 -65
  472. data/test/tmp/public/javascripts/ckeditor/contents.css +0 -25
  473. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_add.jpg +0 -0
  474. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_add.png +0 -0
  475. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_del.png +0 -0
  476. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/gal_more.gif +0 -0
  477. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/preloader.gif +0 -0
  478. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/ckfnothumb.gif +0 -0
  479. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/mp3.gif +0 -0
  480. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/pdf.gif +0 -0
  481. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/rar.gif +0 -0
  482. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/swf.gif +0 -0
  483. data/test/tmp/public/javascripts/ckeditor/filebrowser/images/thumbs/xls.gif +0 -0
  484. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/application.js +0 -222
  485. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/fileuploader.js +0 -1301
  486. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/jquery.js +0 -18
  487. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/jquery.tmpl.js +0 -10
  488. data/test/tmp/public/javascripts/ckeditor/filebrowser/javascripts/rails.js +0 -363
  489. data/test/tmp/public/javascripts/ckeditor/filebrowser/stylesheets/uploader.css +0 -117
  490. data/test/tmp/public/javascripts/ckeditor/images/spacer.gif +0 -0
  491. data/test/tmp/public/javascripts/ckeditor/lang/_languages.js +0 -6
  492. data/test/tmp/public/javascripts/ckeditor/lang/_translationstatus.txt +0 -61
  493. data/test/tmp/public/javascripts/ckeditor/lang/af.js +0 -6
  494. data/test/tmp/public/javascripts/ckeditor/lang/ar.js +0 -6
  495. data/test/tmp/public/javascripts/ckeditor/lang/bg.js +0 -6
  496. data/test/tmp/public/javascripts/ckeditor/lang/bn.js +0 -6
  497. data/test/tmp/public/javascripts/ckeditor/lang/bs.js +0 -6
  498. data/test/tmp/public/javascripts/ckeditor/lang/ca.js +0 -6
  499. data/test/tmp/public/javascripts/ckeditor/lang/cs.js +0 -6
  500. data/test/tmp/public/javascripts/ckeditor/lang/cy.js +0 -6
  501. data/test/tmp/public/javascripts/ckeditor/lang/da.js +0 -6
  502. data/test/tmp/public/javascripts/ckeditor/lang/de.js +0 -6
  503. data/test/tmp/public/javascripts/ckeditor/lang/el.js +0 -6
  504. data/test/tmp/public/javascripts/ckeditor/lang/en-au.js +0 -6
  505. data/test/tmp/public/javascripts/ckeditor/lang/en-ca.js +0 -6
  506. data/test/tmp/public/javascripts/ckeditor/lang/en-gb.js +0 -6
  507. data/test/tmp/public/javascripts/ckeditor/lang/en.js +0 -6
  508. data/test/tmp/public/javascripts/ckeditor/lang/eo.js +0 -6
  509. data/test/tmp/public/javascripts/ckeditor/lang/es.js +0 -6
  510. data/test/tmp/public/javascripts/ckeditor/lang/et.js +0 -6
  511. data/test/tmp/public/javascripts/ckeditor/lang/eu.js +0 -6
  512. data/test/tmp/public/javascripts/ckeditor/lang/fa.js +0 -6
  513. data/test/tmp/public/javascripts/ckeditor/lang/fi.js +0 -6
  514. data/test/tmp/public/javascripts/ckeditor/lang/fo.js +0 -6
  515. data/test/tmp/public/javascripts/ckeditor/lang/fr-ca.js +0 -6
  516. data/test/tmp/public/javascripts/ckeditor/lang/fr.js +0 -6
  517. data/test/tmp/public/javascripts/ckeditor/lang/gl.js +0 -6
  518. data/test/tmp/public/javascripts/ckeditor/lang/gu.js +0 -6
  519. data/test/tmp/public/javascripts/ckeditor/lang/he.js +0 -6
  520. data/test/tmp/public/javascripts/ckeditor/lang/hi.js +0 -6
  521. data/test/tmp/public/javascripts/ckeditor/lang/hr.js +0 -6
  522. data/test/tmp/public/javascripts/ckeditor/lang/hu.js +0 -6
  523. data/test/tmp/public/javascripts/ckeditor/lang/is.js +0 -6
  524. data/test/tmp/public/javascripts/ckeditor/lang/it.js +0 -6
  525. data/test/tmp/public/javascripts/ckeditor/lang/ja.js +0 -6
  526. data/test/tmp/public/javascripts/ckeditor/lang/ka.js +0 -6
  527. data/test/tmp/public/javascripts/ckeditor/lang/km.js +0 -6
  528. data/test/tmp/public/javascripts/ckeditor/lang/ko.js +0 -6
  529. data/test/tmp/public/javascripts/ckeditor/lang/lt.js +0 -6
  530. data/test/tmp/public/javascripts/ckeditor/lang/lv.js +0 -6
  531. data/test/tmp/public/javascripts/ckeditor/lang/mn.js +0 -6
  532. data/test/tmp/public/javascripts/ckeditor/lang/ms.js +0 -6
  533. data/test/tmp/public/javascripts/ckeditor/lang/nb.js +0 -6
  534. data/test/tmp/public/javascripts/ckeditor/lang/nl.js +0 -6
  535. data/test/tmp/public/javascripts/ckeditor/lang/no.js +0 -6
  536. data/test/tmp/public/javascripts/ckeditor/lang/pl.js +0 -6
  537. data/test/tmp/public/javascripts/ckeditor/lang/pt-br.js +0 -6
  538. data/test/tmp/public/javascripts/ckeditor/lang/pt.js +0 -6
  539. data/test/tmp/public/javascripts/ckeditor/lang/ro.js +0 -6
  540. data/test/tmp/public/javascripts/ckeditor/lang/ru.js +0 -6
  541. data/test/tmp/public/javascripts/ckeditor/lang/sk.js +0 -6
  542. data/test/tmp/public/javascripts/ckeditor/lang/sl.js +0 -6
  543. data/test/tmp/public/javascripts/ckeditor/lang/sr-latn.js +0 -6
  544. data/test/tmp/public/javascripts/ckeditor/lang/sr.js +0 -6
  545. data/test/tmp/public/javascripts/ckeditor/lang/sv.js +0 -6
  546. data/test/tmp/public/javascripts/ckeditor/lang/th.js +0 -6
  547. data/test/tmp/public/javascripts/ckeditor/lang/tr.js +0 -6
  548. data/test/tmp/public/javascripts/ckeditor/lang/uk.js +0 -6
  549. data/test/tmp/public/javascripts/ckeditor/lang/vi.js +0 -6
  550. data/test/tmp/public/javascripts/ckeditor/lang/zh-cn.js +0 -6
  551. data/test/tmp/public/javascripts/ckeditor/lang/zh.js +0 -6
  552. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +0 -7
  553. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  554. data/test/tmp/public/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  555. data/test/tmp/public/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  556. data/test/tmp/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  557. data/test/tmp/public/javascripts/ckeditor/plugins/adobeair/plugin.js +0 -6
  558. data/test/tmp/public/javascripts/ckeditor/plugins/ajax/plugin.js +0 -6
  559. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +0 -1
  560. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/images/attachment.png +0 -0
  561. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/en.js +0 -10
  562. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/ru.js +0 -10
  563. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/lang/uk.js +0 -10
  564. data/test/tmp/public/javascripts/ckeditor/plugins/attachment/plugin.js +0 -1
  565. data/test/tmp/public/javascripts/ckeditor/plugins/autogrow/plugin.js +0 -6
  566. data/test/tmp/public/javascripts/ckeditor/plugins/bbcode/plugin.js +0 -9
  567. data/test/tmp/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +0 -7
  568. data/test/tmp/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -7
  569. data/test/tmp/public/javascripts/ckeditor/plugins/devtools/lang/en.js +0 -6
  570. data/test/tmp/public/javascripts/ckeditor/plugins/devtools/plugin.js +0 -6
  571. data/test/tmp/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  572. data/test/tmp/public/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -8
  573. data/test/tmp/public/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +0 -10
  574. data/test/tmp/public/javascripts/ckeditor/plugins/docprops/plugin.js +0 -6
  575. data/test/tmp/public/javascripts/ckeditor/plugins/embed/dialogs/embed.js +0 -1
  576. data/test/tmp/public/javascripts/ckeditor/plugins/embed/images/embed.png +0 -0
  577. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/en.js +0 -9
  578. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/ru.js +0 -9
  579. data/test/tmp/public/javascripts/ckeditor/plugins/embed/lang/uk.js +0 -9
  580. data/test/tmp/public/javascripts/ckeditor/plugins/embed/plugin.js +0 -1
  581. data/test/tmp/public/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -10
  582. data/test/tmp/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +0 -9
  583. data/test/tmp/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  584. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +0 -6
  585. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +0 -6
  586. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +0 -6
  587. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -6
  588. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +0 -6
  589. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +0 -9
  590. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +0 -6
  591. data/test/tmp/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +0 -6
  592. data/test/tmp/public/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  593. data/test/tmp/public/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +0 -7
  594. data/test/tmp/public/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  595. data/test/tmp/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +0 -6
  596. data/test/tmp/public/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -13
  597. data/test/tmp/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +0 -6
  598. data/test/tmp/public/javascripts/ckeditor/plugins/link/dialogs/link.js +0 -12
  599. data/test/tmp/public/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  600. data/test/tmp/public/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -7
  601. data/test/tmp/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  602. data/test/tmp/public/javascripts/ckeditor/plugins/pastefromword/filter/default.js +0 -11
  603. data/test/tmp/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  604. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +0 -6
  605. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/lang/en.js +0 -6
  606. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/lang/he.js +0 -6
  607. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  608. data/test/tmp/public/javascripts/ckeditor/plugins/placeholder/plugin.js +0 -6
  609. data/test/tmp/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +0 -8
  610. data/test/tmp/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -6
  611. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  612. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  613. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  614. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  615. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  616. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  617. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  618. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  619. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  620. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  621. data/test/tmp/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  622. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +0 -7
  623. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  624. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  625. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  626. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  627. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  628. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  629. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  630. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  631. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  632. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  633. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  634. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  635. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  636. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  637. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  638. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  639. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  640. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  641. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  642. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  643. data/test/tmp/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  644. data/test/tmp/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -7
  645. data/test/tmp/public/javascripts/ckeditor/plugins/specialchar/lang/en.js +0 -6
  646. data/test/tmp/public/javascripts/ckeditor/plugins/styles/styles/default.js +0 -6
  647. data/test/tmp/public/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +0 -6
  648. data/test/tmp/public/javascripts/ckeditor/plugins/table/dialogs/table.js +0 -9
  649. data/test/tmp/public/javascripts/ckeditor/plugins/tableresize/plugin.js +0 -7
  650. data/test/tmp/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -8
  651. data/test/tmp/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -7
  652. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  653. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  654. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  655. data/test/tmp/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  656. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  657. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +0 -6
  658. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/lang/he.js +0 -6
  659. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/plugin.js +0 -6
  660. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  661. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  662. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  663. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  664. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  665. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  666. data/test/tmp/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  667. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -49
  668. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  669. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +0 -6
  670. data/test/tmp/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +0 -7
  671. data/test/tmp/public/javascripts/ckeditor/plugins/xml/plugin.js +0 -6
  672. data/test/tmp/public/javascripts/ckeditor/skins/kama/dialog.css +0 -10
  673. data/test/tmp/public/javascripts/ckeditor/skins/kama/editor.css +0 -13
  674. data/test/tmp/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  675. data/test/tmp/public/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  676. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  677. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  678. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  679. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  680. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  681. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  682. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  683. data/test/tmp/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  684. data/test/tmp/public/javascripts/ckeditor/skins/kama/skin.js +0 -7
  685. data/test/tmp/public/javascripts/ckeditor/skins/kama/templates.css +0 -6
  686. data/test/tmp/public/javascripts/ckeditor/skins/office2003/dialog.css +0 -9
  687. data/test/tmp/public/javascripts/ckeditor/skins/office2003/editor.css +0 -14
  688. data/test/tmp/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  689. data/test/tmp/public/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  690. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  691. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  692. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  693. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  694. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  695. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  696. data/test/tmp/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  697. data/test/tmp/public/javascripts/ckeditor/skins/office2003/skin.js +0 -6
  698. data/test/tmp/public/javascripts/ckeditor/skins/office2003/templates.css +0 -6
  699. data/test/tmp/public/javascripts/ckeditor/skins/v2/dialog.css +0 -9
  700. data/test/tmp/public/javascripts/ckeditor/skins/v2/editor.css +0 -13
  701. data/test/tmp/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  702. data/test/tmp/public/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  703. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  704. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  705. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  706. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  707. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  708. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  709. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  710. data/test/tmp/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  711. data/test/tmp/public/javascripts/ckeditor/skins/v2/skin.js +0 -6
  712. data/test/tmp/public/javascripts/ckeditor/skins/v2/templates.css +0 -6
  713. data/test/tmp/public/javascripts/ckeditor/themes/default/theme.js +0 -8
@@ -1,1601 +0,0 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- (function()
7
- {
8
- // #### checkSelectionChange : START
9
-
10
- // The selection change check basically saves the element parent tree of
11
- // the current node and check it on successive requests. If there is any
12
- // change on the tree, then the selectionChange event gets fired.
13
- function checkSelectionChange()
14
- {
15
- try
16
- {
17
- // In IE, the "selectionchange" event may still get thrown when
18
- // releasing the WYSIWYG mode, so we need to check it first.
19
- var sel = this.getSelection();
20
- if ( !sel || !sel.document.getWindow().$ )
21
- return;
22
-
23
- var firstElement = sel.getStartElement();
24
- var currentPath = new CKEDITOR.dom.elementPath( firstElement );
25
-
26
- if ( !currentPath.compare( this._.selectionPreviousPath ) )
27
- {
28
- this._.selectionPreviousPath = currentPath;
29
- this.fire( 'selectionChange', { selection : sel, path : currentPath, element : firstElement } );
30
- }
31
- }
32
- catch (e)
33
- {}
34
- }
35
-
36
- var checkSelectionChangeTimer,
37
- checkSelectionChangeTimeoutPending;
38
-
39
- function checkSelectionChangeTimeout()
40
- {
41
- // Firing the "OnSelectionChange" event on every key press started to
42
- // be too slow. This function guarantees that there will be at least
43
- // 200ms delay between selection checks.
44
-
45
- checkSelectionChangeTimeoutPending = true;
46
-
47
- if ( checkSelectionChangeTimer )
48
- return;
49
-
50
- checkSelectionChangeTimeoutExec.call( this );
51
-
52
- checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChangeTimeoutExec, 200, this );
53
- }
54
-
55
- function checkSelectionChangeTimeoutExec()
56
- {
57
- checkSelectionChangeTimer = null;
58
-
59
- if ( checkSelectionChangeTimeoutPending )
60
- {
61
- // Call this with a timeout so the browser properly moves the
62
- // selection after the mouseup. It happened that the selection was
63
- // being moved after the mouseup when clicking inside selected text
64
- // with Firefox.
65
- CKEDITOR.tools.setTimeout( checkSelectionChange, 0, this );
66
-
67
- checkSelectionChangeTimeoutPending = false;
68
- }
69
- }
70
-
71
- // #### checkSelectionChange : END
72
-
73
- function rangeRequiresFix( range )
74
- {
75
- function isInlineCt( node )
76
- {
77
- return node && node.type == CKEDITOR.NODE_ELEMENT
78
- && node.getName() in CKEDITOR.dtd.$removeEmpty;
79
- }
80
-
81
- function singletonBlock( node )
82
- {
83
- var body = range.document.getBody();
84
- return !node.is( 'body' ) && body.getChildCount() == 1;
85
- }
86
-
87
- var start = range.startContainer,
88
- offset = range.startOffset;
89
-
90
- if ( start.type == CKEDITOR.NODE_TEXT )
91
- return false;
92
-
93
- // 1. Empty inline element. <span>^</span>
94
- // 2. Adjoin to inline element. <p><strong>text</strong>^</p>
95
- // 3. The only empty block in document. <body><p>^</p></body> (#7222)
96
- return !CKEDITOR.tools.trim( start.getHtml() ) ? isInlineCt( start ) || singletonBlock( start )
97
- : isInlineCt( start.getChild( offset - 1 ) ) || isInlineCt( start.getChild( offset ) );
98
- }
99
-
100
- var selectAllCmd =
101
- {
102
- modes : { wysiwyg : 1, source : 1 },
103
- readOnly : CKEDITOR.env.ie || CKEDITOR.env.webkit,
104
- exec : function( editor )
105
- {
106
- switch ( editor.mode )
107
- {
108
- case 'wysiwyg' :
109
- editor.document.$.execCommand( 'SelectAll', false, null );
110
- // Force triggering selectionChange (#7008)
111
- editor.forceNextSelectionCheck();
112
- editor.selectionChange();
113
- break;
114
- case 'source' :
115
- // Select the contents of the textarea
116
- var textarea = editor.textarea.$;
117
- if ( CKEDITOR.env.ie )
118
- textarea.createTextRange().execCommand( 'SelectAll' );
119
- else
120
- {
121
- textarea.selectionStart = 0;
122
- textarea.selectionEnd = textarea.value.length;
123
- }
124
- textarea.focus();
125
- }
126
- },
127
- canUndo : false
128
- };
129
-
130
- function createFillingChar( doc )
131
- {
132
- removeFillingChar( doc );
133
-
134
- var fillingChar = doc.createText( '\u200B' );
135
- doc.setCustomData( 'cke-fillingChar', fillingChar );
136
-
137
- return fillingChar;
138
- }
139
-
140
- function getFillingChar( doc )
141
- {
142
- return doc && doc.getCustomData( 'cke-fillingChar' );
143
- }
144
-
145
- // Checks if a filling char has been used, eventualy removing it (#1272).
146
- function checkFillingChar( doc )
147
- {
148
- var fillingChar = doc && getFillingChar( doc );
149
- if ( fillingChar )
150
- {
151
- // Use this flag to avoid removing the filling char right after
152
- // creating it.
153
- if ( fillingChar.getCustomData( 'ready' ) )
154
- removeFillingChar( doc );
155
- else
156
- fillingChar.setCustomData( 'ready', 1 );
157
- }
158
- }
159
-
160
- function removeFillingChar( doc )
161
- {
162
- var fillingChar = doc && doc.removeCustomData( 'cke-fillingChar' );
163
- if ( fillingChar )
164
- {
165
- // We can't simply remove the filling node because the user
166
- // will actually enlarge it when typing, so we just remove the
167
- // invisible char from it.
168
- fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
169
- fillingChar = 0;
170
- }
171
- }
172
-
173
- CKEDITOR.plugins.add( 'selection',
174
- {
175
- init : function( editor )
176
- {
177
- // On WebKit only, we need a special "filling" char on some situations
178
- // (#1272). Here we set the events that should invalidate that char.
179
- if ( CKEDITOR.env.webkit )
180
- {
181
- editor.on( 'selectionChange', function() { checkFillingChar( editor.document ); } );
182
- editor.on( 'beforeSetMode', function() { removeFillingChar( editor.document ); } );
183
- editor.on( 'key', function( e )
184
- {
185
- // Remove the filling char before some keys get
186
- // executed, so they'll not get blocked by it.
187
- switch ( e.data.keyCode )
188
- {
189
- case 13 : // ENTER
190
- case CKEDITOR.SHIFT + 13 : // SHIFT-ENTER
191
- case 37 : // LEFT-ARROW
192
- case 39 : // RIGHT-ARROW
193
- case 8 : // BACKSPACE
194
- removeFillingChar( editor.document );
195
- }
196
- }, null, null, 10 );
197
-
198
- var fillingCharBefore,
199
- resetSelection;
200
-
201
- function beforeData()
202
- {
203
- var doc = editor.document,
204
- fillingChar = getFillingChar( doc );
205
-
206
- if ( fillingChar )
207
- {
208
- // If cursor is right blinking by side of the filler node, save it for restoring,
209
- // as the following text substitution will blind it. (#7437)
210
- var sel = doc.$.defaultView.getSelection();
211
- if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
212
- resetSelection = 1;
213
-
214
- fillingCharBefore = fillingChar.getText();
215
- fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
216
- }
217
- }
218
- function afterData()
219
- {
220
- var doc = editor.document,
221
- fillingChar = getFillingChar( doc );
222
-
223
- if ( fillingChar )
224
- {
225
- fillingChar.setText( fillingCharBefore );
226
-
227
- if ( resetSelection )
228
- {
229
- doc.$.defaultView.getSelection().setPosition( fillingChar.$,fillingChar.getLength() );
230
- resetSelection = 0;
231
- }
232
- }
233
- }
234
- editor.on( 'beforeUndoImage', beforeData );
235
- editor.on( 'afterUndoImage', afterData );
236
- editor.on( 'beforeGetData', beforeData, null, null, 0 );
237
- editor.on( 'getData', afterData );
238
- }
239
-
240
- editor.on( 'contentDom', function()
241
- {
242
- var doc = editor.document,
243
- body = doc.getBody(),
244
- html = doc.getDocumentElement();
245
-
246
- if ( CKEDITOR.env.ie )
247
- {
248
- // Other browsers don't loose the selection if the
249
- // editor document loose the focus. In IE, we don't
250
- // have support for it, so we reproduce it here, other
251
- // than firing the selection change event.
252
-
253
- var savedRange,
254
- saveEnabled,
255
- restoreEnabled = 1;
256
-
257
- // "onfocusin" is fired before "onfocus". It makes it
258
- // possible to restore the selection before click
259
- // events get executed.
260
- body.on( 'focusin', function( evt )
261
- {
262
- // If there are elements with layout they fire this event but
263
- // it must be ignored to allow edit its contents #4682
264
- if ( evt.data.$.srcElement.nodeName != 'BODY' )
265
- return;
266
-
267
- // If we have saved a range, restore it at this
268
- // point.
269
- if ( savedRange )
270
- {
271
- if ( restoreEnabled )
272
- {
273
- // Well not break because of this.
274
- try
275
- {
276
- savedRange.select();
277
- }
278
- catch (e)
279
- {}
280
-
281
- // Update locked selection because of the normalized text nodes. (#6083, #6987)
282
- var lockedSelection = doc.getCustomData( 'cke_locked_selection' );
283
- if ( lockedSelection )
284
- {
285
- lockedSelection.unlock();
286
- lockedSelection.lock();
287
- }
288
- }
289
-
290
- savedRange = null;
291
- }
292
- });
293
-
294
- body.on( 'focus', function()
295
- {
296
- // Enable selections to be saved.
297
- saveEnabled = 1;
298
-
299
- saveSelection();
300
- });
301
-
302
- body.on( 'beforedeactivate', function( evt )
303
- {
304
- // Ignore this event if it's caused by focus switch between
305
- // internal editable control type elements, e.g. layouted paragraph. (#4682)
306
- if ( evt.data.$.toElement )
307
- return;
308
-
309
- // Disable selections from being saved.
310
- saveEnabled = 0;
311
- restoreEnabled = 1;
312
- });
313
-
314
- // IE before version 8 will leave cursor blinking inside the document after
315
- // editor blurred unless we clean up the selection. (#4716)
316
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
317
- {
318
- editor.on( 'blur', function( evt )
319
- {
320
- // Try/Catch to avoid errors if the editor is hidden. (#6375)
321
- try
322
- {
323
- editor.document && editor.document.$.selection.empty();
324
- }
325
- catch (e) {}
326
- });
327
- }
328
-
329
- // Listening on document element ensures that
330
- // scrollbar is included. (#5280)
331
- html.on( 'mousedown', function()
332
- {
333
- // Lock restore selection now, as we have
334
- // a followed 'click' event which introduce
335
- // new selection. (#5735)
336
- restoreEnabled = 0;
337
- });
338
-
339
- html.on( 'mouseup', function()
340
- {
341
- restoreEnabled = 1;
342
- });
343
-
344
- // In IE6/7 the blinking cursor appears, but contents are
345
- // not editable. (#5634)
346
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
347
- {
348
- // The 'click' event is not fired when clicking the
349
- // scrollbars, so we can use it to check whether
350
- // the empty space following <body> has been clicked.
351
- html.on( 'click', function( evt )
352
- {
353
- if ( evt.data.getTarget().getName() == 'html' )
354
- editor.getSelection().getRanges()[ 0 ].select();
355
- });
356
- }
357
-
358
- var scroll;
359
- // IE fires the "selectionchange" event when clicking
360
- // inside a selection. We don't want to capture that.
361
- body.on( 'mousedown', function( evt )
362
- {
363
- // IE scrolls document to top on right mousedown
364
- // when editor has no focus, remember this scroll
365
- // position and revert it before context menu opens. (#5778)
366
- if ( evt.data.$.button == 2 )
367
- {
368
- var sel = editor.document.$.selection;
369
- if ( sel.type == 'None' )
370
- scroll = editor.window.getScrollPosition();
371
- }
372
- disableSave();
373
- });
374
-
375
- body.on( 'mouseup',
376
- function( evt )
377
- {
378
- // Restore recorded scroll position when needed on right mouseup.
379
- if ( evt.data.$.button == 2 && scroll )
380
- {
381
- editor.document.$.documentElement.scrollLeft = scroll.x;
382
- editor.document.$.documentElement.scrollTop = scroll.y;
383
- }
384
- scroll = null;
385
-
386
- saveEnabled = 1;
387
- setTimeout( function()
388
- {
389
- saveSelection( true );
390
- },
391
- 0 );
392
- });
393
-
394
- body.on( 'keydown', disableSave );
395
- body.on( 'keyup',
396
- function()
397
- {
398
- saveEnabled = 1;
399
- saveSelection();
400
- });
401
-
402
-
403
- // IE is the only to provide the "selectionchange"
404
- // event.
405
- doc.on( 'selectionchange', saveSelection );
406
-
407
- function disableSave()
408
- {
409
- saveEnabled = 0;
410
- }
411
-
412
- function saveSelection( testIt )
413
- {
414
- if ( saveEnabled )
415
- {
416
- var doc = editor.document,
417
- sel = editor.getSelection(),
418
- nativeSel = sel && sel.getNative();
419
-
420
- // There is a very specific case, when clicking
421
- // inside a text selection. In that case, the
422
- // selection collapses at the clicking point,
423
- // but the selection object remains in an
424
- // unknown state, making createRange return a
425
- // range at the very start of the document. In
426
- // such situation we have to test the range, to
427
- // be sure it's valid.
428
- if ( testIt && nativeSel && nativeSel.type == 'None' )
429
- {
430
- // The "InsertImage" command can be used to
431
- // test whether the selection is good or not.
432
- // If not, it's enough to give some time to
433
- // IE to put things in order for us.
434
- if ( !doc.$.queryCommandEnabled( 'InsertImage' ) )
435
- {
436
- CKEDITOR.tools.setTimeout( saveSelection, 50, this, true );
437
- return;
438
- }
439
- }
440
-
441
- // Avoid saving selection from within text input. (#5747)
442
- var parentTag;
443
- if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
444
- && ( parentTag = nativeSel.createRange() )
445
- && ( parentTag = parentTag.parentElement() )
446
- && ( parentTag = parentTag.nodeName )
447
- && parentTag.toLowerCase() in { input: 1, textarea : 1 } )
448
- {
449
- return;
450
- }
451
-
452
- savedRange = nativeSel && sel.getRanges()[ 0 ];
453
-
454
- checkSelectionChangeTimeout.call( editor );
455
- }
456
- }
457
- }
458
- else
459
- {
460
- // In other browsers, we make the selection change
461
- // check based on other events, like clicks or keys
462
- // press.
463
-
464
- doc.on( 'mouseup', checkSelectionChangeTimeout, editor );
465
- doc.on( 'keyup', checkSelectionChangeTimeout, editor );
466
- }
467
- });
468
-
469
- // Clear the cached range path before unload. (#7174)
470
- editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
471
-
472
- editor.addCommand( 'selectAll', selectAllCmd );
473
- editor.ui.addButton( 'SelectAll',
474
- {
475
- label : editor.lang.selectAll,
476
- command : 'selectAll'
477
- });
478
-
479
- editor.selectionChange = checkSelectionChangeTimeout;
480
-
481
- // IE9 might cease to work if there's an object selection inside the iframe (#7639).
482
- CKEDITOR.env.ie9Compat && editor.on( 'destroy', function()
483
- {
484
- var sel = editor.getSelection();
485
- sel && sel.getNative().clear();
486
- }, null, null, 9 );
487
- }
488
- });
489
-
490
- /**
491
- * Gets the current selection from the editing area when in WYSIWYG mode.
492
- * @returns {CKEDITOR.dom.selection} A selection object or null if not on
493
- * WYSIWYG mode or no selection is available.
494
- * @example
495
- * var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
496
- * alert( selection.getType() );
497
- */
498
- CKEDITOR.editor.prototype.getSelection = function()
499
- {
500
- return this.document && this.document.getSelection();
501
- };
502
-
503
- CKEDITOR.editor.prototype.forceNextSelectionCheck = function()
504
- {
505
- delete this._.selectionPreviousPath;
506
- };
507
-
508
- /**
509
- * Gets the current selection from the document.
510
- * @returns {CKEDITOR.dom.selection} A selection object.
511
- * @example
512
- * var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
513
- * alert( selection.getType() );
514
- */
515
- CKEDITOR.dom.document.prototype.getSelection = function()
516
- {
517
- var sel = new CKEDITOR.dom.selection( this );
518
- return ( !sel || sel.isInvalid ) ? null : sel;
519
- };
520
-
521
- /**
522
- * No selection.
523
- * @constant
524
- * @example
525
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
526
- * alert( 'Nothing is selected' );
527
- */
528
- CKEDITOR.SELECTION_NONE = 1;
529
-
530
- /**
531
- * Text or collapsed selection.
532
- * @constant
533
- * @example
534
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
535
- * alert( 'Text is selected' );
536
- */
537
- CKEDITOR.SELECTION_TEXT = 2;
538
-
539
- /**
540
- * Element selection.
541
- * @constant
542
- * @example
543
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
544
- * alert( 'An element is selected' );
545
- */
546
- CKEDITOR.SELECTION_ELEMENT = 3;
547
-
548
- /**
549
- * Manipulates the selection in a DOM document.
550
- * @constructor
551
- * @example
552
- */
553
- CKEDITOR.dom.selection = function( document )
554
- {
555
- var lockedSelection = document.getCustomData( 'cke_locked_selection' );
556
-
557
- if ( lockedSelection )
558
- return lockedSelection;
559
-
560
- this.document = document;
561
- this.isLocked = 0;
562
- this._ =
563
- {
564
- cache : {}
565
- };
566
-
567
- /**
568
- * IE BUG: The selection's document may be a different document than the
569
- * editor document. Return null if that's the case.
570
- */
571
- if ( CKEDITOR.env.ie )
572
- {
573
- var range = this.getNative().createRange();
574
- if ( !range
575
- || ( range.item && range.item(0).ownerDocument != this.document.$ )
576
- || ( range.parentElement && range.parentElement().ownerDocument != this.document.$ ) )
577
- {
578
- this.isInvalid = true;
579
- }
580
- }
581
-
582
- return this;
583
- };
584
-
585
- var styleObjectElements =
586
- {
587
- img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,
588
- a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1
589
- };
590
-
591
- CKEDITOR.dom.selection.prototype =
592
- {
593
- /**
594
- * Gets the native selection object from the browser.
595
- * @function
596
- * @returns {Object} The native selection object.
597
- * @example
598
- * var selection = editor.getSelection().<b>getNative()</b>;
599
- */
600
- getNative :
601
- CKEDITOR.env.ie ?
602
- function()
603
- {
604
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.$.selection );
605
- }
606
- :
607
- function()
608
- {
609
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.getWindow().$.getSelection() );
610
- },
611
-
612
- /**
613
- * Gets the type of the current selection. The following values are
614
- * available:
615
- * <ul>
616
- * <li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.</li>
617
- * <li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
618
- * collapsed selection.</li>
619
- * <li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
620
- * selection.</li>
621
- * </ul>
622
- * @function
623
- * @returns {Number} One of the following constant values:
624
- * {@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
625
- * {@link CKEDITOR.SELECTION_ELEMENT}.
626
- * @example
627
- * if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
628
- * alert( 'Text is selected' );
629
- */
630
- getType :
631
- CKEDITOR.env.ie ?
632
- function()
633
- {
634
- var cache = this._.cache;
635
- if ( cache.type )
636
- return cache.type;
637
-
638
- var type = CKEDITOR.SELECTION_NONE;
639
-
640
- try
641
- {
642
- var sel = this.getNative(),
643
- ieType = sel.type;
644
-
645
- if ( ieType == 'Text' )
646
- type = CKEDITOR.SELECTION_TEXT;
647
-
648
- if ( ieType == 'Control' )
649
- type = CKEDITOR.SELECTION_ELEMENT;
650
-
651
- // It is possible that we can still get a text range
652
- // object even when type == 'None' is returned by IE.
653
- // So we'd better check the object returned by
654
- // createRange() rather than by looking at the type.
655
- if ( sel.createRange().parentElement )
656
- type = CKEDITOR.SELECTION_TEXT;
657
- }
658
- catch(e) {}
659
-
660
- return ( cache.type = type );
661
- }
662
- :
663
- function()
664
- {
665
- var cache = this._.cache;
666
- if ( cache.type )
667
- return cache.type;
668
-
669
- var type = CKEDITOR.SELECTION_TEXT;
670
-
671
- var sel = this.getNative();
672
-
673
- if ( !sel )
674
- type = CKEDITOR.SELECTION_NONE;
675
- else if ( sel.rangeCount == 1 )
676
- {
677
- // Check if the actual selection is a control (IMG,
678
- // TABLE, HR, etc...).
679
-
680
- var range = sel.getRangeAt(0),
681
- startContainer = range.startContainer;
682
-
683
- if ( startContainer == range.endContainer
684
- && startContainer.nodeType == 1
685
- && ( range.endOffset - range.startOffset ) == 1
686
- && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
687
- {
688
- type = CKEDITOR.SELECTION_ELEMENT;
689
- }
690
- }
691
-
692
- return ( cache.type = type );
693
- },
694
-
695
- /**
696
- * Retrieve the {@link CKEDITOR.dom.range} instances that represent the current selection.
697
- * Note: Some browsers returns multiple ranges even on a sequent selection, e.g. Firefox returns
698
- * one range for each table cell when one or more table row is selected.
699
- * @return {Array}
700
- * @example
701
- * var ranges = selection.getRanges();
702
- * alert(ranges.length);
703
- */
704
- getRanges : (function()
705
- {
706
- var func = CKEDITOR.env.ie ?
707
- ( function()
708
- {
709
- function getNodeIndex( node ) { return new CKEDITOR.dom.node( node ).getIndex(); }
710
-
711
- // Finds the container and offset for a specific boundary
712
- // of an IE range.
713
- var getBoundaryInformation = function( range, start )
714
- {
715
- // Creates a collapsed range at the requested boundary.
716
- range = range.duplicate();
717
- range.collapse( start );
718
-
719
- // Gets the element that encloses the range entirely.
720
- var parent = range.parentElement(),
721
- doc = parent.ownerDocument;
722
-
723
- // Empty parent element, e.g. <i>^</i>
724
- if ( !parent.hasChildNodes() )
725
- return { container : parent, offset : 0 };
726
-
727
- var siblings = parent.children,
728
- child,
729
- sibling,
730
- testRange = range.duplicate(),
731
- startIndex = 0,
732
- endIndex = siblings.length - 1,
733
- index = -1,
734
- position,
735
- distance;
736
-
737
- // Binary search over all element childs to test the range to see whether
738
- // range is right on the boundary of one element.
739
- while ( startIndex <= endIndex )
740
- {
741
- index = Math.floor( ( startIndex + endIndex ) / 2 );
742
- child = siblings[ index ];
743
- testRange.moveToElementText( child );
744
- position = testRange.compareEndPoints( 'StartToStart', range );
745
-
746
- if ( position > 0 )
747
- endIndex = index - 1;
748
- else if ( position < 0 )
749
- startIndex = index + 1;
750
- else
751
- {
752
- // IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
753
- // e.g. <p>text<br />^<br /></p> (#7433)
754
- if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' )
755
- {
756
- var bmId = 'cke_range_marker';
757
- range.execCommand( 'CreateBookmark', false, bmId );
758
- child = doc.getElementsByName( bmId )[ 0 ];
759
- var offset = getNodeIndex( child );
760
- parent.removeChild( child );
761
- return { container : parent, offset : offset };
762
- }
763
- else
764
- return { container : parent, offset : getNodeIndex( child ) };
765
- }
766
- }
767
-
768
- // All childs are text nodes,
769
- // or to the right hand of test range are all text nodes. (#6992)
770
- if ( index == -1 || index == siblings.length - 1 && position < 0 )
771
- {
772
- // Adapt test range to embrace the entire parent contents.
773
- testRange.moveToElementText( parent );
774
- testRange.setEndPoint( 'StartToStart', range );
775
-
776
- // IE report line break as CRLF with range.text but
777
- // only LF with textnode.nodeValue, normalize them to avoid
778
- // breaking character counting logic below. (#3949)
779
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
780
-
781
- siblings = parent.childNodes;
782
-
783
- // Actual range anchor right beside test range at the boundary of text node.
784
- if ( !distance )
785
- {
786
- child = siblings[ siblings.length - 1 ];
787
-
788
- if ( child.nodeType == CKEDITOR.NODE_ELEMENT )
789
- return { container : parent, offset : siblings.length };
790
- else
791
- return { container : child, offset : child.nodeValue.length };
792
- }
793
-
794
- // Start the measuring until distance overflows, meanwhile count the text nodes.
795
- var i = siblings.length;
796
- while ( distance > 0 )
797
- distance -= siblings[ --i ].nodeValue.length;
798
-
799
- return { container : siblings[ i ], offset : -distance };
800
- }
801
- // Test range was one offset beyond OR behind the anchored text node.
802
- else
803
- {
804
- // Adapt one side of test range to the actual range
805
- // for measuring the offset between them.
806
- testRange.collapse( position > 0 ? true : false );
807
- testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
808
-
809
- // IE report line break as CRLF with range.text but
810
- // only LF with textnode.nodeValue, normalize them to avoid
811
- // breaking character counting logic below. (#3949)
812
- distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
813
-
814
- // Actual range anchor right beside test range at the inner boundary of text node.
815
- if ( !distance )
816
- return { container : parent, offset : getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
817
-
818
- // Start the measuring until distance overflows, meanwhile count the text nodes.
819
- while ( distance > 0 )
820
- {
821
- try
822
- {
823
- sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
824
- distance -= sibling.nodeValue.length;
825
- child = sibling;
826
- }
827
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
828
- catch( e )
829
- {
830
- return { container : parent, offset : getNodeIndex( child ) };
831
- }
832
- }
833
-
834
- return { container : child, offset : position > 0 ? -distance : child.nodeValue.length + distance };
835
- }
836
- };
837
-
838
- return function()
839
- {
840
- // IE doesn't have range support (in the W3C way), so we
841
- // need to do some magic to transform selections into
842
- // CKEDITOR.dom.range instances.
843
-
844
- var sel = this.getNative(),
845
- nativeRange = sel && sel.createRange(),
846
- type = this.getType(),
847
- range;
848
-
849
- if ( !sel )
850
- return [];
851
-
852
- if ( type == CKEDITOR.SELECTION_TEXT )
853
- {
854
- range = new CKEDITOR.dom.range( this.document );
855
-
856
- var boundaryInfo = getBoundaryInformation( nativeRange, true );
857
- range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
858
-
859
- boundaryInfo = getBoundaryInformation( nativeRange );
860
- range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
861
-
862
- // Correct an invalid IE range case on empty list item. (#5850)
863
- if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING
864
- && range.endOffset <= range.startContainer.getIndex() )
865
- {
866
- range.collapse();
867
- }
868
-
869
- return [ range ];
870
- }
871
- else if ( type == CKEDITOR.SELECTION_ELEMENT )
872
- {
873
- var retval = [];
874
-
875
- for ( var i = 0 ; i < nativeRange.length ; i++ )
876
- {
877
- var element = nativeRange.item( i ),
878
- parentElement = element.parentNode,
879
- j = 0;
880
-
881
- range = new CKEDITOR.dom.range( this.document );
882
-
883
- for (; j < parentElement.childNodes.length && parentElement.childNodes[j] != element ; j++ )
884
- { /*jsl:pass*/ }
885
-
886
- range.setStart( new CKEDITOR.dom.node( parentElement ), j );
887
- range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
888
- retval.push( range );
889
- }
890
-
891
- return retval;
892
- }
893
-
894
- return [];
895
- };
896
- })()
897
- :
898
- function()
899
- {
900
-
901
- // On browsers implementing the W3C range, we simply
902
- // tranform the native ranges in CKEDITOR.dom.range
903
- // instances.
904
-
905
- var ranges = [],
906
- range,
907
- doc = this.document,
908
- sel = this.getNative();
909
-
910
- if ( !sel )
911
- return ranges;
912
-
913
- // On WebKit, it may happen that we'll have no selection
914
- // available. We normalize it here by replicating the
915
- // behavior of other browsers.
916
- if ( !sel.rangeCount )
917
- {
918
- range = new CKEDITOR.dom.range( doc );
919
- range.moveToElementEditStart( doc.getBody() );
920
- ranges.push( range );
921
- }
922
-
923
- for ( var i = 0 ; i < sel.rangeCount ; i++ )
924
- {
925
- var nativeRange = sel.getRangeAt( i );
926
-
927
- range = new CKEDITOR.dom.range( doc );
928
-
929
- range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
930
- range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
931
- ranges.push( range );
932
- }
933
- return ranges;
934
- };
935
-
936
- return function( onlyEditables )
937
- {
938
- var cache = this._.cache;
939
- if ( cache.ranges && !onlyEditables )
940
- return cache.ranges;
941
- else if ( !cache.ranges )
942
- cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
943
-
944
- // Split range into multiple by read-only nodes.
945
- if ( onlyEditables )
946
- {
947
- var ranges = cache.ranges;
948
- for ( var i = 0; i < ranges.length; i++ )
949
- {
950
- var range = ranges[ i ];
951
-
952
- // Drop range spans inside one ready-only node.
953
- var parent = range.getCommonAncestor();
954
- if ( parent.isReadOnly() )
955
- ranges.splice( i, 1 );
956
-
957
- if ( range.collapsed )
958
- continue;
959
-
960
- var startContainer = range.startContainer,
961
- endContainer = range.endContainer,
962
- startOffset = range.startOffset,
963
- endOffset = range.endOffset,
964
- walkerRange = range.clone();
965
-
966
- // Range may start inside a non-editable element, restart range
967
- // by the end of it.
968
- var readOnly;
969
- if ( ( readOnly = startContainer.isReadOnly() ) )
970
- range.setStartAfter( readOnly );
971
-
972
- // Enlarge range start/end with text node to avoid walker
973
- // being DOM destructive, it doesn't interfere our checking
974
- // of elements below as well.
975
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
976
- {
977
- if ( startOffset >= startContainer.getLength() )
978
- walkerRange.setStartAfter( startContainer );
979
- else
980
- walkerRange.setStartBefore( startContainer );
981
- }
982
-
983
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
984
- {
985
- if ( !endOffset )
986
- walkerRange.setEndBefore( endContainer );
987
- else
988
- walkerRange.setEndAfter( endContainer );
989
- }
990
-
991
- // Looking for non-editable element inside the range.
992
- var walker = new CKEDITOR.dom.walker( walkerRange );
993
- walker.evaluator = function( node )
994
- {
995
- if ( node.type == CKEDITOR.NODE_ELEMENT
996
- && node.isReadOnly() )
997
- {
998
- var newRange = range.clone();
999
- range.setEndBefore( node );
1000
-
1001
- // Drop collapsed range around read-only elements,
1002
- // it make sure the range list empty when selecting
1003
- // only non-editable elements.
1004
- if ( range.collapsed )
1005
- ranges.splice( i--, 1 );
1006
-
1007
- // Avoid creating invalid range.
1008
- if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) )
1009
- {
1010
- newRange.setStartAfter( node );
1011
- if ( !newRange.collapsed )
1012
- ranges.splice( i + 1, 0, newRange );
1013
- }
1014
-
1015
- return true;
1016
- }
1017
-
1018
- return false;
1019
- };
1020
-
1021
- walker.next();
1022
- }
1023
- }
1024
-
1025
- return cache.ranges;
1026
- };
1027
- })(),
1028
-
1029
- /**
1030
- * Gets the DOM element in which the selection starts.
1031
- * @returns {CKEDITOR.dom.element} The element at the beginning of the
1032
- * selection.
1033
- * @example
1034
- * var element = editor.getSelection().<b>getStartElement()</b>;
1035
- * alert( element.getName() );
1036
- */
1037
- getStartElement : function()
1038
- {
1039
- var cache = this._.cache;
1040
- if ( cache.startElement !== undefined )
1041
- return cache.startElement;
1042
-
1043
- var node,
1044
- sel = this.getNative();
1045
-
1046
- switch ( this.getType() )
1047
- {
1048
- case CKEDITOR.SELECTION_ELEMENT :
1049
- return this.getSelectedElement();
1050
-
1051
- case CKEDITOR.SELECTION_TEXT :
1052
-
1053
- var range = this.getRanges()[0];
1054
-
1055
- if ( range )
1056
- {
1057
- if ( !range.collapsed )
1058
- {
1059
- range.optimize();
1060
-
1061
- // Decrease the range content to exclude particial
1062
- // selected node on the start which doesn't have
1063
- // visual impact. ( #3231 )
1064
- while ( 1 )
1065
- {
1066
- var startContainer = range.startContainer,
1067
- startOffset = range.startOffset;
1068
- // Limit the fix only to non-block elements.(#3950)
1069
- if ( startOffset == ( startContainer.getChildCount ?
1070
- startContainer.getChildCount() : startContainer.getLength() )
1071
- && !startContainer.isBlockBoundary() )
1072
- range.setStartAfter( startContainer );
1073
- else break;
1074
- }
1075
-
1076
- node = range.startContainer;
1077
-
1078
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1079
- return node.getParent();
1080
-
1081
- node = node.getChild( range.startOffset );
1082
-
1083
- if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
1084
- node = range.startContainer;
1085
- else
1086
- {
1087
- var child = node.getFirst();
1088
- while ( child && child.type == CKEDITOR.NODE_ELEMENT )
1089
- {
1090
- node = child;
1091
- child = child.getFirst();
1092
- }
1093
- }
1094
- }
1095
- else
1096
- {
1097
- node = range.startContainer;
1098
- if ( node.type != CKEDITOR.NODE_ELEMENT )
1099
- node = node.getParent();
1100
- }
1101
-
1102
- node = node.$;
1103
- }
1104
- }
1105
-
1106
- return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1107
- },
1108
-
1109
- /**
1110
- * Gets the current selected element.
1111
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
1112
- * selection is available or the selection type is not
1113
- * {@link CKEDITOR.SELECTION_ELEMENT}.
1114
- * @example
1115
- * var element = editor.getSelection().<b>getSelectedElement()</b>;
1116
- * alert( element.getName() );
1117
- */
1118
- getSelectedElement : function()
1119
- {
1120
- var cache = this._.cache;
1121
- if ( cache.selectedElement !== undefined )
1122
- return cache.selectedElement;
1123
-
1124
- var self = this;
1125
-
1126
- var node = CKEDITOR.tools.tryThese(
1127
- // Is it native IE control type selection?
1128
- function()
1129
- {
1130
- return self.getNative().createRange().item( 0 );
1131
- },
1132
- // Figure it out by checking if there's a single enclosed
1133
- // node of the range.
1134
- function()
1135
- {
1136
- var range = self.getRanges()[ 0 ],
1137
- enclosed,
1138
- selected;
1139
-
1140
- // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
1141
- for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
1142
- && ( enclosed.type == CKEDITOR.NODE_ELEMENT )
1143
- && styleObjectElements[ enclosed.getName() ]
1144
- && ( selected = enclosed ) ); i-- )
1145
- {
1146
- // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
1147
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
1148
- }
1149
-
1150
- return selected.$;
1151
- });
1152
-
1153
- return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
1154
- },
1155
-
1156
- /**
1157
- * Retrieves the text contained within the range, empty string is returned for non-text selection.
1158
- * @returns {String} string of text within the current selection.
1159
- * @since 3.6.1
1160
- * @example
1161
- * var text = editor.getSelectedText();
1162
- * alert( text );
1163
- */
1164
- getSelectedText : function()
1165
- {
1166
- var cache = this._.cache;
1167
- if ( cache.selectedText !== undefined )
1168
- return cache.selectedText;
1169
-
1170
- var text = '',
1171
- nativeSel = this.getNative();
1172
- if ( this.getType() == CKEDITOR.SELECTION_TEXT )
1173
- text = CKEDITOR.env.ie ? nativeSel.createRange().text : nativeSel.toString();
1174
-
1175
- return ( cache.selectedText = text );
1176
- },
1177
-
1178
- lock : function()
1179
- {
1180
- // Call all cacheable function.
1181
- this.getRanges();
1182
- this.getStartElement();
1183
- this.getSelectedElement();
1184
- this.getSelectedText();
1185
-
1186
- // The native selection is not available when locked.
1187
- this._.cache.nativeSel = {};
1188
-
1189
- this.isLocked = 1;
1190
-
1191
- // Save this selection inside the DOM document.
1192
- this.document.setCustomData( 'cke_locked_selection', this );
1193
- },
1194
-
1195
- unlock : function( restore )
1196
- {
1197
- var doc = this.document,
1198
- lockedSelection = doc.getCustomData( 'cke_locked_selection' );
1199
-
1200
- if ( lockedSelection )
1201
- {
1202
- doc.setCustomData( 'cke_locked_selection', null );
1203
-
1204
- if ( restore )
1205
- {
1206
- var selectedElement = lockedSelection.getSelectedElement(),
1207
- ranges = !selectedElement && lockedSelection.getRanges();
1208
-
1209
- this.isLocked = 0;
1210
- this.reset();
1211
-
1212
- doc.getBody().focus();
1213
-
1214
- if ( selectedElement )
1215
- this.selectElement( selectedElement );
1216
- else
1217
- this.selectRanges( ranges );
1218
- }
1219
- }
1220
-
1221
- if ( !lockedSelection || !restore )
1222
- {
1223
- this.isLocked = 0;
1224
- this.reset();
1225
- }
1226
- },
1227
-
1228
- reset : function()
1229
- {
1230
- this._.cache = {};
1231
- },
1232
-
1233
- /**
1234
- * Make the current selection of type {@link CKEDITOR.SELECTION_ELEMENT} by enclosing the specified element.
1235
- * @param element
1236
- */
1237
- selectElement : function( element )
1238
- {
1239
- if ( this.isLocked )
1240
- {
1241
- var range = new CKEDITOR.dom.range( this.document );
1242
- range.setStartBefore( element );
1243
- range.setEndAfter( element );
1244
-
1245
- this._.cache.selectedElement = element;
1246
- this._.cache.startElement = element;
1247
- this._.cache.ranges = new CKEDITOR.dom.rangeList( range );
1248
- this._.cache.type = CKEDITOR.SELECTION_ELEMENT;
1249
-
1250
- return;
1251
- }
1252
-
1253
- range = new CKEDITOR.dom.range( element.getDocument() );
1254
- range.setStartBefore( element );
1255
- range.setEndAfter( element );
1256
- range.select();
1257
-
1258
- this.document.fire( 'selectionchange' );
1259
- this.reset();
1260
-
1261
- },
1262
-
1263
- /**
1264
- * Adding the specified ranges to document selection preceding
1265
- * by clearing up the original selection.
1266
- * @param {CKEDITOR.dom.range} ranges
1267
- */
1268
- selectRanges : function( ranges )
1269
- {
1270
- if ( this.isLocked )
1271
- {
1272
- this._.cache.selectedElement = null;
1273
- this._.cache.startElement = ranges[ 0 ] && ranges[ 0 ].getTouchedStartNode();
1274
- this._.cache.ranges = new CKEDITOR.dom.rangeList( ranges );
1275
- this._.cache.type = CKEDITOR.SELECTION_TEXT;
1276
-
1277
- return;
1278
- }
1279
-
1280
- if ( CKEDITOR.env.ie )
1281
- {
1282
- if ( ranges.length > 1 )
1283
- {
1284
- // IE doesn't accept multiple ranges selection, so we join all into one.
1285
- var last = ranges[ ranges.length -1 ] ;
1286
- ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
1287
- ranges.length = 1;
1288
- }
1289
-
1290
- if ( ranges[ 0 ] )
1291
- ranges[ 0 ].select();
1292
-
1293
- this.reset();
1294
- }
1295
- else
1296
- {
1297
- var sel = this.getNative();
1298
-
1299
- // getNative() returns null if iframe is "display:none" in FF. (#6577)
1300
- if ( !sel )
1301
- return;
1302
-
1303
- if ( ranges.length )
1304
- {
1305
- sel.removeAllRanges();
1306
- // Remove any existing filling char first.
1307
- CKEDITOR.env.webkit && removeFillingChar( this.document );
1308
- }
1309
-
1310
- for ( var i = 0 ; i < ranges.length ; i++ )
1311
- {
1312
- // Joining sequential ranges introduced by
1313
- // readonly elements protection.
1314
- if ( i < ranges.length -1 )
1315
- {
1316
- var left = ranges[ i ], right = ranges[ i +1 ],
1317
- between = left.clone();
1318
- between.setStart( left.endContainer, left.endOffset );
1319
- between.setEnd( right.startContainer, right.startOffset );
1320
-
1321
- // Don't confused by Firefox adjancent multi-ranges
1322
- // introduced by table cells selection.
1323
- if ( !between.collapsed )
1324
- {
1325
- between.shrink( CKEDITOR.NODE_ELEMENT, true );
1326
- var ancestor = between.getCommonAncestor(),
1327
- enclosed = between.getEnclosedNode();
1328
-
1329
- // The following cases has to be considered:
1330
- // 1. <span contenteditable="false">[placeholder]</span>
1331
- // 2. <input contenteditable="false" type="radio"/> (#6621)
1332
- if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
1333
- {
1334
- right.setStart( left.startContainer, left.startOffset );
1335
- ranges.splice( i--, 1 );
1336
- continue;
1337
- }
1338
- }
1339
- }
1340
-
1341
- var range = ranges[ i ];
1342
- var nativeRange = this.document.$.createRange();
1343
- var startContainer = range.startContainer;
1344
-
1345
- // In FF2, if we have a collapsed range, inside an empty
1346
- // element, we must add something to it otherwise the caret
1347
- // will not be visible.
1348
- // In Opera instead, the selection will be moved out of the
1349
- // element. (#4657)
1350
- if ( range.collapsed &&
1351
- ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) &&
1352
- startContainer.type == CKEDITOR.NODE_ELEMENT &&
1353
- !startContainer.getChildCount() )
1354
- {
1355
- startContainer.appendText( '' );
1356
- }
1357
-
1358
- if ( range.collapsed
1359
- && CKEDITOR.env.webkit
1360
- && rangeRequiresFix( range ) )
1361
- {
1362
- // Append a zero-width space so WebKit will not try to
1363
- // move the selection by itself (#1272).
1364
- var fillingChar = createFillingChar( this.document );
1365
- range.insertNode( fillingChar ) ;
1366
-
1367
- var next = fillingChar.getNext();
1368
-
1369
- // If the filling char is followed by a <br>, whithout
1370
- // having something before it, it'll not blink.
1371
- // Let's remove it in this case.
1372
- if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' )
1373
- {
1374
- removeFillingChar( this.document );
1375
- range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
1376
- }
1377
- else
1378
- range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
1379
- }
1380
-
1381
- nativeRange.setStart( range.startContainer.$, range.startOffset );
1382
-
1383
- try
1384
- {
1385
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1386
- }
1387
- catch ( e )
1388
- {
1389
- // There is a bug in Firefox implementation (it would be too easy
1390
- // otherwise). The new start can't be after the end (W3C says it can).
1391
- // So, let's create a new range and collapse it to the desired point.
1392
- if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
1393
- {
1394
- range.collapse( 1 );
1395
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
1396
- }
1397
- else
1398
- throw e;
1399
- }
1400
-
1401
- // Select the range.
1402
- sel.addRange( nativeRange );
1403
- }
1404
-
1405
- this.reset();
1406
- }
1407
- },
1408
-
1409
- /**
1410
- * Create bookmark for every single of this selection range (from #getRanges)
1411
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark} method,
1412
- * with extra cares to avoid interferon among those ranges. Same arguments are
1413
- * received as with the underlay range method.
1414
- */
1415
- createBookmarks : function( serializable )
1416
- {
1417
- return this.getRanges().createBookmarks( serializable );
1418
- },
1419
-
1420
- /**
1421
- * Create bookmark for every single of this selection range (from #getRanges)
1422
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark2} method,
1423
- * with extra cares to avoid interferon among those ranges. Same arguments are
1424
- * received as with the underlay range method.
1425
- */
1426
- createBookmarks2 : function( normalized )
1427
- {
1428
- return this.getRanges().createBookmarks2( normalized );
1429
- },
1430
-
1431
- /**
1432
- * Select the virtual ranges denote by the bookmarks by calling #selectRanges.
1433
- * @param bookmarks
1434
- */
1435
- selectBookmarks : function( bookmarks )
1436
- {
1437
- var ranges = [];
1438
- for ( var i = 0 ; i < bookmarks.length ; i++ )
1439
- {
1440
- var range = new CKEDITOR.dom.range( this.document );
1441
- range.moveToBookmark( bookmarks[i] );
1442
- ranges.push( range );
1443
- }
1444
- this.selectRanges( ranges );
1445
- return this;
1446
- },
1447
-
1448
- /**
1449
- * Retrieve the common ancestor node of the first range and the last range.
1450
- */
1451
- getCommonAncestor : function()
1452
- {
1453
- var ranges = this.getRanges(),
1454
- startNode = ranges[ 0 ].startContainer,
1455
- endNode = ranges[ ranges.length - 1 ].endContainer;
1456
- return startNode.getCommonAncestor( endNode );
1457
- },
1458
-
1459
- /**
1460
- * Moving scroll bar to the current selection's start position.
1461
- */
1462
- scrollIntoView : function()
1463
- {
1464
- // If we have split the block, adds a temporary span at the
1465
- // range position and scroll relatively to it.
1466
- var start = this.getStartElement();
1467
- start.scrollIntoView();
1468
- }
1469
- };
1470
- })();
1471
-
1472
- ( function()
1473
- {
1474
- var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
1475
- fillerTextRegex = /\ufeff|\u00a0/,
1476
- nonCells = { table:1,tbody:1,tr:1 };
1477
-
1478
- CKEDITOR.dom.range.prototype.select =
1479
- CKEDITOR.env.ie ?
1480
- // V2
1481
- function( forceExpand )
1482
- {
1483
- var collapsed = this.collapsed,
1484
- isStartMarkerAlone, dummySpan, ieRange;
1485
-
1486
- // Try to make a object selection.
1487
- var selected = this.getEnclosedNode();
1488
- if ( selected )
1489
- {
1490
- try
1491
- {
1492
- ieRange = this.document.$.body.createControlRange();
1493
- ieRange.addElement( selected.$ );
1494
- ieRange.select();
1495
- return;
1496
- }
1497
- catch( er ) {}
1498
- }
1499
-
1500
- // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
1501
- // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
1502
- if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
1503
- || this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
1504
- {
1505
- this.shrink( CKEDITOR.NODE_ELEMENT, true );
1506
- }
1507
-
1508
- var bookmark = this.createBookmark();
1509
-
1510
- // Create marker tags for the start and end boundaries.
1511
- var startNode = bookmark.startNode;
1512
-
1513
- var endNode;
1514
- if ( !collapsed )
1515
- endNode = bookmark.endNode;
1516
-
1517
- // Create the main range which will be used for the selection.
1518
- ieRange = this.document.$.body.createTextRange();
1519
-
1520
- // Position the range at the start boundary.
1521
- ieRange.moveToElementText( startNode.$ );
1522
- ieRange.moveStart( 'character', 1 );
1523
-
1524
- if ( endNode )
1525
- {
1526
- // Create a tool range for the end.
1527
- var ieRangeEnd = this.document.$.body.createTextRange();
1528
-
1529
- // Position the tool range at the end.
1530
- ieRangeEnd.moveToElementText( endNode.$ );
1531
-
1532
- // Move the end boundary of the main range to match the tool range.
1533
- ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
1534
- ieRange.moveEnd( 'character', -1 );
1535
- }
1536
- else
1537
- {
1538
- // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
1539
- // will expand and that the cursor will be blinking on the right place.
1540
- // Actually, we are using this flag just to avoid using this hack in all
1541
- // situations, but just on those needed.
1542
- var next = startNode.getNext( notWhitespaces );
1543
- isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
1544
- && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
1545
-
1546
- // Append a temporary <span>&#65279;</span> before the selection.
1547
- // This is needed to avoid IE destroying selections inside empty
1548
- // inline elements, like <b></b> (#253).
1549
- // It is also needed when placing the selection right after an inline
1550
- // element to avoid the selection moving inside of it.
1551
- dummySpan = this.document.createElement( 'span' );
1552
- dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See #1359.
1553
- dummySpan.insertBefore( startNode );
1554
-
1555
- if ( isStartMarkerAlone )
1556
- {
1557
- // To expand empty blocks or line spaces after <br>, we need
1558
- // instead to have any char, which will be later deleted using the
1559
- // selection.
1560
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
1561
- this.document.createText( '\ufeff' ).insertBefore( startNode );
1562
- }
1563
- }
1564
-
1565
- // Remove the markers (reset the position, because of the changes in the DOM tree).
1566
- this.setStartBefore( startNode );
1567
- startNode.remove();
1568
-
1569
- if ( collapsed )
1570
- {
1571
- if ( isStartMarkerAlone )
1572
- {
1573
- // Move the selection start to include the temporary \ufeff.
1574
- ieRange.moveStart( 'character', -1 );
1575
-
1576
- ieRange.select();
1577
-
1578
- // Remove our temporary stuff.
1579
- this.document.$.selection.clear();
1580
- }
1581
- else
1582
- ieRange.select();
1583
-
1584
- this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
1585
- dummySpan.remove();
1586
- }
1587
- else
1588
- {
1589
- this.setEndBefore( endNode );
1590
- endNode.remove();
1591
- ieRange.select();
1592
- }
1593
-
1594
- this.document.fire( 'selectionchange' );
1595
- }
1596
- :
1597
- function()
1598
- {
1599
- this.document.getSelection().selectRanges( [ this ] );
1600
- };
1601
- } )();