tiny_mce 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (393) hide show
  1. data/CHANGELOG_PLUGIN.rdoc +4 -0
  2. data/CHANGELOG_TINYMCE +78 -7
  3. data/LICENSE +2 -2
  4. data/README.rdoc +36 -14
  5. data/Rakefile +1 -3
  6. data/SPELLCHECKING_PLUGIN.rdoc +3 -1
  7. data/VERSION +1 -1
  8. data/lib/tiny_mce.rb +2 -7
  9. data/lib/tiny_mce/assets/tiny_mce/langs/ar.js +95 -95
  10. data/lib/tiny_mce/assets/tiny_mce/langs/cs.js +13 -13
  11. data/lib/tiny_mce/assets/tiny_mce/langs/es.js +1 -1
  12. data/lib/tiny_mce/assets/tiny_mce/langs/fa.js +1 -1
  13. data/lib/tiny_mce/assets/tiny_mce/langs/fr.js +41 -41
  14. data/lib/tiny_mce/assets/tiny_mce/langs/he.js +93 -93
  15. data/lib/tiny_mce/assets/tiny_mce/langs/hu.js +10 -10
  16. data/lib/tiny_mce/assets/tiny_mce/langs/hy.js +157 -0
  17. data/lib/tiny_mce/assets/tiny_mce/langs/id.js +71 -71
  18. data/lib/tiny_mce/assets/tiny_mce/langs/ii.js +78 -70
  19. data/lib/tiny_mce/assets/tiny_mce/langs/ja.js +91 -99
  20. data/lib/tiny_mce/assets/tiny_mce/langs/lb.js +155 -0
  21. data/lib/tiny_mce/assets/tiny_mce/langs/pl.js +3 -3
  22. data/lib/tiny_mce/assets/tiny_mce/langs/ps.js +154 -0
  23. data/lib/tiny_mce/assets/tiny_mce/langs/pt.js +2 -2
  24. data/lib/tiny_mce/assets/tiny_mce/langs/ru.js +61 -59
  25. data/lib/tiny_mce/assets/tiny_mce/langs/sk.js +25 -25
  26. data/lib/tiny_mce/assets/tiny_mce/langs/th.js +1 -1
  27. data/lib/tiny_mce/assets/tiny_mce/langs/tr.js +51 -51
  28. data/lib/tiny_mce/assets/tiny_mce/langs/tw.js +2 -0
  29. data/lib/tiny_mce/assets/tiny_mce/langs/uk.js +7 -7
  30. data/lib/tiny_mce/assets/tiny_mce/langs/vi.js +17 -17
  31. data/lib/tiny_mce/assets/tiny_mce/langs/zu.js +162 -0
  32. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/editor_plugin_src.js +6 -3
  33. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/ar_dlg.js +3 -3
  34. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/he_dlg.js +3 -3
  35. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/hy_dlg.js +5 -0
  36. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/id_dlg.js +3 -3
  37. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/ii_dlg.js +1 -1
  38. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/ja_dlg.js +3 -3
  39. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/lb_dlg.js +5 -0
  40. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/ps_dlg.js +5 -0
  41. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/langs/zu_dlg.js +5 -0
  42. data/lib/tiny_mce/assets/tiny_mce/plugins/advhr/rule.htm +2 -7
  43. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/editor_plugin_src.js +6 -3
  44. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/image.htm +2 -7
  45. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/js/image.js +1 -1
  46. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/ar_dlg.js +41 -41
  47. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/de_dlg.js +1 -1
  48. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/fa_dlg.js +2 -2
  49. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/fr_dlg.js +14 -14
  50. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/he_dlg.js +37 -37
  51. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/hy_dlg.js +43 -0
  52. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/id_dlg.js +22 -22
  53. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/ii_dlg.js +24 -24
  54. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/ja_dlg.js +38 -38
  55. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/lb_dlg.js +43 -0
  56. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/ps_dlg.js +43 -0
  57. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/pt_dlg.js +1 -1
  58. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/ru_dlg.js +31 -31
  59. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/sk_dlg.js +2 -2
  60. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/th_dlg.js +1 -1
  61. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/tr_dlg.js +13 -13
  62. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/uk_dlg.js +1 -1
  63. data/lib/tiny_mce/assets/tiny_mce/plugins/advimage/langs/zu_dlg.js +43 -0
  64. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/editor_plugin_src.js +6 -3
  65. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/js/advlink.js +1 -1
  66. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/ar_dlg.js +49 -49
  67. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/fr_dlg.js +12 -12
  68. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/he_dlg.js +40 -40
  69. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/hy_dlg.js +52 -0
  70. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/id_dlg.js +32 -32
  71. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/ii_dlg.js +31 -31
  72. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/ja_dlg.js +49 -49
  73. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/lb_dlg.js +52 -0
  74. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/ps_dlg.js +52 -0
  75. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/pt_dlg.js +1 -1
  76. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/ru_dlg.js +38 -38
  77. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/sk_dlg.js +5 -5
  78. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/th_dlg.js +5 -5
  79. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/tr_dlg.js +23 -23
  80. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/uk_dlg.js +11 -11
  81. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/vi_dlg.js +1 -1
  82. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/langs/zu_dlg.js +52 -0
  83. data/lib/tiny_mce/assets/tiny_mce/plugins/advlink/link.htm +2 -7
  84. data/lib/tiny_mce/assets/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
  85. data/lib/tiny_mce/assets/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
  86. data/lib/tiny_mce/assets/tiny_mce/plugins/autoresize/editor_plugin_src.js +6 -3
  87. data/lib/tiny_mce/assets/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  88. data/lib/tiny_mce/assets/tiny_mce/plugins/autosave/editor_plugin_src.js +388 -17
  89. data/lib/tiny_mce/assets/tiny_mce/plugins/autosave/langs/en.js +4 -0
  90. data/lib/tiny_mce/assets/tiny_mce/plugins/bbcode/editor_plugin_src.js +6 -3
  91. data/lib/tiny_mce/assets/tiny_mce/plugins/contextmenu/editor_plugin_src.js +35 -3
  92. data/lib/tiny_mce/assets/tiny_mce/plugins/directionality/editor_plugin_src.js +6 -3
  93. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/editor_plugin.js +1 -1
  94. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/editor_plugin_src.js +8 -5
  95. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/ar_dlg.js +18 -18
  96. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/fr_dlg.js +3 -3
  97. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/he_dlg.js +18 -18
  98. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/hy_dlg.js +20 -0
  99. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/id_dlg.js +1 -1
  100. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/ii_dlg.js +3 -3
  101. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/ja_dlg.js +18 -18
  102. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/lb_dlg.js +20 -0
  103. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/ps_dlg.js +20 -0
  104. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/ru_dlg.js +18 -18
  105. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/sk_dlg.js +18 -18
  106. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/th_dlg.js +1 -1
  107. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/tr_dlg.js +12 -12
  108. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/vi_dlg.js +18 -18
  109. data/lib/tiny_mce/assets/tiny_mce/plugins/emotions/langs/zu_dlg.js +20 -0
  110. data/lib/tiny_mce/assets/tiny_mce/plugins/example/dialog.htm +2 -7
  111. data/lib/tiny_mce/assets/tiny_mce/plugins/example/editor_plugin_src.js +6 -3
  112. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/editor_plugin_src.js +6 -3
  113. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/fullpage.htm +2 -7
  114. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/js/fullpage.js +17 -7
  115. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/ar_dlg.js +78 -78
  116. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/fr_dlg.js +4 -4
  117. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/he_dlg.js +40 -40
  118. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/hy_dlg.js +85 -0
  119. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/ii_dlg.js +51 -51
  120. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/ja_dlg.js +75 -75
  121. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/lb_dlg.js +85 -0
  122. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/ps_dlg.js +85 -0
  123. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/pt_dlg.js +1 -1
  124. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/ru_dlg.js +54 -54
  125. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/tr_dlg.js +42 -42
  126. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/tw_dlg.js +3 -3
  127. data/lib/tiny_mce/assets/tiny_mce/plugins/fullpage/langs/zu_dlg.js +85 -0
  128. data/lib/tiny_mce/assets/tiny_mce/plugins/fullscreen/editor_plugin_src.js +6 -3
  129. data/lib/tiny_mce/assets/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -1
  130. data/lib/tiny_mce/assets/tiny_mce/plugins/iespell/editor_plugin_src.js +6 -3
  131. data/lib/tiny_mce/assets/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +6 -3
  132. data/lib/tiny_mce/assets/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +6 -3
  133. data/lib/tiny_mce/assets/tiny_mce/plugins/layer/editor_plugin_src.js +6 -3
  134. data/lib/tiny_mce/assets/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
  135. data/lib/tiny_mce/assets/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +136 -0
  136. data/lib/tiny_mce/assets/tiny_mce/plugins/media/editor_plugin.js +1 -1
  137. data/lib/tiny_mce/assets/tiny_mce/plugins/media/editor_plugin_src.js +10 -7
  138. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/ar_dlg.js +86 -86
  139. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/cs_dlg.js +12 -12
  140. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/fr_dlg.js +15 -15
  141. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/he_dlg.js +24 -24
  142. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/hy_dlg.js +103 -0
  143. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/id_dlg.js +16 -16
  144. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/ii_dlg.js +70 -70
  145. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/ja_dlg.js +91 -91
  146. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/lb_dlg.js +103 -0
  147. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/ps_dlg.js +103 -0
  148. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/ru_dlg.js +88 -88
  149. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/sk_dlg.js +1 -1
  150. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/tr_dlg.js +44 -44
  151. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/uk_dlg.js +24 -24
  152. data/lib/tiny_mce/assets/tiny_mce/plugins/media/langs/zu_dlg.js +103 -0
  153. data/lib/tiny_mce/assets/tiny_mce/plugins/media/media.htm +2 -7
  154. data/lib/tiny_mce/assets/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +6 -3
  155. data/lib/tiny_mce/assets/tiny_mce/plugins/noneditable/editor_plugin_src.js +6 -3
  156. data/lib/tiny_mce/assets/tiny_mce/plugins/pagebreak/editor_plugin_src.js +6 -3
  157. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  158. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/editor_plugin_src.js +509 -111
  159. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/ar_dlg.js +3 -3
  160. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/fr_dlg.js +1 -1
  161. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/he_dlg.js +3 -3
  162. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/hy_dlg.js +5 -0
  163. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/id_dlg.js +2 -2
  164. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/ii_dlg.js +3 -3
  165. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/ja_dlg.js +3 -3
  166. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/lb_dlg.js +5 -0
  167. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/ps_dlg.js +5 -0
  168. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/ru_dlg.js +3 -3
  169. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/tr_dlg.js +3 -3
  170. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/langs/zu_dlg.js +5 -0
  171. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/pastetext.htm +2 -8
  172. data/lib/tiny_mce/assets/tiny_mce/plugins/paste/pasteword.htm +2 -8
  173. data/lib/tiny_mce/assets/tiny_mce/plugins/preview/editor_plugin_src.js +6 -3
  174. data/lib/tiny_mce/assets/tiny_mce/plugins/print/editor_plugin_src.js +6 -3
  175. data/lib/tiny_mce/assets/tiny_mce/plugins/save/editor_plugin_src.js +6 -3
  176. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -1
  177. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/editor_plugin_src.js +7 -4
  178. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/js/searchreplace.js +4 -0
  179. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/ar_dlg.js +14 -14
  180. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/fa_dlg.js +2 -2
  181. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/fr_dlg.js +10 -10
  182. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/he_dlg.js +14 -14
  183. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/hy_dlg.js +16 -0
  184. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/id_dlg.js +13 -13
  185. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/ii_dlg.js +11 -11
  186. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/ja_dlg.js +13 -13
  187. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/lb_dlg.js +16 -0
  188. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/pl_dlg.js +2 -2
  189. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/ps_dlg.js +16 -0
  190. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/ru_dlg.js +8 -8
  191. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/sk_dlg.js +11 -11
  192. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/tr_dlg.js +5 -5
  193. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/langs/zu_dlg.js +16 -0
  194. data/lib/tiny_mce/assets/tiny_mce/plugins/searchreplace/searchreplace.htm +4 -9
  195. data/lib/tiny_mce/assets/tiny_mce/plugins/spellchecker/editor_plugin_src.js +6 -3
  196. data/lib/tiny_mce/assets/tiny_mce/plugins/style/editor_plugin_src.js +6 -3
  197. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/ar_dlg.js +61 -61
  198. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/cs_dlg.js +1 -1
  199. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/fr_dlg.js +4 -4
  200. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/he_dlg.js +56 -56
  201. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/hy_dlg.js +63 -0
  202. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/ii_dlg.js +33 -33
  203. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/ja_dlg.js +59 -59
  204. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/lb_dlg.js +63 -0
  205. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/pl_dlg.js +1 -1
  206. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/ps_dlg.js +63 -0
  207. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/ru_dlg.js +21 -21
  208. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/sk_dlg.js +7 -7
  209. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/th_dlg.js +3 -3
  210. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/tr_dlg.js +18 -18
  211. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/tw_dlg.js +2 -2
  212. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/uk_dlg.js +19 -19
  213. data/lib/tiny_mce/assets/tiny_mce/plugins/style/langs/zu_dlg.js +63 -0
  214. data/lib/tiny_mce/assets/tiny_mce/plugins/style/props.htm +4 -8
  215. data/lib/tiny_mce/assets/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  216. data/lib/tiny_mce/assets/tiny_mce/plugins/tabfocus/editor_plugin_src.js +7 -4
  217. data/lib/tiny_mce/assets/tiny_mce/plugins/table/cell.htm +2 -7
  218. data/lib/tiny_mce/assets/tiny_mce/plugins/table/editor_plugin.js +1 -1
  219. data/lib/tiny_mce/assets/tiny_mce/plugins/table/editor_plugin_src.js +889 -973
  220. data/lib/tiny_mce/assets/tiny_mce/plugins/table/js/cell.js +40 -23
  221. data/lib/tiny_mce/assets/tiny_mce/plugins/table/js/merge_cells.js +18 -20
  222. data/lib/tiny_mce/assets/tiny_mce/plugins/table/js/row.js +47 -22
  223. data/lib/tiny_mce/assets/tiny_mce/plugins/table/js/table.js +17 -8
  224. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/ar_dlg.js +70 -70
  225. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/fr_dlg.js +14 -14
  226. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/he_dlg.js +56 -56
  227. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/hy_dlg.js +74 -0
  228. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/id_dlg.js +25 -25
  229. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/ii_dlg.js +54 -54
  230. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/ja_dlg.js +67 -67
  231. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/lb_dlg.js +74 -0
  232. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/ps_dlg.js +74 -0
  233. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/pt_dlg.js +1 -1
  234. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/ru_dlg.js +47 -47
  235. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/sk_dlg.js +2 -2
  236. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/tr_dlg.js +25 -25
  237. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/uk_dlg.js +22 -22
  238. data/lib/tiny_mce/assets/tiny_mce/plugins/table/langs/zu_dlg.js +74 -0
  239. data/lib/tiny_mce/assets/tiny_mce/plugins/table/merge_cells.htm +3 -8
  240. data/lib/tiny_mce/assets/tiny_mce/plugins/table/row.htm +2 -7
  241. data/lib/tiny_mce/assets/tiny_mce/plugins/table/table.htm +2 -7
  242. data/lib/tiny_mce/assets/tiny_mce/plugins/template/editor_plugin_src.js +6 -3
  243. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/ar_dlg.js +11 -11
  244. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/cs_dlg.js +4 -4
  245. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/es_dlg.js +1 -1
  246. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/fr_dlg.js +2 -2
  247. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/he_dlg.js +7 -7
  248. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/hy_dlg.js +15 -0
  249. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/id_dlg.js +6 -6
  250. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/ii_dlg.js +10 -10
  251. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/ja_dlg.js +11 -11
  252. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/lb_dlg.js +15 -0
  253. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/ps_dlg.js +15 -0
  254. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/ru_dlg.js +9 -9
  255. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/tr_dlg.js +5 -5
  256. data/lib/tiny_mce/assets/tiny_mce/plugins/template/langs/zu_dlg.js +15 -0
  257. data/lib/tiny_mce/assets/tiny_mce/plugins/template/template.htm +2 -8
  258. data/lib/tiny_mce/assets/tiny_mce/plugins/visualchars/editor_plugin_src.js +6 -3
  259. data/lib/tiny_mce/assets/tiny_mce/plugins/wordcount/editor_plugin_src.js +6 -3
  260. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/abbr.htm +3 -10
  261. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/acronym.htm +3 -10
  262. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/attributes.htm +2 -7
  263. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/cite.htm +3 -10
  264. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/del.htm +3 -11
  265. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -1
  266. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +11 -3
  267. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/ins.htm +3 -11
  268. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/abbr.js +8 -5
  269. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/acronym.js +7 -4
  270. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/attributes.js +7 -4
  271. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/cite.js +7 -4
  272. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/del.js +7 -4
  273. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/element_common.js +8 -8
  274. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/js/ins.js +7 -4
  275. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/ar_dlg.js +30 -30
  276. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/cs_dlg.js +2 -2
  277. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js +6 -6
  278. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/he_dlg.js +27 -27
  279. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/hy_dlg.js +32 -0
  280. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/id_dlg.js +22 -22
  281. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/ii_dlg.js +14 -14
  282. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js +25 -25
  283. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/lb_dlg.js +32 -0
  284. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/pl_dlg.js +3 -3
  285. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/ps_dlg.js +32 -0
  286. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js +15 -15
  287. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/sk_dlg.js +2 -2
  288. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/th_dlg.js +5 -5
  289. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/tr_dlg.js +18 -18
  290. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/uk_dlg.js +9 -9
  291. data/lib/tiny_mce/assets/tiny_mce/plugins/xhtmlxtras/langs/zu_dlg.js +32 -0
  292. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/about.htm +1 -3
  293. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/anchor.htm +2 -7
  294. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/color_picker.htm +1 -3
  295. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/editor_template.js +1 -1
  296. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/editor_template_src.js +166 -169
  297. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/image.htm +2 -7
  298. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/img/icons.gif +0 -0
  299. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/js/anchor.js +7 -7
  300. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/js/charmap.js +10 -0
  301. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/js/image.js +2 -2
  302. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ar.js +59 -61
  303. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ar_dlg.js +49 -49
  304. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/cs.js +1 -1
  305. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/el.js +3 -1
  306. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/es.js +4 -4
  307. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/es_dlg.js +2 -2
  308. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/fa_dlg.js +1 -1
  309. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/fr.js +14 -17
  310. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/fr_dlg.js +17 -17
  311. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/he.js +57 -57
  312. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/he_dlg.js +49 -49
  313. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/hu.js +2 -2
  314. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/hu_dlg.js +4 -4
  315. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/hy.js +62 -0
  316. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/hy_dlg.js +51 -0
  317. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/id.js +5 -5
  318. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/id_dlg.js +13 -13
  319. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ii.js +42 -40
  320. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ii_dlg.js +28 -28
  321. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/it_dlg.js +5 -5
  322. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ja.js +57 -59
  323. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ja_dlg.js +48 -48
  324. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/lb.js +63 -0
  325. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/lb_dlg.js +51 -0
  326. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/pl.js +2 -2
  327. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ps.js +62 -0
  328. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ps_dlg.js +51 -0
  329. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/pt.js +5 -5
  330. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ru.js +28 -28
  331. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/ru_dlg.js +37 -37
  332. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/sk.js +15 -15
  333. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/sk_dlg.js +19 -19
  334. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/th.js +4 -4
  335. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/th_dlg.js +4 -4
  336. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/tr.js +27 -27
  337. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/tr_dlg.js +17 -17
  338. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/tw.js +3 -3
  339. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/uk_dlg.js +6 -6
  340. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/vi.js +17 -17
  341. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/vi_dlg.js +1 -1
  342. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/zu.js +64 -0
  343. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/langs/zu_dlg.js +51 -0
  344. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/link.htm +2 -7
  345. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/default/content.css +6 -3
  346. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/default/dialog.css +4 -3
  347. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/default/ui.css +4 -5
  348. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/o2k7/content.css +6 -3
  349. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/o2k7/dialog.css +3 -2
  350. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/skins/o2k7/ui.css +3 -3
  351. data/lib/tiny_mce/assets/tiny_mce/themes/advanced/source_editor.htm +2 -7
  352. data/lib/tiny_mce/assets/tiny_mce/themes/simple/editor_template_src.js +5 -5
  353. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/ar.js +9 -9
  354. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/he.js +8 -8
  355. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/hu.js +1 -1
  356. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/hy.js +11 -0
  357. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/ii.js +8 -8
  358. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/ja.js +9 -9
  359. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/lb.js +11 -0
  360. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/ps.js +11 -0
  361. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/ru.js +4 -4
  362. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/sk.js +4 -4
  363. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/tr.js +4 -4
  364. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/tw.js +1 -1
  365. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/vi.js +9 -9
  366. data/lib/tiny_mce/assets/tiny_mce/themes/simple/langs/zu.js +11 -0
  367. data/lib/tiny_mce/assets/tiny_mce/tiny_mce.js +1 -1
  368. data/lib/tiny_mce/assets/tiny_mce/tiny_mce_popup.js +1 -1
  369. data/lib/tiny_mce/assets/tiny_mce/tiny_mce_src.js +4684 -4107
  370. data/lib/tiny_mce/assets/tiny_mce/utils/editable_selects.js +5 -4
  371. data/lib/tiny_mce/assets/tiny_mce/utils/form_utils.js +5 -4
  372. data/lib/tiny_mce/assets/tiny_mce/utils/mctabs.js +5 -4
  373. data/lib/tiny_mce/assets/tiny_mce/utils/validate.js +5 -4
  374. data/lib/tiny_mce/base.rb +7 -19
  375. data/lib/tiny_mce/configuration.rb +98 -0
  376. data/lib/tiny_mce/exceptions.rb +14 -0
  377. data/lib/tiny_mce/helpers.rb +13 -49
  378. data/lib/tiny_mce/spell_checker.rb +0 -2
  379. data/lib/tiny_mce/valid_tinymce_options.yml +1 -6
  380. data/test/functional/full_tiny_mce_controller_test.rb +9 -12
  381. data/test/functional/multi_configuration_tiny_mce_controller_test.rb +58 -0
  382. data/test/functional/slim_tiny_mce_controller_test.rb +8 -5
  383. data/test/test_helper.rb +12 -0
  384. data/test/unit/configuration_test.rb +56 -0
  385. data/test/unit/helpers/tiny_mce_helper_test.rb +99 -97
  386. data/test/unit/tiny_mce_test.rb +1 -2
  387. data/tiny_mce.gemspec +79 -10
  388. metadata +88 -11
  389. data/lib/tiny_mce/assets/tiny_mce/plugins/safari/blank.htm +0 -1
  390. data/lib/tiny_mce/assets/tiny_mce/plugins/safari/editor_plugin.js +0 -1
  391. data/lib/tiny_mce/assets/tiny_mce/plugins/safari/editor_plugin_src.js +0 -438
  392. data/lib/tiny_mce/option_validator.rb +0 -35
  393. data/test/unit/options_validator_test.rb +0 -51
@@ -1 +0,0 @@
1
- <!-- WebKit -->
@@ -1 +0,0 @@
1
- (function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&&k.nodeValue&&/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&&/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create("tinymce.plugins.Safari",{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=["x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large"];g.namedFontSizes=["xx-small","x-small","small","medium","large","x-large","xx-large"];f.addCommand("CreateLink",function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&&(/^(left|right)$/i.test(l.getStyle(m,"float",1))||/^(left|right)$/i.test(l.getAttrib(m,"align")))){i=l.create("a",{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand("CreateLink",false,j)}});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&&!/<(img|hr)/.test(l)&&tinymce.trim(l.replace(/<[^>]+>/g,"")).length==0){j.setContent('<p><br mce_bogus="1" /></p>',{format:"raw"});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand("FormatBlock",function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand("FormatBlock",false,i)}});f.addCommand("mceInsertContent",function(j,i){f.getDoc().execCommand("InsertText",false,"mce_marker");f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'<span id="_mce_tmp">XX</span>');f.selection.select(f.dom.get("_mce_tmp"));f.getDoc().execCommand("Delete",false," ")});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&&q.nodeName!="LI"){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,"LI")){r=h.getParent(v,"OL,UL");u=o.getDoc();s=h.create("p");h.add(s,"br",{mce_bogus:"1"});if(e(u,v)){if(k=h.getParent(r.parentNode,"LI,OL,UL")){return}k=h.getParent(r,"p,h1,h2,h3,h4,h5,h6,div")||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k=="InsertUnorderedList"||k=="InsertOrderedList"){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName=="IMG"){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d(["strong","b","em","u","strike","sub","sup","a"],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k=="a"){if(l.name){h.replace(h.create("img",{mce_name:"a",name:l.name,"class":"mceItemAnchor"}),l)}return}switch(k){case"b":case"strong":if(k=="b"){k="strong"}j="font-weight: bold;";break;case"em":j="font-style: italic;";break;case"u":j="text-decoration: underline;";break;case"sub":j="vertical-align: sub;";break;case"sup":j="vertical-align: super;";break;case"strike":j="text-decoration: line-through;";break}h.replace(h.create("span",{mce_name:k,style:j,"class":"Apple-style-span"}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName("span")).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,"Apple-style-span")){l=m.style.backgroundColor;switch(h.getAttrib(m,"mce_name")){case"font":if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,"style","")}break;case"strong":case"em":case"sub":case"sup":h.setAttrib(m,"style","");break;case"strike":case"u":if(!i.settings.inline_styles){h.setAttrib(m,"style","")}else{h.setAttrib(m,"mce_name","")}break;default:if(!i.settings.inline_styles){h.setAttrib(m,"style","")}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,"mceItemRemoved")){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,"</$1>");j.content=j.content.replace(/ id=\"undefined\"/g,"")})},getInfo:function(){return{longname:"Safari compatibility",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),"DOMNodeInserted",function(h){h=h.target;if(h&&h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,"mce_fixed")){return}if(l.nodeName=="SPAN"&&l.className=="Apple-style-span"){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"size",b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"face",h.fontFamily)}if(h.color){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"color",m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,"mce_name","font");m.setStyle(l,"background-color",h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,"fontSize",f[b(i,h.fontSize)])}}if(h.fontWeight=="bold"){m.setAttrib(l,"mce_name","strong")}if(h.fontStyle=="italic"){m.setAttrib(l,"mce_name","em")}if(h.textDecoration=="underline"){m.setAttrib(l,"mce_name","u")}if(h.textDecoration=="line-through"){m.setAttrib(l,"mce_name","strike")}if(h.verticalAlign=="super"){m.setAttrib(l,"mce_name","sup")}if(h.verticalAlign=="sub"){m.setAttrib(l,"mce_name","sub")}m.setAttrib(l,"mce_fixed","1")}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create("br"));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode("\u00a0"),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add("safari",tinymce.plugins.Safari)})();
@@ -1,438 +0,0 @@
1
- /**
2
- * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $
3
- *
4
- * @author Moxiecode
5
- * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
6
- */
7
-
8
- (function() {
9
- var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray;
10
-
11
- function isEmpty(d, e, f) {
12
- var w, n;
13
-
14
- w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false);
15
- while (n = w.nextNode()) {
16
- // Filter func
17
- if (f) {
18
- if (!f(n))
19
- return false;
20
- }
21
-
22
- // Non whitespace text node
23
- if (n.nodeType == 3 && n.nodeValue && /[^\s\u00a0]+/.test(n.nodeValue))
24
- return false;
25
-
26
- // Is non text element byt still content
27
- if (n.nodeType == 1 && /^(HR|IMG|TABLE)$/.test(n.nodeName))
28
- return false;
29
- }
30
-
31
- return true;
32
- };
33
-
34
- tinymce.create('tinymce.plugins.Safari', {
35
- init : function(ed) {
36
- var t = this, dom;
37
-
38
- // Ignore on non webkit
39
- if (!tinymce.isWebKit)
40
- return;
41
-
42
- t.editor = ed;
43
- t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];
44
- t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];
45
-
46
- // Safari CreateLink command will not work correctly on images that is aligned
47
- ed.addCommand('CreateLink', function(u, v) {
48
- var n = ed.selection.getNode(), dom = ed.dom, a;
49
-
50
- if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {
51
- a = dom.create('a', {href : v}, n.cloneNode());
52
- n.parentNode.replaceChild(a, n);
53
- ed.selection.select(a);
54
- } else
55
- ed.getDoc().execCommand("CreateLink", false, v);
56
- });
57
-
58
- /*
59
- // WebKit generates spans out of thin air this patch used to remove them but it will also remove styles we want so it's disabled for now
60
- ed.onPaste.add(function(ed, e) {
61
- function removeStyles(e) {
62
- e = e.target;
63
-
64
- if (e.nodeType == 1) {
65
- e.style.cssText = '';
66
-
67
- each(ed.dom.select('*', e), function(e) {
68
- e.style.cssText = '';
69
- });
70
- }
71
- };
72
-
73
- Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);
74
-
75
- window.setTimeout(function() {
76
- Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);
77
- }, 0);
78
- });
79
- */
80
- ed.onKeyUp.add(function(ed, e) {
81
- var h, b, r, n, s;
82
-
83
- // If backspace or delete key
84
- if (e.keyCode == 46 || e.keyCode == 8) {
85
- b = ed.getBody();
86
- h = b.innerHTML;
87
- s = ed.selection;
88
-
89
- // If there is no text content or images or hr elements then remove everything
90
- if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0) {
91
- // Inject paragrah and bogus br
92
- ed.setContent('<p><br mce_bogus="1" /></p>', {format : 'raw'});
93
-
94
- // Move caret before bogus br
95
- n = b.firstChild;
96
- r = s.getRng();
97
- r.setStart(n, 0);
98
- r.setEnd(n, 0);
99
- s.setRng(r);
100
- }
101
- }
102
- });
103
-
104
- // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004
105
- ed.addCommand('FormatBlock', function(u, v) {
106
- var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);
107
-
108
- if (e)
109
- dom.replace(dom.create(v), e, 1);
110
- else
111
- ed.getDoc().execCommand("FormatBlock", false, v);
112
- });
113
-
114
- // Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382
115
- ed.addCommand('mceInsertContent', function(u, v) {
116
- ed.getDoc().execCommand("InsertText", false, 'mce_marker');
117
- ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, ed.dom.processHTML(v) + '<span id="_mce_tmp">XX</span>');
118
- ed.selection.select(ed.dom.get('_mce_tmp'));
119
- ed.getDoc().execCommand("Delete", false, ' ');
120
- });
121
-
122
- /* ed.onKeyDown.add(function(ed, e) {
123
- // Ctrl+A select all will fail on WebKit since if you paste the contents you selected it will produce a odd div wrapper
124
- if ((e.ctrlKey || e.metaKey) && e.keyCode == 65) {
125
- ed.selection.select(ed.getBody(), 1);
126
- return Event.cancel(e);
127
- }
128
- });*/
129
-
130
- ed.onKeyPress.add(function(ed, e) {
131
- var se, li, lic, r1, r2, n, sel, doc, be, af, pa;
132
-
133
- if (e.keyCode == 13) {
134
- sel = ed.selection;
135
- se = sel.getNode();
136
-
137
- // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
138
- if (e.shiftKey || ed.settings.force_br_newlines && se.nodeName != 'LI') {
139
- t._insertBR(ed);
140
- Event.cancel(e);
141
- }
142
-
143
- // Workaround for DIV elements produced by Safari
144
- if (li = dom.getParent(se, 'LI')) {
145
- lic = dom.getParent(li, 'OL,UL');
146
- doc = ed.getDoc();
147
-
148
- pa = dom.create('p');
149
- dom.add(pa, 'br', {mce_bogus : "1"});
150
-
151
- if (isEmpty(doc, li)) {
152
- // If list in list then use browser default behavior
153
- if (n = dom.getParent(lic.parentNode, 'LI,OL,UL'))
154
- return;
155
-
156
- n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic;
157
-
158
- // Create range from the start of block element to the list item
159
- r1 = doc.createRange();
160
- r1.setStartBefore(n);
161
- r1.setEndBefore(li);
162
-
163
- // Create range after the list to the end of block element
164
- r2 = doc.createRange();
165
- r2.setStartAfter(li);
166
- r2.setEndAfter(n);
167
-
168
- be = r1.cloneContents();
169
- af = r2.cloneContents();
170
-
171
- if (!isEmpty(doc, af))
172
- dom.insertAfter(af, n);
173
-
174
- dom.insertAfter(pa, n);
175
-
176
- if (!isEmpty(doc, be))
177
- dom.insertAfter(be, n);
178
-
179
- dom.remove(n);
180
-
181
- n = pa.firstChild;
182
- r1 = doc.createRange();
183
- r1.setStartBefore(n);
184
- r1.setEndBefore(n);
185
- sel.setRng(r1);
186
-
187
- return Event.cancel(e);
188
- }
189
- }
190
- }
191
- });
192
-
193
- // Safari doesn't place lists outside block elements
194
- ed.onExecCommand.add(function(ed, cmd) {
195
- var sel, dom, bl, bm;
196
-
197
- if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') {
198
- sel = ed.selection;
199
- dom = ed.dom;
200
-
201
- if (bl = dom.getParent(sel.getNode(), function(n) {return /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName);})) {
202
- bm = sel.getBookmark();
203
- dom.remove(bl, 1);
204
- sel.moveToBookmark(bm);
205
- }
206
- }
207
- });
208
-
209
- // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
210
- ed.onClick.add(function(ed, e) {
211
- e = e.target;
212
-
213
- if (e.nodeName == 'IMG') {
214
- t.selElm = e;
215
- ed.selection.select(e);
216
- } else
217
- t.selElm = null;
218
- });
219
-
220
- ed.onInit.add(function() {
221
- t._fixWebKitSpans();
222
- });
223
-
224
- ed.onSetContent.add(function() {
225
- dom = ed.dom;
226
-
227
- // Convert strong,b,em,u,strike to spans
228
- each(['strong','b','em','u','strike','sub','sup','a'], function(v) {
229
- each(grep(dom.select(v)).reverse(), function(n) {
230
- var nn = n.nodeName.toLowerCase(), st;
231
-
232
- // Convert anchors into images
233
- if (nn == 'a') {
234
- if (n.name)
235
- dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);
236
-
237
- return;
238
- }
239
-
240
- switch (nn) {
241
- case 'b':
242
- case 'strong':
243
- if (nn == 'b')
244
- nn = 'strong';
245
-
246
- st = 'font-weight: bold;';
247
- break;
248
-
249
- case 'em':
250
- st = 'font-style: italic;';
251
- break;
252
-
253
- case 'u':
254
- st = 'text-decoration: underline;';
255
- break;
256
-
257
- case 'sub':
258
- st = 'vertical-align: sub;';
259
- break;
260
-
261
- case 'sup':
262
- st = 'vertical-align: super;';
263
- break;
264
-
265
- case 'strike':
266
- st = 'text-decoration: line-through;';
267
- break;
268
- }
269
-
270
- dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);
271
- });
272
- });
273
- });
274
-
275
- ed.onPreProcess.add(function(ed, o) {
276
- dom = ed.dom;
277
-
278
- each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {
279
- var v, bg;
280
-
281
- if (o.get) {
282
- if (dom.hasClass(n, 'Apple-style-span')) {
283
- bg = n.style.backgroundColor;
284
-
285
- switch (dom.getAttrib(n, 'mce_name')) {
286
- case 'font':
287
- if (!ed.settings.convert_fonts_to_spans)
288
- dom.setAttrib(n, 'style', '');
289
- break;
290
-
291
- case 'strong':
292
- case 'em':
293
- case 'sub':
294
- case 'sup':
295
- dom.setAttrib(n, 'style', '');
296
- break;
297
-
298
- case 'strike':
299
- case 'u':
300
- if (!ed.settings.inline_styles)
301
- dom.setAttrib(n, 'style', '');
302
- else
303
- dom.setAttrib(n, 'mce_name', '');
304
-
305
- break;
306
-
307
- default:
308
- if (!ed.settings.inline_styles)
309
- dom.setAttrib(n, 'style', '');
310
- }
311
-
312
-
313
- if (bg)
314
- n.style.backgroundColor = bg;
315
- }
316
- }
317
-
318
- if (dom.hasClass(n, 'mceItemRemoved'))
319
- dom.remove(n, 1);
320
- });
321
- });
322
-
323
- ed.onPostProcess.add(function(ed, o) {
324
- // Safari adds BR at end of all block elements
325
- o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');
326
-
327
- // Safari adds id="undefined" to HR elements
328
- o.content = o.content.replace(/ id=\"undefined\"/g, '');
329
- });
330
- },
331
-
332
- getInfo : function() {
333
- return {
334
- longname : 'Safari compatibility',
335
- author : 'Moxiecode Systems AB',
336
- authorurl : 'http://tinymce.moxiecode.com',
337
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
338
- version : tinymce.majorVersion + "." + tinymce.minorVersion
339
- };
340
- },
341
-
342
- // Internal methods
343
-
344
- _fixWebKitSpans : function() {
345
- var t = this, ed = t.editor;
346
-
347
- // Use mutator events on new WebKit
348
- Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
349
- e = e.target;
350
-
351
- if (e && e.nodeType == 1)
352
- t._fixAppleSpan(e);
353
- });
354
- },
355
-
356
- _fixAppleSpan : function(e) {
357
- var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;
358
-
359
- if (dom.getAttrib(e, 'mce_fixed'))
360
- return;
361
-
362
- // Handle Apple style spans
363
- if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {
364
- st = e.style;
365
-
366
- if (!s.convert_fonts_to_spans) {
367
- if (st.fontSize) {
368
- dom.setAttrib(e, 'mce_name', 'font');
369
- dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);
370
- }
371
-
372
- if (st.fontFamily) {
373
- dom.setAttrib(e, 'mce_name', 'font');
374
- dom.setAttrib(e, 'face', st.fontFamily);
375
- }
376
-
377
- if (st.color) {
378
- dom.setAttrib(e, 'mce_name', 'font');
379
- dom.setAttrib(e, 'color', dom.toHex(st.color));
380
- }
381
-
382
- if (st.backgroundColor) {
383
- dom.setAttrib(e, 'mce_name', 'font');
384
- dom.setStyle(e, 'background-color', st.backgroundColor);
385
- }
386
- } else {
387
- if (st.fontSize)
388
- dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);
389
- }
390
-
391
- if (st.fontWeight == 'bold')
392
- dom.setAttrib(e, 'mce_name', 'strong');
393
-
394
- if (st.fontStyle == 'italic')
395
- dom.setAttrib(e, 'mce_name', 'em');
396
-
397
- if (st.textDecoration == 'underline')
398
- dom.setAttrib(e, 'mce_name', 'u');
399
-
400
- if (st.textDecoration == 'line-through')
401
- dom.setAttrib(e, 'mce_name', 'strike');
402
-
403
- if (st.verticalAlign == 'super')
404
- dom.setAttrib(e, 'mce_name', 'sup');
405
-
406
- if (st.verticalAlign == 'sub')
407
- dom.setAttrib(e, 'mce_name', 'sub');
408
-
409
- dom.setAttrib(e, 'mce_fixed', '1');
410
- }
411
- },
412
-
413
- _insertBR : function(ed) {
414
- var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
415
-
416
- // Insert BR element
417
- r.insertNode(br = dom.create('br'));
418
-
419
- // Place caret after BR
420
- r.setStartAfter(br);
421
- r.setEndAfter(br);
422
- s.setRng(r);
423
-
424
- // Could not place caret after BR then insert an nbsp entity and move the caret
425
- if (s.getSel().focusNode == br.previousSibling) {
426
- s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));
427
- s.collapse(1);
428
- }
429
-
430
- // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
431
- ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);
432
- }
433
- });
434
-
435
- // Register plugin
436
- tinymce.PluginManager.add('safari', tinymce.plugins.Safari);
437
- })();
438
-
@@ -1,35 +0,0 @@
1
- # The base module we include into ActionController::Base
2
- module TinyMCE
3
- # We use this to validate whether options passed in by the users are valid
4
- # tiny mce configuration settings. Also loads which options are valid, and
5
- # provides an plugins attribute to allow more configuration options dynamicly
6
- module OptionValidator
7
- class << self
8
-
9
- # Used to set the array of plugins being used
10
- cattr_accessor :plugins
11
-
12
- # Parse the options file and load it into an array
13
- # (this method is called when tiny_mce is initialized - see init.rb)
14
- def load
15
- @@valid_options = File.open(File.dirname(__FILE__) + '/valid_tinymce_options.yml') { |f| YAML.load(f.read) }
16
- self.plugins = Array.new
17
- end
18
-
19
- # Does the check to see if the option is valid. It checks the valid_options
20
- # array (see above), checks if the start of the option name is in the plugin list
21
- # or checks if it's an theme_advanced_container setting
22
- def valid?(option)
23
- option = option.to_s
24
- @@valid_options.include?(option) ||
25
- (plugins && plugins.include?(option.split('_')[0])) ||
26
- option =~ /^theme_advanced_container_\w+$/
27
- end
28
-
29
- # If we need to get the array of valid options, we can call this method
30
- def options
31
- @@valid_options
32
- end
33
- end
34
- end
35
- end