spud_core 0.5.5 → 0.5.6

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 (256) hide show
  1. data/app/assets/libs/tiny_mce/jquery.tinymce.js +1 -0
  2. data/app/assets/libs/tiny_mce/langs/en.js +1 -0
  3. data/app/assets/libs/tiny_mce/license.txt +504 -0
  4. data/app/assets/libs/tiny_mce/plugins/advhr/css/advhr.css +5 -0
  5. data/app/assets/libs/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
  6. data/app/assets/libs/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
  7. data/app/assets/libs/tiny_mce/plugins/advhr/js/rule.js +43 -0
  8. data/app/assets/libs/tiny_mce/plugins/advhr/langs/en_dlg.js +1 -0
  9. data/app/assets/libs/tiny_mce/plugins/advhr/rule.htm +58 -0
  10. data/app/assets/libs/tiny_mce/plugins/advimage/css/advimage.css +13 -0
  11. data/app/assets/libs/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
  12. data/app/assets/libs/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
  13. data/app/assets/libs/tiny_mce/plugins/advimage/image.htm +235 -0
  14. data/app/assets/libs/tiny_mce/plugins/advimage/img/sample.gif +0 -0
  15. data/app/assets/libs/tiny_mce/plugins/advimage/js/image.js +462 -0
  16. data/app/assets/libs/tiny_mce/plugins/advimage/langs/en_dlg.js +1 -0
  17. data/app/assets/libs/tiny_mce/plugins/advlink/css/advlink.css +8 -0
  18. data/app/assets/libs/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
  19. data/app/assets/libs/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
  20. data/app/assets/libs/tiny_mce/plugins/advlink/js/advlink.js +539 -0
  21. data/app/assets/libs/tiny_mce/plugins/advlink/langs/en_dlg.js +1 -0
  22. data/app/assets/libs/tiny_mce/plugins/advlink/link.htm +338 -0
  23. data/app/assets/libs/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
  24. data/app/assets/libs/tiny_mce/plugins/advlist/editor_plugin_src.js +176 -0
  25. data/app/assets/libs/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
  26. data/app/assets/libs/tiny_mce/plugins/autolink/editor_plugin_src.js +172 -0
  27. data/app/assets/libs/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
  28. data/app/assets/libs/tiny_mce/plugins/autoresize/editor_plugin_src.js +119 -0
  29. data/app/assets/libs/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
  30. data/app/assets/libs/tiny_mce/plugins/autosave/editor_plugin_src.js +431 -0
  31. data/app/assets/libs/tiny_mce/plugins/autosave/langs/en.js +4 -0
  32. data/app/assets/libs/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
  33. data/app/assets/libs/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
  34. data/app/assets/libs/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
  35. data/app/assets/libs/tiny_mce/plugins/contextmenu/editor_plugin_src.js +161 -0
  36. data/app/assets/libs/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
  37. data/app/assets/libs/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
  38. data/app/assets/libs/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
  39. data/app/assets/libs/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
  40. data/app/assets/libs/tiny_mce/plugins/emotions/emotions.htm +42 -0
  41. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
  42. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
  43. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
  44. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  45. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
  46. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
  47. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
  48. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  49. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
  50. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  51. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  52. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  53. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
  54. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
  55. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  56. data/app/assets/libs/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
  57. data/app/assets/libs/tiny_mce/plugins/emotions/js/emotions.js +43 -0
  58. data/app/assets/libs/tiny_mce/plugins/emotions/langs/en_dlg.js +1 -0
  59. data/app/assets/libs/tiny_mce/plugins/example/dialog.htm +22 -0
  60. data/app/assets/libs/tiny_mce/plugins/example/editor_plugin.js +1 -0
  61. data/app/assets/libs/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
  62. data/app/assets/libs/tiny_mce/plugins/example/img/example.gif +0 -0
  63. data/app/assets/libs/tiny_mce/plugins/example/js/dialog.js +19 -0
  64. data/app/assets/libs/tiny_mce/plugins/example/langs/en.js +3 -0
  65. data/app/assets/libs/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
  66. data/app/assets/libs/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
  67. data/app/assets/libs/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
  68. data/app/assets/libs/tiny_mce/plugins/fullpage/css/fullpage.css +143 -0
  69. data/app/assets/libs/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
  70. data/app/assets/libs/tiny_mce/plugins/fullpage/editor_plugin_src.js +405 -0
  71. data/app/assets/libs/tiny_mce/plugins/fullpage/fullpage.htm +259 -0
  72. data/app/assets/libs/tiny_mce/plugins/fullpage/js/fullpage.js +232 -0
  73. data/app/assets/libs/tiny_mce/plugins/fullpage/langs/en_dlg.js +1 -0
  74. data/app/assets/libs/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
  75. data/app/assets/libs/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -0
  76. data/app/assets/libs/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
  77. data/app/assets/libs/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
  78. data/app/assets/libs/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
  79. data/app/assets/libs/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
  80. data/app/assets/libs/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +699 -0
  81. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  82. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  83. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  84. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  85. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  86. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  87. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  88. data/app/assets/libs/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
  89. data/app/assets/libs/tiny_mce/plugins/inlinepopups/template.htm +387 -0
  90. data/app/assets/libs/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
  91. data/app/assets/libs/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
  92. data/app/assets/libs/tiny_mce/plugins/layer/editor_plugin.js +1 -0
  93. data/app/assets/libs/tiny_mce/plugins/layer/editor_plugin_src.js +262 -0
  94. data/app/assets/libs/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
  95. data/app/assets/libs/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +139 -0
  96. data/app/assets/libs/tiny_mce/plugins/lists/editor_plugin.js +1 -0
  97. data/app/assets/libs/tiny_mce/plugins/lists/editor_plugin_src.js +946 -0
  98. data/app/assets/libs/tiny_mce/plugins/media/css/media.css +17 -0
  99. data/app/assets/libs/tiny_mce/plugins/media/editor_plugin.js +1 -0
  100. data/app/assets/libs/tiny_mce/plugins/media/editor_plugin_src.js +890 -0
  101. data/app/assets/libs/tiny_mce/plugins/media/js/embed.js +73 -0
  102. data/app/assets/libs/tiny_mce/plugins/media/js/media.js +464 -0
  103. data/app/assets/libs/tiny_mce/plugins/media/langs/en_dlg.js +1 -0
  104. data/app/assets/libs/tiny_mce/plugins/media/media.htm +922 -0
  105. data/app/assets/libs/tiny_mce/plugins/media/moxieplayer.swf +0 -0
  106. data/app/assets/libs/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
  107. data/app/assets/libs/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +54 -0
  108. data/app/assets/libs/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
  109. data/app/assets/libs/tiny_mce/plugins/noneditable/editor_plugin_src.js +95 -0
  110. data/app/assets/libs/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
  111. data/app/assets/libs/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
  112. data/app/assets/libs/tiny_mce/plugins/paste/editor_plugin.js +1 -0
  113. data/app/assets/libs/tiny_mce/plugins/paste/editor_plugin_src.js +871 -0
  114. data/app/assets/libs/tiny_mce/plugins/paste/js/pastetext.js +36 -0
  115. data/app/assets/libs/tiny_mce/plugins/paste/js/pasteword.js +51 -0
  116. data/app/assets/libs/tiny_mce/plugins/paste/langs/en_dlg.js +1 -0
  117. data/app/assets/libs/tiny_mce/plugins/paste/pastetext.htm +27 -0
  118. data/app/assets/libs/tiny_mce/plugins/paste/pasteword.htm +21 -0
  119. data/app/assets/libs/tiny_mce/plugins/preview/editor_plugin.js +1 -0
  120. data/app/assets/libs/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
  121. data/app/assets/libs/tiny_mce/plugins/preview/example.html +28 -0
  122. data/app/assets/libs/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
  123. data/app/assets/libs/tiny_mce/plugins/preview/preview.html +17 -0
  124. data/app/assets/libs/tiny_mce/plugins/print/editor_plugin.js +1 -0
  125. data/app/assets/libs/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
  126. data/app/assets/libs/tiny_mce/plugins/save/editor_plugin.js +1 -0
  127. data/app/assets/libs/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
  128. data/app/assets/libs/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
  129. data/app/assets/libs/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
  130. data/app/assets/libs/tiny_mce/plugins/searchreplace/editor_plugin_src.js +61 -0
  131. data/app/assets/libs/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -0
  132. data/app/assets/libs/tiny_mce/plugins/searchreplace/langs/en_dlg.js +1 -0
  133. data/app/assets/libs/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -0
  134. data/app/assets/libs/tiny_mce/plugins/spellchecker/css/content.css +1 -0
  135. data/app/assets/libs/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
  136. data/app/assets/libs/tiny_mce/plugins/spellchecker/editor_plugin_src.js +436 -0
  137. data/app/assets/libs/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
  138. data/app/assets/libs/tiny_mce/plugins/style/css/props.css +13 -0
  139. data/app/assets/libs/tiny_mce/plugins/style/editor_plugin.js +1 -0
  140. data/app/assets/libs/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
  141. data/app/assets/libs/tiny_mce/plugins/style/js/props.js +635 -0
  142. data/app/assets/libs/tiny_mce/plugins/style/langs/en_dlg.js +1 -0
  143. data/app/assets/libs/tiny_mce/plugins/style/props.htm +840 -0
  144. data/app/assets/libs/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
  145. data/app/assets/libs/tiny_mce/plugins/tabfocus/editor_plugin_src.js +122 -0
  146. data/app/assets/libs/tiny_mce/plugins/table/cell.htm +180 -0
  147. data/app/assets/libs/tiny_mce/plugins/table/css/cell.css +17 -0
  148. data/app/assets/libs/tiny_mce/plugins/table/css/row.css +25 -0
  149. data/app/assets/libs/tiny_mce/plugins/table/css/table.css +13 -0
  150. data/app/assets/libs/tiny_mce/plugins/table/editor_plugin.js +1 -0
  151. data/app/assets/libs/tiny_mce/plugins/table/editor_plugin_src.js +1408 -0
  152. data/app/assets/libs/tiny_mce/plugins/table/js/cell.js +319 -0
  153. data/app/assets/libs/tiny_mce/plugins/table/js/merge_cells.js +27 -0
  154. data/app/assets/libs/tiny_mce/plugins/table/js/row.js +237 -0
  155. data/app/assets/libs/tiny_mce/plugins/table/js/table.js +488 -0
  156. data/app/assets/libs/tiny_mce/plugins/table/langs/en_dlg.js +1 -0
  157. data/app/assets/libs/tiny_mce/plugins/table/merge_cells.htm +32 -0
  158. data/app/assets/libs/tiny_mce/plugins/table/row.htm +158 -0
  159. data/app/assets/libs/tiny_mce/plugins/table/table.htm +188 -0
  160. data/app/assets/libs/tiny_mce/plugins/template/blank.htm +12 -0
  161. data/app/assets/libs/tiny_mce/plugins/template/css/template.css +23 -0
  162. data/app/assets/libs/tiny_mce/plugins/template/editor_plugin.js +1 -0
  163. data/app/assets/libs/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
  164. data/app/assets/libs/tiny_mce/plugins/template/js/template.js +106 -0
  165. data/app/assets/libs/tiny_mce/plugins/template/langs/en_dlg.js +1 -0
  166. data/app/assets/libs/tiny_mce/plugins/template/template.htm +31 -0
  167. data/app/assets/libs/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
  168. data/app/assets/libs/tiny_mce/plugins/visualchars/editor_plugin_src.js +83 -0
  169. data/app/assets/libs/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
  170. data/app/assets/libs/tiny_mce/plugins/wordcount/editor_plugin_src.js +114 -0
  171. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -0
  172. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -0
  173. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -0
  174. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -0
  175. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
  176. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
  177. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/del.htm +162 -0
  178. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
  179. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +132 -0
  180. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -0
  181. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
  182. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
  183. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -0
  184. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
  185. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -0
  186. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -0
  187. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -0
  188. data/app/assets/libs/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +1 -0
  189. data/app/assets/libs/tiny_mce/themes/advanced/about.htm +52 -0
  190. data/app/assets/libs/tiny_mce/themes/advanced/anchor.htm +26 -0
  191. data/app/assets/libs/tiny_mce/themes/advanced/charmap.htm +55 -0
  192. data/app/assets/libs/tiny_mce/themes/advanced/color_picker.htm +74 -0
  193. data/app/assets/libs/tiny_mce/themes/advanced/editor_template.js +1 -0
  194. data/app/assets/libs/tiny_mce/themes/advanced/editor_template_src.js +1362 -0
  195. data/app/assets/libs/tiny_mce/themes/advanced/image.htm +80 -0
  196. data/app/assets/libs/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  197. data/app/assets/libs/tiny_mce/themes/advanced/img/flash.gif +0 -0
  198. data/app/assets/libs/tiny_mce/themes/advanced/img/icons.gif +0 -0
  199. data/app/assets/libs/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  200. data/app/assets/libs/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  201. data/app/assets/libs/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  202. data/app/assets/libs/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  203. data/app/assets/libs/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  204. data/app/assets/libs/tiny_mce/themes/advanced/img/trans.gif +0 -0
  205. data/app/assets/libs/tiny_mce/themes/advanced/img/video.gif +0 -0
  206. data/app/assets/libs/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  207. data/app/assets/libs/tiny_mce/themes/advanced/js/about.js +73 -0
  208. data/app/assets/libs/tiny_mce/themes/advanced/js/anchor.js +43 -0
  209. data/app/assets/libs/tiny_mce/themes/advanced/js/charmap.js +363 -0
  210. data/app/assets/libs/tiny_mce/themes/advanced/js/color_picker.js +329 -0
  211. data/app/assets/libs/tiny_mce/themes/advanced/js/image.js +251 -0
  212. data/app/assets/libs/tiny_mce/themes/advanced/js/link.js +153 -0
  213. data/app/assets/libs/tiny_mce/themes/advanced/js/source_editor.js +56 -0
  214. data/app/assets/libs/tiny_mce/themes/advanced/langs/en.js +1 -0
  215. data/app/assets/libs/tiny_mce/themes/advanced/langs/en_dlg.js +1 -0
  216. data/app/assets/libs/tiny_mce/themes/advanced/link.htm +57 -0
  217. data/app/assets/libs/tiny_mce/themes/advanced/shortcuts.htm +47 -0
  218. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/content.css +50 -0
  219. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
  220. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  221. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  222. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  223. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  224. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  225. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  226. data/app/assets/libs/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
  227. data/app/assets/libs/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
  228. data/app/assets/libs/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
  229. data/app/assets/libs/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
  230. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -0
  231. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
  232. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  233. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  234. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  235. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -0
  236. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
  237. data/app/assets/libs/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
  238. data/app/assets/libs/tiny_mce/themes/advanced/source_editor.htm +25 -0
  239. data/app/assets/libs/tiny_mce/themes/simple/editor_template.js +1 -0
  240. data/app/assets/libs/tiny_mce/themes/simple/editor_template_src.js +84 -0
  241. data/app/assets/libs/tiny_mce/themes/simple/img/icons.gif +0 -0
  242. data/app/assets/libs/tiny_mce/themes/simple/langs/en.js +1 -0
  243. data/app/assets/libs/tiny_mce/themes/simple/skins/default/content.css +25 -0
  244. data/app/assets/libs/tiny_mce/themes/simple/skins/default/ui.css +32 -0
  245. data/app/assets/libs/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
  246. data/app/assets/libs/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  247. data/app/assets/libs/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
  248. data/app/assets/libs/tiny_mce/tiny_mce.js +1 -0
  249. data/app/assets/libs/tiny_mce/tiny_mce_popup.js +5 -0
  250. data/app/assets/libs/tiny_mce/tiny_mce_src.js +15979 -0
  251. data/app/assets/libs/tiny_mce/utils/editable_selects.js +70 -0
  252. data/app/assets/libs/tiny_mce/utils/form_utils.js +210 -0
  253. data/app/assets/libs/tiny_mce/utils/mctabs.js +162 -0
  254. data/app/assets/libs/tiny_mce/utils/validate.js +252 -0
  255. data/app/views/spud/sitemaps/show.xml.builder +1 -1
  256. metadata +268 -14
@@ -0,0 +1,431 @@
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
+ self.storeDraft();
140
+ ed.nodeChanged();
141
+ }, settings.autosave_interval);
142
+ }
143
+ });
144
+
145
+ /**
146
+ * This event gets fired when a draft is stored to local storage.
147
+ *
148
+ * @event onStoreDraft
149
+ * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
150
+ * @param {Object} draft Draft object containing the HTML contents of the editor.
151
+ */
152
+ self.onStoreDraft = new Dispatcher(self);
153
+
154
+ /**
155
+ * This event gets fired when a draft is restored from local storage.
156
+ *
157
+ * @event onStoreDraft
158
+ * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
159
+ * @param {Object} draft Draft object containing the HTML contents of the editor.
160
+ */
161
+ self.onRestoreDraft = new Dispatcher(self);
162
+
163
+ /**
164
+ * This event gets fired when a draft removed/expired.
165
+ *
166
+ * @event onRemoveDraft
167
+ * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event.
168
+ * @param {Object} draft Draft object containing the HTML contents of the editor.
169
+ */
170
+ self.onRemoveDraft = new Dispatcher(self);
171
+
172
+ // Add ask before unload dialog only add one unload handler
173
+ if (!unloadHandlerAdded) {
174
+ window.onbeforeunload = tinymce.plugins.AutoSave._beforeUnloadHandler;
175
+ unloadHandlerAdded = TRUE;
176
+ }
177
+ },
178
+
179
+ /**
180
+ * Returns information about the plugin as a name/value array.
181
+ * The current keys are longname, author, authorurl, infourl and version.
182
+ *
183
+ * @method getInfo
184
+ * @return {Object} Name/value array containing information about the plugin.
185
+ */
186
+ getInfo : function() {
187
+ return {
188
+ longname : 'Auto save',
189
+ author : 'Moxiecode Systems AB',
190
+ authorurl : 'http://tinymce.moxiecode.com',
191
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
192
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
193
+ };
194
+ },
195
+
196
+ /**
197
+ * Returns an expiration date UTC string.
198
+ *
199
+ * @method getExpDate
200
+ * @return {String} Expiration date UTC string.
201
+ */
202
+ getExpDate : function() {
203
+ return new Date(
204
+ new Date().getTime() + this.editor.settings.autosave_retention
205
+ ).toUTCString();
206
+ },
207
+
208
+ /**
209
+ * This method will setup the storage engine. If the browser has support for it.
210
+ *
211
+ * @method setupStorage
212
+ */
213
+ setupStorage : function(ed) {
214
+ var self = this, testKey = PLUGIN_NAME + '_test', testVal = "OK";
215
+
216
+ self.key = PLUGIN_NAME + ed.id;
217
+
218
+ // Loop though each storage engine type until we find one that works
219
+ tinymce.each([
220
+ function() {
221
+ // Try HTML5 Local Storage
222
+ if (localStorage) {
223
+ localStorage.setItem(testKey, testVal);
224
+
225
+ if (localStorage.getItem(testKey) === testVal) {
226
+ localStorage.removeItem(testKey);
227
+
228
+ return localStorage;
229
+ }
230
+ }
231
+ },
232
+
233
+ function() {
234
+ // Try HTML5 Session Storage
235
+ if (sessionStorage) {
236
+ sessionStorage.setItem(testKey, testVal);
237
+
238
+ if (sessionStorage.getItem(testKey) === testVal) {
239
+ sessionStorage.removeItem(testKey);
240
+
241
+ return sessionStorage;
242
+ }
243
+ }
244
+ },
245
+
246
+ function() {
247
+ // Try IE userData
248
+ if (tinymce.isIE) {
249
+ ed.getElement().style.behavior = "url('#default#userData')";
250
+
251
+ // Fake localStorage on old IE
252
+ return {
253
+ autoExpires : TRUE,
254
+
255
+ setItem : function(key, value) {
256
+ var userDataElement = ed.getElement();
257
+
258
+ userDataElement.setAttribute(key, value);
259
+ userDataElement.expires = self.getExpDate();
260
+
261
+ try {
262
+ userDataElement.save("TinyMCE");
263
+ } catch (e) {
264
+ // Ignore, saving might fail if "Userdata Persistence" is disabled in IE
265
+ }
266
+ },
267
+
268
+ getItem : function(key) {
269
+ var userDataElement = ed.getElement();
270
+
271
+ try {
272
+ userDataElement.load("TinyMCE");
273
+ return userDataElement.getAttribute(key);
274
+ } catch (e) {
275
+ // Ignore, loading might fail if "Userdata Persistence" is disabled in IE
276
+ return null;
277
+ }
278
+ },
279
+
280
+ removeItem : function(key) {
281
+ ed.getElement().removeAttribute(key);
282
+ }
283
+ };
284
+ }
285
+ },
286
+ ], function(setup) {
287
+ // Try executing each function to find a suitable storage engine
288
+ try {
289
+ self.storage = setup();
290
+
291
+ if (self.storage)
292
+ return false;
293
+ } catch (e) {
294
+ // Ignore
295
+ }
296
+ });
297
+ },
298
+
299
+ /**
300
+ * This method will store the current contents in the the storage engine.
301
+ *
302
+ * @method storeDraft
303
+ */
304
+ storeDraft : function() {
305
+ var self = this, storage = self.storage, editor = self.editor, expires, content;
306
+
307
+ // Is the contents dirty
308
+ if (storage) {
309
+ // If there is no existing key and the contents hasn't been changed since
310
+ // it's original value then there is no point in saving a draft
311
+ if (!storage.getItem(self.key) && !editor.isDirty())
312
+ return;
313
+
314
+ // Store contents if the contents if longer than the minlength of characters
315
+ content = editor.getContent({draft: true});
316
+ if (content.length > editor.settings.autosave_minlength) {
317
+ expires = self.getExpDate();
318
+
319
+ // Store expiration date if needed IE userData has auto expire built in
320
+ if (!self.storage.autoExpires)
321
+ self.storage.setItem(self.key + "_expires", expires);
322
+
323
+ self.storage.setItem(self.key, content);
324
+ self.onStoreDraft.dispatch(self, {
325
+ expires : expires,
326
+ content : content
327
+ });
328
+ }
329
+ }
330
+ },
331
+
332
+ /**
333
+ * This method will restore the contents from the storage engine back to the editor.
334
+ *
335
+ * @method restoreDraft
336
+ */
337
+ restoreDraft : function() {
338
+ var self = this, storage = self.storage, content;
339
+
340
+ if (storage) {
341
+ content = storage.getItem(self.key);
342
+
343
+ if (content) {
344
+ self.editor.setContent(content);
345
+ self.onRestoreDraft.dispatch(self, {
346
+ content : content
347
+ });
348
+ }
349
+ }
350
+ },
351
+
352
+ /**
353
+ * This method will return true/false if there is a local storage draft available.
354
+ *
355
+ * @method hasDraft
356
+ * @return {boolean} true/false state if there is a local draft.
357
+ */
358
+ hasDraft : function() {
359
+ var self = this, storage = self.storage, expDate, exists;
360
+
361
+ if (storage) {
362
+ // Does the item exist at all
363
+ exists = !!storage.getItem(self.key);
364
+ if (exists) {
365
+ // Storage needs autoexpire
366
+ if (!self.storage.autoExpires) {
367
+ expDate = new Date(storage.getItem(self.key + "_expires"));
368
+
369
+ // Contents hasn't expired
370
+ if (new Date().getTime() < expDate.getTime())
371
+ return TRUE;
372
+
373
+ // Remove it if it has
374
+ self.removeDraft();
375
+ } else
376
+ return TRUE;
377
+ }
378
+ }
379
+
380
+ return false;
381
+ },
382
+
383
+ /**
384
+ * Removes the currently stored draft.
385
+ *
386
+ * @method removeDraft
387
+ */
388
+ removeDraft : function() {
389
+ var self = this, storage = self.storage, key = self.key, content;
390
+
391
+ if (storage) {
392
+ // Get current contents and remove the existing draft
393
+ content = storage.getItem(key);
394
+ storage.removeItem(key);
395
+ storage.removeItem(key + "_expires");
396
+
397
+ // Dispatch remove event if we had any contents
398
+ if (content) {
399
+ self.onRemoveDraft.dispatch(self, {
400
+ content : content
401
+ });
402
+ }
403
+ }
404
+ },
405
+
406
+ "static" : {
407
+ // Internal unload handler will be called before the page is unloaded
408
+ _beforeUnloadHandler : function(e) {
409
+ var msg;
410
+
411
+ tinymce.each(tinyMCE.editors, function(ed) {
412
+ // Store a draft for each editor instance
413
+ if (ed.plugins.autosave)
414
+ ed.plugins.autosave.storeDraft();
415
+
416
+ // Never ask in fullscreen mode
417
+ if (ed.getParam("fullscreen_is_enabled"))
418
+ return;
419
+
420
+ // Setup a return message if the editor is dirty
421
+ if (!msg && ed.isDirty() && ed.getParam("autosave_ask_before_unload"))
422
+ msg = ed.getLang("autosave.unload_msg");
423
+ });
424
+
425
+ return msg;
426
+ }
427
+ }
428
+ });
429
+
430
+ tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSave);
431
+ })(tinymce);
@@ -0,0 +1,4 @@
1
+ tinyMCE.addI18n('en.autosave',{
2
+ restore_content: "Restore auto-saved content",
3
+ warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?"
4
+ });
@@ -0,0 +1 @@
1
+ (function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(a,b){var d=this,c=a.getParam("bbcode_dialect","punbb").toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d["_"+c+"_bbcode2html"](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d["_"+c+"_bbcode2html"](f.content)}if(f.get){f.content=d["_"+c+"_html2bbcode"](f.content)}})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_punbb_html2bbcode:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");b(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");b(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");b(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");b(/<font>(.*?)<\/font>/gi,"$1");b(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");b(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");b(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");b(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");b(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");b(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");b(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");b(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");b(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");b(/<\/(strong|b)>/gi,"[/b]");b(/<(strong|b)>/gi,"[b]");b(/<\/(em|i)>/gi,"[/i]");b(/<(em|i)>/gi,"[i]");b(/<\/u>/gi,"[/u]");b(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");b(/<u>/gi,"[u]");b(/<blockquote[^>]*>/gi,"[quote]");b(/<\/blockquote>/gi,"[/quote]");b(/<br \/>/gi,"\n");b(/<br\/>/gi,"\n");b(/<br>/gi,"\n");b(/<p>/gi,"");b(/<\/p>/gi,"\n");b(/&nbsp;|\u00a0/gi," ");b(/&quot;/gi,'"');b(/&lt;/gi,"<");b(/&gt;/gi,">");b(/&amp;/gi,"&");return a},_punbb_bbcode2html:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/\n/gi,"<br />");b(/\[b\]/gi,"<strong>");b(/\[\/b\]/gi,"</strong>");b(/\[i\]/gi,"<em>");b(/\[\/i\]/gi,"</em>");b(/\[u\]/gi,"<u>");b(/\[\/u\]/gi,"</u>");b(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>');b(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>');b(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />');b(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>');b(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span>&nbsp;');b(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span>&nbsp;');return a}});tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})();
@@ -0,0 +1,120 @@
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
+ tinymce.create('tinymce.plugins.BBCodePlugin', {
13
+ init : function(ed, url) {
14
+ var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();
15
+
16
+ ed.onBeforeSetContent.add(function(ed, o) {
17
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);
18
+ });
19
+
20
+ ed.onPostProcess.add(function(ed, o) {
21
+ if (o.set)
22
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);
23
+
24
+ if (o.get)
25
+ o.content = t['_' + dialect + '_html2bbcode'](o.content);
26
+ });
27
+ },
28
+
29
+ getInfo : function() {
30
+ return {
31
+ longname : 'BBCode Plugin',
32
+ author : 'Moxiecode Systems AB',
33
+ authorurl : 'http://tinymce.moxiecode.com',
34
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
35
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
36
+ };
37
+ },
38
+
39
+ // Private methods
40
+
41
+ // HTML -> BBCode in PunBB dialect
42
+ _punbb_html2bbcode : function(s) {
43
+ s = tinymce.trim(s);
44
+
45
+ function rep(re, str) {
46
+ s = s.replace(re, str);
47
+ };
48
+
49
+ // example: <strong> to [b]
50
+ rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
51
+ rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
52
+ rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
53
+ rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
54
+ rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
55
+ rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
56
+ rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
57
+ rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
58
+ rep(/<font>(.*?)<\/font>/gi,"$1");
59
+ rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
60
+ rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
61
+ rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");
62
+ rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
63
+ rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
64
+ rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");
65
+ rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
66
+ rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
67
+ rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
68
+ rep(/<\/(strong|b)>/gi,"[/b]");
69
+ rep(/<(strong|b)>/gi,"[b]");
70
+ rep(/<\/(em|i)>/gi,"[/i]");
71
+ rep(/<(em|i)>/gi,"[i]");
72
+ rep(/<\/u>/gi,"[/u]");
73
+ rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
74
+ rep(/<u>/gi,"[u]");
75
+ rep(/<blockquote[^>]*>/gi,"[quote]");
76
+ rep(/<\/blockquote>/gi,"[/quote]");
77
+ rep(/<br \/>/gi,"\n");
78
+ rep(/<br\/>/gi,"\n");
79
+ rep(/<br>/gi,"\n");
80
+ rep(/<p>/gi,"");
81
+ rep(/<\/p>/gi,"\n");
82
+ rep(/&nbsp;|\u00a0/gi," ");
83
+ rep(/&quot;/gi,"\"");
84
+ rep(/&lt;/gi,"<");
85
+ rep(/&gt;/gi,">");
86
+ rep(/&amp;/gi,"&");
87
+
88
+ return s;
89
+ },
90
+
91
+ // BBCode -> HTML from PunBB dialect
92
+ _punbb_bbcode2html : function(s) {
93
+ s = tinymce.trim(s);
94
+
95
+ function rep(re, str) {
96
+ s = s.replace(re, str);
97
+ };
98
+
99
+ // example: [b] to <strong>
100
+ rep(/\n/gi,"<br />");
101
+ rep(/\[b\]/gi,"<strong>");
102
+ rep(/\[\/b\]/gi,"</strong>");
103
+ rep(/\[i\]/gi,"<em>");
104
+ rep(/\[\/i\]/gi,"</em>");
105
+ rep(/\[u\]/gi,"<u>");
106
+ rep(/\[\/u\]/gi,"</u>");
107
+ rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
108
+ rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
109
+ rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
110
+ rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
111
+ rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");
112
+ rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");
113
+
114
+ return s;
115
+ }
116
+ });
117
+
118
+ // Register plugin
119
+ tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
120
+ })();
@@ -0,0 +1 @@
1
+ (function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(e){var h=this,f,d,i;h.editor=e;d=e.settings.contextmenu_never_use_native;h.onContextMenu=new tinymce.util.Dispatcher(this);f=e.onContextMenu.add(function(j,k){if((i!==0?i:k.ctrlKey)&&!d){return}a.cancel(k);if(k.target.nodeName=="IMG"){j.selection.select(k.target)}h._getMenu(j).showMenu(k.clientX||k.pageX,k.clientY||k.pageY);a.add(j.getDoc(),"click",function(l){g(j,l)});j.nodeChanged()});e.onRemove.add(function(){if(h._menu){h._menu.removeAll()}});function g(j,k){i=0;if(k&&k.button==2){i=k.ctrlKey;return}if(h._menu){h._menu.removeAll();h._menu.destroy();a.remove(j.getDoc(),"click",g);h._menu=null}}e.onMouseDown.add(g);e.onKeyDown.add(g);e.onKeyDown.add(function(j,k){if(k.shiftKey&&!k.ctrlKey&&!k.altKey&&k.keyCode===121){a.cancel(k);f(j,k)}})},getInfo:function(){return{longname:"Contextmenu",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getMenu:function(e){var g=this,d=g._menu,j=e.selection,f=j.isCollapsed(),h=j.getNode()||e.getBody(),i,k;if(d){d.removeAll();d.destroy()}k=b.getPos(e.getContentAreaContainer());d=e.controlManager.createDropMenu("contextmenu",{offset_x:k.x+e.getParam("contextmenu_offset_x",0),offset_y:k.y+e.getParam("contextmenu_offset_y",0),constrain:1,keyboard_focus:true});g._menu=d;d.add({title:"advanced.cut_desc",icon:"cut",cmd:"Cut"}).setDisabled(f);d.add({title:"advanced.copy_desc",icon:"copy",cmd:"Copy"}).setDisabled(f);d.add({title:"advanced.paste_desc",icon:"paste",cmd:"Paste"});if((h.nodeName=="A"&&!e.dom.getAttrib(h,"name"))||!f){d.addSeparator();d.add({title:"advanced.link_desc",icon:"link",cmd:e.plugins.advlink?"mceAdvLink":"mceLink",ui:true});d.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"})}d.addSeparator();d.add({title:"advanced.image_desc",icon:"image",cmd:e.plugins.advimage?"mceAdvImage":"mceImage",ui:true});d.addSeparator();i=d.addMenu({title:"contextmenu.align"});i.add({title:"contextmenu.left",icon:"justifyleft",cmd:"JustifyLeft"});i.add({title:"contextmenu.center",icon:"justifycenter",cmd:"JustifyCenter"});i.add({title:"contextmenu.right",icon:"justifyright",cmd:"JustifyRight"});i.add({title:"contextmenu.full",icon:"justifyfull",cmd:"JustifyFull"});g.onContextMenu.dispatch(g,d,h,f);return d}});tinymce.PluginManager.add("contextmenu",tinymce.plugins.ContextMenu)})();