decko 0.3.2 → 0.3.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 (335) hide show
  1. checksums.yaml +4 -4
  2. data/features/autonaming.feature +2 -0
  3. data/features/navbox.feature +1 -1
  4. data/features/step_definitions/{wagn_steps.rb → decko_steps.rb} +50 -24
  5. data/features/structure.feature +2 -2
  6. data/features/update_includers.feature +1 -0
  7. data/lib/decko/config/environments/development.rb +0 -1
  8. data/rails/assets/tinymce/jquery.tinymce.min.js +1 -0
  9. data/rails/assets/tinymce/langs/readme.md +3 -0
  10. data/rails/assets/tinymce/license.txt +7 -7
  11. data/rails/assets/tinymce/plugins/advlist/plugin.min.js +1 -0
  12. data/rails/assets/tinymce/plugins/anchor/plugin.min.js +1 -0
  13. data/rails/assets/tinymce/plugins/autolink/plugin.min.js +1 -0
  14. data/rails/assets/tinymce/plugins/autoresize/plugin.min.js +1 -0
  15. data/rails/assets/tinymce/plugins/autosave/plugin.min.js +1 -0
  16. data/rails/assets/tinymce/plugins/bbcode/plugin.min.js +1 -0
  17. data/rails/assets/tinymce/plugins/charmap/plugin.min.js +1 -0
  18. data/rails/assets/tinymce/plugins/code/plugin.min.js +1 -0
  19. data/rails/assets/tinymce/plugins/codesample/css/prism.css +138 -0
  20. data/rails/assets/tinymce/plugins/codesample/plugin.min.js +1 -0
  21. data/rails/assets/tinymce/plugins/colorpicker/plugin.min.js +1 -0
  22. data/rails/assets/tinymce/plugins/contextmenu/plugin.min.js +1 -0
  23. data/rails/assets/tinymce/plugins/directionality/plugin.min.js +1 -0
  24. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-cool.gif +0 -0
  25. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-cry.gif +0 -0
  26. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-embarassed.gif +0 -0
  27. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-foot-in-mouth.gif +0 -0
  28. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-frown.gif +0 -0
  29. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-innocent.gif +0 -0
  30. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-kiss.gif +0 -0
  31. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-laughing.gif +0 -0
  32. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-money-mouth.gif +0 -0
  33. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-sealed.gif +0 -0
  34. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-smile.gif +0 -0
  35. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-surprised.gif +0 -0
  36. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-tongue-out.gif +0 -0
  37. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-undecided.gif +0 -0
  38. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-wink.gif +0 -0
  39. data/rails/assets/tinymce/plugins/{emotions → emoticons}/img/smiley-yell.gif +0 -0
  40. data/rails/assets/tinymce/plugins/emoticons/plugin.min.js +1 -0
  41. data/rails/assets/tinymce/plugins/fullpage/plugin.min.js +1 -0
  42. data/rails/assets/tinymce/plugins/fullscreen/plugin.min.js +1 -0
  43. data/rails/assets/tinymce/plugins/help/img/logo.png +0 -0
  44. data/rails/assets/tinymce/plugins/help/plugin.min.js +1 -0
  45. data/rails/assets/tinymce/plugins/hr/plugin.min.js +1 -0
  46. data/rails/assets/tinymce/plugins/image/plugin.min.js +1 -0
  47. data/rails/assets/tinymce/plugins/imagetools/plugin.min.js +2 -0
  48. data/rails/assets/tinymce/plugins/importcss/plugin.min.js +1 -0
  49. data/rails/assets/tinymce/plugins/insertdatetime/plugin.min.js +1 -0
  50. data/rails/assets/tinymce/plugins/legacyoutput/plugin.min.js +1 -0
  51. data/rails/assets/tinymce/plugins/link/plugin.min.js +1 -0
  52. data/rails/assets/tinymce/plugins/lists/plugin.min.js +1 -0
  53. data/rails/assets/tinymce/plugins/media/plugin.min.js +1 -0
  54. data/rails/assets/tinymce/plugins/nonbreaking/plugin.min.js +1 -0
  55. data/rails/assets/tinymce/plugins/noneditable/plugin.min.js +1 -0
  56. data/rails/assets/tinymce/plugins/pagebreak/plugin.min.js +1 -0
  57. data/rails/assets/tinymce/plugins/paste/plugin.min.js +1 -0
  58. data/rails/assets/tinymce/plugins/preview/plugin.min.js +1 -0
  59. data/rails/assets/tinymce/plugins/print/plugin.min.js +1 -0
  60. data/rails/assets/tinymce/plugins/save/plugin.min.js +1 -0
  61. data/rails/assets/tinymce/plugins/searchreplace/plugin.min.js +1 -0
  62. data/rails/assets/tinymce/plugins/spellchecker/plugin.min.js +1 -0
  63. data/rails/assets/tinymce/plugins/tabfocus/plugin.min.js +1 -0
  64. data/rails/assets/tinymce/plugins/table/plugin.min.js +5 -0
  65. data/rails/assets/tinymce/plugins/template/plugin.min.js +1 -0
  66. data/rails/assets/tinymce/plugins/textcolor/plugin.min.js +1 -0
  67. data/rails/assets/tinymce/plugins/textpattern/plugin.min.js +1 -0
  68. data/rails/assets/tinymce/plugins/toc/plugin.min.js +1 -0
  69. data/rails/assets/tinymce/plugins/visualblocks/css/visualblocks.css +154 -21
  70. data/rails/assets/tinymce/plugins/visualblocks/plugin.min.js +1 -0
  71. data/rails/assets/tinymce/plugins/visualchars/plugin.min.js +1 -0
  72. data/rails/assets/tinymce/plugins/wordcount/plugin.min.js +1 -0
  73. data/rails/assets/tinymce/skins/lightgray/content.inline.min.css +1 -0
  74. data/rails/assets/tinymce/skins/lightgray/content.min.css +1 -0
  75. data/rails/assets/tinymce/skins/lightgray/content.mobile.min.css +1 -0
  76. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce-mobile.woff +0 -0
  77. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  78. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce-small.svg +63 -0
  79. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  80. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  81. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  82. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce.svg +131 -0
  83. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  84. data/rails/assets/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  85. data/rails/assets/tinymce/skins/lightgray/img/anchor.gif +0 -0
  86. data/rails/assets/tinymce/skins/lightgray/img/loader.gif +0 -0
  87. data/rails/assets/tinymce/skins/lightgray/img/object.gif +0 -0
  88. data/rails/assets/tinymce/{themes/advanced → skins/lightgray}/img/trans.gif +0 -0
  89. data/rails/assets/tinymce/skins/lightgray/skin.min.css +1 -0
  90. data/rails/assets/tinymce/skins/lightgray/skin.mobile.min.css +2 -0
  91. data/rails/assets/tinymce/themes/inlite/theme.min.js +5 -0
  92. data/rails/assets/tinymce/themes/mobile/theme.min.js +8 -0
  93. data/rails/assets/tinymce/themes/modern/theme.min.js +5 -0
  94. data/rails/assets/tinymce/tinymce.min.js +13 -0
  95. metadata +91 -263
  96. data/rails/assets/tinymce/jquery.tinymce.js +0 -1
  97. data/rails/assets/tinymce/langs/en.js +0 -1
  98. data/rails/assets/tinymce/plugins/advhr/css/advhr.css +0 -5
  99. data/rails/assets/tinymce/plugins/advhr/editor_plugin.js +0 -1
  100. data/rails/assets/tinymce/plugins/advhr/editor_plugin_src.js +0 -57
  101. data/rails/assets/tinymce/plugins/advhr/js/rule.js +0 -43
  102. data/rails/assets/tinymce/plugins/advhr/langs/en_dlg.js +0 -1
  103. data/rails/assets/tinymce/plugins/advhr/rule.htm +0 -58
  104. data/rails/assets/tinymce/plugins/advimage/css/advimage.css +0 -13
  105. data/rails/assets/tinymce/plugins/advimage/editor_plugin.js +0 -1
  106. data/rails/assets/tinymce/plugins/advimage/editor_plugin_src.js +0 -50
  107. data/rails/assets/tinymce/plugins/advimage/image.htm +0 -235
  108. data/rails/assets/tinymce/plugins/advimage/img/sample.gif +0 -0
  109. data/rails/assets/tinymce/plugins/advimage/js/image.js +0 -464
  110. data/rails/assets/tinymce/plugins/advimage/langs/en_dlg.js +0 -1
  111. data/rails/assets/tinymce/plugins/advlink/css/advlink.css +0 -8
  112. data/rails/assets/tinymce/plugins/advlink/editor_plugin.js +0 -1
  113. data/rails/assets/tinymce/plugins/advlink/editor_plugin_src.js +0 -61
  114. data/rails/assets/tinymce/plugins/advlink/js/advlink.js +0 -543
  115. data/rails/assets/tinymce/plugins/advlink/langs/en_dlg.js +0 -1
  116. data/rails/assets/tinymce/plugins/advlink/link.htm +0 -338
  117. data/rails/assets/tinymce/plugins/advlist/editor_plugin.js +0 -1
  118. data/rails/assets/tinymce/plugins/advlist/editor_plugin_src.js +0 -176
  119. data/rails/assets/tinymce/plugins/autolink/editor_plugin.js +0 -1
  120. data/rails/assets/tinymce/plugins/autolink/editor_plugin_src.js +0 -184
  121. data/rails/assets/tinymce/plugins/autoresize/editor_plugin.js +0 -1
  122. data/rails/assets/tinymce/plugins/autoresize/editor_plugin_src.js +0 -119
  123. data/rails/assets/tinymce/plugins/autosave/editor_plugin.js +0 -1
  124. data/rails/assets/tinymce/plugins/autosave/editor_plugin_src.js +0 -433
  125. data/rails/assets/tinymce/plugins/bbcode/editor_plugin.js +0 -1
  126. data/rails/assets/tinymce/plugins/bbcode/editor_plugin_src.js +0 -120
  127. data/rails/assets/tinymce/plugins/contextmenu/editor_plugin.js +0 -1
  128. data/rails/assets/tinymce/plugins/contextmenu/editor_plugin_src.js +0 -163
  129. data/rails/assets/tinymce/plugins/directionality/editor_plugin.js +0 -1
  130. data/rails/assets/tinymce/plugins/directionality/editor_plugin_src.js +0 -85
  131. data/rails/assets/tinymce/plugins/emotions/editor_plugin.js +0 -1
  132. data/rails/assets/tinymce/plugins/emotions/editor_plugin_src.js +0 -43
  133. data/rails/assets/tinymce/plugins/emotions/emotions.htm +0 -42
  134. data/rails/assets/tinymce/plugins/emotions/js/emotions.js +0 -43
  135. data/rails/assets/tinymce/plugins/emotions/langs/en_dlg.js +0 -1
  136. data/rails/assets/tinymce/plugins/example/dialog.htm +0 -22
  137. data/rails/assets/tinymce/plugins/example/editor_plugin.js +0 -1
  138. data/rails/assets/tinymce/plugins/example/editor_plugin_src.js +0 -84
  139. data/rails/assets/tinymce/plugins/example/img/example.gif +0 -0
  140. data/rails/assets/tinymce/plugins/example/js/dialog.js +0 -19
  141. data/rails/assets/tinymce/plugins/example/langs/en.js +0 -3
  142. data/rails/assets/tinymce/plugins/example/langs/en_dlg.js +0 -3
  143. data/rails/assets/tinymce/plugins/example_dependency/editor_plugin.js +0 -1
  144. data/rails/assets/tinymce/plugins/example_dependency/editor_plugin_src.js +0 -50
  145. data/rails/assets/tinymce/plugins/fullpage/css/fullpage.css +0 -143
  146. data/rails/assets/tinymce/plugins/fullpage/editor_plugin.js +0 -1
  147. data/rails/assets/tinymce/plugins/fullpage/editor_plugin_src.js +0 -405
  148. data/rails/assets/tinymce/plugins/fullpage/fullpage.htm +0 -259
  149. data/rails/assets/tinymce/plugins/fullpage/js/fullpage.js +0 -232
  150. data/rails/assets/tinymce/plugins/fullpage/langs/en_dlg.js +0 -1
  151. data/rails/assets/tinymce/plugins/fullscreen/editor_plugin.js +0 -1
  152. data/rails/assets/tinymce/plugins/fullscreen/editor_plugin_src.js +0 -234
  153. data/rails/assets/tinymce/plugins/fullscreen/fullscreen.htm +0 -117
  154. data/rails/assets/tinymce/plugins/iespell/editor_plugin.js +0 -1
  155. data/rails/assets/tinymce/plugins/iespell/editor_plugin_src.js +0 -54
  156. data/rails/assets/tinymce/plugins/inlinepopups/editor_plugin.js +0 -1
  157. data/rails/assets/tinymce/plugins/inlinepopups/editor_plugin_src.js +0 -699
  158. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  159. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  160. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  161. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  162. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  163. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  164. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  165. data/rails/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css +0 -90
  166. data/rails/assets/tinymce/plugins/inlinepopups/template.htm +0 -387
  167. data/rails/assets/tinymce/plugins/insertdatetime/editor_plugin.js +0 -1
  168. data/rails/assets/tinymce/plugins/insertdatetime/editor_plugin_src.js +0 -83
  169. data/rails/assets/tinymce/plugins/layer/editor_plugin.js +0 -1
  170. data/rails/assets/tinymce/plugins/layer/editor_plugin_src.js +0 -262
  171. data/rails/assets/tinymce/plugins/legacyoutput/editor_plugin.js +0 -1
  172. data/rails/assets/tinymce/plugins/legacyoutput/editor_plugin_src.js +0 -139
  173. data/rails/assets/tinymce/plugins/lists/editor_plugin.js +0 -1
  174. data/rails/assets/tinymce/plugins/lists/editor_plugin_src.js +0 -955
  175. data/rails/assets/tinymce/plugins/media/css/media.css +0 -17
  176. data/rails/assets/tinymce/plugins/media/editor_plugin.js +0 -1
  177. data/rails/assets/tinymce/plugins/media/editor_plugin_src.js +0 -898
  178. data/rails/assets/tinymce/plugins/media/js/embed.js +0 -73
  179. data/rails/assets/tinymce/plugins/media/js/media.js +0 -513
  180. data/rails/assets/tinymce/plugins/media/langs/en_dlg.js +0 -1
  181. data/rails/assets/tinymce/plugins/media/media.htm +0 -922
  182. data/rails/assets/tinymce/plugins/media/moxieplayer.swf +0 -0
  183. data/rails/assets/tinymce/plugins/nonbreaking/editor_plugin.js +0 -1
  184. data/rails/assets/tinymce/plugins/nonbreaking/editor_plugin_src.js +0 -54
  185. data/rails/assets/tinymce/plugins/noneditable/editor_plugin.js +0 -1
  186. data/rails/assets/tinymce/plugins/noneditable/editor_plugin_src.js +0 -537
  187. data/rails/assets/tinymce/plugins/pagebreak/editor_plugin.js +0 -1
  188. data/rails/assets/tinymce/plugins/pagebreak/editor_plugin_src.js +0 -74
  189. data/rails/assets/tinymce/plugins/paste/editor_plugin.js +0 -1
  190. data/rails/assets/tinymce/plugins/paste/editor_plugin_src.js +0 -885
  191. data/rails/assets/tinymce/plugins/paste/js/pastetext.js +0 -36
  192. data/rails/assets/tinymce/plugins/paste/js/pasteword.js +0 -51
  193. data/rails/assets/tinymce/plugins/paste/langs/en_dlg.js +0 -1
  194. data/rails/assets/tinymce/plugins/paste/pastetext.htm +0 -27
  195. data/rails/assets/tinymce/plugins/paste/pasteword.htm +0 -21
  196. data/rails/assets/tinymce/plugins/preview/editor_plugin.js +0 -1
  197. data/rails/assets/tinymce/plugins/preview/editor_plugin_src.js +0 -53
  198. data/rails/assets/tinymce/plugins/preview/example.html +0 -28
  199. data/rails/assets/tinymce/plugins/preview/jscripts/embed.js +0 -73
  200. data/rails/assets/tinymce/plugins/preview/preview.html +0 -17
  201. data/rails/assets/tinymce/plugins/print/editor_plugin.js +0 -1
  202. data/rails/assets/tinymce/plugins/print/editor_plugin_src.js +0 -34
  203. data/rails/assets/tinymce/plugins/save/editor_plugin.js +0 -1
  204. data/rails/assets/tinymce/plugins/save/editor_plugin_src.js +0 -101
  205. data/rails/assets/tinymce/plugins/searchreplace/css/searchreplace.css +0 -6
  206. data/rails/assets/tinymce/plugins/searchreplace/editor_plugin.js +0 -1
  207. data/rails/assets/tinymce/plugins/searchreplace/editor_plugin_src.js +0 -61
  208. data/rails/assets/tinymce/plugins/searchreplace/js/searchreplace.js +0 -148
  209. data/rails/assets/tinymce/plugins/searchreplace/langs/en_dlg.js +0 -1
  210. data/rails/assets/tinymce/plugins/searchreplace/searchreplace.htm +0 -100
  211. data/rails/assets/tinymce/plugins/spellchecker/css/content.css +0 -1
  212. data/rails/assets/tinymce/plugins/spellchecker/editor_plugin.js +0 -1
  213. data/rails/assets/tinymce/plugins/spellchecker/editor_plugin_src.js +0 -471
  214. data/rails/assets/tinymce/plugins/spellchecker/img/wline.gif +0 -0
  215. data/rails/assets/tinymce/plugins/style/css/props.css +0 -14
  216. data/rails/assets/tinymce/plugins/style/editor_plugin.js +0 -1
  217. data/rails/assets/tinymce/plugins/style/editor_plugin_src.js +0 -71
  218. data/rails/assets/tinymce/plugins/style/js/props.js +0 -709
  219. data/rails/assets/tinymce/plugins/style/langs/en_dlg.js +0 -1
  220. data/rails/assets/tinymce/plugins/style/props.htm +0 -845
  221. data/rails/assets/tinymce/plugins/style/readme.txt +0 -19
  222. data/rails/assets/tinymce/plugins/tabfocus/editor_plugin.js +0 -1
  223. data/rails/assets/tinymce/plugins/tabfocus/editor_plugin_src.js +0 -122
  224. data/rails/assets/tinymce/plugins/table/cell.htm +0 -180
  225. data/rails/assets/tinymce/plugins/table/css/cell.css +0 -17
  226. data/rails/assets/tinymce/plugins/table/css/row.css +0 -25
  227. data/rails/assets/tinymce/plugins/table/css/table.css +0 -13
  228. data/rails/assets/tinymce/plugins/table/editor_plugin.js +0 -1
  229. data/rails/assets/tinymce/plugins/table/editor_plugin_src.js +0 -1456
  230. data/rails/assets/tinymce/plugins/table/js/cell.js +0 -319
  231. data/rails/assets/tinymce/plugins/table/js/merge_cells.js +0 -27
  232. data/rails/assets/tinymce/plugins/table/js/row.js +0 -254
  233. data/rails/assets/tinymce/plugins/table/js/table.js +0 -501
  234. data/rails/assets/tinymce/plugins/table/langs/en_dlg.js +0 -1
  235. data/rails/assets/tinymce/plugins/table/merge_cells.htm +0 -32
  236. data/rails/assets/tinymce/plugins/table/row.htm +0 -158
  237. data/rails/assets/tinymce/plugins/table/table.htm +0 -188
  238. data/rails/assets/tinymce/plugins/template/blank.htm +0 -12
  239. data/rails/assets/tinymce/plugins/template/css/template.css +0 -23
  240. data/rails/assets/tinymce/plugins/template/editor_plugin.js +0 -1
  241. data/rails/assets/tinymce/plugins/template/editor_plugin_src.js +0 -159
  242. data/rails/assets/tinymce/plugins/template/js/template.js +0 -106
  243. data/rails/assets/tinymce/plugins/template/langs/en_dlg.js +0 -1
  244. data/rails/assets/tinymce/plugins/template/template.htm +0 -31
  245. data/rails/assets/tinymce/plugins/visualblocks/editor_plugin.js +0 -1
  246. data/rails/assets/tinymce/plugins/visualblocks/editor_plugin_src.js +0 -63
  247. data/rails/assets/tinymce/plugins/visualchars/editor_plugin.js +0 -1
  248. data/rails/assets/tinymce/plugins/visualchars/editor_plugin_src.js +0 -83
  249. data/rails/assets/tinymce/plugins/wordcount/editor_plugin.js +0 -1
  250. data/rails/assets/tinymce/plugins/wordcount/editor_plugin_src.js +0 -122
  251. data/rails/assets/tinymce/plugins/xhtmlxtras/abbr.htm +0 -142
  252. data/rails/assets/tinymce/plugins/xhtmlxtras/acronym.htm +0 -142
  253. data/rails/assets/tinymce/plugins/xhtmlxtras/attributes.htm +0 -149
  254. data/rails/assets/tinymce/plugins/xhtmlxtras/cite.htm +0 -142
  255. data/rails/assets/tinymce/plugins/xhtmlxtras/css/attributes.css +0 -11
  256. data/rails/assets/tinymce/plugins/xhtmlxtras/css/popup.css +0 -9
  257. data/rails/assets/tinymce/plugins/xhtmlxtras/del.htm +0 -162
  258. data/rails/assets/tinymce/plugins/xhtmlxtras/editor_plugin.js +0 -1
  259. data/rails/assets/tinymce/plugins/xhtmlxtras/editor_plugin_src.js +0 -132
  260. data/rails/assets/tinymce/plugins/xhtmlxtras/ins.htm +0 -162
  261. data/rails/assets/tinymce/plugins/xhtmlxtras/js/abbr.js +0 -28
  262. data/rails/assets/tinymce/plugins/xhtmlxtras/js/acronym.js +0 -28
  263. data/rails/assets/tinymce/plugins/xhtmlxtras/js/attributes.js +0 -111
  264. data/rails/assets/tinymce/plugins/xhtmlxtras/js/cite.js +0 -28
  265. data/rails/assets/tinymce/plugins/xhtmlxtras/js/del.js +0 -53
  266. data/rails/assets/tinymce/plugins/xhtmlxtras/js/element_common.js +0 -229
  267. data/rails/assets/tinymce/plugins/xhtmlxtras/js/ins.js +0 -53
  268. data/rails/assets/tinymce/plugins/xhtmlxtras/langs/en_dlg.js +0 -1
  269. data/rails/assets/tinymce/themes/advanced/about.htm +0 -52
  270. data/rails/assets/tinymce/themes/advanced/anchor.htm +0 -26
  271. data/rails/assets/tinymce/themes/advanced/charmap.htm +0 -55
  272. data/rails/assets/tinymce/themes/advanced/color_picker.htm +0 -70
  273. data/rails/assets/tinymce/themes/advanced/editor_template.js +0 -1
  274. data/rails/assets/tinymce/themes/advanced/editor_template_src.js +0 -1490
  275. data/rails/assets/tinymce/themes/advanced/image.htm +0 -80
  276. data/rails/assets/tinymce/themes/advanced/img/colorpicker.jpg +0 -0
  277. data/rails/assets/tinymce/themes/advanced/img/flash.gif +0 -0
  278. data/rails/assets/tinymce/themes/advanced/img/icons.gif +0 -0
  279. data/rails/assets/tinymce/themes/advanced/img/iframe.gif +0 -0
  280. data/rails/assets/tinymce/themes/advanced/img/pagebreak.gif +0 -0
  281. data/rails/assets/tinymce/themes/advanced/img/quicktime.gif +0 -0
  282. data/rails/assets/tinymce/themes/advanced/img/realmedia.gif +0 -0
  283. data/rails/assets/tinymce/themes/advanced/img/shockwave.gif +0 -0
  284. data/rails/assets/tinymce/themes/advanced/img/video.gif +0 -0
  285. data/rails/assets/tinymce/themes/advanced/img/windowsmedia.gif +0 -0
  286. data/rails/assets/tinymce/themes/advanced/js/about.js +0 -73
  287. data/rails/assets/tinymce/themes/advanced/js/anchor.js +0 -56
  288. data/rails/assets/tinymce/themes/advanced/js/charmap.js +0 -363
  289. data/rails/assets/tinymce/themes/advanced/js/color_picker.js +0 -345
  290. data/rails/assets/tinymce/themes/advanced/js/image.js +0 -253
  291. data/rails/assets/tinymce/themes/advanced/js/link.js +0 -159
  292. data/rails/assets/tinymce/themes/advanced/js/source_editor.js +0 -78
  293. data/rails/assets/tinymce/themes/advanced/langs/en.js +0 -1
  294. data/rails/assets/tinymce/themes/advanced/langs/en_dlg.js +0 -1
  295. data/rails/assets/tinymce/themes/advanced/link.htm +0 -57
  296. data/rails/assets/tinymce/themes/advanced/shortcuts.htm +0 -47
  297. data/rails/assets/tinymce/themes/advanced/skins/default/content.css +0 -50
  298. data/rails/assets/tinymce/themes/advanced/skins/default/dialog.css +0 -118
  299. data/rails/assets/tinymce/themes/advanced/skins/default/img/buttons.png +0 -0
  300. data/rails/assets/tinymce/themes/advanced/skins/default/img/items.gif +0 -0
  301. data/rails/assets/tinymce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  302. data/rails/assets/tinymce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  303. data/rails/assets/tinymce/themes/advanced/skins/default/img/progress.gif +0 -0
  304. data/rails/assets/tinymce/themes/advanced/skins/default/img/tabs.gif +0 -0
  305. data/rails/assets/tinymce/themes/advanced/skins/default/ui.css +0 -219
  306. data/rails/assets/tinymce/themes/advanced/skins/highcontrast/content.css +0 -24
  307. data/rails/assets/tinymce/themes/advanced/skins/highcontrast/dialog.css +0 -106
  308. data/rails/assets/tinymce/themes/advanced/skins/highcontrast/ui.css +0 -106
  309. data/rails/assets/tinymce/themes/advanced/skins/o2k7/content.css +0 -48
  310. data/rails/assets/tinymce/themes/advanced/skins/o2k7/dialog.css +0 -118
  311. data/rails/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  312. data/rails/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  313. data/rails/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  314. data/rails/assets/tinymce/themes/advanced/skins/o2k7/ui.css +0 -222
  315. data/rails/assets/tinymce/themes/advanced/skins/o2k7/ui_black.css +0 -8
  316. data/rails/assets/tinymce/themes/advanced/skins/o2k7/ui_silver.css +0 -5
  317. data/rails/assets/tinymce/themes/advanced/source_editor.htm +0 -25
  318. data/rails/assets/tinymce/themes/simple/editor_template.js +0 -1
  319. data/rails/assets/tinymce/themes/simple/editor_template_src.js +0 -84
  320. data/rails/assets/tinymce/themes/simple/img/icons.gif +0 -0
  321. data/rails/assets/tinymce/themes/simple/langs/en.js +0 -1
  322. data/rails/assets/tinymce/themes/simple/skins/default/content.css +0 -25
  323. data/rails/assets/tinymce/themes/simple/skins/default/ui.css +0 -32
  324. data/rails/assets/tinymce/themes/simple/skins/o2k7/content.css +0 -17
  325. data/rails/assets/tinymce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  326. data/rails/assets/tinymce/themes/simple/skins/o2k7/ui.css +0 -35
  327. data/rails/assets/tinymce/tiny_mce.js +0 -1
  328. data/rails/assets/tinymce/tiny_mce_jquery.js +0 -1
  329. data/rails/assets/tinymce/tiny_mce_jquery_src.js +0 -17913
  330. data/rails/assets/tinymce/tiny_mce_popup.js +0 -5
  331. data/rails/assets/tinymce/tiny_mce_src.js +0 -19127
  332. data/rails/assets/tinymce/utils/editable_selects.js +0 -70
  333. data/rails/assets/tinymce/utils/form_utils.js +0 -210
  334. data/rails/assets/tinymce/utils/mctabs.js +0 -162
  335. data/rails/assets/tinymce/utils/validate.js +0 -252
@@ -1 +0,0 @@
1
- (function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}if(n.nodeType==3){a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f>=2?f-2:0);a.setEnd(n,f>=1?f-1:0);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])&&!/^mailto:/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);i.nodeChanged();if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
@@ -1,184 +0,0 @@
1
- /**
2
- * editor_plugin_src.js
3
- *
4
- * Copyright 2011, Moxiecode Systems AB
5
- * Released under LGPL License.
6
- *
7
- * License: http://tinymce.moxiecode.com/license
8
- * Contributing: http://tinymce.moxiecode.com/contributing
9
- */
10
-
11
- (function() {
12
- tinymce.create('tinymce.plugins.AutolinkPlugin', {
13
- /**
14
- * Initializes the plugin, this will be executed after the plugin has been created.
15
- * This call is done before the editor instance has finished it's initialization so use the onInit event
16
- * of the editor instance to intercept that event.
17
- *
18
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
19
- * @param {string} url Absolute URL to where the plugin is located.
20
- */
21
-
22
- init : function(ed, url) {
23
- var t = this;
24
-
25
- // Add a key down handler
26
- ed.onKeyDown.addToTop(function(ed, e) {
27
- if (e.keyCode == 13)
28
- return t.handleEnter(ed);
29
- });
30
-
31
- // Internet Explorer has built-in automatic linking for most cases
32
- if (tinyMCE.isIE)
33
- return;
34
-
35
- ed.onKeyPress.add(function(ed, e) {
36
- if (e.which == 41)
37
- return t.handleEclipse(ed);
38
- });
39
-
40
- // Add a key up handler
41
- ed.onKeyUp.add(function(ed, e) {
42
- if (e.keyCode == 32)
43
- return t.handleSpacebar(ed);
44
- });
45
- },
46
-
47
- handleEclipse : function(ed) {
48
- this.parseCurrentLine(ed, -1, '(', true);
49
- },
50
-
51
- handleSpacebar : function(ed) {
52
- this.parseCurrentLine(ed, 0, '', true);
53
- },
54
-
55
- handleEnter : function(ed) {
56
- this.parseCurrentLine(ed, -1, '', false);
57
- },
58
-
59
- parseCurrentLine : function(ed, end_offset, delimiter, goback) {
60
- var r, end, start, endContainer, bookmark, text, matches, prev, len;
61
-
62
- // We need at least five characters to form a URL,
63
- // hence, at minimum, five characters from the beginning of the line.
64
- r = ed.selection.getRng(true).cloneRange();
65
- if (r.startOffset < 5) {
66
- // During testing, the caret is placed inbetween two text nodes.
67
- // The previous text node contains the URL.
68
- prev = r.endContainer.previousSibling;
69
- if (prev == null) {
70
- if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null)
71
- return;
72
-
73
- prev = r.endContainer.firstChild.nextSibling;
74
- }
75
- len = prev.length;
76
- r.setStart(prev, len);
77
- r.setEnd(prev, len);
78
-
79
- if (r.endOffset < 5)
80
- return;
81
-
82
- end = r.endOffset;
83
- endContainer = prev;
84
- } else {
85
- endContainer = r.endContainer;
86
-
87
- // Get a text node
88
- if (endContainer.nodeType != 3 && endContainer.firstChild) {
89
- while (endContainer.nodeType != 3 && endContainer.firstChild)
90
- endContainer = endContainer.firstChild;
91
-
92
- // Move range to text node
93
- if (endContainer.nodeType == 3) {
94
- r.setStart(endContainer, 0);
95
- r.setEnd(endContainer, endContainer.nodeValue.length);
96
- }
97
- }
98
-
99
- if (r.endOffset == 1)
100
- end = 2;
101
- else
102
- end = r.endOffset - 1 - end_offset;
103
- }
104
-
105
- start = end;
106
-
107
- do
108
- {
109
- // Move the selection one character backwards.
110
- r.setStart(endContainer, end >= 2 ? end - 2 : 0);
111
- r.setEnd(endContainer, end >= 1 ? end - 1 : 0);
112
- end -= 1;
113
-
114
- // Loop until one of the following is found: a blank space, &nbsp;, delimeter, (end-2) >= 0
115
- } while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter);
116
-
117
- if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) {
118
- r.setStart(endContainer, end);
119
- r.setEnd(endContainer, start);
120
- end += 1;
121
- } else if (r.startOffset == 0) {
122
- r.setStart(endContainer, 0);
123
- r.setEnd(endContainer, start);
124
- }
125
- else {
126
- r.setStart(endContainer, end);
127
- r.setEnd(endContainer, start);
128
- }
129
-
130
- // Exclude last . from word like "www.site.com."
131
- var text = r.toString();
132
- if (text.charAt(text.length - 1) == '.') {
133
- r.setEnd(endContainer, start - 1);
134
- }
135
-
136
- text = r.toString();
137
- matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);
138
-
139
- if (matches) {
140
- if (matches[1] == 'www.') {
141
- matches[1] = 'http://www.';
142
- } else if (/@$/.test(matches[1]) && !/^mailto:/.test(matches[1])) {
143
- matches[1] = 'mailto:' + matches[1];
144
- }
145
-
146
- bookmark = ed.selection.getBookmark();
147
-
148
- ed.selection.setRng(r);
149
- tinyMCE.execCommand('createlink',false, matches[1] + matches[2]);
150
- ed.selection.moveToBookmark(bookmark);
151
- ed.nodeChanged();
152
-
153
- // TODO: Determine if this is still needed.
154
- if (tinyMCE.isWebKit) {
155
- // move the caret to its original position
156
- ed.selection.collapse(false);
157
- var max = Math.min(endContainer.length, start + 1);
158
- r.setStart(endContainer, max);
159
- r.setEnd(endContainer, max);
160
- ed.selection.setRng(r);
161
- }
162
- }
163
- },
164
-
165
- /**
166
- * Returns information about the plugin as a name/value array.
167
- * The current keys are longname, author, authorurl, infourl and version.
168
- *
169
- * @return {Object} Name/value array containing information about the plugin.
170
- */
171
- getInfo : function() {
172
- return {
173
- longname : 'Autolink',
174
- author : 'Moxiecode Systems AB',
175
- authorurl : 'http://tinymce.moxiecode.com',
176
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink',
177
- version : tinymce.majorVersion + "." + tinymce.minorVersion
178
- };
179
- }
180
- });
181
-
182
- // Register plugin
183
- tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin);
184
- })();
@@ -1 +0,0 @@
1
- (function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var j,i=a.getDoc(),f=i.body,l=i.documentElement,h=tinymce.DOM,k=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:(tinymce.isWebKit&&f.clientHeight==0?0:f.offsetHeight);if(g>d.autoresize_min_height){k=g}if(d.autoresize_max_height&&g>d.autoresize_max_height){k=d.autoresize_max_height;f.style.overflowY="auto";l.style.overflowY="auto"}else{f.style.overflowY="hidden";l.style.overflowY="hidden";f.scrollTop=0}if(k!==e){j=k-e;h.setStyle(h.get(a.id+"_ifr"),"height",k+"px");e=k;if(tinymce.isWebKit&&j<0){b()}}}d.editor=a;d.autoresize_min_height=parseInt(a.getParam("autoresize_min_height",a.getElement().offsetHeight));d.autoresize_max_height=parseInt(a.getParam("autoresize_max_height",0));a.onInit.add(function(f){f.dom.setStyle(f.getBody(),"paddingBottom",f.getParam("autoresize_bottom_margin",50)+"px")});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onLoad.add(b);a.onLoadContent.add(b)}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})();
@@ -1,119 +0,0 @@
1
- /**
2
- * editor_plugin_src.js
3
- *
4
- * Copyright 2009, Moxiecode Systems AB
5
- * Released under LGPL License.
6
- *
7
- * License: http://tinymce.moxiecode.com/license
8
- * Contributing: http://tinymce.moxiecode.com/contributing
9
- */
10
-
11
- (function() {
12
- /**
13
- * Auto Resize
14
- *
15
- * This plugin automatically resizes the content area to fit its content height.
16
- * It will retain a minimum height, which is the height of the content area when
17
- * it's initialized.
18
- */
19
- tinymce.create('tinymce.plugins.AutoResizePlugin', {
20
- /**
21
- * Initializes the plugin, this will be executed after the plugin has been created.
22
- * This call is done before the editor instance has finished it's initialization so use the onInit event
23
- * of the editor instance to intercept that event.
24
- *
25
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
26
- * @param {string} url Absolute URL to where the plugin is located.
27
- */
28
- init : function(ed, url) {
29
- var t = this, oldSize = 0;
30
-
31
- if (ed.getParam('fullscreen_is_enabled'))
32
- return;
33
-
34
- /**
35
- * This method gets executed each time the editor needs to resize.
36
- */
37
- function resize() {
38
- var deltaSize, d = ed.getDoc(), body = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight;
39
-
40
- // Get height differently depending on the browser used
41
- myHeight = tinymce.isIE ? body.scrollHeight : (tinymce.isWebKit && body.clientHeight == 0 ? 0 : body.offsetHeight);
42
-
43
- // Don't make it smaller than the minimum height
44
- if (myHeight > t.autoresize_min_height)
45
- resizeHeight = myHeight;
46
-
47
- // If a maximum height has been defined don't exceed this height
48
- if (t.autoresize_max_height && myHeight > t.autoresize_max_height) {
49
- resizeHeight = t.autoresize_max_height;
50
- body.style.overflowY = "auto";
51
- de.style.overflowY = "auto"; // Old IE
52
- } else {
53
- body.style.overflowY = "hidden";
54
- de.style.overflowY = "hidden"; // Old IE
55
- body.scrollTop = 0;
56
- }
57
-
58
- // Resize content element
59
- if (resizeHeight !== oldSize) {
60
- deltaSize = resizeHeight - oldSize;
61
- DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
62
- oldSize = resizeHeight;
63
-
64
- // WebKit doesn't decrease the size of the body element until the iframe gets resized
65
- // So we need to continue to resize the iframe down until the size gets fixed
66
- if (tinymce.isWebKit && deltaSize < 0)
67
- resize();
68
- }
69
- };
70
-
71
- t.editor = ed;
72
-
73
- // Define minimum height
74
- t.autoresize_min_height = parseInt(ed.getParam('autoresize_min_height', ed.getElement().offsetHeight));
75
-
76
- // Define maximum height
77
- t.autoresize_max_height = parseInt(ed.getParam('autoresize_max_height', 0));
78
-
79
- // Add padding at the bottom for better UX
80
- ed.onInit.add(function(ed){
81
- ed.dom.setStyle(ed.getBody(), 'paddingBottom', ed.getParam('autoresize_bottom_margin', 50) + 'px');
82
- });
83
-
84
- // Add appropriate listeners for resizing content area
85
- ed.onChange.add(resize);
86
- ed.onSetContent.add(resize);
87
- ed.onPaste.add(resize);
88
- ed.onKeyUp.add(resize);
89
- ed.onPostRender.add(resize);
90
-
91
- if (ed.getParam('autoresize_on_init', true)) {
92
- ed.onLoad.add(resize);
93
- ed.onLoadContent.add(resize);
94
- }
95
-
96
- // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
97
- ed.addCommand('mceAutoResize', resize);
98
- },
99
-
100
- /**
101
- * Returns information about the plugin as a name/value array.
102
- * The current keys are longname, author, authorurl, infourl and version.
103
- *
104
- * @return {Object} Name/value array containing information about the plugin.
105
- */
106
- getInfo : function() {
107
- return {
108
- longname : 'Auto Resize',
109
- author : 'Moxiecode Systems AB',
110
- authorurl : 'http://tinymce.moxiecode.com',
111
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize',
112
- version : tinymce.majorVersion + "." + tinymce.minorVersion
113
- };
114
- }
115
- });
116
-
117
- // Register plugin
118
- tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin);
119
- })();
@@ -1 +0,0 @@
1
- (function(e){var c="autosave",g="restoredraft",b=true,f,d,a=e.util.Dispatcher;e.create("tinymce.plugins.AutoSave",{init:function(i,j){var h=this,l=i.settings;h.editor=i;function k(n){var m={s:1000,m:60000};n=/^(\d+)([ms]?)$/.exec(""+n);return(n[2]?m[n[2]]:1)*parseInt(n)}e.each({ask_before_unload:b,interval:"30s",retention:"20m",minlength:50},function(n,m){m=c+"_"+m;if(l[m]===f){l[m]=n}});l.autosave_interval=k(l.autosave_interval);l.autosave_retention=k(l.autosave_retention);i.addButton(g,{title:c+".restore_content",onclick:function(){if(i.getContent({draft:true}).replace(/\s|&nbsp;|<\/?p[^>]*>|<br[^>]*>/gi,"").length>0){i.windowManager.confirm(c+".warning_message",function(m){if(m){h.restoreDraft()}})}else{h.restoreDraft()}}});i.onNodeChange.add(function(){var m=i.controlManager;if(m.get(g)){m.setDisabled(g,!h.hasDraft())}});i.onInit.add(function(){if(i.controlManager.get(g)){h.setupStorage(i);setInterval(function(){if(!i.removed){h.storeDraft();i.nodeChanged()}},l.autosave_interval)}});h.onStoreDraft=new a(h);h.onRestoreDraft=new a(h);h.onRemoveDraft=new a(h);if(!d){window.onbeforeunload=e.plugins.AutoSave._beforeUnloadHandler;d=b}},getInfo:function(){return{longname:"Auto save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave",version:e.majorVersion+"."+e.minorVersion}},getExpDate:function(){return new Date(new Date().getTime()+this.editor.settings.autosave_retention).toUTCString()},setupStorage:function(i){var h=this,k=c+"_test",j="OK";h.key=c+i.id;e.each([function(){if(localStorage){localStorage.setItem(k,j);if(localStorage.getItem(k)===j){localStorage.removeItem(k);return localStorage}}},function(){if(sessionStorage){sessionStorage.setItem(k,j);if(sessionStorage.getItem(k)===j){sessionStorage.removeItem(k);return sessionStorage}}},function(){if(e.isIE){i.getElement().style.behavior="url('#default#userData')";return{autoExpires:b,setItem:function(l,n){var m=i.getElement();m.setAttribute(l,n);m.expires=h.getExpDate();try{m.save("TinyMCE")}catch(o){}},getItem:function(l){var m=i.getElement();try{m.load("TinyMCE");return m.getAttribute(l)}catch(n){return null}},removeItem:function(l){i.getElement().removeAttribute(l)}}}},],function(l){try{h.storage=l();if(h.storage){return false}}catch(m){}})},storeDraft:function(){var i=this,l=i.storage,j=i.editor,h,k;if(l){if(!l.getItem(i.key)&&!j.isDirty()){return}k=j.getContent({draft:true});if(k.length>j.settings.autosave_minlength){h=i.getExpDate();if(!i.storage.autoExpires){i.storage.setItem(i.key+"_expires",h)}i.storage.setItem(i.key,k);i.onStoreDraft.dispatch(i,{expires:h,content:k})}}},restoreDraft:function(){var h=this,j=h.storage,i;if(j){i=j.getItem(h.key);if(i){h.editor.setContent(i);h.onRestoreDraft.dispatch(h,{content:i})}}},hasDraft:function(){var h=this,k=h.storage,i,j;if(k){j=!!k.getItem(h.key);if(j){if(!h.storage.autoExpires){i=new Date(k.getItem(h.key+"_expires"));if(new Date().getTime()<i.getTime()){return b}h.removeDraft()}else{return b}}}return false},removeDraft:function(){var h=this,k=h.storage,i=h.key,j;if(k){j=k.getItem(i);k.removeItem(i);k.removeItem(i+"_expires");if(j){h.onRemoveDraft.dispatch(h,{content:j})}}},"static":{_beforeUnloadHandler:function(h){var i;e.each(tinyMCE.editors,function(j){if(j.plugins.autosave){j.plugins.autosave.storeDraft()}if(j.getParam("fullscreen_is_enabled")){return}if(!i&&j.isDirty()&&j.getParam("autosave_ask_before_unload")){i=j.getLang("autosave.unload_msg")}});return i}}});e.PluginManager.add("autosave",e.plugins.AutoSave)})(tinymce);
@@ -1,433 +0,0 @@
1
- /**
2
- * editor_plugin_src.js
3
- *
4
- * Copyright 2009, Moxiecode Systems AB
5
- * Released under LGPL License.
6
- *
7
- * License: http://tinymce.moxiecode.com/license
8
- * Contributing: http://tinymce.moxiecode.com/contributing
9
- *
10
- * Adds auto-save capability to the TinyMCE text editor to rescue content
11
- * inadvertently lost. This plugin was originally developed by Speednet
12
- * and that project can be found here: http://code.google.com/p/tinyautosave/
13
- *
14
- * TECHNOLOGY DISCUSSION:
15
- *
16
- * The plugin attempts to use the most advanced features available in the current browser to save
17
- * as much content as possible. There are a total of four different methods used to autosave the
18
- * content. In order of preference, they are:
19
- *
20
- * 1. localStorage - A new feature of HTML 5, localStorage can store megabytes of data per domain
21
- * on the client computer. Data stored in the localStorage area has no expiration date, so we must
22
- * manage expiring the data ourselves. localStorage is fully supported by IE8, and it is supposed
23
- * to be working in Firefox 3 and Safari 3.2, but in reality is is flaky in those browsers. As
24
- * HTML 5 gets wider support, the AutoSave plugin will use it automatically. In Windows Vista/7,
25
- * localStorage is stored in the following folder:
26
- * C:\Users\[username]\AppData\Local\Microsoft\Internet Explorer\DOMStore\[tempFolder]
27
- *
28
- * 2. sessionStorage - A new feature of HTML 5, sessionStorage works similarly to localStorage,
29
- * except it is designed to expire after a certain amount of time. Because the specification
30
- * around expiration date/time is very loosely-described, it is preferrable to use locaStorage and
31
- * manage the expiration ourselves. sessionStorage has similar storage characteristics to
32
- * localStorage, although it seems to have better support by Firefox 3 at the moment. (That will
33
- * certainly change as Firefox continues getting better at HTML 5 adoption.)
34
- *
35
- * 3. UserData - A very under-exploited feature of Microsoft Internet Explorer, UserData is a
36
- * way to store up to 128K of data per "document", or up to 1MB of data per domain, on the client
37
- * computer. The feature is available for IE 5+, which makes it available for every version of IE
38
- * supported by TinyMCE. The content is persistent across browser restarts and expires on the
39
- * date/time specified, just like a cookie. However, the data is not cleared when the user clears
40
- * cookies on the browser, which makes it well-suited for rescuing autosaved content. UserData,
41
- * like other Microsoft IE browser technologies, is implemented as a behavior attached to a
42
- * specific DOM object, so in this case we attach the behavior to the same DOM element that the
43
- * TinyMCE editor instance is attached to.
44
- */
45
-
46
- (function(tinymce) {
47
- // Setup constants to help the compressor to reduce script size
48
- var PLUGIN_NAME = 'autosave',
49
- RESTORE_DRAFT = 'restoredraft',
50
- TRUE = true,
51
- undefined,
52
- unloadHandlerAdded,
53
- Dispatcher = tinymce.util.Dispatcher;
54
-
55
- /**
56
- * This plugin adds auto-save capability to the TinyMCE text editor to rescue content
57
- * inadvertently lost. By using localStorage.
58
- *
59
- * @class tinymce.plugins.AutoSave
60
- */
61
- tinymce.create('tinymce.plugins.AutoSave', {
62
- /**
63
- * Initializes the plugin, this will be executed after the plugin has been created.
64
- * This call is done before the editor instance has finished it's initialization so use the onInit event
65
- * of the editor instance to intercept that event.
66
- *
67
- * @method init
68
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
69
- * @param {string} url Absolute URL to where the plugin is located.
70
- */
71
- init : function(ed, url) {
72
- var self = this, settings = ed.settings;
73
-
74
- self.editor = ed;
75
-
76
- // Parses the specified time string into a milisecond number 10m, 10s etc.
77
- function parseTime(time) {
78
- var multipels = {
79
- s : 1000,
80
- m : 60000
81
- };
82
-
83
- time = /^(\d+)([ms]?)$/.exec('' + time);
84
-
85
- return (time[2] ? multipels[time[2]] : 1) * parseInt(time);
86
- };
87
-
88
- // Default config
89
- tinymce.each({
90
- ask_before_unload : TRUE,
91
- interval : '30s',
92
- retention : '20m',
93
- minlength : 50
94
- }, function(value, key) {
95
- key = PLUGIN_NAME + '_' + key;
96
-
97
- if (settings[key] === undefined)
98
- settings[key] = value;
99
- });
100
-
101
- // Parse times
102
- settings.autosave_interval = parseTime(settings.autosave_interval);
103
- settings.autosave_retention = parseTime(settings.autosave_retention);
104
-
105
- // Register restore button
106
- ed.addButton(RESTORE_DRAFT, {
107
- title : PLUGIN_NAME + ".restore_content",
108
- onclick : function() {
109
- if (ed.getContent({draft: true}).replace(/\s|&nbsp;|<\/?p[^>]*>|<br[^>]*>/gi, "").length > 0) {
110
- // Show confirm dialog if the editor isn't empty
111
- ed.windowManager.confirm(
112
- PLUGIN_NAME + ".warning_message",
113
- function(ok) {
114
- if (ok)
115
- self.restoreDraft();
116
- }
117
- );
118
- } else
119
- self.restoreDraft();
120
- }
121
- });
122
-
123
- // Enable/disable restoredraft button depending on if there is a draft stored or not
124
- ed.onNodeChange.add(function() {
125
- var controlManager = ed.controlManager;
126
-
127
- if (controlManager.get(RESTORE_DRAFT))
128
- controlManager.setDisabled(RESTORE_DRAFT, !self.hasDraft());
129
- });
130
-
131
- ed.onInit.add(function() {
132
- // Check if the user added the restore button, then setup auto storage logic
133
- if (ed.controlManager.get(RESTORE_DRAFT)) {
134
- // Setup storage engine
135
- self.setupStorage(ed);
136
-
137
- // Auto save contents each interval time
138
- setInterval(function() {
139
- if (!ed.removed) {
140
- self.storeDraft();
141
- ed.nodeChanged();
142
- }
143
- }, settings.autosave_interval);
144
- }
145
- });
146
-
147
- /**
148
- * This event gets fired when a draft is stored to local storage.
149
- *
150
- * @event onStoreDraft
151
- * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
152
- * @param {Object} draft Draft object containing the HTML contents of the editor.
153
- */
154
- self.onStoreDraft = new Dispatcher(self);
155
-
156
- /**
157
- * This event gets fired when a draft is restored from local storage.
158
- *
159
- * @event onStoreDraft
160
- * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
161
- * @param {Object} draft Draft object containing the HTML contents of the editor.
162
- */
163
- self.onRestoreDraft = new Dispatcher(self);
164
-
165
- /**
166
- * This event gets fired when a draft removed/expired.
167
- *
168
- * @event onRemoveDraft
169
- * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
170
- * @param {Object} draft Draft object containing the HTML contents of the editor.
171
- */
172
- self.onRemoveDraft = new Dispatcher(self);
173
-
174
- // Add ask before unload dialog only add one unload handler
175
- if (!unloadHandlerAdded) {
176
- window.onbeforeunload = tinymce.plugins.AutoSave._beforeUnloadHandler;
177
- unloadHandlerAdded = TRUE;
178
- }
179
- },
180
-
181
- /**
182
- * Returns information about the plugin as a name/value array.
183
- * The current keys are longname, author, authorurl, infourl and version.
184
- *
185
- * @method getInfo
186
- * @return {Object} Name/value array containing information about the plugin.
187
- */
188
- getInfo : function() {
189
- return {
190
- longname : 'Auto save',
191
- author : 'Moxiecode Systems AB',
192
- authorurl : 'http://tinymce.moxiecode.com',
193
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
194
- version : tinymce.majorVersion + "." + tinymce.minorVersion
195
- };
196
- },
197
-
198
- /**
199
- * Returns an expiration date UTC string.
200
- *
201
- * @method getExpDate
202
- * @return {String} Expiration date UTC string.
203
- */
204
- getExpDate : function() {
205
- return new Date(
206
- new Date().getTime() + this.editor.settings.autosave_retention
207
- ).toUTCString();
208
- },
209
-
210
- /**
211
- * This method will setup the storage engine. If the browser has support for it.
212
- *
213
- * @method setupStorage
214
- */
215
- setupStorage : function(ed) {
216
- var self = this, testKey = PLUGIN_NAME + '_test', testVal = "OK";
217
-
218
- self.key = PLUGIN_NAME + ed.id;
219
-
220
- // Loop though each storage engine type until we find one that works
221
- tinymce.each([
222
- function() {
223
- // Try HTML5 Local Storage
224
- if (localStorage) {
225
- localStorage.setItem(testKey, testVal);
226
-
227
- if (localStorage.getItem(testKey) === testVal) {
228
- localStorage.removeItem(testKey);
229
-
230
- return localStorage;
231
- }
232
- }
233
- },
234
-
235
- function() {
236
- // Try HTML5 Session Storage
237
- if (sessionStorage) {
238
- sessionStorage.setItem(testKey, testVal);
239
-
240
- if (sessionStorage.getItem(testKey) === testVal) {
241
- sessionStorage.removeItem(testKey);
242
-
243
- return sessionStorage;
244
- }
245
- }
246
- },
247
-
248
- function() {
249
- // Try IE userData
250
- if (tinymce.isIE) {
251
- ed.getElement().style.behavior = "url('#default#userData')";
252
-
253
- // Fake localStorage on old IE
254
- return {
255
- autoExpires : TRUE,
256
-
257
- setItem : function(key, value) {
258
- var userDataElement = ed.getElement();
259
-
260
- userDataElement.setAttribute(key, value);
261
- userDataElement.expires = self.getExpDate();
262
-
263
- try {
264
- userDataElement.save("TinyMCE");
265
- } catch (e) {
266
- // Ignore, saving might fail if "Userdata Persistence" is disabled in IE
267
- }
268
- },
269
-
270
- getItem : function(key) {
271
- var userDataElement = ed.getElement();
272
-
273
- try {
274
- userDataElement.load("TinyMCE");
275
- return userDataElement.getAttribute(key);
276
- } catch (e) {
277
- // Ignore, loading might fail if "Userdata Persistence" is disabled in IE
278
- return null;
279
- }
280
- },
281
-
282
- removeItem : function(key) {
283
- ed.getElement().removeAttribute(key);
284
- }
285
- };
286
- }
287
- },
288
- ], function(setup) {
289
- // Try executing each function to find a suitable storage engine
290
- try {
291
- self.storage = setup();
292
-
293
- if (self.storage)
294
- return false;
295
- } catch (e) {
296
- // Ignore
297
- }
298
- });
299
- },
300
-
301
- /**
302
- * This method will store the current contents in the the storage engine.
303
- *
304
- * @method storeDraft
305
- */
306
- storeDraft : function() {
307
- var self = this, storage = self.storage, editor = self.editor, expires, content;
308
-
309
- // Is the contents dirty
310
- if (storage) {
311
- // If there is no existing key and the contents hasn't been changed since
312
- // it's original value then there is no point in saving a draft
313
- if (!storage.getItem(self.key) && !editor.isDirty())
314
- return;
315
-
316
- // Store contents if the contents if longer than the minlength of characters
317
- content = editor.getContent({draft: true});
318
- if (content.length > editor.settings.autosave_minlength) {
319
- expires = self.getExpDate();
320
-
321
- // Store expiration date if needed IE userData has auto expire built in
322
- if (!self.storage.autoExpires)
323
- self.storage.setItem(self.key + "_expires", expires);
324
-
325
- self.storage.setItem(self.key, content);
326
- self.onStoreDraft.dispatch(self, {
327
- expires : expires,
328
- content : content
329
- });
330
- }
331
- }
332
- },
333
-
334
- /**
335
- * This method will restore the contents from the storage engine back to the editor.
336
- *
337
- * @method restoreDraft
338
- */
339
- restoreDraft : function() {
340
- var self = this, storage = self.storage, content;
341
-
342
- if (storage) {
343
- content = storage.getItem(self.key);
344
-
345
- if (content) {
346
- self.editor.setContent(content);
347
- self.onRestoreDraft.dispatch(self, {
348
- content : content
349
- });
350
- }
351
- }
352
- },
353
-
354
- /**
355
- * This method will return true/false if there is a local storage draft available.
356
- *
357
- * @method hasDraft
358
- * @return {boolean} true/false state if there is a local draft.
359
- */
360
- hasDraft : function() {
361
- var self = this, storage = self.storage, expDate, exists;
362
-
363
- if (storage) {
364
- // Does the item exist at all
365
- exists = !!storage.getItem(self.key);
366
- if (exists) {
367
- // Storage needs autoexpire
368
- if (!self.storage.autoExpires) {
369
- expDate = new Date(storage.getItem(self.key + "_expires"));
370
-
371
- // Contents hasn't expired
372
- if (new Date().getTime() < expDate.getTime())
373
- return TRUE;
374
-
375
- // Remove it if it has
376
- self.removeDraft();
377
- } else
378
- return TRUE;
379
- }
380
- }
381
-
382
- return false;
383
- },
384
-
385
- /**
386
- * Removes the currently stored draft.
387
- *
388
- * @method removeDraft
389
- */
390
- removeDraft : function() {
391
- var self = this, storage = self.storage, key = self.key, content;
392
-
393
- if (storage) {
394
- // Get current contents and remove the existing draft
395
- content = storage.getItem(key);
396
- storage.removeItem(key);
397
- storage.removeItem(key + "_expires");
398
-
399
- // Dispatch remove event if we had any contents
400
- if (content) {
401
- self.onRemoveDraft.dispatch(self, {
402
- content : content
403
- });
404
- }
405
- }
406
- },
407
-
408
- "static" : {
409
- // Internal unload handler will be called before the page is unloaded
410
- _beforeUnloadHandler : function(e) {
411
- var msg;
412
-
413
- tinymce.each(tinyMCE.editors, function(ed) {
414
- // Store a draft for each editor instance
415
- if (ed.plugins.autosave)
416
- ed.plugins.autosave.storeDraft();
417
-
418
- // Never ask in fullscreen mode
419
- if (ed.getParam("fullscreen_is_enabled"))
420
- return;
421
-
422
- // Setup a return message if the editor is dirty
423
- if (!msg && ed.isDirty() && ed.getParam("autosave_ask_before_unload"))
424
- msg = ed.getLang("autosave.unload_msg");
425
- });
426
-
427
- return msg;
428
- }
429
- }
430
- });
431
-
432
- tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSave);
433
- })(tinymce);