baidu_ueditor_rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +14 -0
  3. data/Gemfile.lock +88 -0
  4. data/bin/rails +8 -0
  5. data/vendor/assets/javascripts/ueditor/dialogs/anchor/anchor.html +40 -0
  6. data/vendor/assets/javascripts/ueditor/dialogs/attachment/attachment.css +130 -0
  7. data/vendor/assets/javascripts/ueditor/dialogs/attachment/attachment.html +128 -0
  8. data/vendor/assets/javascripts/ueditor/dialogs/attachment/callbacks.js +166 -0
  9. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif +0 -0
  10. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_default.png +0 -0
  11. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif +0 -0
  12. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif +0 -0
  13. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif +0 -0
  14. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif +0 -0
  15. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif +0 -0
  16. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif +0 -0
  17. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif +0 -0
  18. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif +0 -0
  19. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif +0 -0
  20. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif +0 -0
  21. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeMaps.js +29 -0
  22. data/vendor/assets/javascripts/ueditor/dialogs/background/background.css +25 -0
  23. data/vendor/assets/javascripts/ueditor/dialogs/background/background.html +56 -0
  24. data/vendor/assets/javascripts/ueditor/dialogs/background/background.js +251 -0
  25. data/vendor/assets/javascripts/ueditor/dialogs/charts/chart.config.js +65 -0
  26. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.css +165 -0
  27. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.html +89 -0
  28. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.js +519 -0
  29. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts0.png +0 -0
  30. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts1.png +0 -0
  31. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts2.png +0 -0
  32. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts3.png +0 -0
  33. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts4.png +0 -0
  34. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts5.png +0 -0
  35. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.css +43 -0
  36. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.html +54 -0
  37. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.js +186 -0
  38. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/0.gif +0 -0
  39. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/bface.gif +0 -0
  40. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/cface.gif +0 -0
  41. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/fface.gif +0 -0
  42. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/jxface2.gif +0 -0
  43. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/neweditor-tab-bg.png +0 -0
  44. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/tface.gif +0 -0
  45. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/wface.gif +0 -0
  46. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/yface.gif +0 -0
  47. data/vendor/assets/javascripts/ueditor/dialogs/gmap/gmap.html +89 -0
  48. data/vendor/assets/javascripts/ueditor/dialogs/help/help.css +7 -0
  49. data/vendor/assets/javascripts/ueditor/dialogs/help/help.html +82 -0
  50. data/vendor/assets/javascripts/ueditor/dialogs/help/help.js +56 -0
  51. data/vendor/assets/javascripts/ueditor/dialogs/image/image.css +69 -0
  52. data/vendor/assets/javascripts/ueditor/dialogs/image/image.html +257 -0
  53. data/vendor/assets/javascripts/ueditor/dialogs/image/image.js +713 -0
  54. data/vendor/assets/javascripts/ueditor/dialogs/image/imageUploader.swf +0 -0
  55. data/vendor/assets/javascripts/ueditor/dialogs/image/images/center_focus.jpg +0 -0
  56. data/vendor/assets/javascripts/ueditor/dialogs/image/images/left_focus.jpg +0 -0
  57. data/vendor/assets/javascripts/ueditor/dialogs/image/images/none_focus.jpg +0 -0
  58. data/vendor/assets/javascripts/ueditor/dialogs/image/images/right_focus.jpg +0 -0
  59. data/vendor/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html +98 -0
  60. data/vendor/assets/javascripts/ueditor/dialogs/internal.js +81 -0
  61. data/vendor/assets/javascripts/ueditor/dialogs/link/link.html +126 -0
  62. data/vendor/assets/javascripts/ueditor/dialogs/map/map.html +135 -0
  63. data/vendor/assets/javascripts/ueditor/dialogs/map/show.html +118 -0
  64. data/vendor/assets/javascripts/ueditor/dialogs/music/music.css +30 -0
  65. data/vendor/assets/javascripts/ueditor/dialogs/music/music.html +32 -0
  66. data/vendor/assets/javascripts/ueditor/dialogs/music/music.js +192 -0
  67. data/vendor/assets/javascripts/ueditor/dialogs/preview/preview.html +40 -0
  68. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/addimg.png +0 -0
  69. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/brush.png +0 -0
  70. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/delimg.png +0 -0
  71. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/delimgH.png +0 -0
  72. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/empty.png +0 -0
  73. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/emptyH.png +0 -0
  74. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/eraser.png +0 -0
  75. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/redo.png +0 -0
  76. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/redoH.png +0 -0
  77. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/scale.png +0 -0
  78. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/scaleH.png +0 -0
  79. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/size.png +0 -0
  80. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/undo.png +0 -0
  81. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/undoH.png +0 -0
  82. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.css +72 -0
  83. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.html +95 -0
  84. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.js +655 -0
  85. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html +102 -0
  86. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.js +164 -0
  87. data/vendor/assets/javascripts/ueditor/dialogs/snapscreen/snapscreen.html +58 -0
  88. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.html +21 -0
  89. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.js +57 -0
  90. data/vendor/assets/javascripts/ueditor/dialogs/table/dragicon.png +0 -0
  91. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.css +84 -0
  92. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.html +64 -0
  93. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.js +237 -0
  94. data/vendor/assets/javascripts/ueditor/dialogs/table/edittd.html +61 -0
  95. data/vendor/assets/javascripts/ueditor/dialogs/table/edittip.html +33 -0
  96. data/vendor/assets/javascripts/ueditor/dialogs/tangram.js +1495 -0
  97. data/vendor/assets/javascripts/ueditor/dialogs/template/config.js +42 -0
  98. data/vendor/assets/javascripts/ueditor/dialogs/template/images/bg.gif +0 -0
  99. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre0.png +0 -0
  100. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre1.png +0 -0
  101. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre2.png +0 -0
  102. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre3.png +0 -0
  103. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre4.png +0 -0
  104. data/vendor/assets/javascripts/ueditor/dialogs/template/template.css +18 -0
  105. data/vendor/assets/javascripts/ueditor/dialogs/template/template.html +26 -0
  106. data/vendor/assets/javascripts/ueditor/dialogs/template/template.js +53 -0
  107. data/vendor/assets/javascripts/ueditor/dialogs/video/callbacks.js +166 -0
  108. data/vendor/assets/javascripts/ueditor/dialogs/video/images/center_focus.jpg +0 -0
  109. data/vendor/assets/javascripts/ueditor/dialogs/video/images/left_focus.jpg +0 -0
  110. data/vendor/assets/javascripts/ueditor/dialogs/video/images/none_focus.jpg +0 -0
  111. data/vendor/assets/javascripts/ueditor/dialogs/video/images/right_focus.jpg +0 -0
  112. data/vendor/assets/javascripts/ueditor/dialogs/video/video.css +150 -0
  113. data/vendor/assets/javascripts/ueditor/dialogs/video/video.html +95 -0
  114. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js +471 -0
  115. data/vendor/assets/javascripts/ueditor/dialogs/webapp/webapp.html +53 -0
  116. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/fClipboard_ueditor.swf +0 -0
  117. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/imageUploader.swf +0 -0
  118. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/wordimage.html +104 -0
  119. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/wordimage.js +158 -0
  120. data/vendor/assets/javascripts/ueditor/index.html +175 -0
  121. data/vendor/assets/javascripts/ueditor/lang/en/en.js +638 -0
  122. data/vendor/assets/javascripts/ueditor/lang/en/images/addimage.png +0 -0
  123. data/vendor/assets/javascripts/ueditor/lang/en/images/alldeletebtnhoverskin.png +0 -0
  124. data/vendor/assets/javascripts/ueditor/lang/en/images/alldeletebtnupskin.png +0 -0
  125. data/vendor/assets/javascripts/ueditor/lang/en/images/background.png +0 -0
  126. data/vendor/assets/javascripts/ueditor/lang/en/images/button.png +0 -0
  127. data/vendor/assets/javascripts/ueditor/lang/en/images/copy.png +0 -0
  128. data/vendor/assets/javascripts/ueditor/lang/en/images/deletedisable.png +0 -0
  129. data/vendor/assets/javascripts/ueditor/lang/en/images/deleteenable.png +0 -0
  130. data/vendor/assets/javascripts/ueditor/lang/en/images/imglabel.png +0 -0
  131. data/vendor/assets/javascripts/ueditor/lang/en/images/listbackground.png +0 -0
  132. data/vendor/assets/javascripts/ueditor/lang/en/images/localimage.png +0 -0
  133. data/vendor/assets/javascripts/ueditor/lang/en/images/music.png +0 -0
  134. data/vendor/assets/javascripts/ueditor/lang/en/images/rotateleftdisable.png +0 -0
  135. data/vendor/assets/javascripts/ueditor/lang/en/images/rotateleftenable.png +0 -0
  136. data/vendor/assets/javascripts/ueditor/lang/en/images/rotaterightdisable.png +0 -0
  137. data/vendor/assets/javascripts/ueditor/lang/en/images/rotaterightenable.png +0 -0
  138. data/vendor/assets/javascripts/ueditor/lang/en/images/upload.png +0 -0
  139. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/copy.png +0 -0
  140. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/imglabel.png +0 -0
  141. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/localimage.png +0 -0
  142. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/music.png +0 -0
  143. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/upload.png +0 -0
  144. data/vendor/assets/javascripts/ueditor/lang/zh-cn/zh-cn.js +605 -0
  145. data/vendor/assets/javascripts/ueditor/themes/default/css/ueditor.css +1823 -0
  146. data/vendor/assets/javascripts/ueditor/themes/default/css/ueditor.min.css +8 -0
  147. data/vendor/assets/javascripts/ueditor/themes/default/dialogbase.css +100 -0
  148. data/vendor/assets/javascripts/ueditor/themes/default/images/anchor.gif +0 -0
  149. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow.png +0 -0
  150. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow_down.png +0 -0
  151. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow_up.png +0 -0
  152. data/vendor/assets/javascripts/ueditor/themes/default/images/button-bg.gif +0 -0
  153. data/vendor/assets/javascripts/ueditor/themes/default/images/cancelbutton.gif +0 -0
  154. data/vendor/assets/javascripts/ueditor/themes/default/images/charts.png +0 -0
  155. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_h.gif +0 -0
  156. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_h.png +0 -0
  157. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_v.gif +0 -0
  158. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_v.png +0 -0
  159. data/vendor/assets/javascripts/ueditor/themes/default/images/dialog-title-bg.png +0 -0
  160. data/vendor/assets/javascripts/ueditor/themes/default/images/filescan.png +0 -0
  161. data/vendor/assets/javascripts/ueditor/themes/default/images/highlighted.gif +0 -0
  162. data/vendor/assets/javascripts/ueditor/themes/default/images/icons-all.gif +0 -0
  163. data/vendor/assets/javascripts/ueditor/themes/default/images/icons.gif +0 -0
  164. data/vendor/assets/javascripts/ueditor/themes/default/images/icons.png +0 -0
  165. data/vendor/assets/javascripts/ueditor/themes/default/images/lock.gif +0 -0
  166. data/vendor/assets/javascripts/ueditor/themes/default/images/neweditor-tab-bg.png +0 -0
  167. data/vendor/assets/javascripts/ueditor/themes/default/images/pagebreak.gif +0 -0
  168. data/vendor/assets/javascripts/ueditor/themes/default/images/scale.png +0 -0
  169. data/vendor/assets/javascripts/ueditor/themes/default/images/sortable.png +0 -0
  170. data/vendor/assets/javascripts/ueditor/themes/default/images/spacer.gif +0 -0
  171. data/vendor/assets/javascripts/ueditor/themes/default/images/sparator_v.png +0 -0
  172. data/vendor/assets/javascripts/ueditor/themes/default/images/table-cell-align.png +0 -0
  173. data/vendor/assets/javascripts/ueditor/themes/default/images/tangram-colorpicker.png +0 -0
  174. data/vendor/assets/javascripts/ueditor/themes/default/images/toolbar_bg.png +0 -0
  175. data/vendor/assets/javascripts/ueditor/themes/default/images/unhighlighted.gif +0 -0
  176. data/vendor/assets/javascripts/ueditor/themes/default/images/upload.png +0 -0
  177. data/vendor/assets/javascripts/ueditor/themes/default/images/videologo.gif +0 -0
  178. data/vendor/assets/javascripts/ueditor/themes/default/images/word.gif +0 -0
  179. data/vendor/assets/javascripts/ueditor/themes/default/images/wordpaste.png +0 -0
  180. data/vendor/assets/javascripts/ueditor/themes/iframe.css +1 -0
  181. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +3655 -0
  182. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +1 -0
  183. data/vendor/assets/javascripts/ueditor/third-party/codemirror/codemirror.css +104 -0
  184. data/vendor/assets/javascripts/ueditor/third-party/codemirror/codemirror.js +3581 -0
  185. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/mootools-adapter.js +13 -0
  186. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js +313 -0
  187. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/prototype-adapter.js +15 -0
  188. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js +316 -0
  189. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/standalone-framework.js +17 -0
  190. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/standalone-framework.src.js +583 -0
  191. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts-more.js +50 -0
  192. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts-more.src.js +2430 -0
  193. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts.js +283 -0
  194. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts.src.js +16974 -0
  195. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/annotations.js +7 -0
  196. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/annotations.src.js +401 -0
  197. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/canvas-tools.js +133 -0
  198. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/canvas-tools.src.js +3113 -0
  199. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/data.js +17 -0
  200. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/data.src.js +582 -0
  201. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/drilldown.js +11 -0
  202. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/drilldown.src.js +447 -0
  203. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/exporting.js +22 -0
  204. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/exporting.src.js +709 -0
  205. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/funnel.js +12 -0
  206. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/funnel.src.js +289 -0
  207. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/heatmap.js +1 -0
  208. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/heatmap.src.js +53 -0
  209. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/map.js +27 -0
  210. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/map.src.js +1002 -0
  211. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/no-data-to-display.js +12 -0
  212. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/no-data-to-display.src.js +128 -0
  213. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/dark-blue.js +254 -0
  214. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/dark-green.js +255 -0
  215. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/gray.js +257 -0
  216. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/grid.js +103 -0
  217. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/skies.js +89 -0
  218. data/vendor/assets/javascripts/ueditor/third-party/jquery-1.10.2.min.js +6 -0
  219. data/vendor/assets/javascripts/ueditor/third-party/snapscreen/UEditorSnapscreen.exe +0 -0
  220. data/vendor/assets/javascripts/ueditor/third-party/swfupload/fileprogress.js +215 -0
  221. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.cookies.js +53 -0
  222. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.js +1132 -0
  223. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.proxy.js +96 -0
  224. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.queue.js +98 -0
  225. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.speed.js +346 -0
  226. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.swf +0 -0
  227. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload_fp9.swf +0 -0
  228. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.eot +0 -0
  229. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.svg +65 -0
  230. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.ttf +0 -0
  231. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.woff +0 -0
  232. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.css +766 -0
  233. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.min.css +5 -0
  234. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.swf +0 -0
  235. data/vendor/assets/javascripts/ueditor/third-party/video-js/video.dev.js +7108 -0
  236. data/vendor/assets/javascripts/ueditor/third-party/video-js/video.js +129 -0
  237. data/vendor/assets/javascripts/ueditor/ueditor.all.js +27535 -0
  238. data/vendor/assets/javascripts/ueditor/ueditor.all.min.js +664 -0
  239. data/vendor/assets/javascripts/ueditor/ueditor.config.js +452 -0
  240. data/vendor/assets/javascripts/ueditor/ueditor.parse.js +1015 -0
  241. data/vendor/assets/javascripts/ueditor/ueditor.parse.min.js +28 -0
  242. metadata +241 -1
@@ -0,0 +1,452 @@
1
+ /**
2
+ * ueditor完整配置项
3
+ * 可以在这里配置整个编辑器的特性
4
+ */
5
+ /**************************提示********************************
6
+ * 所有被注释的配置项均为UEditor默认值。
7
+ * 修改默认配置请首先确保已经完全明确该参数的真实用途。
8
+ * 主要有两种修改方案,一种是取消此处注释,然后修改成对应参数;另一种是在实例化编辑器时传入对应参数。
9
+ * 当升级编辑器时,可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。
10
+ **************************提示********************************/
11
+
12
+
13
+ (function () {
14
+ /**
15
+ * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。
16
+ * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。
17
+ * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。
18
+ * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。
19
+ * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。
20
+ * window.UEDITOR_HOME_URL = "/xxxx/xxxx/";
21
+ */
22
+ var URL = window.UEDITOR_HOME_URL || getUEBasePath();
23
+
24
+ /**
25
+ * 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。
26
+ */
27
+ window.UEDITOR_CONFIG = {
28
+
29
+ //为编辑器实例添加一个路径,这个不能被注释
30
+ UEDITOR_HOME_URL : URL
31
+
32
+ //图片上传配置区
33
+ ,imageUrl:URL+"php/imageUp.php" //图片上传提交地址
34
+ ,imagePath:URL + "php/" //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
35
+ //,imageFieldName:"upfile" //图片数据的key,若此处修改,需要在后台对应文件修改对应参数
36
+ //,compressSide:0 //等比压缩的基准,确定maxImageSideLength参数的参照对象。0为按照最长边,1为按照宽度,2为按照高度
37
+ //,maxImageSideLength:900 //上传图片最大允许的边长,超过会自动等比缩放,不缩放就设置一个比较大的值,更多设置在image.html中
38
+ //,savePath: [ 'upload1', 'upload2', 'upload3' ] //图片保存在服务器端的目录, 默认为空, 此时在上传图片时会向服务器请求保存图片的目录列表,
39
+ // 如果用户不希望发送请求, 则可以在这里设置与服务器端能够对应上的目录名称列表
40
+ //比如: savePath: [ 'upload1', 'upload2' ]
41
+
42
+ //涂鸦图片配置区
43
+ ,scrawlUrl:URL+"php/scrawlUp.php" //涂鸦上传地址
44
+ ,scrawlPath:URL+"php/" //图片修正地址,同imagePath
45
+
46
+ //附件上传配置区
47
+ ,fileUrl:URL+"php/fileUp.php" //附件上传提交地址
48
+ ,filePath:URL + "php/" //附件修正地址,同imagePath
49
+ //,fileFieldName:"upfile" //附件提交的表单名,若此处修改,需要在后台对应文件修改对应参数
50
+
51
+ //远程抓取配置区
52
+ //,catchRemoteImageEnable:true //是否开启远程图片抓取,默认开启
53
+ ,catcherUrl:URL +"php/getRemoteImage.php" //处理远程图片抓取的地址
54
+ ,catcherPath:URL + "php/" //图片修正地址,同imagePath
55
+ //,catchFieldName:"upfile" //提交到后台远程图片uri合集,若此处修改,需要在后台对应文件修改对应参数
56
+ //,separater:'ue_separate_ue' //提交至后台的远程图片地址字符串分隔符
57
+ //,localDomain:[] //本地顶级域名,当开启远程图片抓取时,除此之外的所有其它域名下的图片都将被抓取到本地,默认不抓取127.0.0.1和localhost
58
+
59
+ //图片在线管理配置区
60
+ ,imageManagerUrl:URL + "php/imageManager.php" //图片在线管理的处理地址
61
+ ,imageManagerPath:URL + "php/" //图片修正地址,同imagePath
62
+
63
+ //屏幕截图配置区
64
+ ,snapscreenHost: location.hostname //屏幕截图的server端文件所在的网站地址或者ip,请不要加http://
65
+ ,snapscreenServerUrl: URL +"php/imageUp.php" //屏幕截图的server端保存程序,UEditor的范例代码为“URL +"server/upload/php/snapImgUp.php"”
66
+ ,snapscreenPath: URL + "php/"
67
+ ,snapscreenServerPort: location.port //屏幕截图的server端端口
68
+ //,snapscreenImgAlign: '' //截图的图片默认的排版方式
69
+
70
+ //word转存配置区
71
+ ,wordImageUrl:URL + "php/imageUp.php" //word转存提交地址
72
+ ,wordImagePath:URL + "php/" //
73
+ //,wordImageFieldName:"upfile" //word转存表单名若此处修改,需要在后台对应文件修改对应参数
74
+
75
+ //视频上传配置区
76
+ ,getMovieUrl:URL+"php/getMovie.php" //视频数据获取地址
77
+ ,videoUrl:URL+"php/fileUp.php" //附件上传提交地址
78
+ ,videoPath:URL + "php/" //附件修正地址,同imagePath
79
+ //,videoFieldName:"upfile" //附件提交的表单名,若此处修改,需要在后台对应文件修改对应参数
80
+
81
+ //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的从新定义
82
+ , toolbars:[
83
+ ['fullscreen', 'source', '|', 'undo', 'redo', '|',
84
+ 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
85
+ 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
86
+ 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
87
+ 'directionalityltr', 'directionalityrtl', 'indent', '|',
88
+ 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
89
+ 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
90
+ 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe','insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
91
+ 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
92
+ 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
93
+ 'print', 'preview', 'searchreplace', 'help', 'drafts']
94
+ ]
95
+ //当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准
96
+ // ,labelMap:{
97
+ // 'anchor':'', 'undo':''
98
+ // }
99
+ //webAppKey
100
+ //百度应用的APIkey,每个站长必须首先去百度官网注册一个key后方能正常使用app功能
101
+ //,webAppKey:""
102
+
103
+ //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件:
104
+ //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase()
105
+ //,lang:"zh-cn"
106
+ //,langPath:URL +"lang/"
107
+
108
+ //启用自动保存
109
+ //,enableAutoSave: true
110
+ //自动保存间隔时间, 单位ms
111
+ //,saveInterval: 500
112
+
113
+ //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件:
114
+ //现有如下皮肤:default
115
+ //,theme:'default'
116
+ //,themePath:URL +"themes/"
117
+
118
+ //若实例化编辑器的页面手动修改的domain,此处需要设置为true
119
+ //,customDomain:false
120
+
121
+ //针对getAllHtml方法,会在对应的head标签中增加该编码设置。
122
+ //,charset:"utf-8"
123
+
124
+ //常用配置项目
125
+ //,isShow : true //默认显示编辑器
126
+
127
+ //,initialContent:'欢迎使用ueditor!' //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子
128
+
129
+ //,initialFrameWidth:1000 //初始化编辑器宽度,默认1000
130
+ //,initialFrameHeight:320 //初始化编辑器高度,默认320
131
+
132
+ //,autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了
133
+
134
+ //,iframeCssUrl: URL + '/themes/iframe.css' //给编辑器内部引入一个css文件
135
+
136
+ //,textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值
137
+
138
+ //,focus:false //初始化时,是否让编辑器获得焦点true或false
139
+
140
+ //,autoClearEmptyNode : true //getContent时,是否删除空的inlineElement节点(包括嵌套的情况)
141
+
142
+ //,fullscreen : false //是否开启初始化时即全屏,默认关闭
143
+
144
+ //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的,默认是false
145
+
146
+ //,zIndex : 900 //编辑器层级的基数,默认是900
147
+
148
+ //,imagePopup:true //图片操作的浮层开关,默认打开
149
+
150
+ //如果自定义,最好给p标签如下的行高,要不输入中文时,会有跳动感
151
+ //,initialStyle:'p{line-height:1em}'//编辑器层级的基数,可以用来改变字体等
152
+
153
+ //,autoSyncData:true //自动同步编辑器要提交的数据
154
+ //,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹
155
+
156
+ //,pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴
157
+ //纯文本粘贴模式下的过滤规则
158
+ // 'filterTxtRules' : function(){
159
+ // function transP(node){
160
+ // node.tagName = 'p';
161
+ // node.setStyle();
162
+ // }
163
+ // return {
164
+ // //直接删除及其字节点内容
165
+ // '-' : 'script style object iframe embed input select',
166
+ // 'p': {$:{}},
167
+ // 'br':{$:{}},
168
+ // 'div':{'$':{}},
169
+ // 'li':{'$':{}},
170
+ // 'caption':transP,
171
+ // 'th':transP,
172
+ // 'tr':transP,
173
+ // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
174
+ // 'td':function(node){
175
+ // //没有内容的td直接删掉
176
+ // var txt = !!node.innerText();
177
+ // if(txt){
178
+ // node.parentNode.insertAfter(UE.uNode.createText('    '),node);
179
+ // }
180
+ // node.parentNode.removeChild(node,node.innerText())
181
+ // }
182
+ // }
183
+ // }()
184
+ //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串
185
+ //iframeUrlMap
186
+ //dialog内容的路径 ~会被替换成URL,垓属性一旦打开,将覆盖所有的dialog的默认路径
187
+ //,iframeUrlMap:{
188
+ // 'anchor':'~/dialogs/anchor/anchor.html',
189
+ // }
190
+
191
+ //insertorderedlist
192
+ //有序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准
193
+ // ,'insertorderedlist':{
194
+ // //自定的样式
195
+ // 'num':'1,2,3...',
196
+ // 'num1':'1),2),3)...',
197
+ // 'num2':'(1),(2),(3)...',
198
+ // 'cn':'一,二,三....',
199
+ // 'cn1':'一),二),三)....',
200
+ // 'cn2':'(一),(二),(三)....',
201
+ // //系统自带
202
+ // 'decimal' : '' , //'1,2,3...'
203
+ // 'lower-alpha' : '' , // 'a,b,c...'
204
+ // 'lower-roman' : '' , //'i,ii,iii...'
205
+ // 'upper-alpha' : '' , lang //'A,B,C'
206
+ // 'upper-roman' : '' //'I,II,III...'
207
+ // }
208
+
209
+ //insertunorderedlist
210
+ //无序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准
211
+ //,insertunorderedlist : {
212
+ // //自定的样式
213
+ // 'dash' :'— 破折号',
214
+ // 'dot':' 。 小圆圈'
215
+ // //系统自带
216
+ // 'circle' : '', // '○ 小圆圈'
217
+ // 'disc' : '', // '● 小圆点'
218
+ // 'square' : '' //'■ 小方块'
219
+ //}
220
+ // ,listDefaultPaddingLeft : '30'//默认的左边缩进的基数倍
221
+ // ,listiconpath : 'http://bs.baidu.com/listicon/'//自定义标号的路径
222
+ // ,maxListLevel : 3 //限制可以tab的级数-1不限制
223
+ //fontfamily
224
+ //字体设置 label留空支持多语言自动切换,若配置,则以配置值为准
225
+ // ,'fontfamily':[
226
+ // { label:'',name:'songti',val:'宋体,SimSun'},
227
+ // { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'},
228
+ // { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'},
229
+ // { label:'',name:'heiti',val:'黑体, SimHei'},
230
+ // { label:'',name:'lishu',val:'隶书, SimLi'},
231
+ // { label:'',name:'andaleMono',val:'andale mono'},
232
+ // { label:'',name:'arial',val:'arial, helvetica,sans-serif'},
233
+ // { label:'',name:'arialBlack',val:'arial black,avant garde'},
234
+ // { label:'',name:'comicSansMs',val:'comic sans ms'},
235
+ // { label:'',name:'impact',val:'impact,chicago'},
236
+ // { label:'',name:'timesNewRoman',val:'times new roman'}
237
+ // ]
238
+
239
+ //fontsize
240
+ //字号
241
+ //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36]
242
+
243
+ //paragraph
244
+ //段落格式 值留空时支持多语言自动识别,若配置,则以配置值为准
245
+ //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}
246
+
247
+ //rowspacingtop
248
+ //段间距 值和显示的名字相同
249
+ //,'rowspacingtop':['5', '10', '15', '20', '25']
250
+
251
+ //rowspacingBottom
252
+ //段间距 值和显示的名字相同
253
+ //,'rowspacingbottom':['5', '10', '15', '20', '25']
254
+
255
+ //lineheight
256
+ //行内间距 值和显示的名字相同
257
+ //,'lineheight':['1', '1.5','1.75','2', '3', '4', '5']
258
+
259
+ //customstyle
260
+ //自定义样式,不支持国际化,此处配置值即可最后显示值
261
+ //block的元素是依据设置段落的逻辑设置的,inline的元素依据BIU的逻辑设置
262
+ //尽量使用一些常用的标签
263
+ //参数说明
264
+ //tag 使用的标签名字
265
+ //label 显示的名字也是用来标识不同类型的标识符,注意这个值每个要不同,
266
+ //style 添加的样式
267
+ //每一个对象就是一个自定义的样式
268
+ //,'customstyle':[
269
+ // {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'},
270
+ // {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'},
271
+ // {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'},
272
+ // {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'}
273
+ // ]
274
+
275
+ //右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准
276
+ // ,contextMenu:[
277
+ // {
278
+ // label:'', //显示的名称
279
+ // cmdName:'selectall',//执行的command命令,当点击这个右键菜单时
280
+ // //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName
281
+ // exec:function () {
282
+ // //this是当前编辑器的实例
283
+ // //this.ui._dialogs['inserttableDialog'].open();
284
+ // }
285
+ // }
286
+ // ]
287
+
288
+ //快捷菜单
289
+ //,shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"]
290
+
291
+ //
292
+ //wordCount
293
+ //,wordCount:true //是否开启字数统计
294
+ //,maximumWords:10000 //允许的最大字符数
295
+ //字数统计提示,{#count}代表当前字数,{#leave}代表还可以输入多少字符数,留空支持多语言自动切换,否则按此配置显示
296
+ //,wordCountMsg:'' //当前已输入 {#count} 个字符,您还可以输入{#leave} 个字符
297
+ //超出字数限制提示 留空支持多语言自动切换,否则按此配置显示
298
+ //,wordOverFlowMsg:'' //<span style="color:red;">你输入的字符个数已经超出最大允许值,服务器可能会拒绝保存!</span>
299
+
300
+ //tab
301
+ //点击tab键时移动的距离,tabSize倍数,tabNode什么字符做为单位
302
+ //,tabSize:4
303
+ //,tabNode:'&nbsp;'
304
+
305
+ //elementPathEnabled
306
+ //是否启用元素路径,默认是显示
307
+ //,elementPathEnabled : true
308
+
309
+ //removeFormat
310
+ //清除格式时可以删除的标签和属性
311
+ //removeForamtTags标签
312
+ //,removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var'
313
+ //removeFormatAttributes属性
314
+ //,removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign'
315
+
316
+ //undo
317
+ //可以最多回退的次数,默认20
318
+ //,maxUndoCount:20
319
+ //当输入的字符数超过该值时,保存一次现场
320
+ //,maxInputCount:1
321
+
322
+ //autoHeightEnabled
323
+ // 是否自动长高,默认true
324
+ //,autoHeightEnabled:true
325
+
326
+ //scaleEnabled
327
+ //是否可以拉伸长高,默认true(当开启时,自动长高失效)
328
+ //,scaleEnabled:false
329
+ //,minFrameWidth:800 //编辑器拖动时最小宽度,默认800
330
+ //,minFrameHeight:220 //编辑器拖动时最小高度,默认220
331
+
332
+ //tableDragable
333
+ //表格是否可以拖拽
334
+ //,tableDragable: true
335
+
336
+ //autoFloatEnabled
337
+ //是否保持toolbar的位置不动,默认true
338
+ //,autoFloatEnabled:true
339
+ //浮动时工具栏距离浏览器顶部的高度,用于某些具有固定头部的页面
340
+ //,topOffset:30
341
+ //编辑器底部距离工具栏高度(如果参数大于等于编辑器高度,则设置无效)
342
+ //,toolbarTopOffset:400
343
+
344
+ //indentValue
345
+ //首行缩进距离,默认是2em
346
+ //,indentValue:'2em'
347
+
348
+ //pageBreakTag
349
+ //分页标识符,默认是_ueditor_page_break_tag_
350
+ //,pageBreakTag:'_ueditor_page_break_tag_'
351
+
352
+ //sourceEditor
353
+ //源码的查看方式,codemirror 是代码高亮,textarea是文本框,默认是codemirror
354
+ //注意默认codemirror只能在ie8+和非ie中使用
355
+ //,sourceEditor:"codemirror"
356
+ //如果sourceEditor是codemirror,还用配置一下两个参数
357
+ //codeMirrorJsUrl js加载的路径,默认是 URL + "third-party/codemirror/codemirror.js"
358
+ //,codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js"
359
+ //codeMirrorCssUrl css加载的路径,默认是 URL + "third-party/codemirror/codemirror.css"
360
+ //,codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css"
361
+ //编辑器初始化完成后是否进入源码模式,默认为否。
362
+ //,sourceEditorFirst:false
363
+
364
+ //autotypeset
365
+ // //自动排版参数
366
+ // ,autotypeset:{
367
+ // mergeEmptyline : true, //合并空行
368
+ // removeClass : true, //去掉冗余的class
369
+ // removeEmptyline : false, //去掉空行
370
+ // textAlign : "left" , //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版
371
+ // imageBlockLine : 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版
372
+ // pasteFilter : false, //根据规则过滤没事粘贴进来的内容
373
+ // clearFontSize : false, //去掉所有的内嵌字号,使用编辑器默认的字号
374
+ // clearFontFamily : false, //去掉所有的内嵌字体,使用编辑器默认的字体
375
+ // removeEmptyNode : false , // 去掉空节点
376
+ // //可以去掉的标签
377
+ // removeTagNames : {标签名字:1},
378
+ // indent : false, // 行首缩进
379
+ // indentValue : '2em' //行首缩进的大小
380
+ // },
381
+ //填写过滤规则
382
+ //,filterRules : {}
383
+ //,autoTransWordToList:false //禁止word中粘贴进来的列表自动变成列表标签
384
+ //,disabledTableInTable:true //禁止表格嵌套
385
+ };
386
+
387
+ function getUEBasePath ( docUrl, confUrl ) {
388
+
389
+ return getBasePath( docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath() );
390
+
391
+ }
392
+
393
+ function getConfigFilePath () {
394
+
395
+ var configPath = document.getElementsByTagName('script');
396
+
397
+ return configPath[ configPath.length -1 ].src;
398
+
399
+ }
400
+
401
+ function getBasePath ( docUrl, confUrl ) {
402
+
403
+ var basePath = confUrl;
404
+
405
+
406
+ if(/^(\/|\\\\)/.test(confUrl)){
407
+
408
+ basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/,'');
409
+
410
+ }else if ( !/^[a-z]+:/i.test( confUrl ) ) {
411
+
412
+ docUrl = docUrl.split( "#" )[0].split( "?" )[0].replace( /[^\\\/]+$/, '' );
413
+
414
+ basePath = docUrl + "" + confUrl;
415
+
416
+ }
417
+
418
+ return optimizationPath( basePath );
419
+
420
+ }
421
+
422
+ function optimizationPath ( path ) {
423
+
424
+ var protocol = /^[a-z]+:\/\//.exec( path )[ 0 ],
425
+ tmp = null,
426
+ res = [];
427
+
428
+ path = path.replace( protocol, "" ).split( "?" )[0].split( "#" )[0];
429
+
430
+ path = path.replace( /\\/g, '/').split( /\// );
431
+
432
+ path[ path.length - 1 ] = "";
433
+
434
+ while ( path.length ) {
435
+
436
+ if ( ( tmp = path.shift() ) === ".." ) {
437
+ res.pop();
438
+ } else if ( tmp !== "." ) {
439
+ res.push( tmp );
440
+ }
441
+
442
+ }
443
+
444
+ return protocol + res.join( "/" );
445
+
446
+ }
447
+
448
+ window.UE = {
449
+ getUEBasePath: getUEBasePath
450
+ };
451
+
452
+ })();
@@ -0,0 +1,1015 @@
1
+ /*!
2
+ * UEditor
3
+ * version: 1.3.6
4
+ * build: Wed Dec 25 2013 12:38:33 GMT+0800 (中国标准时间)
5
+ */
6
+
7
+ (function(){
8
+
9
+ (function(){
10
+ UE = window.UE || {};
11
+ var isIE = !!window.ActiveXObject;
12
+ //定义utils工具
13
+ var utils = {
14
+ removeLastbs : function(url){
15
+ return url.replace(/\/$/,'')
16
+ },
17
+ extend : function(t,s){
18
+ var a = arguments,
19
+ notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false,
20
+ len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length;
21
+ for (var i = 1; i < len; i++) {
22
+ var x = a[i];
23
+ for (var k in x) {
24
+ if (!notCover || !t.hasOwnProperty(k)) {
25
+ t[k] = x[k];
26
+ }
27
+ }
28
+ }
29
+ return t;
30
+ },
31
+ isIE : isIE,
32
+ cssRule : isIE ? function(key,style,doc){
33
+ var indexList,index;
34
+ doc = doc || document;
35
+ if(doc.indexList){
36
+ indexList = doc.indexList;
37
+ }else{
38
+ indexList = doc.indexList = {};
39
+ }
40
+ var sheetStyle;
41
+ if(!indexList[key]){
42
+ if(style === undefined){
43
+ return ''
44
+ }
45
+ sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length);
46
+ indexList[key] = index;
47
+ }else{
48
+ sheetStyle = doc.styleSheets[indexList[key]];
49
+ }
50
+ if(style === undefined){
51
+ return sheetStyle.cssText
52
+ }
53
+ sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '')
54
+ } : function(key,style,doc){
55
+ doc = doc || document;
56
+ var head = doc.getElementsByTagName('head')[0],node;
57
+ if(!(node = doc.getElementById(key))){
58
+ if(style === undefined){
59
+ return ''
60
+ }
61
+ node = doc.createElement('style');
62
+ node.id = key;
63
+ head.appendChild(node)
64
+ }
65
+ if(style === undefined){
66
+ return node.innerHTML
67
+ }
68
+ if(style !== ''){
69
+ node.innerHTML = node.innerHTML + '\n' + style;
70
+ }else{
71
+ head.removeChild(node)
72
+ }
73
+ },
74
+ domReady : function (onready) {
75
+ var doc = window.document;
76
+ if (doc.readyState === "complete") {
77
+ onready();
78
+ }else{
79
+ if (isIE) {
80
+ (function () {
81
+ if (doc.isReady) return;
82
+ try {
83
+ doc.documentElement.doScroll("left");
84
+ } catch (error) {
85
+ setTimeout(arguments.callee, 0);
86
+ return;
87
+ }
88
+ onready();
89
+ })();
90
+ window.attachEvent('onload', function(){
91
+ onready()
92
+ });
93
+ } else {
94
+ doc.addEventListener("DOMContentLoaded", function () {
95
+ doc.removeEventListener("DOMContentLoaded", arguments.callee, false);
96
+ onready();
97
+ }, false);
98
+ window.addEventListener('load', function(){onready()}, false);
99
+ }
100
+ }
101
+
102
+ },
103
+ each : function(obj, iterator, context) {
104
+ if (obj == null) return;
105
+ if (obj.length === +obj.length) {
106
+ for (var i = 0, l = obj.length; i < l; i++) {
107
+ if(iterator.call(context, obj[i], i, obj) === false)
108
+ return false;
109
+ }
110
+ } else {
111
+ for (var key in obj) {
112
+ if (obj.hasOwnProperty(key)) {
113
+ if(iterator.call(context, obj[key], key, obj) === false)
114
+ return false;
115
+ }
116
+ }
117
+ }
118
+ },
119
+ inArray : function(arr,item){
120
+ var index = -1;
121
+ this.each(arr,function(v,i){
122
+ if(v === item){
123
+ index = i;
124
+ return false;
125
+ }
126
+ });
127
+ return index;
128
+ },
129
+ pushItem : function(arr,item){
130
+ if(this.inArray(arr,item)==-1){
131
+ arr.push(item)
132
+ }
133
+ },
134
+ trim: function (str) {
135
+ return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '');
136
+ },
137
+ indexOf: function (array, item, start) {
138
+ var index = -1;
139
+ start = this.isNumber(start) ? start : 0;
140
+ this.each(array, function (v, i) {
141
+ if (i >= start && v === item) {
142
+ index = i;
143
+ return false;
144
+ }
145
+ });
146
+ return index;
147
+ },
148
+ hasClass: function (element, className) {
149
+ className = className.replace(/(^[ ]+)|([ ]+$)/g, '').replace(/[ ]{2,}/g, ' ').split(' ');
150
+ for (var i = 0, ci, cls = element.className; ci = className[i++];) {
151
+ if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) {
152
+ return false;
153
+ }
154
+ }
155
+ return i - 1 == className.length;
156
+ },
157
+ addClass:function (elm, classNames) {
158
+ if(!elm)return;
159
+ classNames = this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');
160
+ for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){
161
+ if(!new RegExp('\\b' + ci + '\\b').test(cls)){
162
+ cls += ' ' + ci;
163
+ }
164
+ }
165
+ elm.className = utils.trim(cls);
166
+ },
167
+ removeClass:function (elm, classNames) {
168
+ classNames = this.isArray(classNames) ? classNames :
169
+ this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');
170
+ for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){
171
+ cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'')
172
+ }
173
+ cls = this.trim(cls).replace(/[ ]{2,}/g,' ');
174
+ elm.className = cls;
175
+ !cls && elm.removeAttribute('className');
176
+ },
177
+ on: function (element, type, handler) {
178
+ var types = this.isArray(type) ? type : type.split(/\s+/),
179
+ k = types.length;
180
+ if (k) while (k--) {
181
+ type = types[k];
182
+ if (element.addEventListener) {
183
+ element.addEventListener(type, handler, false);
184
+ } else {
185
+ if (!handler._d) {
186
+ handler._d = {
187
+ els : []
188
+ };
189
+ }
190
+ var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element);
191
+ if (!handler._d[key] || index == -1) {
192
+ if(index == -1){
193
+ handler._d.els.push(element);
194
+ }
195
+ if(!handler._d[key]){
196
+ handler._d[key] = function (evt) {
197
+ return handler.call(evt.srcElement, evt || window.event);
198
+ };
199
+ }
200
+
201
+
202
+ element.attachEvent('on' + type, handler._d[key]);
203
+ }
204
+ }
205
+ }
206
+ element = null;
207
+ },
208
+ off: function (element, type, handler) {
209
+ var types = this.isArray(type) ? type : type.split(/\s+/),
210
+ k = types.length;
211
+ if (k) while (k--) {
212
+ type = types[k];
213
+ if (element.removeEventListener) {
214
+ element.removeEventListener(type, handler, false);
215
+ } else {
216
+ var key = type + handler.toString();
217
+ try{
218
+ element.detachEvent('on' + type, handler._d ? handler._d[key] : handler);
219
+ }catch(e){}
220
+ if (handler._d && handler._d[key]) {
221
+ var index = utils.indexOf(handler._d.els,element);
222
+ if(index!=-1){
223
+ handler._d.els.splice(index,1);
224
+ }
225
+ handler._d.els.length == 0 && delete handler._d[key];
226
+ }
227
+ }
228
+ }
229
+ },
230
+ loadFile : function () {
231
+ var tmpList = [];
232
+ function getItem(doc,obj){
233
+ try{
234
+ for(var i= 0,ci;ci=tmpList[i++];){
235
+ if(ci.doc === doc && ci.url == (obj.src || obj.href)){
236
+ return ci;
237
+ }
238
+ }
239
+ }catch(e){
240
+ return null;
241
+ }
242
+
243
+ }
244
+ return function (doc, obj, fn) {
245
+ var item = getItem(doc,obj);
246
+ if (item) {
247
+ if(item.ready){
248
+ fn && fn();
249
+ }else{
250
+ item.funs.push(fn)
251
+ }
252
+ return;
253
+ }
254
+ tmpList.push({
255
+ doc:doc,
256
+ url:obj.src||obj.href,
257
+ funs:[fn]
258
+ });
259
+ if (!doc.body) {
260
+ var html = [];
261
+ for(var p in obj){
262
+ if(p == 'tag')continue;
263
+ html.push(p + '="' + obj[p] + '"')
264
+ }
265
+ doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></'+obj.tag+'>');
266
+ return;
267
+ }
268
+ if (obj.id && doc.getElementById(obj.id)) {
269
+ return;
270
+ }
271
+ var element = doc.createElement(obj.tag);
272
+ delete obj.tag;
273
+ for (var p in obj) {
274
+ element.setAttribute(p, obj[p]);
275
+ }
276
+ element.onload = element.onreadystatechange = function () {
277
+ if (!this.readyState || /loaded|complete/.test(this.readyState)) {
278
+ item = getItem(doc,obj);
279
+ if (item.funs.length > 0) {
280
+ item.ready = 1;
281
+ for (var fi; fi = item.funs.pop();) {
282
+ fi();
283
+ }
284
+ }
285
+ element.onload = element.onreadystatechange = null;
286
+ }
287
+ };
288
+ element.onerror = function(){
289
+ throw Error('The load '+(obj.href||obj.src)+' fails,check the url')
290
+ };
291
+ doc.getElementsByTagName("head")[0].appendChild(element);
292
+ }
293
+ }()
294
+ };
295
+ utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object','Boolean'], function (v) {
296
+ utils['is' + v] = function (obj) {
297
+ return Object.prototype.toString.apply(obj) == '[object ' + v + ']';
298
+ }
299
+ });
300
+ var parselist = {};
301
+ UE.parse = {
302
+ register : function(parseName,fn){
303
+ parselist[parseName] = fn;
304
+ },
305
+ load : function(opt){
306
+ utils.each(parselist,function(v){
307
+ v.call(opt,utils);
308
+ })
309
+ }
310
+ };
311
+ uParse = function(selector,opt){
312
+ utils.domReady(function(){
313
+ var contents;
314
+ if(document.querySelectorAll){
315
+ contents = document.querySelectorAll(selector)
316
+ }else{
317
+ if(/^#/.test(selector)){
318
+ contents = [document.getElementById(selector.replace(/^#/,''))]
319
+ }else if(/^\./.test(selector)){
320
+ var contents = [];
321
+ utils.each(document.getElementsByTagName('*'),function(node){
322
+ if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){
323
+ contents.push(node)
324
+ }
325
+ })
326
+ }else{
327
+ contents = document.getElementsByTagName(selector)
328
+ }
329
+ }
330
+ utils.each(contents,function(v){
331
+ UE.parse.load(utils.extend({root:v,selector:selector},opt))
332
+ })
333
+ })
334
+ }
335
+ })();
336
+
337
+ UE.parse.register('insertcode',function(utils){
338
+ var pres = this.root.getElementsByTagName('pre');
339
+ if(pres.length){
340
+ if(typeof XRegExp == "undefined"){
341
+ var jsurl,cssurl;
342
+ if(this.rootPath !== undefined){
343
+ jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js';
344
+ cssurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css';
345
+ }else{
346
+ jsurl = this.highlightJsUrl;
347
+ cssurl = this.highlightCssUrl;
348
+ }
349
+ utils.loadFile(document,{
350
+ id : "syntaxhighlighter_css",
351
+ tag : "link",
352
+ rel : "stylesheet",
353
+ type : "text/css",
354
+ href : cssurl
355
+ });
356
+ utils.loadFile(document,{
357
+ id : "syntaxhighlighter_js",
358
+ src : jsurl,
359
+ tag : "script",
360
+ type : "text/javascript",
361
+ defer : "defer"
362
+ },function(){
363
+ utils.each(pres,function(pi){
364
+ if(pi && /brush/i.test(pi.className)){
365
+ SyntaxHighlighter.highlight(pi);
366
+ }
367
+ });
368
+ });
369
+ }
370
+ }
371
+
372
+ });
373
+ UE.parse.register('table', function (utils) {
374
+ var me = this,
375
+ root = this.root,
376
+ tables = root.getElementsByTagName('table');
377
+ if (tables.length) {
378
+ var selector = this.selector;
379
+ //追加默认的表格样式
380
+ utils.cssRule('table',
381
+ selector + ' table.noBorderTable td,' +
382
+ selector + ' table.noBorderTable th,' +
383
+ selector + ' table.noBorderTable caption{border:1px dashed #ddd !important}' +
384
+ selector + ' table.sortEnabled tr.firstRow th,' + selector + ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' +
385
+ 'background-position: center right; background-image:url(' + this.rootPath + 'themes/default/images/sortable.png);}' +
386
+ selector + ' table.sortEnabled tr.firstRow th:hover,' + selector + ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' +
387
+ selector + ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
388
+ selector + ' td,' + selector + ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' +
389
+ selector + ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
390
+ selector + ' th{border-top:1px solid #BBB;background:#F7F7F7;}' +
391
+ selector + ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' +
392
+ selector + ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' +
393
+ selector + ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' +
394
+ selector + ' td p{margin:0;padding:0;}',
395
+ document);
396
+ //填充空的单元格
397
+
398
+ utils.each('td th caption'.split(' '), function (tag) {
399
+ var cells = root.getElementsByTagName(tag);
400
+ cells.length && utils.each(cells, function (node) {
401
+ if (!node.firstChild) {
402
+ node.innerHTML = '&nbsp;';
403
+
404
+ }
405
+ })
406
+ });
407
+
408
+ //表格可排序
409
+ var tables = root.getElementsByTagName('table');
410
+ utils.each(tables, function (table) {
411
+ if (/\bsortEnabled\b/.test(table.className)) {
412
+ utils.on(table, 'click', function(e){
413
+ var target = e.target || e.srcElement,
414
+ cell = findParentByTagName(target, ['td', 'th']);
415
+ var table = findParentByTagName(target, 'table'),
416
+ colIndex = utils.indexOf(table.rows[0].cells, cell),
417
+ sortType = table.getAttribute('data-sort-type');
418
+ if(colIndex != -1) {
419
+ sortTable(table, colIndex, me.tableSortCompareFn || sortType);
420
+ updateTable(table);
421
+ }
422
+ });
423
+ }
424
+ });
425
+
426
+ //按照标签名查找父节点
427
+ function findParentByTagName(target, tagNames) {
428
+ var i, current = target;
429
+ tagNames = utils.isArray(tagNames) ? tagNames:[tagNames];
430
+ while(current){
431
+ for(i = 0;i < tagNames.length; i++) {
432
+ if(current.tagName == tagNames[i].toUpperCase()) return current;
433
+ }
434
+ current = current.parentNode;
435
+ }
436
+ return null;
437
+ }
438
+ //表格排序
439
+ function sortTable(table, sortByCellIndex, compareFn) {
440
+ var rows = table.rows,
441
+ trArray = [],
442
+ flag = rows[0].cells[0].tagName === "TH",
443
+ lastRowIndex = 0;
444
+
445
+ for (var i = 0,len = rows.length; i < len; i++) {
446
+ trArray[i] = rows[i];
447
+ }
448
+
449
+ var Fn = {
450
+ 'reversecurrent': function(td1,td2){
451
+ return 1;
452
+ },
453
+ 'orderbyasc': function(td1,td2){
454
+ var value1 = td1.innerText||td1.textContent,
455
+ value2 = td2.innerText||td2.textContent;
456
+ return value1.localeCompare(value2);
457
+ },
458
+ 'reversebyasc': function(td1,td2){
459
+ var value1 = td1.innerHTML,
460
+ value2 = td2.innerHTML;
461
+ return value2.localeCompare(value1);
462
+ },
463
+ 'orderbynum': function(td1,td2){
464
+ var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/),
465
+ value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/);
466
+ if(value1) value1 = +value1[0];
467
+ if(value2) value2 = +value2[0];
468
+ return (value1||0) - (value2||0);
469
+ },
470
+ 'reversebynum': function(td1,td2){
471
+ var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/),
472
+ value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/);
473
+ if(value1) value1 = +value1[0];
474
+ if(value2) value2 = +value2[0];
475
+ return (value2||0) - (value1||0);
476
+ }
477
+ };
478
+
479
+ //对表格设置排序的标记data-sort-type
480
+ table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:'');
481
+
482
+ //th不参与排序
483
+ flag && trArray.splice(0, 1);
484
+ trArray = sort(trArray,function (tr1, tr2) {
485
+ var result;
486
+ if (compareFn && typeof compareFn === "function") {
487
+ result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
488
+ } else if (compareFn && typeof compareFn === "number") {
489
+ result = 1;
490
+ } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) {
491
+ result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
492
+ } else {
493
+ result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
494
+ }
495
+ return result;
496
+ });
497
+ var fragment = table.ownerDocument.createDocumentFragment();
498
+ for (var j = 0, len = trArray.length; j < len; j++) {
499
+ fragment.appendChild(trArray[j]);
500
+ }
501
+ var tbody = table.getElementsByTagName("tbody")[0];
502
+ if(!lastRowIndex){
503
+ tbody.appendChild(fragment);
504
+ }else{
505
+ tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1])
506
+ }
507
+ }
508
+ //冒泡排序
509
+ function sort(array, compareFn){
510
+ compareFn = compareFn || function(item1, item2){ return item1.localeCompare(item2);};
511
+ for(var i= 0,len = array.length; i<len; i++){
512
+ for(var j = i,length = array.length; j<length; j++){
513
+ if(compareFn(array[i], array[j]) > 0){
514
+ var t = array[i];
515
+ array[i] = array[j];
516
+ array[j] = t;
517
+ }
518
+ }
519
+ }
520
+ return array;
521
+ }
522
+ //更新表格
523
+ function updateTable(table) {
524
+ //给第一行设置firstRow的样式名称,在排序图标的样式上使用到
525
+ if(!utils.hasClass(table.rows[0], "firstRow")) {
526
+ for(var i = 1; i< table.rows.length; i++) {
527
+ utils.removeClass(table.rows[i], "firstRow");
528
+ }
529
+ utils.addClass(table.rows[0], "firstRow");
530
+ }
531
+ }
532
+ }
533
+ });
534
+ /*
535
+ * 图表parse插件
536
+ */
537
+
538
+ UE.parse.register('charts',function( utils ){
539
+
540
+ utils.cssRule('chartsContainerHeight','.edui-chart-container { height:'+(this.chartContainerHeight||300)+'px}');
541
+ var resourceRoot = this.rootPath,
542
+ containers = this.root,
543
+ sources = null;
544
+
545
+ //不存在指定的根路径, 则直接退出
546
+ if ( !resourceRoot ) {
547
+ return;
548
+ }
549
+
550
+ if ( sources = parseSources() ) {
551
+
552
+ loadResources();
553
+
554
+ }
555
+
556
+
557
+ function parseSources () {
558
+
559
+ if ( !containers ) {
560
+ return null;
561
+ }
562
+
563
+ return extractChartData( containers );
564
+
565
+ }
566
+
567
+ /**
568
+ * 提取数据
569
+ */
570
+ function extractChartData ( rootNode ) {
571
+
572
+ var data = [],
573
+ tables = rootNode.getElementsByTagName( "table" );
574
+
575
+ for ( var i = 0, tableNode; tableNode = tables[ i ]; i++ ) {
576
+
577
+ if ( tableNode.getAttribute( "data-chart" ) !== null ) {
578
+
579
+ data.push( formatData( tableNode ) );
580
+
581
+ }
582
+
583
+ }
584
+
585
+ return data.length ? data : null;
586
+
587
+ }
588
+
589
+ function formatData ( tableNode ) {
590
+
591
+ var meta = tableNode.getAttribute( "data-chart" ),
592
+ metaConfig = {},
593
+ data = [];
594
+
595
+ //提取table数据
596
+ for ( var i = 0, row; row = tableNode.rows[ i ]; i++ ) {
597
+
598
+ var rowData = [];
599
+
600
+ for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) {
601
+
602
+ var value = ( cell.innerText || cell.textContent || '' );
603
+ rowData.push( cell.tagName == 'TH' ? value:(value | 0) );
604
+
605
+ }
606
+
607
+ data.push( rowData );
608
+
609
+ }
610
+
611
+ //解析元信息
612
+ meta = meta.split( ";" );
613
+ for ( var i = 0, metaData; metaData = meta[ i ]; i++ ) {
614
+
615
+ metaData = metaData.split( ":" );
616
+ metaConfig[ metaData[ 0 ] ] = metaData[ 1 ];
617
+
618
+ }
619
+
620
+
621
+ return {
622
+ table: tableNode,
623
+ meta: metaConfig,
624
+ data: data
625
+ };
626
+
627
+ }
628
+
629
+ //加载资源
630
+ function loadResources () {
631
+
632
+ loadJQuery();
633
+
634
+ }
635
+
636
+ function loadJQuery () {
637
+
638
+ //不存在jquery, 则加载jquery
639
+ if ( !window.jQuery ) {
640
+
641
+ utils.loadFile(document,{
642
+ src : resourceRoot + "/third-party/jquery-1.10.2.min.js",
643
+ tag : "script",
644
+ type : "text/javascript",
645
+ defer : "defer"
646
+ },function(){
647
+
648
+ loadHighcharts();
649
+
650
+ });
651
+
652
+ } else {
653
+
654
+ loadHighcharts();
655
+
656
+ }
657
+
658
+ }
659
+
660
+ function loadHighcharts () {
661
+
662
+ //不存在Highcharts, 则加载Highcharts
663
+ if ( !window.Highcharts ) {
664
+
665
+ utils.loadFile(document,{
666
+ src : resourceRoot + "/third-party/highcharts/highcharts.js",
667
+ tag : "script",
668
+ type : "text/javascript",
669
+ defer : "defer"
670
+ },function(){
671
+
672
+ loadTypeConfig();
673
+
674
+ });
675
+
676
+ } else {
677
+
678
+ loadTypeConfig();
679
+
680
+ }
681
+
682
+ }
683
+
684
+ //加载图表差异化配置文件
685
+ function loadTypeConfig () {
686
+
687
+ utils.loadFile(document,{
688
+ src : resourceRoot + "/dialogs/charts/chart.config.js",
689
+ tag : "script",
690
+ type : "text/javascript",
691
+ defer : "defer"
692
+ },function(){
693
+
694
+ render();
695
+
696
+ });
697
+
698
+ }
699
+
700
+ //渲染图表
701
+ function render () {
702
+
703
+ var config = null,
704
+ chartConfig = null,
705
+ container = null;
706
+
707
+ for ( var i = 0, len = sources.length; i < len; i++ ) {
708
+
709
+ config = sources[ i ];
710
+
711
+ chartConfig = analysisConfig( config );
712
+
713
+ container = createContainer( config.table );
714
+
715
+ renderChart( container, typeConfig[ config.meta.chartType ], chartConfig );
716
+
717
+ }
718
+
719
+
720
+ }
721
+
722
+ /*
723
+ * 渲染图表
724
+ * @param container 图表容器节点对象
725
+ * @param typeConfig 图表类型配置
726
+ * @param config 图表通用配置
727
+ * */
728
+ function renderChart ( container, typeConfig, config ) {
729
+
730
+
731
+ $( container ).highcharts( $.extend( {}, typeConfig, {
732
+
733
+ credits: {
734
+ enabled: false
735
+ },
736
+ exporting: {
737
+ enabled: false
738
+ },
739
+ title: {
740
+ text: config.title,
741
+ x: -20 //center
742
+ },
743
+ subtitle: {
744
+ text: config.subTitle,
745
+ x: -20
746
+ },
747
+ xAxis: {
748
+ title: {
749
+ text: config.xTitle
750
+ },
751
+ categories: config.categories
752
+ },
753
+ yAxis: {
754
+ title: {
755
+ text: config.yTitle
756
+ },
757
+ plotLines: [{
758
+ value: 0,
759
+ width: 1,
760
+ color: '#808080'
761
+ }]
762
+ },
763
+ tooltip: {
764
+ enabled: true,
765
+ valueSuffix: config.suffix
766
+ },
767
+ legend: {
768
+ layout: 'vertical',
769
+ align: 'right',
770
+ verticalAlign: 'middle',
771
+ borderWidth: 1
772
+ },
773
+ series: config.series
774
+
775
+ } ));
776
+
777
+ }
778
+
779
+ /*
780
+ * 创建图表的容器
781
+ * 新创建的容器会替换掉对应的table对象
782
+ * */
783
+ function createContainer ( tableNode ) {
784
+
785
+ var container = document.createElement( "div" );
786
+ container.className = "edui-chart-container";
787
+
788
+ tableNode.parentNode.replaceChild( container, tableNode );
789
+
790
+ return container;
791
+
792
+ }
793
+
794
+ //根据config解析出正确的类别和图表数据信息
795
+ function analysisConfig ( config ) {
796
+
797
+ var series = [],
798
+ //数据类别
799
+ categories = [],
800
+ result = [],
801
+ data = config.data,
802
+ meta = config.meta;
803
+
804
+ //数据对齐方式为相反的方式, 需要反转数据
805
+ if ( meta.dataFormat != "1" ) {
806
+
807
+ for ( var i = 0, len = data.length; i < len ; i++ ) {
808
+
809
+ for ( var j = 0, jlen = data[ i ].length; j < jlen; j++ ) {
810
+
811
+ if ( !result[ j ] ) {
812
+ result[ j ] = [];
813
+ }
814
+
815
+ result[ j ][ i ] = data[ i ][ j ];
816
+
817
+ }
818
+
819
+ }
820
+
821
+ data = result;
822
+
823
+ }
824
+
825
+ result = {};
826
+
827
+ //普通图表
828
+ if ( meta.chartType != typeConfig.length - 1 ) {
829
+
830
+ categories = data[ 0 ].slice( 1 );
831
+
832
+ for ( var i = 1, curData; curData = data[ i ]; i++ ) {
833
+ series.push( {
834
+ name: curData[ 0 ],
835
+ data: curData.slice( 1 )
836
+ } );
837
+ }
838
+
839
+ result.series = series;
840
+ result.categories = categories;
841
+ result.title = meta.title;
842
+ result.subTitle = meta.subTitle;
843
+ result.xTitle = meta.xTitle;
844
+ result.yTitle = meta.yTitle;
845
+ result.suffix = meta.suffix;
846
+
847
+ } else {
848
+
849
+ var curData = [];
850
+
851
+ for ( var i = 1, len = data[ 0 ].length; i < len; i++ ) {
852
+
853
+ curData.push( [ data[ 0 ][ i ], data[ 1 ][ i ] | 0 ] );
854
+
855
+ }
856
+
857
+ //饼图
858
+ series[ 0 ] = {
859
+ type: 'pie',
860
+ name: meta.tip,
861
+ data: curData
862
+ };
863
+
864
+ result.series = series;
865
+ result.title = meta.title;
866
+ result.suffix = meta.suffix;
867
+
868
+ }
869
+
870
+ return result;
871
+
872
+ }
873
+
874
+ });
875
+ UE.parse.register('background', function (utils) {
876
+ var me = this,
877
+ root = me.root,
878
+ p = root.getElementsByTagName('p'),
879
+ styles;
880
+
881
+ for (var i = 0,ci; ci = p[i++];) {
882
+ styles = ci.getAttribute('data-background');
883
+ if (styles){
884
+ ci.parentNode.removeChild(ci);
885
+ }
886
+ }
887
+
888
+ //追加默认的表格样式
889
+ styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document);
890
+ });
891
+ UE.parse.register('list',function(utils){
892
+ var customCss = [],
893
+ customStyle = {
894
+ 'cn' : 'cn-1-',
895
+ 'cn1' : 'cn-2-',
896
+ 'cn2' : 'cn-3-',
897
+ 'num' : 'num-1-',
898
+ 'num1' : 'num-2-',
899
+ 'num2' : 'num-3-',
900
+ 'dash' : 'dash',
901
+ 'dot' : 'dot'
902
+ };
903
+
904
+
905
+ utils.extend(this,{
906
+ liiconpath : 'http://bs.baidu.com/listicon/',
907
+ listDefaultPaddingLeft : '20'
908
+ });
909
+
910
+ var root = this.root,
911
+ ols = root.getElementsByTagName('ol'),
912
+ uls = root.getElementsByTagName('ul'),
913
+ selector = this.selector;
914
+
915
+ if(ols.length){
916
+ applyStyle.call(this,ols);
917
+ }
918
+
919
+ if(uls.length){
920
+ applyStyle.call(this,uls);
921
+ }
922
+
923
+ if(ols.length || uls.length){
924
+ customCss.push(selector +' .list-paddingleft-1{padding-left:0}');
925
+ customCss.push(selector +' .list-paddingleft-2{padding-left:'+ this.listDefaultPaddingLeft+'px}');
926
+ customCss.push(selector +' .list-paddingleft-3{padding-left:'+ this.listDefaultPaddingLeft*2+'px}');
927
+
928
+ utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}li{clear:both;}'+customCss.join('\n'), document);
929
+ }
930
+ function applyStyle(nodes){
931
+ var T = this;
932
+ utils.each(nodes,function(list){
933
+ if(list.className && /custom_/i.test(list.className)){
934
+ var listStyle = list.className.match(/custom_(\w+)/)[1];
935
+ if(listStyle == 'dash' || listStyle == 'dot'){
936
+ utils.pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + T.liiconpath +customStyle[listStyle]+'.gif)}');
937
+ utils.pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
938
+
939
+ }else{
940
+ var index = 1;
941
+ utils.each(list.childNodes,function(li){
942
+ if(li.tagName == 'LI'){
943
+ utils.pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + T.liiconpath + 'list-'+customStyle[listStyle] +index + '.gif)}');
944
+ index++;
945
+ }
946
+ });
947
+ utils.pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
948
+ }
949
+ switch(listStyle){
950
+ case 'cn':
951
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
952
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
953
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
954
+ break;
955
+ case 'cn1':
956
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}');
957
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
958
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
959
+ break;
960
+ case 'cn2':
961
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}');
962
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}');
963
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}');
964
+ break;
965
+ case 'num':
966
+ case 'num1':
967
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
968
+ break;
969
+ case 'num2':
970
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}');
971
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
972
+ break;
973
+ case 'dash':
974
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}');
975
+ break;
976
+ case 'dot':
977
+ utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}');
978
+ }
979
+ }
980
+ });
981
+ }
982
+
983
+
984
+ });
985
+ UE.parse.register('vedio',function(utils){
986
+ var video = this.root.getElementsByTagName('video'),
987
+ audio = this.root.getElementsByTagName('audio');
988
+
989
+ document.createElement('video');document.createElement('audio');
990
+ if(video.length || audio.length){
991
+ var sourcePath = utils.removeLastbs(this.rootPath),
992
+ jsurl = sourcePath + '/third-party/video-js/video.js',
993
+ cssurl = sourcePath + '/third-party/video-js/video-js.min.css',
994
+ swfUrl = sourcePath + '/third-party/video-js/video-js.swf';
995
+
996
+ utils.loadFile(document,{
997
+ id : "video_css",
998
+ tag : "link",
999
+ rel : "stylesheet",
1000
+ type : "text/css",
1001
+ href : cssurl
1002
+ });
1003
+ utils.loadFile(document,{
1004
+ id : "video_js",
1005
+ src : jsurl,
1006
+ tag : "script",
1007
+ type : "text/javascript"
1008
+ },function(){
1009
+ videojs.options.flash.swf = swfUrl;
1010
+ });
1011
+
1012
+ }
1013
+ });
1014
+
1015
+ })()